【已解决】兼容多个版本CUDA

目录

0背景

1 下载对应版本的软件

2 安装

2.1 安装CUDA v9                2.2 测试            2.3 CUDNN略

3 踩坑记录

消失的第一个文件

安装过程中遇到闪屏、黑屏等问题的处理方法(未测试,仅供参考)

4 参考


0背景

之前安装了CUDA8+CUDNN6,现在又想装一个CUDA9

(参考了一些网上教程,好像先装CUDA8,再装CUDA9,否则会冲突,但是未测试,仅供参考)

1 下载对应版本的软件

不同版本的TF-GPU对CUDA+CUDNN的要求在上一文有指出,跳转博文【软件安装】根据Tensorflow-GPU安装CUDA+CUDNN

如何在官网下载也在上一文讲过了,略过

CUDA 官网下载

CUDNN 官网下载(要注册登录)

2 安装

2.1 安装CUDA v9

要注意选择自定义安装,把安装位置和其他版本的CUDA区分开来,否则会覆盖安装(未亲自测试是否会覆盖安装,下次试试)。

为了方便,把所有CUDA相关文件放到一起

记住最后一个路径,后面配置要用

2.2 测试

安装成功,测试一下

确实显示了刚刚安装的 V9.2 

为什么没有配置环境变量就变成9.2版本了,之前的版本会不会不能用了?

因为CUDA已经自动做好了环境变量配置,博主运行了之前的CUDA v8.0,正常可以运行√

2.3 CUDNN略

CUDNN 的安装也很方便,解压压缩包,把文件都放到CUDA development目录下(最后有一个配置文件路径)的对应文件中。

不会的指路【软件安装】根据Tensorflow-GPU安装CUDA+CUDNN

3 踩坑记录

消失的第一个文件

按照我自己的步骤,在v9.2下应该有三个文件夹:CUDA、NVIDIA GPU Computing Toolkit、CUDA Samples

但是安装完打开只有两个

这是正常的,另一个文件在安装完后会自动消失

4 参考

win10下安装多个cuda(cuda9.0和10.0),并自由切换版本

——感觉有点不靠谱

说是要配置path路径,哪个版本在上面,系统默认使用哪个版本的CUDA。但是测试后发现,并不需要配置path,不用切换,可以正常使用8/9。

深度学习配置CUDA8.0/9.0及对应版本cuDNN安装

安装过程中遇到闪屏、黑屏等问题的处理方法(未测试,仅供参考)

有的电脑会在安装过程中闪动,之后安装直接成功。直接安装成功可以直接跳到验证阶段。

有的电脑,比如说笔者的电脑,会黑屏,然后再无响应

长按机箱关机键关机,重启电脑,再次运行安装程序,即CUDA安装再来一遍,此后安装成功,也不会黑屏。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
目目目 录录录 目录 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · i 第一章 导论 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1 1.1 从图形处理到通用并行计算 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1 1.2 CUDATM :一种通用并行计算架构 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 3 1.3 一种可扩展的编程模型· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 3 1.4 文档结构 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 4 第二章 编程模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 7 2.1 内核· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 7 2.2 线程层次 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 8 2.3 存储器层次 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 11 2.4 异构编程 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 11 2.5 计算能力 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 11 第三章 编程接口 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 15 3.1 用nvcc编译 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 15 3.1.1 编译流程 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 16 3.1.1.1 离线编译 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 16 3.1.1.2 即时编译 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 16 3.1.2 二进制兼容性· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 17 3.1.3 PTX兼容性· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 17 3.1.4 应用兼容性 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 18 3.1.5 C/C++兼容性· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 19 3.1.6 64位兼容性 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 19 3.2 CUDA C运行时· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 19 ii CUDA编程指南5.0中文版 3.2.1 初始化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 20 3.2.2 设备存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 20 3.2.3 共享存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 24 3.2.4 分页锁定主机存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 32 3.2.4.1 可分享存储器(portable memory) · · · · · · · · · · · · · · · · 34 3.2.4.2 写结合存储器· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 34 3.2.4.3 被映射存储器· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 34 3.2.5 异步并发执行· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 35 3.2.5.1 主机和设备间异步执行· · · · · · · · · · · · · · · · · · · · · · · · · · 35 3.2.5.2 数据传输和内核执行重叠 · · · · · · · · · · · · · · · · · · · · · · · 36 3.2.5.3 并发内核执行· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 36 3.2.5.4 并发数据传输· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 36 3.2.5.5 流 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 37 3.2.5.6 事件· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 41 3.2.5.7 同步调用 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 42 3.2.6 多设备系统 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 42 3.2.6.1 枚举设备 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 42 3.2.6.2 设备指定 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 42 3.2.6.3 流和事件行为· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 43 3.2.6.4 p2p存储器访问 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 44 3.2.6.5 p2p存储器复制 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 45 3.2.6.6 统一虚拟地址空间 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 45 3.2.6.7 错误检查 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 46 3.2.7 调用栈 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 47 3.2.8 纹理和表面存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 47 3.2.8.1 纹理存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 47 3.2.8.2 表面存储器(surface) · · · · · · · · · · · · · · · · · · · · · · · · · · · · 60 3.2.8.3 CUDA 数组 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 65 目录 iii 3.2.8.4 读写一致性 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 66 3.2.9 图形学互操作性 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 66 3.2.9.1 OpenGL互操作性 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 67 3.2.9.2 Direct3D互操作性 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 70 3.2.9.3 SLI(速力)互操作性· · · · · · · · · · · · · · · · · · · · · · · · · · · 82 3.3 版本兼容性· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 82 3.4 计算模式 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 83 3.5 模式切换 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 84 3.6 Windows上的Tesla计算集群模式 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 85 第四章 硬件实现 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 87 4.1 SIMT 架构 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 87 4.2 硬件多线程 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 88 第五章 性能指南 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 91 5.1 总体性能优化策略 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 91 5.2 最大化利用率· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 91 5.2.1 应用层次 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 91 5.2.2 设备层次 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 92 5.2.3 多处理器层次· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 92 5.3 最大化存储器吞吐量 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 94 5.3.1 主机和设备的数据传输· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 95 5.3.2 设备存储器访问 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 96 5.3.2.1 全局存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 96 5.3.2.2 本地存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 98 5.3.2.3 共享存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 99 5.3.2.4 常量存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 100 5.3.2.5 纹理和表面存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 100 5.4 最大化指令吞吐量 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 100 iv CUDA编程指南5.0中文版 5.4.1 算术指令 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 101 5.4.2 控制流指令 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 104 5.4.3 同步指令 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 105 附录 A 支持CUDA的GPU · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 107 附录 B C语言扩展 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 109 B.1 函数类型限定符 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 109 B.1.1 device · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 109 B.1.2 global · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 109 B.1.3 host · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 109 B.1.4 noinline 和 forceinline · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 110 B.2 变量类型限定符 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 110 B.2.1 device · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 111 B.2.2 constant · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 111 B.2.3 shared · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 112 B.2.4 restrict · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 113 B.3 内置变量类型· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 115 B.3.1 char1、uchar1、char2、uchar2、char3、uchar3、char4、 uchar4、short1、ushort1、short2、ushort2、short3、ushort3、 short4、ushort4、int1、uint1、int2、uint2、int3、uint3、 int4、uint4、long1、ulong1、long2、ulong2、long3、ulong3、 long4、ulong4、float1、float2、float3、float4、double2 · · · 115 B.3.2 dim3类型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 115 B.4 内置变量 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 115 B.4.1 gridDim · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 115 B.4.2 blockIdx · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 115 B.4.3 blockDim · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 117 B.4.4 threadIdx · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 117 B.4.5 warpSize · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 117 目录 v B.5 存储器栅栏函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 117 B.6 同步函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 119 B.7 数学函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 120 B.8 纹理函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 120 B.8.1 纹理对象函数· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 120 B.8.1.1 tex1Dfetch() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 120 B.8.1.2 tex1D()· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 121 B.8.1.3 tex2D()· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 121 B.8.1.4 tex3D()· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 121 B.8.1.5 tex1DLayered() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 121 B.8.1.6 tex2DLayered() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 122 B.8.1.7 texCubemap() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 122 B.8.1.8 texCubemapLayered()· · · · · · · · · · · · · · · · · · · · · · · · · · · 122 B.8.1.9 tex2Dgather() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 123 B.8.2 纹理参考函数· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 123 B.8.2.1 tex1Dfetch() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 123 B.8.2.2 tex1D()· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 124 B.8.2.3 tex2D()· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 124 B.8.2.4 tex3D()· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 125 B.8.2.5 tex1DLayered() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 125 B.8.2.6 tex2DLayered() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 125 B.8.2.7 texCubemap() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 125 B.8.2.8 texCubemapLayered()· · · · · · · · · · · · · · · · · · · · · · · · · · · 126 B.8.2.9 tex2Dgather() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 126 B.9 表面函数(surface)· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 126 B.9.1 表面对象函数· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 127 B.9.1.1 surf1Dread() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 127 B.9.1.2 surf1Dwrite() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 127 vi CUDA编程指南5.0中文版 B.9.1.3 surf2Dread() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 127 B.9.1.4 surf2Dwrite() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 128 B.9.1.5 surf3Dread() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 128 B.9.1.6 surf3Dwrite() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 128 B.9.1.7 surf1DLayeredread() · · · · · · · · · · · · · · · · · · · · · · · · · · · · 129 B.9.1.8 surf1DLayeredwrite() · · · · · · · · · · · · · · · · · · · · · · · · · · · 129 B.9.1.9 surf2DLayeredread() · · · · · · · · · · · · · · · · · · · · · · · · · · · · 129 B.9.1.10 surf2DLayeredwrite() · · · · · · · · · · · · · · · · · · · · · · · · · · · 130 B.9.1.11 surfCubemapread() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 130 B.9.1.12 surfCubemapwrite()· · · · · · · · · · · · · · · · · · · · · · · · · · · · · 131 B.9.1.13 surfCubemapLayeredread() · · · · · · · · · · · · · · · · · · · · · · 131 B.9.1.14 surfCubemapLayeredwrite() · · · · · · · · · · · · · · · · · · · · · 131 B.9.2 表面引用API · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 132 B.9.2.1 surf1Dread() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 132 B.9.2.2 surf1Dwrite() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 132 B.9.2.3 surf2Dread() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 132 B.9.2.4 surf2Dwrite() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 133 B.9.2.5 surf3Dread() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 133 B.9.2.6 surf3Dwrite() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 133 B.9.2.7 surf1DLayeredread() · · · · · · · · · · · · · · · · · · · · · · · · · · · · 134 B.9.2.8 surf1DLayeredwrite() · · · · · · · · · · · · · · · · · · · · · · · · · · · 134 B.9.2.9 surf2DLayeredread() · · · · · · · · · · · · · · · · · · · · · · · · · · · · 135 B.9.2.10 surf2DLayeredwrite() · · · · · · · · · · · · · · · · · · · · · · · · · · · 135 B.9.2.11 surfCubemapread() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 135 B.9.2.12 surfCubemapwrite()· · · · · · · · · · · · · · · · · · · · · · · · · · · · · 136 B.9.2.13 surfCubemapLayeredread() · · · · · · · · · · · · · · · · · · · · · · 136 B.9.2.14 surfCubemapLayeredwrite() · · · · · · · · · · · · · · · · · · · · · 137 B.10 时间函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 137 目录 vii B.11 原子函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 137 B.11.1 数学函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 138 B.11.1.1 atomicAdd() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 138 B.11.1.2 atomicSub() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 139 B.11.1.3 atomicExch() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 139 B.11.1.4 atomicMin() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 140 B.11.1.5 atomicMax()· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 140 B.11.1.6 atomicInc() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 140 B.11.1.7 atomicDec() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 141 B.11.1.8 atomicCAS() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 141 B.11.2 位逻辑函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 141 B.11.2.1 atomicAnd() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 141 B.11.2.2 atomicOr() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 142 B.11.2.3 atomicXor() · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 142 B.12 束表决(warp vote)函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 142 B.13 束洗牌函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 143 B.13.1 概览 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 143 B.13.2 在束内广播一个值 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 144 B.13.3 计算8个线程的前缀和· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 145 B.13.4 束内求和 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 146 B.14 取样计数器函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 146 B.15 断言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 147 B.16 格式化输出 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 148 B.16.1 格式化符号 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 149 B.16.2 限制 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 149 B.16.3 相关的主机端API · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 150 B.16.4 例程 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 151 B.17 动态全局存储器分配 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 152 viii CUDA编程指南5.0中文版 B.17.1 堆存储器分配 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 153 B.17.2 与设备存储器API的互操作 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 154 B.17.3 例程 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 154 B.17.3.1 每个线程的分配 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 154 B.17.3.2 每个线程块的分配 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 155 B.17.3.3 在内核启动之间持久的分配 · · · · · · · · · · · · · · · · · · · · · 156 B.18 执行配置 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 159 B.19 启动绑定 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 160 B.20 #pragma unroll · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 162 B.21 SIMD 视频指令 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 163 附录 C 数学函数· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 165 C.1 标准函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 165 C.1.1 单精度浮点函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 165 C.1.2 双精度浮点函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 168 C.2 内置函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 171 C.2.1 单精度浮点函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 172 C.2.2 双精度浮点函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 172 附录 D C++语言支持· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 175 D.1 代码例子 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 175 D.1.1 数据类 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 175 D.1.2 派生类 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 176 D.1.3 类模板 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 177 D.1.4 函数模板 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 178 D.1.5 函子类 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 178 D.2 限制· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 180 D.2.1 预处理符号 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 180 D.2.2 限定符 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 180 目录 ix D.2.2.1 设备存储器限定符 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 180 D.2.2.2 Volatile限定符 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 182 D.2.3 指针· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 182 D.2.4 运算符 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 183 D.2.4.1 赋值运算符 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 183 D.2.4.2 地址运算符 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 183 D.2.5 函数· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 183 D.2.5.1 编译器生成的函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 183 D.2.5.2 函数参数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 184 D.2.5.3 函数内静态变量 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 184 D.2.5.4 函数指针 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 184 D.2.5.5 函数递归 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 185 D.2.6 类 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 185 D.2.6.1 数据成员 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 185 D.2.6.2 函数成员 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 185 D.2.6.3 虚函数 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 185 D.2.6.4 虚基类 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 185 D.2.6.5 Windows相关 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 185 D.2.7 模板· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 186 附录 E 纹理获取· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 187 E.1 最近点取样 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 187 E.2 线性滤波 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 187 E.3 查找表 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 189 附录 F 计算能力 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 191 F.1 特性和技术规范 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 191 F.2 浮点标准 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 195 F.3 计算能力1.x · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 198 x CUDA编程指南5.0中文版 F.3.1 架构· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 198 F.3.2 全局存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 199 F.3.2.1 计算能力1.0和1.1的设备 · · · · · · · · · · · · · · · · · · · · · · · · 199 F.3.2.2 计算能力1.2和1.3的设备 · · · · · · · · · · · · · · · · · · · · · · · · 199 F.3.3 共享存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 201 F.3.3.1 32位步长访问· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 201 F.3.3.2 32位广播访问· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 202 F.3.3.3 8位和16位访问 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 205 F.3.3.4 大于32位访问· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 205 F.4 计算能力2.x · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 206 F.4.1 架构· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 206 F.4.2 全局存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 208 F.4.3 共享存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 209 F.4.3.1 32位步长访问· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 209 F.4.3.2 大于32位访问· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 210 F.4.4 常量存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 211 F.5 计算能力3.x · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 211 F.5.1 架构· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 211 F.5.2 全局存储器访问 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 212 F.5.3 共享存储器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 213 F.5.3.1 64位模式 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 213 F.5.3.2 32位模式 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 213 附录 G 驱动API · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 215 G.1 上下文 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 218 G.2 模块· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 219 G.3 内核执行 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 220 G.4 运行时API和驱动API的互操作性 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 222 G.5 注意· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 223 表表表 格格格 5.1 原生算术指令吞吐量/每时钟每流多处
要Ubuntu上安装多个版本CUDA,您可以按照以下步骤进行操作: 1. 首先,确保您的系统上已经安装了适当的NVIDIA驱动程序。您可以使用以下命令来检查已安装的驱动程序版本: ``` nvidia-smi ``` 2. 接下来,您需要下载所需版本CUDA。您可以从NVIDIA官方网站下载CUDA Toolkit的.deb文件。请确保您选择的版本与您计划使用的其他CUDA版本兼容。 3. 安装下载的.deb文件。打开终端,导航到.deb文件所在目录,并使用以下命令进行安装: ``` sudo dpkg -i cuda-toolkit-version.deb ``` 请将 "cuda-toolkit-version" 替换为您下载的CUDA Toolkit的版本号。 4. 安装完成后,您需要配置环境变量。打开终端,编辑 `/etc/environment` 文件: ``` sudo nano /etc/environment ``` 5. 在文件末尾添加以下行(每行一个): ``` export PATH=/usr/local/cuda-X.X/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-X.X/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} ``` 将 "X.X" 替换为您安装的CUDA版本的主要版本号。如果您已经在环境变量中设置了PATH或LD_LIBRARY_PATH,请相应地修改这些行。 6. 保存并关闭文件后,重新加载环境变量: ``` source /etc/environment ``` 7. 现在,您应该能够在系统上同时使用多个版本CUDA了。您可以使用以下命令来检查CUDA版本: ``` nvcc --version ``` 这将显示当前正在使用的CUDA版本。 请注意,安装多个版本CUDA可能会导致一些冲突和配置问题。在进行安装之前,请确保您了解您的系统要求和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值