예, 그것의 가능한 : 내가 무엇을보고하고하는 것은 nprof
는 지금은 실행할 때. 알고 있지 않은 경우에는 documentation과 명령 줄 도움말 (nvprof --help
)이 있습니다.
당신이 nvprof의 간단한 사용으로 제공을 요청하고 있습니다 :
./my_application
(무엇보다도)이 출력됩니다 이름으로 커널의 목록, 얼마나 많은 시간을 각 nvprof 하나는 출시되었고, 전체 GPU 사용량 중 차지하는 비율은 각각 어느 정도였습니다.
위의 예
run_on_device
에서
$ nvprof ./t1288
==12904== NVPROF is profiling process 12904, command: ./t1288
[email protected]: 0x402add
[email protected]: 0x8
run on device
func_A is correctly invoked!
run on host
func_A is correctly invoked!
==12904== Profiling application: ./t1288
==12904== Profiling result:
Time(%) Time Calls Avg Min Max Name
98.93% 195.28us 1 195.28us 195.28us 195.28us run_on_device(Parameters*)
1.07% 2.1120us 1 2.1120us 2.1120us 2.1120us assign_func_pointer(Parameters*)
==12904== Unified Memory profiling result:
Device "Tesla K20Xm (0)"
Count Avg Size Min Size Max Size Total Size Total Time Name
1 4.0000KB 4.0000KB 4.0000KB 4.000000KB 3.136000us Host To Device
6 32.000KB 4.0000KB 60.000KB 192.0000KB 34.20800us Device To Host
Total CPU Page faults: 3
==12904== API calls:
Time(%) Time Calls Avg Min Max Name
98.08% 321.35ms 1 321.35ms 321.35ms 321.35ms cudaMallocManaged
0.93% 3.0613ms 364 8.4100us 278ns 286.84us cuDeviceGetAttribute
0.42% 1.3626ms 4 340.65us 331.12us 355.60us cuDeviceTotalMem
0.38% 1.2391ms 2 619.57us 113.13us 1.1260ms cudaLaunch
0.08% 251.20us 4 62.798us 57.985us 70.827us cuDeviceGetName
0.08% 246.55us 2 123.27us 21.343us 225.20us cudaDeviceSynchronize
0.03% 98.950us 1 98.950us 98.950us 98.950us cudaFree
0.00% 8.9820us 12 748ns 278ns 2.2670us cuDeviceGet
0.00% 6.0260us 2 3.0130us 613ns 5.4130us cudaSetupArgument
0.00% 5.7190us 3 1.9060us 490ns 4.1130us cuDeviceGetCount
0.00% 5.2370us 2 2.6180us 1.2100us 4.0270us cudaConfigureCall
$
및 assign_func_pointer
커널 이름은 다음과 같습니다
다음은 예입니다. 또한 링크 된 문서에 예제 출력이 있습니다.
nprof를 실행할 때 나타나는 문제로이 질문을 업데이트했습니다. 나는 커널이라고 불리는 것을 아무것도 보지 못했다. –
두 가지 가능성을 생각해 볼 수 있습니다. 1. 파이썬 코드가 커널 호출을하지 못하고 있습니다. 적절한 오류 검사를 수행하고 있습니까? 커널이 호출되고 있다는 것을 알고 있습니까? 2. nvprof에 하위 프로세스를 프로파일 링하도록 지시해야 할 수도 있습니다.이를 수행하는 방법은 제가 링크 된 문서에서 다룹니다. 이것은 당신이'tf.py'에서 아마도 정확히 어떤 종류의 작업을하는지에 달려 있습니다 - 아마도 tensorflow. –
알았어, 커널이 호출되지 않았 음이 밝혀졌습니다. –