在CUDA中将类型转换为无符号long long?

在CUDA中将类型转换为无符号long long?,cuda,gpu,nvidia,ptx,Cuda,Gpu,Nvidia,Ptx,基本上,我想要的是一个类似hiloint2uint64()的函数,只需连接两个32位整数,并将结果重新解释为uint64 我在CUDA中找不到任何函数可以这样做,不管怎样,有没有ptx代码可以进行这种类型转换?您可以这样定义自己的函数: __host__ __device__ unsigned long long int hiloint2uint64(int h, int l) { int combined[] = { h, l }; return *reinterpret_c

基本上,我想要的是一个类似hiloint2uint64()的函数,只需连接两个32位整数,并将结果重新解释为uint64


我在CUDA中找不到任何函数可以这样做,不管怎样,有没有ptx代码可以进行这种类型转换?

您可以这样定义自己的函数:

__host__ __device__ unsigned long long int hiloint2uint64(int h, int l)
{
    int combined[] = { h, l };

    return *reinterpret_cast<unsigned long long int*>(combined);
}
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
{
int组合[]={h,l};
返回*重新解释(组合);
}

C++reinterpret_cast是处理此类案件的正确方法。