1. CUDA确定只能在N卡上用。 2. 在计算能力低的卡上,能运行的程序,高版本的卡上,重编译肯定可以运行。直接运行二进制,我没看到哪里保证的,但是如果是同一个系列的不同显卡,比如都是GTX,大概能直接拷贝二进制用。如果不是一个系列的显卡,你只能试试看,我不知道。
只能说,一般的C语言程序,没有特别依赖数据宽度的代码(不能默认long是4字节之类的错误,要用sizeof),比较大的可能是可以不修改程序,移植到64位环境上。但是肯定需要重新编译。如果依赖了其他库文件,全部换成64位版本,不能拷过来用。 针对CUDA,不同显卡的“计算能力”不同,低版本的程序,移植到高版本上,只需要在编译的时候,指定按低版本的计算能力编译(sm参数),一般没有问题。即使按高版本的计算能力编译,可以试试,估计也没问题。 高版本的程序,在低版本的显卡上,可能有问题。一方面是资源的限制,比如最多能开多少线程一类的,超过会运行出错,这时需要改程序;另一方面,有些特定的指令,低版本不支持,比如原子操作,用到了不支持的指令的程序,不能在低版本显卡上跑。 具体的限制,需要查NV手册,不能保证。
579
社区成员
2,918
社区内容
加载中
试试用AI创作助手写篇文章吧