首页 > 解决方案 > 从不推荐使用的 cudnn 函数转换为工作函数

问题描述

我需要运行一个包含已弃用的 cudnn 函数(cudnnGetConvolutionForwardAlgorithm'、cudnnGetConvolutionBackwardFilterAlgorithm'、'cudnnGetConvolutionBackwardDataAlgorithm')的存储库。我现在在 cudnn8.0 上。

我知道这些函数有工作版本:cudnnGetConvolutionForwardAlgorithm_v7、cudnnGetConvolutionBackwardFilterAlgorithm_v7 等,但它们的参数 + 返回类型发生了变化。

您对如何从不推荐使用的版本转换为工作版本有任何建议吗?

标签: functiondeprecatedcudnn

解决方案


我不会转换为 _v7 函数,因为在 CUDNN 库的未来版本中完全删除对它的支持时,您必须再次转换它。我倾向于使用 cudnnFind... 函数,其详细信息在cuDNN API Reference中。由于他们实际上测试了可能使用的算法并告诉您最快的算法,因此它们可能会给您的网络提供比启发式算法(用于 cudnnGet...)更好的性能,而启发式算法可能只会给您最快的算法。创建网络时调用 cudnnFind... 需要额外的计算成本,而不是运行它。我还没有完成测试,看看它需要多少额外的时间,但我无法想象它有什么明显的。


推荐阅读