2024年4月16日发(作者:)

CUDA执行提供程序(CUDA Execution Provider)是Microsoft的深

度学习框架ONNX Runtime中的一个重要组件,它为用户提供了在

NVIDIA GPU上高效执行深度学习模型的能力。在使用ONNX

Runtime进行深度学习模型推断时,用户可以通过调整CUDA执行提

供程序的参数来优化模型的执行性能和资源利用率。本文将详细介绍

CUDA执行提供程序的参数及其含义,帮助用户更好地了解和使用这

一功能。

一、cudaexecutionprovider的参数列表

1.1 device_id

参数含义:指定要使用的GPU设备的ID。

参数类型:整数。

默认值:0。

示例:device_id=1。

1.2 arena_extend_strategy

参数含义:指定GPU内存分配的策略。

参数类型:字符串,可选值为"kNextFibonacci"、

"kSameAsRequested"、"kReturnDefault"。

默认值:"kNextFibonacci"。

示例:arena_extend_strategy="kSameAsRequested"。

1.3 do_copy_in_default_stream

参数含义:指定是否在默认流中执行数据拷贝操作。

参数类型:布尔值,可选值为true、false。

默认值:false。

示例:do_copy_in_default_stream=true。

1.4 has_userpute_stream

参数含义:指定是否有用户自定义的计算流。

参数类型:布尔值,可选值为true、false。

默认值:false。

示例:has_userpute_stream=true。

1.5 default_exec_stream_id

参数含义:指定默认执行流的ID。

参数类型:整数。

默认值:0。

示例:default_exec_stream_id=1。

1.6 default_copy_stream_id

参数含义:指定默认数据拷贝流的ID。

参数类型:整数。

默认值:0。

示例:default_copy_stream_id=1。

1.7 cudnn_conv_algo_search

参数含义:指定cuDNN卷积算法的搜索策略。

参数类型:字符串,可选值为"EXHAUSTIVE"、"HEURISTIC"、

"DEFAULT".

默认值:"HEURISTIC"。

示例:cudnn_conv_algo_search="EXHAUSTIVE"。

1.8 cublaslt_workspace_size

参数含义:指定cuBLAS LT工作空间的大小。

参数类型:整数。

默认值:16*1024*1024。

示例:cublaslt_workspace_size=32*1024*1024。

二、参数详解

2.1 device_id

在拥有多块GPU的系统中,用户可以通过指定device_id参数来选择

要使用的GPU设备。默认值为0,表示使用第一块GPU。用户可以根

据自己的硬件环境和需求进行调整。

2.2 arena_extend_strategy

arena_extend_strategy参数用于指定GPU内存分配的策略。用户可

以根据自己的场景选择不同的策略,"kNextFibonacci"表示以斐波那

契数的方式扩展内存,"kSameAsRequested"表示保持与请求相同的

内存大小,"kReturnDefault"表示返回默认的内存大小。

2.3 do_copy_in_default_stream

do_copy_in_default_stream参数用于指定是否在默认流中执行数据

拷贝操作。当该参数为true时,数据拷贝操作将在默认流中执行,可

以加快执行速度。

2.4 has_userpute_stream

has_userpute_stream参数用于指定是否有用户自定义的计算流。用

户可以通过设置该参数为true来开启自定义的计算流,以实现更灵活

的并行计算。

2.5 default_exec_stream_id

default_exec_stream_id参数用于指定默认执行流的ID。用户可以通

过设置该参数来指定默认的执行流,以优化计算资源的利用。

2.6 default_copy_stream_id

default_copy_stream_id参数用于指定默认数据拷贝流的ID。用户可

以通过设置该参数来指定默认的数据拷贝流,以优化数据传输的效率。

2.7 cudnn_conv_algo_search

cudnn_conv_algo_search参数用于指定cuDNN卷积算法的搜索策

略。用户可以通过设置该参数来调整cuDNN卷积算法的选择策略,

以获得更好的性能。

2.8 cublaslt_workspace_size

cublaslt_workspace_size参数用于指定cuBLAS LT工作空间的大小。

用户可以通过设置该参数来调整cuBLAS LT的工作空间大小,以满足

不同大小的计算需求。

三、总结

本文介绍了CUDA执行提供程序的参数及其含义,帮助用户更好地了

解和使用这一功能。通过合理地调整参数,用户可以优化深度学习模

型在NVIDIA GPU上的执行性能和资源利用率,提升模型推断的速度

和效果。希望本文能够对用户有所帮助,欢迎大家在使用过程中多加

尝试,以发掘更多的优化空间,提升模型执行的效率和效果。