我的显卡是 Geforece GTX 670,同一个程序跑几遍, 计算出的结果有时却不一样。比如正确解的范围应该在50以内,但是有些时候跑出的解到10几万了,明显的结果错误。但是以上错误是偶出现。在网上查了说是GeForce系列显卡自身的原因,难道非得换Tesla显卡???
[attach]3369[/attach]
我的显卡是 Geforece GTX 670,同一个程序跑几遍, 计算出的结果有时却不一样。比如正确解的范围应该在50以内,但是有些时候跑出的解到10几万了,明显的结果错误。但是以上错误是偶出现。在网上查了说是GeForce系列显卡自身的原因,难道非得换Tesla显卡???
[attach]3369[/attach]
我觉得是你的程序的问题,我的程序运行了几十遍只要toolkit的版本不变,运行出的结果完全相同。
应该不会是显卡的问题,根据我的经验可能是程序并发,数据不一致造成的,比如你没有用 __syncthreads(),或者应该使用atomic运算的没有使用。
LZ您好:
如果您的程序是连续高强度跑动辄几天十几天,然后出现异常问题,那么有可能是geforce卡的问题。
如果只是普通跑跑程序,每次结果不同,这个往往是您的程序问题。
请您仔细debug之。
祝您好运~
每次结果不同,有三种错误比较常见,一种为同步问题,一种为内存访问越界,一种为数据未初始化即使用。