相关疑难解决方法(0)

为什么没有为双打实现atomicAdd?

为什么没有atomicAdd()双打作为CUDA 4.0或更高版本的一部分明确实现?

CUDA编程指南4.1的附录F第97页开始,已经实现了以下版本的atomicAdd.

int atomicAdd(int* address, int val);
unsigned int atomicAdd(unsigned int* address,
                       unsigned int val);
unsigned long long int atomicAdd(unsigned long long int* address,
                                 unsigned long long int val);
float atomicAdd(float* address, float val)
Run Code Online (Sandbox Code Playgroud)

同样的页面继续为我的项目中刚刚开始使用的下面的双打提供了一个小型的atomicAdd实现.

__device__ double atomicAdd(double* address, double val)
{
    unsigned long long int* address_as_ull =
                             (unsigned long long int*)address;
    unsigned long long int old = *address_as_ull, assumed;
    do {
        assumed = old;
old = atomicCAS(address_as_ull, assumed,
                        __double_as_longlong(val +
                               __longlong_as_double(assumed)));
    } while (assumed …
Run Code Online (Sandbox Code Playgroud)

cuda

33
推荐指数
1
解决办法
7861
查看次数

错误:函数"atomicAdd(double*,double)"已经定义

尝试使用Cuda 8.0在Ubuntu 14.04.5上编译caffe衍生DeepLab_v2时出现此错误.

有谁知道如何解决这个问题?

DeepLab_v2在另一台拥有Cuda 7.5的计算机上编译得很好,但由于在我目前的计算机中我有一个Pascal Titan X,我可能需要使用Cuda 8.0.

cuda caffe

11
推荐指数
1
解决办法
6881
查看次数

标签 统计

cuda ×2

caffe ×1