What's New
CUPTI contains below changes as part of the CUDA Toolkit 9.0 release.
- CUPTI extends tracing and profiling support for devices with compute capability 7.0.
- Usage of compute device memory can now be tracked through CUPTI. A new activity record CUpti_ActivityMemory and activity kind CUPTI_ACTIVITY_KIND_MEMORY are added to track the allocation and freeing of memory. This activity record includes fields like virtual base address, size, PC (program counter), timestamps for memory allocation and free calls.
- Unified memory profiling adds new events for thrashing, throttling, remote map and device-to-device migration on 64 bit Linux platforms. New events are added under enum CUpti_ActivityUnifiedMemoryCounterKind. Enum CUpti_ActivityUnifiedMemoryRemoteMapCause lists possible causes for remote map events.
- PC sampling now supports wide range of sampling periods ranging from 2^5 cycles to 2^31 cycles per sample. This can be controlled through new field samplingPeriod2 in the PC sampling configuration struct CUpti_ActivityPCSamplingConfig.
- Added API cuptiDeviceSupported() to check support for a compute device.
- Activity record CUpti_ActivityKernel3 for kernel execution has been deprecated and replaced by new activity record CUpti_ActivityKernel4. New record gives information about queued and submit timestamps which can help to determine software and hardware latencies associated with the kernel launch. These timestamps are not collected by default. Use API cuptiActivityEnableLatencyTimestamps() to enable collection. New field launchType of type CUpti_ActivityLaunchType can be used to determine if it is a cooperative CUDA kernel launch.
- Activity record CUpti_ActivityPCSampling2 for PC sampling has been deprecated and replaced by new activity record CUpti_ActivityPCSampling3. New record accomodates 64-bit PC Offset supported on devices of compute capability 7.0 and higher.
- Activity record CUpti_ActivityNvLink for NVLink attributes has been deprecated and replaced by new activity record CUpti_ActivityNvLink2. New record accomodates increased port numbers between two compute devices.
- Activity record CUpti_ActivityGlobalAccess2 for source level global accesses has been deprecated and replaced by new activity record CUpti_ActivityGlobalAccess3. New record accomodates 64-bit PC Offset supported on devices of compute capability 7.0 and higher.
- New attributes CUPTI_ACTIVITY_ATTR_PROFILING_SEMAPHORE_POOL_SIZE and CUPTI_ACTIVITY_ATTR_PROFILING_SEMAPHORE_POOL_LIMIT are added in the activity attribute enum CUpti_ActivityAttribute to set and get the profiling semaphore pool size and the pool limit.
Table of Contents
- 1. Usage
- 2. Modules
- 3. Data Structures
- 3.1. CUpti_Activity
- 3.2. CUpti_ActivityAPI
- 3.3. CUpti_ActivityAutoBoostState
- 3.4. CUpti_ActivityBranch
- 3.5. CUpti_ActivityBranch2
- 3.6. CUpti_ActivityCdpKernel
- 3.7. CUpti_ActivityContext
- 3.8. CUpti_ActivityCudaEvent
- 3.9. CUpti_ActivityDevice
- 3.10. CUpti_ActivityDevice2
- 3.11. CUpti_ActivityDeviceAttribute
- 3.12. CUpti_ActivityEnvironment
- 3.13. CUpti_ActivityEvent
- 3.14. CUpti_ActivityEventInstance
- 3.15. CUpti_ActivityExternalCorrelation
- 3.16. CUpti_ActivityFunction
- 3.17. CUpti_ActivityGlobalAccess
- 3.18. CUpti_ActivityGlobalAccess2
- 3.19. CUpti_ActivityGlobalAccess3
- 3.20. CUpti_ActivityInstantaneousEvent
- 3.21. CUpti_ActivityInstantaneousEventInstance
- 3.22. CUpti_ActivityInstantaneousMetric
- 3.23. CUpti_ActivityInstantaneousMetricInstance
- 3.24. CUpti_ActivityInstructionCorrelation
- 3.25. CUpti_ActivityInstructionExecution
- 3.26. CUpti_ActivityKernel
- 3.27. CUpti_ActivityKernel2
- 3.28. CUpti_ActivityKernel3
- 3.29. CUpti_ActivityKernel4
- 3.30. CUpti_ActivityMarker
- 3.31. CUpti_ActivityMarker2
- 3.32. CUpti_ActivityMarkerData
- 3.33. CUpti_ActivityMemcpy
- 3.34. CUpti_ActivityMemcpy2
- 3.35. CUpti_ActivityMemory
- 3.36. CUpti_ActivityMemset
- 3.37. CUpti_ActivityMetric
- 3.38. CUpti_ActivityMetricInstance
- 3.39. CUpti_ActivityModule
- 3.40. CUpti_ActivityName
- 3.41. CUpti_ActivityNvLink
- 3.42. CUpti_ActivityNvLink2
- 3.43. CUpti_ActivityObjectKindId
- 3.44. CUpti_ActivityOpenAcc
- 3.45. CUpti_ActivityOpenAccData
- 3.46. CUpti_ActivityOpenAccLaunch
- 3.47. CUpti_ActivityOpenAccOther
- 3.48. CUpti_ActivityOverhead
- 3.49. CUpti_ActivityPCSampling
- 3.50. CUpti_ActivityPCSampling2
- 3.51. CUpti_ActivityPCSampling3
- 3.52. CUpti_ActivityPCSamplingConfig
- 3.53. CUpti_ActivityPCSamplingRecordInfo
- 3.54. CUpti_ActivityPreemption
- 3.55. CUpti_ActivitySharedAccess
- 3.56. CUpti_ActivitySourceLocator
- 3.57. CUpti_ActivityStream
- 3.58. CUpti_ActivitySynchronization
- 3.59. CUpti_ActivityUnifiedMemoryCounter
- 3.60. CUpti_ActivityUnifiedMemoryCounter2
- 3.61. CUpti_ActivityUnifiedMemoryCounterConfig
- 3.62. CUpti_CallbackData
- 3.63. CUpti_EventGroupSet
- 3.64. CUpti_EventGroupSets
- 3.65. CUpti_MetricValue
- 3.66. CUpti_ModuleResourceData
- 3.67. CUpti_NvtxData
- 3.68. CUpti_ResourceData
- 3.69. CUpti_SynchronizeData
- 4. Data Fields
- 5. Limitations
- 6. Changelog
- Notices