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 ...
随机推荐
- 【错误总结】Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.
大致意思是因为模板里面应该包含一个根元素,使用组件的时候应该用div或p标签包起来
- Centos 更改语言设置为中文
说明 自己装系统时一般都可以自定义选择系统语言.可是云端服务器一般都是安装好的镜像,默认系统语言为英文,对于初学者可能还会有搞不懂的计算机词汇.这里简单说一下centos7怎么修改系统语言为中文. 修 ...
- HIVE基本原理和基础
读时模式:HIVE加载数据时不校验,查询数据时才校验,与数据库相反
- EXCEL设置三级下拉框
EXCEL设置三级下拉框 1.添加下拉框数据源 公式--->指定 公式--->名称管理器 2.设置第一级下拉框的值 3.第一级下拉框选出一个值 4.设置第二级下拉框(INDIRECT($A ...
- delphi与javascript互通
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- (转)OpenFire源码学习之二:Mina基础知识
转:http://blog.csdn.net/huwenfeng_2011/article/details/43413009 Mina概述 Apache MINA(Multipurpose Infra ...
- 2018ACM-ICPC EC-Final 现场赛I题 Misunderstanding...Missing 倒着DP
目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog @ Problem: 很多acm群里有题面PDF了,我就不赘述了.简单说一 ...
- Zend Studio出现 Some characters cannot be mapped using "GBK" character encoding 错误
解决办法: Window->Profermance->General->Content Types->Text看目录下面的每个文件,包括子目录里面 Default encodi ...
- Java-Class-@I:java.annotation.Resource
ylbtech-Java-Class-@I:java.annotation.Resource 1.返回顶部 2.返回顶部 1.1. import javax.annotation.Resource ...
- Openstack组件部署 — Networking service_Compute Node
目录 目录 前文列表 安装组件 配置通用组件 配置自服务网络选项 配置Linux 桥接代理 配置Nova使用网络 完成安装 验证操作Execute following commands on Cont ...