CUDA支持64位数

Zah*_*ari 4 64-bit cuda nvidia

我对这个话题发表了各种各样的意见,所以这就是我决定在这里问的原因.我的问题是从CUDA支持的int64_t计算能力开始.我在Quadro770M上运行cuda 5,下面的代码没有问题,但我读到从计算能力1.3开始支持64位无符号.那么这个问题的真正答案是什么?

__device__ void printBinary(int64_t a) {
    int bits[64];
    int i;

    for (i = 0; i < 64; i++) {
        bits[63 - i] = (a >> i) & 1; 
    }

    for (int i = 0; i < 64; ++i) {
        cuPrintf("%d", bits[i]);
    }
    cuPrintf("\n");
    cuPrintf("%016llX", a);
}
Run Code Online (Sandbox Code Playgroud)

ter*_*era 8

所有支持CUDA的硬件都支持64位整数(有符号和无符号)(尽管它们上的操作映射到多个本机32位指令).

计算能力1.3引入了64位浮点数(本机支持).

  • 这取决于操作.可以从32位操作(2或3条指令,具体取决于计算能力)有效地合成64位加法和减法.乘法需要更长的指令序列(大约10到20条指令,具体取决于架构),除法和模数需要大量的仿真序列(60-100 +指令,具体取决于架构).您可以通过使用cuobjdump反汇编代码来检查所有细节. (3认同)