求助:CUDA兼容性如何?

fengbingchun
博客专家认证
2013-08-05 09:15:21
在官方网站看到分很多种安装包,如台式机32位,64位,笔记本32位,64位。假如在32位的台式机上编写代码通过,那么此代码不作修改,可以在比较笔记本环境上运行吗?32位和64位需要分别进行编译吗?
望高手指点,谢谢!
...全文
420 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengbingchun 2013-08-09
  • 打赏
  • 举报
回复
引用 4 楼 linxxx3 的回复:
1. CUDA确定只能在N卡上用。 2. 在计算能力低的卡上,能运行的程序,高版本的卡上,重编译肯定可以运行。直接运行二进制,我没看到哪里保证的,但是如果是同一个系列的不同显卡,比如都是GTX,大概能直接拷贝二进制用。如果不是一个系列的显卡,你只能试试看,我不知道。
谢谢!
linxxx3 2013-08-08
  • 打赏
  • 举报
回复
1. CUDA确定只能在N卡上用。 2. 在计算能力低的卡上,能运行的程序,高版本的卡上,重编译肯定可以运行。直接运行二进制,我没看到哪里保证的,但是如果是同一个系列的不同显卡,比如都是GTX,大概能直接拷贝二进制用。如果不是一个系列的显卡,你只能试试看,我不知道。
fengbingchun 2013-08-06
  • 打赏
  • 举报
回复
引用 2 楼 linxxx3 的回复:
只能说,一般的C语言程序,没有特别依赖数据宽度的代码(不能默认long是4字节之类的错误,要用sizeof),比较大的可能是可以不修改程序,移植到64位环境上。但是肯定需要重新编译。如果依赖了其他库文件,全部换成64位版本,不能拷过来用。 针对CUDA,不同显卡的“计算能力”不同,低版本的程序,移植到高版本上,只需要在编译的时候,指定按低版本的计算能力编译(sm参数),一般没有问题。即使按高版本的计算能力编译,可以试试,估计也没问题。 高版本的程序,在低版本的显卡上,可能有问题。一方面是资源的限制,比如最多能开多少线程一类的,超过会运行出错,这时需要改程序;另一方面,有些特定的指令,低版本不支持,比如原子操作,用到了不支持的指令的程序,不能在低版本显卡上跑。 具体的限制,需要查NV手册,不能保证。
非常谢谢! CUDA是不是只能在NVIDIA的GPU显卡上使用呢?可以在其它类型的GPU上使用吗?如果在低版本中编译通过,那么在高版本中直接运行执行文件或者在其它类型的计算能力相同的情况下,在安装最新驱动后,是不是直接就可以运行执行软件或者动态库什么的呢?发现NVIDIA显卡有非常多的类型。
linxxx3 2013-08-06
  • 打赏
  • 举报
回复
只能说,一般的C语言程序,没有特别依赖数据宽度的代码(不能默认long是4字节之类的错误,要用sizeof),比较大的可能是可以不修改程序,移植到64位环境上。但是肯定需要重新编译。如果依赖了其他库文件,全部换成64位版本,不能拷过来用。 针对CUDA,不同显卡的“计算能力”不同,低版本的程序,移植到高版本上,只需要在编译的时候,指定按低版本的计算能力编译(sm参数),一般没有问题。即使按高版本的计算能力编译,可以试试,估计也没问题。 高版本的程序,在低版本的显卡上,可能有问题。一方面是资源的限制,比如最多能开多少线程一类的,超过会运行出错,这时需要改程序;另一方面,有些特定的指令,低版本不支持,比如原子操作,用到了不支持的指令的程序,不能在低版本显卡上跑。 具体的限制,需要查NV手册,不能保证。
fengbingchun 2013-08-05
  • 打赏
  • 举报
回复
NVIDA显卡分很多种,每种对CUDA的支持都是一样的吗?在任意一台机子上编译通过的代码,移植到其他类型的显卡上,可以直接运行吗?

579

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧