Skip to content

Commit a6fbd46

Browse files
gnurizenclaude
andcommitted
Use parcagpu::CuptiProfiler and parcagpu::PCSampling
Changed: - namespace parca -> namespace parcagpu (keep original namespace) - class GPUProfiler -> class CuptiProfiler - class GPUPCSampling -> class PCSampling Results in clearer symbols: - parcagpu::CuptiProfiler::allocBuffer - parcagpu::PCSampling::instance() Names now clearly indicate CUPTI profiling and PC sampling functionality. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 1a30561 commit a6fbd46

3 files changed

Lines changed: 25 additions & 25 deletions

File tree

src/parcagpu_cupti.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ void init_debug() {
5151
} while (0)
5252

5353
// Simplified profiler using Proton's patterns
54-
class ParcaGPUProfiler : public proton::Singleton<ParcaGPUProfiler> {
54+
class CuptiProfiler : public proton::Singleton<CuptiProfiler> {
5555
public:
56-
ParcaGPUProfiler() {
56+
CuptiProfiler() {
5757
DEBUG_PRINTF("[PARCAGPU] Initializing ParcaGPUProfiler\n");
5858
}
5959

60-
~ParcaGPUProfiler() { cleanup(); }
60+
~CuptiProfiler() { cleanup(); }
6161

6262
bool initialize() {
6363
if (initialized.exchange(true)) {
@@ -67,7 +67,7 @@ class ParcaGPUProfiler : public proton::Singleton<ParcaGPUProfiler> {
6767
DEBUG_PRINTF("[PARCAGPU] Starting initialization\n");
6868

6969
// Check if PC sampling is supported
70-
pcSamplingEnabled = ParcaGPUPCSampling::isSupported();
70+
pcSamplingEnabled = parcagpu::PCSampling::isSupported();
7171
if (pcSamplingEnabled) {
7272
DEBUG_PRINTF("[PARCAGPU] PC sampling enabled (continuous mode)\n");
7373
} else {
@@ -225,7 +225,7 @@ class ParcaGPUProfiler : public proton::Singleton<ParcaGPUProfiler> {
225225
static void callbackHandler(void *userdata, CUpti_CallbackDomain domain,
226226
CUpti_CallbackId cbid,
227227
const void *cbdata_void) {
228-
auto &profiler = ParcaGPUProfiler::instance();
228+
auto &profiler = CuptiProfiler::instance();
229229

230230
if (domain == CUPTI_CB_DOMAIN_RESOURCE) {
231231
// Handle resource callbacks for PC sampling (only if enabled)
@@ -243,7 +243,7 @@ class ParcaGPUProfiler : public proton::Singleton<ParcaGPUProfiler> {
243243
if (modData && modData->pCubin && modData->cubinSize > 0) {
244244
DEBUG_PRINTF("[PARCAGPU] Module loaded: cubin=%p size=%zu\n",
245245
modData->pCubin, modData->cubinSize);
246-
ParcaGPUPCSampling::instance().loadModule(
246+
parcagpu::PCSampling::instance().loadModule(
247247
modData->pCubin, modData->cubinSize);
248248
}
249249
break;
@@ -254,21 +254,21 @@ class ParcaGPUProfiler : public proton::Singleton<ParcaGPUProfiler> {
254254
if (modData && modData->pCubin && modData->cubinSize > 0) {
255255
DEBUG_PRINTF("[PARCAGPU] Module unloading: cubin=%p size=%zu\n",
256256
modData->pCubin, modData->cubinSize);
257-
ParcaGPUPCSampling::instance().unloadModule(
257+
parcagpu::PCSampling::instance().unloadModule(
258258
modData->pCubin, modData->cubinSize);
259259
}
260260
break;
261261
}
262262
case CUPTI_CBID_RESOURCE_CONTEXT_CREATED: {
263263
CUcontext ctx = resData->context;
264264
DEBUG_PRINTF("[PARCAGPU] Context created: %p\n", ctx);
265-
ParcaGPUPCSampling::instance().initialize(ctx);
265+
parcagpu::PCSampling::instance().initialize(ctx);
266266
break;
267267
}
268268
case CUPTI_CBID_RESOURCE_CONTEXT_DESTROY_STARTING: {
269269
CUcontext ctx = resData->context;
270270
DEBUG_PRINTF("[PARCAGPU] Context destroying: %p\n", ctx);
271-
ParcaGPUPCSampling::instance().finalize(ctx);
271+
parcagpu::PCSampling::instance().finalize(ctx);
272272
break;
273273
}
274274
default:
@@ -356,7 +356,7 @@ class ParcaGPUProfiler : public proton::Singleton<ParcaGPUProfiler> {
356356

357357
// Collect PC sampling data after kernel launch (continuous mode)
358358
if (profiler.pcSamplingEnabled) {
359-
ParcaGPUPCSampling::instance().collectData(cbdata->context,
359+
parcagpu::PCSampling::instance().collectData(cbdata->context,
360360
correlationId);
361361
}
362362
}
@@ -369,13 +369,13 @@ class ParcaGPUProfiler : public proton::Singleton<ParcaGPUProfiler> {
369369
extern "C" int InitializeInjection(void) {
370370
DEBUG_PRINTF("[PARCAGPU] InitializeInjection called\n");
371371

372-
auto &profiler = parcagpu::ParcaGPUProfiler::instance();
372+
auto &profiler = parcagpu::CuptiProfiler::instance();
373373
if (!profiler.initialize()) {
374374
return 0; // Return 0 on failure, but don't break injection
375375
}
376376

377377
// Register cleanup at exit
378-
atexit([]() { parcagpu::ParcaGPUProfiler::instance().cleanup(); });
378+
atexit([]() { parcagpu::CuptiProfiler::instance().cleanup(); });
379379

380380
return 1; // Success
381381
}

src/parcagpu_pc_sampling.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -315,9 +315,9 @@ void ConfigureData::initialize(CUcontext context) {
315315
numStallReasons, numValidStallReasons);
316316
}
317317

318-
// ParcaGPUPCSampling implementation
318+
// GPUPCSampling implementation
319319

320-
bool ParcaGPUPCSampling::isSupported() {
320+
bool PCSampling::isSupported() {
321321
// Check PARCAGPU_SAMPLING_FACTOR - 0 means disabled
322322
const char *sampling_factor_env = getenv("PARCAGPU_SAMPLING_FACTOR");
323323
if (sampling_factor_env && atoi(sampling_factor_env) == 0) {
@@ -345,15 +345,15 @@ bool ParcaGPUPCSampling::isSupported() {
345345
return true;
346346
}
347347

348-
ConfigureData *ParcaGPUPCSampling::getConfigureData(uint32_t contextId) {
348+
ConfigureData *PCSampling::getConfigureData(uint32_t contextId) {
349349
return &contextIdToConfigureData[contextId];
350350
}
351351

352-
CubinData *ParcaGPUPCSampling::getCubinData(uint64_t cubinCrc) {
352+
CubinData *PCSampling::getCubinData(uint64_t cubinCrc) {
353353
return &(cubinCrcToCubinData[cubinCrc].first);
354354
}
355355

356-
void ParcaGPUPCSampling::initialize(CUcontext context) {
356+
void PCSampling::initialize(CUcontext context) {
357357
uint32_t contextId = 0;
358358
proton::cupti::getContextId<true>(context, &contextId);
359359

@@ -368,7 +368,7 @@ void ParcaGPUPCSampling::initialize(CUcontext context) {
368368
});
369369
}
370370

371-
void ParcaGPUPCSampling::processPCSamplingData(ConfigureData *configureData,
371+
void PCSampling::processPCSamplingData(ConfigureData *configureData,
372372
uint32_t correlationId) {
373373
auto *pcSamplingData = &configureData->pcSamplingData;
374374

@@ -453,7 +453,7 @@ void ParcaGPUPCSampling::processPCSamplingData(ConfigureData *configureData,
453453
}
454454
}
455455

456-
void ParcaGPUPCSampling::collectData(CUcontext context, uint32_t correlationId) {
456+
void PCSampling::collectData(CUcontext context, uint32_t correlationId) {
457457
uint32_t contextId = 0;
458458
proton::cupti::getContextId<true>(context, &contextId);
459459

@@ -469,7 +469,7 @@ void ParcaGPUPCSampling::collectData(CUcontext context, uint32_t correlationId)
469469
processPCSamplingData(configureData, correlationId);
470470
}
471471

472-
void ParcaGPUPCSampling::finalize(CUcontext context) {
472+
void PCSampling::finalize(CUcontext context) {
473473
uint32_t contextId = 0;
474474
proton::cupti::getContextId<true>(context, &contextId);
475475

@@ -482,7 +482,7 @@ void ParcaGPUPCSampling::finalize(CUcontext context) {
482482
contextInitialized.erase(contextId);
483483
}
484484

485-
void ParcaGPUPCSampling::loadModule(const char *cubin, size_t cubinSize) {
485+
void PCSampling::loadModule(const char *cubin, size_t cubinSize) {
486486
auto cubinCrc = getCubinCrc(cubin, cubinSize);
487487
auto *cubinData = getCubinData(cubinCrc);
488488

@@ -502,7 +502,7 @@ void ParcaGPUPCSampling::loadModule(const char *cubin, size_t cubinSize) {
502502
}
503503
}
504504

505-
void ParcaGPUPCSampling::unloadModule(const char *cubin, size_t cubinSize) {
505+
void PCSampling::unloadModule(const char *cubin, size_t cubinSize) {
506506
auto cubinCrc = getCubinCrc(cubin, cubinSize);
507507

508508
if (!cubinCrcToCubinData.contain(cubinCrc))

src/parcagpu_pc_sampling.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@ struct ConfigureData {
7474
};
7575

7676
// PC Sampling singleton class (adapted from Proton's CuptiPCSampling)
77-
class ParcaGPUPCSampling : public proton::Singleton<ParcaGPUPCSampling> {
77+
class PCSampling : public proton::Singleton<PCSampling> {
7878
public:
79-
ParcaGPUPCSampling() = default;
80-
virtual ~ParcaGPUPCSampling() = default;
79+
PCSampling() = default;
80+
virtual ~PCSampling() = default;
8181

8282
// Check if PC sampling is supported (CUPTI >= 12.8.1)
8383
static bool isSupported();

0 commit comments

Comments
 (0)