cuDNN API 演化 (二)—— Deprecation 策略
2016-04-28 15:39
225 查看
本博客第一篇介绍了 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 中,它的名字如下
cudnnSetConvolutionNdDescriptor
v3 中,它的接口发生变化,导致有如下两个版本
cudnnSetConvolutionNdDescriptor,对应 v2 中旧的版本
cudnnSetConvolutionNdDescriptor_v3,对应 v3 中新的版本
v4 中,有如下三个版本
cudnnSetConvolutionNdDescriptor_v2,对应 v2 中旧的版本
cudnnSetConvolutionNdDescriptor_v3,对应 v3 中新的版本
cudnnSetConvolutionNdDescriptor,对应 v3 中新的版本
v5 中, Deprecation 起作用,只保留一个不带任何后缀修饰的版本
cudnnSetConvolutionNdDescriptor,对应 v3 中新的版本
按照 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 中,它的名字如下
cudnnSetConvolutionNdDescriptor
v3 中,它的接口发生变化,导致有如下两个版本
cudnnSetConvolutionNdDescriptor,对应 v2 中旧的版本
cudnnSetConvolutionNdDescriptor_v3,对应 v3 中新的版本
v4 中,有如下三个版本
cudnnSetConvolutionNdDescriptor_v2,对应 v2 中旧的版本
cudnnSetConvolutionNdDescriptor_v3,对应 v3 中新的版本
cudnnSetConvolutionNdDescriptor,对应 v3 中新的版本
v5 中, Deprecation 起作用,只保留一个不带任何后缀修饰的版本
cudnnSetConvolutionNdDescriptor,对应 v3 中新的版本
相关文章推荐
- java操作sqlserver
- C#设置当前程序通过IE代理服务器上网
- Python 文件I/O
- 欢迎使用CSDN-markdown编辑器
- Linux 下设置Mysql远程连接
- 轻量级图形报表工具JSCharts中文开发文档
- MVPC架构项目
- onclick和onblur冲突问题的快速解决方法
- HDU 1215 七夕节
- 实时推荐系统简要概述
- Deep learning学习笔记(1):CNN的反向求导及练习
- javascript入门篇之对象与数组
- 实现数据权限控制的一种方法
- JS实现跟随
- 自己动手写数据库(二)表的结构
- Linux常用指令
- ASP.NET MVC 路由调试工具Router Debugger
- RxJava学习(九)
- matlab 可视化(specifier)
- Metal 着色语言编程指南 十三