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'两者之一,会抛出异常。
返回: 无
代码示例
- import paddle.fluid as fluid
- import paddle.fluid.profiler as profiler
- import numpy as np
- epoc = 8
- dshape = [4, 3, 28, 28]
- data = fluid.layers.data(name='data', shape=[3, 28, 28], dtype='float32')
- conv = fluid.layers.conv2d(data, 20, 3, stride=[1, 1], padding=[1, 1])
- place = fluid.CUDAPlace(0)
- exe = fluid.Executor(place)
- exe.run(fluid.default_startup_program())
- output_file = 'cuda_profiler.txt'
- with profiler.cuda_profiler(output_file, 'csv') as nvprof:
- for i in range(epoc):
- input = np.random.random(dshape).astype('float32')
- exe.run(fluid.default_main_program(), feed={'data': input})
- # 之后可以使用 NVIDIA Visual Profile 可视化结果