|
两个命令都可以试试,没影响。
cudnn版本在8.0以前
- cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
复制代码 cudnn版本在8.0以前,这个命令会输出。
但是8.0版本后就没有输出,需要用下面的命令。
cudnn版本在8.0以后
在8.0版本之后用上面的命令就没有输出了。
因为这个头文件内容变了。
用下面的命令可以看到- cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
复制代码 输出- #define CUDNN_MAJOR 8
- #define CUDNN_MINOR 0
- #define CUDNN_PATCHLEVEL 5
- --
- #define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
复制代码 cudnn版本为8.0.5
发现原本命令无法使用,debug过程
- cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
复制代码 没有输出,但是并没有提示文件不存在。说明文件在,但grep没有输出。
即在文件中没有找到CUDNN_MAJOR这个字符串。
使用cat 单独打开文件看看- #if !defined(CUDNN_H_)
- #define CUDNN_H_
- #include <cuda_runtime.h>
- #include <stdint.h>
- #include "cudnn_version.h"
- #include "cudnn_ops_infer.h"
- #include "cudnn_ops_train.h"
- #include "cudnn_adv_infer.h"
- #include "cudnn_adv_train.h"
- #include "cudnn_cnn_infer.h"
- #include "cudnn_cnn_train.h"
- #include "cudnn_backend.h"
- #if defined(__cplusplus)
- extern "C" {
- #endif
- #if defined(__cplusplus)
- }
- #endif
- #endif /* CUDNN_H_ */
复制代码 注意到文件中 有 #include “cudnn_version.h”,这应该是cudnn 的version文件。
并且应该是同一个文件夹下。
去这个文件中查找CUDNN_MAJOR试试。- cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
复制代码 有版本输出,大胆猜测是cudnn8.0开始做了修改。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
来源:https://www.jb51.net/server/323216dgy.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|