Hi All,
I am currently trying to profile an application on my TX2, but I am having problems with CPU profiling. Specifically, I run the following command:
nvprof --analysis-metrics --cpu-profiling on --cpu-thread-tracing on -o profile.nvvp ./program
Which gives the following warnings:
======== Warning: Metric "dram_write_throughput" cannot be found on device 0.
======== Warning: Metric "dram_read_throughput" cannot be found on device 0.
======== Warning: Metric "l1_shared_utilization" cannot be found on device 0.
======== Warning: Metric "sysmem_utilization" cannot be found on device 0.
======== Warning: Metric "dram_write_transactions" cannot be found on device 0.
======== Warning: Metric "dram_read_transactions" cannot be found on device 0.
======== Warning: Metric "alu_fu_utilization" cannot be found on device 0.
======== Warning: Metric "ecc_throughput" cannot be found on device 0.
======== Warning: Metric "ecc_transactions" cannot be found on device 0.
======== Warning: Metric "l2_l1_read_transactions" cannot be found on device 0.
======== Warning: Metric "l2_l1_write_transactions" cannot be found on device 0.
======== Warning: Metric "nc_l2_read_transactions" cannot be found on device 0.
======== Warning: Metric "l2_l1_read_throughput" cannot be found on device 0.
======== Warning: Metric "l2_l1_write_throughput" cannot be found on device 0.
======== Warning: Metric "nc_l2_read_throughput" cannot be found on device 0.
======== Warning: Metric "atomic_throughput" cannot be found on device 0.
======== Warning: CPU Profiling is not supported on the underlying platform.
The program is able to execute in its entirety, and I am able to load the nvvp file in the Nvidia Visual Profiler, but I do not see any information given in the CPU Details section of the tool. This result would make sense if CPU profiling truly isn’t supported on the TX2 as the last warning suggests.
With that being said, my question is this: Is CPU Profiling really not supported on the TX2, or is there a problem with my setup that is preventing me from profiling the CPU?
Setup Details (deviceQuery output)
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "NVIDIA Tegra X2"
CUDA Driver Version / Runtime Version 8.0 / 8.0
CUDA Capability Major/Minor version number: 6.2
Total amount of global memory: 7851 MBytes (8232062976 bytes)
( 2) Multiprocessors, (128) CUDA Cores/MP: 256 CUDA Cores
GPU Max Clock rate: 1301 MHz (1.30 GHz)
Memory Clock rate: 1600 Mhz
Memory Bus Width: 128-bit
L2 Cache Size: 524288 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 32768
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 1 copy engine(s)
Run time limit on kernels: No
Integrated GPU sharing Host Memory: Yes
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 0 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = NVIDIA Tegra X2
Result = PASS