CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
149 lines
3.6 KiB
C
149 lines
3.6 KiB
C
/*************************************************************************
|
|
* SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* See LICENSE.txt for more license information
|
|
*************************************************************************/
|
|
|
|
#ifndef PROFILER_V6_H_
|
|
#define PROFILER_V6_H_
|
|
|
|
#include "profiler_v5.h"
|
|
|
|
// Extend v5 descriptor with CE-specific fields
|
|
typedef struct {
|
|
uint64_t type; // event type descriptor
|
|
void* parentObj; // pointer to the profiler parent object
|
|
int rank; // originating rank
|
|
union {
|
|
// All v5 descriptors (groupApi, collApi, p2pApi, kernelLaunch, coll, p2p, proxyOp, proxyStep, kernelCh, netPlugin)
|
|
struct {
|
|
bool graphCaptured;
|
|
int groupDepth;
|
|
} groupApi;
|
|
|
|
struct {
|
|
const char* func;
|
|
size_t count;
|
|
const char* datatype;
|
|
int root;
|
|
void* stream;
|
|
bool graphCaptured;
|
|
} collApi;
|
|
|
|
struct {
|
|
const char* func;
|
|
size_t count;
|
|
const char* datatype;
|
|
void* stream;
|
|
bool graphCaptured;
|
|
} p2pApi;
|
|
|
|
struct {
|
|
void* stream;
|
|
} kernelLaunch;
|
|
|
|
struct {
|
|
uint64_t seqNumber;
|
|
const char* func;
|
|
void const* sendBuff;
|
|
void* recvBuff;
|
|
size_t count;
|
|
int root;
|
|
const char* datatype;
|
|
uint8_t nChannels;
|
|
uint8_t nWarps;
|
|
const char* algo;
|
|
const char* proto;
|
|
void* parentGroup;
|
|
} coll;
|
|
|
|
struct {
|
|
const char* func;
|
|
void* buff;
|
|
const char* datatype;
|
|
size_t count;
|
|
int peer;
|
|
uint8_t nChannels;
|
|
void* parentGroup;
|
|
} p2p;
|
|
|
|
struct {
|
|
pid_t pid;
|
|
uint8_t channelId;
|
|
int peer;
|
|
int nSteps;
|
|
int chunkSize;
|
|
int isSend;
|
|
} proxyOp;
|
|
|
|
struct {
|
|
int step;
|
|
} proxyStep;
|
|
|
|
struct {
|
|
uint8_t channelId;
|
|
uint64_t pTimer;
|
|
} kernelCh;
|
|
|
|
struct {
|
|
int64_t id;
|
|
void* data;
|
|
} netPlugin;
|
|
|
|
// v6 CE-specific descriptors
|
|
struct {
|
|
uint64_t seqNumber;
|
|
const char* func;
|
|
void const* sendBuff;
|
|
void* recvBuff;
|
|
size_t count;
|
|
int root;
|
|
const char* datatype;
|
|
const char* syncStrategy;
|
|
bool intraBatchSync;
|
|
uint32_t batchSize;
|
|
uint32_t numBatches;
|
|
uint32_t ceSeqNum;
|
|
void* stream;
|
|
} ceColl;
|
|
|
|
struct {
|
|
bool isComplete;
|
|
int nRanks;
|
|
} ceCollSync;
|
|
|
|
struct {
|
|
int numOps;
|
|
size_t totalBytes;
|
|
bool useIntraSync;
|
|
} ceCollBatch;
|
|
};
|
|
} ncclProfilerEventDescr_v6_t;
|
|
|
|
// v6 uses same state args as v5 (no CE-specific state args needed)
|
|
// CE events don't use recordEventState - plugin manages all timing internally
|
|
typedef ncclProfilerEventStateArgs_v5_t ncclProfilerEventStateArgs_v6_t;
|
|
|
|
typedef struct {
|
|
const char* name;
|
|
|
|
// init - initialize the profiler plugin
|
|
ncclResult_t (*init)(void** context, uint64_t commId, int* eActivationMask, const char* commName, int nNodes, int nranks, int rank, ncclDebugLogger_t logfn);
|
|
|
|
// startEvent - initialize and start a new event
|
|
ncclResult_t (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v6_t* eDescr);
|
|
|
|
// stopEvent - stop/finalize an event
|
|
ncclResult_t (*stopEvent)(void* eHandle);
|
|
|
|
// recordEventState - record event state transitions and updates
|
|
ncclResult_t (*recordEventState)(void* eHandle, ncclProfilerEventState_v6_t eState, ncclProfilerEventStateArgs_v6_t* eStateArgs);
|
|
|
|
// finalize - finalize the profiler plugin
|
|
ncclResult_t (*finalize)(void* context);
|
|
} ncclProfiler_v6_t;
|
|
|
|
#endif // PROFILER_V6_H_
|
|
|