cuda_profiler

  • paddle.fluid.profiler.cuda_profiler(output_file, output_mode=None, config=None)[源代码]

CUDA性能分析器。该分析器通过调用CUDA运行时编程接口,对CUDA程序进行性能分析,并将分析结果写入输出文件output_file。输出格式由output_mode参数控制,性能分析配置选项由config参数控制。得到输出文件后,用户可使用 NVIDIA Visual Profiler 工具来加载这个输出文件以获得可视化结果。

  • 参数:
    • output_file (str) – 输出文件名称, 输出结果将会写入该文件。
    • output_mode (str,可选) – 输出格式,有两种可以选择,分别是 key-value 键值对格式'kvp' 和 逗号分割的格式'csv'(默认格式)。
    • config (list, 可选) – NVIDIA性能分析配置列表,默认值为None时会选择以下配置:['gpustarttimestamp', 'gpuendtimestamp', 'gridsize3d', 'threadblocksize', 'streamid', 'enableonstart 0', 'conckerneltrace']。上述每个配置的含义和更多配置选项,请参考 Compute Command Line Profiler User Guide
  • 抛出异常:
    • ValueError - 如果输出格式output_mode不是'kvp'、'csv'两者之一,会抛出异常。

返回: 无

代码示例

  1. import paddle.fluid as fluid
  2. import paddle.fluid.profiler as profiler
  3. import numpy as np
  4.  
  5. epoc = 8
  6. dshape = [4, 3, 28, 28]
  7. data = fluid.layers.data(name='data', shape=[3, 28, 28], dtype='float32')
  8. conv = fluid.layers.conv2d(data, 20, 3, stride=[1, 1], padding=[1, 1])
  9.  
  10. place = fluid.CUDAPlace(0)
  11. exe = fluid.Executor(place)
  12. exe.run(fluid.default_startup_program())
  13.  
  14. output_file = 'cuda_profiler.txt'
  15. with profiler.cuda_profiler(output_file, 'csv') as nvprof:
  16. for i in range(epoc):
  17. input = np.random.random(dshape).astype('float32')
  18. exe.run(fluid.default_main_program(), feed={'data': input})
  19.  
  20. # 之后可以使用 NVIDIA Visual Profile 可视化结果