[CPU 事实表] [GPU 事实表] ┌─────────────────────────────────────────┐ ┌─────────────────────────────────────────┐ │ CUPTI_ACTIVITY_KIND_RUNTIME │ │ CUPTI_ACTIVITY_KIND_KERNEL │ │ CUPTI_ACTIVITY_KIND_DRIVER │ │ CUPTI_ACTIVITY_KIND_MEMCPY │ │ CUPTI_ACTIVITY_KIND_CUDA_EVENT │── correlationId ──────────────►│ CUPTI_ACTIVITY_KIND_MEMSET │ │ CUPTI_ACTIVITY_KIND_SYNCHRONIZATION │ (host launch ↔ GPU 执行) │ CUPTI_ACTIVITY_KIND_GRAPH_TRACE │ │ NVTX_EVENTS │ │ CUPTI_ACTIVITY_KIND_UNIFIED_MEMORY_ │ │ OSRT_API │ │ COUNTER │ │ COMPOSITE_EVENTS │── callchainId ────► │ CUDA_GPU_MEMORY_USAGE_EVENTS │ │ PROFILER_OVERHEAD │ SAMPLING_CALLCHAINS(id) └─────────────────────────────────────────┘ └─────────────────────────────────────────┘ │ graphId / graphNodeId │ │ │ (CUDA Graph 子节点 │ globalTid │ nameId / textId / domainId / │ 与 GRAPH_TRACE 共享) │ │ symbol / module / shortName / │ ▼ │ demangledName / mangledName / ▼ [META 维度表] │ name / source / value(所有 *Id 字段) 自连接 ThreadNames( ▼ globalTid, nameId, StringIds(id, value) ◄────────────────────────── 几乎所有事实表都通过 *Id 字段引用 priority) ▲ ▲ │ │ globalTid │ nameId(线程名) └──────────────────────────┘ [MIXED 生命周期表] [META 主题维度] ┌────────────────────────────────────────────┐ TARGET_INFO_PROCESS(globalPid, pid, nameId, command) │ CUPTI_ACTIVITY_KIND_MEMORY │── correlationId ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ │ CUPTI_ACTIVITY_KIND_MEMORY2 (新版拆分) │ (cudaMalloc/Free 的 │ globalPid 来自所有 GPU 事实表 + NVTX_EVENTS │ CUPTI_ACTIVITY_KIND_MEMORY_POOL │ RUNTIME 行) │ └────────────────────────────────────────────┘ TARGET_INFO_GPU(id, name, computeCapMajor/Minor, smCount, ...) │ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ │ deviceId(在哪个 GPU 分配) │ deviceId / srcDeviceId / dstDeviceId / srcId / dstId / gpuId └─────────────────────────────────────────────────────────────────┘ 来自 KERNEL, MEMCPY, MEMSET, SYNCHRONIZATION, GRAPH_TRACE, UVM_COUNTER, GPU_MEMORY_USAGE, MEMORY, MEMORY_POOL, TARGET_INFO_NVLINK_INFO, TARGET_INFO_PCIE_INFO [META 拓扑] TARGET_INFO_NVLINK_INFO(localGpuId, peerGpuId, bandwidth, physicalNvLinkCount, isActive) │ │ └── localGpuId / peerGpuId ─────────────┴──► TARGET_INFO_GPU(id) TARGET_INFO_PCIE_INFO(gpuId, pcieGen, pcieWidth, bandwidth) ── gpuId ──► TARGET_INFO_GPU(id) [META 全局常量] TARGET_INFO_SESSION_START_TIME(utcEpochNs) — session 0 时刻对应的 UTC 纳秒; 与所有事实表无 FK,仅作为时间偏移→绝对时间的基准
约定:箭头方向 事实表 ──FK 列──► 维度表。两条隐式规则在卡片里不再重复列出 —— 所有 host 事实表的 globalTid → ThreadNames, 所有事实表的 globalPid → TARGET_INFO_PROCESS。
说明:
INTEGER(含 64-bit 时间戳/ID)或 TEXT。表中标 enum 的整型字段是 CUPTI 枚举(取值见对应行)。TARGET_INFO_SESSION_START_TIME)。correlationId:RUNTIME / DRIVER 的一行(CPU launch)= KERNEL / MEMCPY / MEMSET / SYNCHRONIZATION 的一行(GPU 执行)。nameId / shortName / demangledName 等 *Id 字段都是 StringIds(id) 的外键,需要 join 才能拿到字符串。_v2 / _v3 版本(比如 localMemoryTotal_v2),含义不变,只是 schema 演进导致的别名。