59 cuda 不同版本__half冲突问题 —— "__half" has no member "x"
0 引言
深度学习中常常用到half类型的半精度浮点数,但是cpu本身是不支持half的,因此需要进行转换。
1 half - float转换
参考了某博主的github,链接如下。
https://github.com/ma-xiaodong/float_half_convertion/blob/master/convert.c
2 half使用中的冲突解决
(1)冲突描述

提示 "__half" has no member "x". 问题是之前我运行 "./compile"对代码进行编译一直是可以通过的呀,我怀疑是不是有人更改过环境变量,所以编译器链接了其他文件中的 __half类,导致我的程序出错。
(2)定位错误:我到程序中寻找包含__half的头文件,有这样一些

我首先去cuda里找了一波,发现 "cuda_fp16.h" 里边可能定义了half,然后用 locate cuda_fp16.h 找到了如下结果。

有条命令可以直接打开目录很好用。
nautilus /usr/local/cuda-9.0/targets/x86_64-linux/include/cuda_fp16.h
然后我去目录下看了这两个文件里边对__half的定义,发现在cuda8.0里边,有成员x,而在cuda9.0里边,成员为__x,而且是私有成员,这样问题就很清楚了,是版本冲突。解决的办法是将cuda的软链接指向cuda8.0, 命令如下。
cd /usr/local # 目录切换到系统安装cuda的目录下
stat cuda # 查看软链接指向哪个版本的cuda
sudo rm -rf cuda # 删除该软链接
sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda # 重新指向cuda8.
stat cuda # 查看软链接是否修改成功
(3)查看结果

成功解决cuda版本冲突问题。
59 cuda 不同版本__half冲突问题 —— "__half" has no member "x"的更多相关文章
- 处理jquery版本之间冲突
处理jquery版本之间冲突 前端开发们都知道jquery版本有好多,之间冲突很纠结.比如我刚来这公司的时候,后端的哥们用的是jQuery 1.3.2,我了个去,那哥们好久没更新了.我写的效果插件都是 ...
- 关于CUDA,cuDNN,TF,CUDA驱动版本兼容问题
实际工作当中,经常维护好几个项目的代码,不同项目依赖的TF版本不一致问题.网上找了好多资料,但是每次遇到的问题都不一样,每次都要去查(就是是一样的问题,解决办法也可能会不一样)每次踩坑无数,今天痛定思 ...
- CUDA各版本官方下载地址
一.CUDA各版本官方下载地址 地址:https://developer.nvidia.com/cuda-toolkit-archive 二.说明 备忘,平时找个版本太难找了.
- CUDA中Bank conflict冲突
转自:http://blog.csdn.net/smsmn/article/details/6336060 其实这两天一直不知道什么叫bank conflict冲突,这两天因为要看那个矩阵转置优化的问 ...
- svn版本提交冲突问题解决详解
svn冲突文件解决方法 工具/原料 svn客户端 方法/步骤 1 通过SVN客户端更新需要的文件,如果出现有感叹号的文件,找到出现感叹号的文件. 2 选择感叹号文件,即冲突文件,单击鼠标右 ...
- 查看 CUDA cudnn 版本
cuda 版本 cat /usr/local/cuda/version.txt cudnn 版本 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MA ...
- 解决spring-boot 各版本包冲突兼容的方法
思路 在微服务盛行的当下,spring boot 流行程度已经家喻户晓.但同时,随着spring boot 快速迭代,出现了很多版本,比如当前已经推出了2.2.x-SNAPSHOT/ , ...
- 【并行计算-CUDA开发】CUDA shared memory bank 冲突
CUDA SHARED MEMORY shared memory在之前的博文有些介绍,这部分会专门讲解其内容.在global Memory部分,数据对齐和连续是很重要的话题,当使用L1的时候,对齐问题 ...
- CUDA, CUDNN 版本查询
CUDA 查询: cat /usr/local/cuda/version.txt 或者 nvcc -V (也可以看到版本信息) CUDNN 查询 cat /usr/local/cuda/include ...
随机推荐
- PHP-移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...
- 初撩Django-RESTful-rest_framework视图函数
rest_framework中的视图函数: View函数 APIView函数 APIView的子类 mixins函数 viewsets函数 1.View函数 2.APIView函数 3.APIView ...
- Allowance
Allowance 有n种数字,第i种数字值为\(v_i\),有\(b_i\)个,保证随i的增大而增大,且对于任意i有\(a_{i-1}|a_i\)(显然,\(i\in(1,n]\)),现求将它们划分 ...
- rabbitmq使用延迟时报异常
声明交换机为延迟时报异常( unknown exchange type 'x-delayed-message')的解决方法 服务端需下载安装插件: 1.下载插件包 2.将下载后的插件包移至服务安装目录 ...
- lct 模版题 bzoj 2002 2049
很早就有人给我推荐的模版题,然后我最近才刷的(' ' ) 昨天的tree 不知道比他们高到哪里去了,我和他谈笑风生啊! bzoj 2002 弹飞绵羊 重点:这道题的cut和link 由于这道题链 ...
- Delphi 判断某个系统服务是否存在及相关状态
记得use WinSvc; //------------------------------------- // 获取某个系统服务的当前状态 // // return status code if s ...
- BZOJ 1927: [Sdoi2010]星际竞速(费用流)
传送门 解题思路 仿照最小路径覆盖问题,用费用流解决此题.最小路径覆盖问题是拆点连边后用\(n-\)最大匹配,这里的话也是将每个点拆点,源点向入点连流量为\(1\),费用为\(0\)的边,向出点连流量 ...
- base64和Xxtea的加密和解密
base64和Xxtea的加密和解密 数据加密是web数据安全的一种方式,前几天拿到一个base64+xxtea加密的数据,现在在这里整理一下使用的过程.首先当然是全网站找解密方法,但是最后的结果不是 ...
- java的collection&&map集合总结
把自定义的对象放入HashSet或LinkedHashSet,为保证元素内容不重复,需要: • 覆盖hashCode( )方法,保证相同对象返回相同的值,提供调用equals( )方法的机会.• 覆盖 ...
- hive调用MapReduce之后遇到kill command之后卡住或者一直开在MapReduce之前
https://blog.csdn.net/weixin_42158422/article/details/88876943