cuDNN API 演化 (二)—— Deprecation 策略

本文详细介绍了cuDNN API的Deprecation策略,随着版本升级,cuDNN确保向后兼容两个版本。在API演化过程中,会舍弃部分带后缀的版本以保持库的简洁和维护性。例如,从v2到v5,cudnnSetConvolutionNdDescriptor的演变展示了如何逐步淘汰_v2和_v3版本,最终只保留不带后缀的最新版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本博客第一篇介绍了 cuDNN API 的演化规则。这一篇介绍它的 Deprecation 策略。

按照 cuDNN API 的演化规则,随着 cuDNN 版本的更新,同一个 API 会有越来越多带后缀的版本,会使得 cuDNN 臃肿、维护变得困难。因此,还需要 Deprecation 策略。所谓 Deprecation 策略,即演化过程中,对某些带后缀 API 舍弃的机制。

cuDNN 新版本会确保向后兼容两个版本。上篇以 cuDNN 从 v2 演化到 v4 为例,因此不涉及到 Deprecation 策略。在这一篇,进一步演化到 v5, 介绍 Deprecation 策略。

如上篇所述,从 v2 演化到 v4,某个 API cudnnMyName 在 cuDNN v4 有如下三个版本,分别为

  • _v2 修饰,即 cudnnMyName_v2, 以支持 v2 版本
  • _v3 修饰,即 cudnnMyName_v3, 以支持 v3 版本
  • 不带任何修饰,即 cudnnMyName, 功能与带 _v3 修饰的一样

那么演化到 v5 时,它们各自如何变化呢?记住,v5 版本只向后支持两个版本,即支持到 v3 。所以,该 API 三个版本有如下变化

  • 舍弃 _v2 修饰的版本
  • 由于 _v3 修饰的版本与不带修饰的版本功能相同。因此,舍弃带 _v3 修饰的版本、保留不带修饰的版本

此时,该 API 在 v5 中只有一个版本——不带任何修饰。从 v2 到 v5,该 API 的经过一系列演化,名字又变为原来的样子,但接口已经发生了变化。

最后,用 cuDNN 中一个实际的例子说明它的演化策略:cudnnSetConvolutionNdDescriptor 的演化。

v2 中,它的名字如下

  • <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值