gpu-atomics

    14热度

    1回答

    我想知道是否有完整的原子操作列表。我在互联网上找不到那样的东西。

    0热度

    1回答

    问题是我想将atomicMin应用于int数组。我的阵列具有6个元件和代码是: #include <stdlib.h> #include <stdio.h> __global__ void kernel(int * globalmax, int * r){ int val = r[threadIdx.x]; *globalmax = atomicMin(globalma

    0热度

    2回答

    我的程序有很多4字节字符串,比如“aaaa”“bbbb”“cccc”...我需要收集通过crc检查的特定字符串。 因为字符串可以通过crc检查的可能性很小,所以我不想使用非常大的缓冲区来保存所有结果。我喜欢一个接一个的结果,就像输入一样。例如,如果输入是“aaaabbbbcccc”和“BBBB”未通过CRC校验,则输出字符串应该是“aaaacccc”和output_count应该为2 代码看起来像

    0热度

    1回答

    以下程序使用'Cuda By Example'实现原子锁,但运行该程序会冻结我的机器。 有人能告诉我我的程序有什么问题吗?非常感谢 益肺 #include <stdio.h> __global__ void test() { __shared__ int i, mutex; if (threadIdx.x == 0) { i = 0; mute

    0热度

    1回答

    当我尝试在内核中查找有关原子操作的更多细节时,发现有些奇怪的东西。据我所知,当在一个数字上使用原子操作时,所有线程的所有这类操作都将被序列化以启动此数字以保持完整性。以下是我的一个内核代码: if(atomic_cmpxchg(&A[ptr],0,-1) == -1) ptr = A[ptr + 3]; //To delay uint k = 1000000;

    4热度

    1回答

    我想优化我在CUDA中的直方图计算。它使我在相应的OpenMP CPU计算上有了很好的加速。但是,我怀疑(按照直觉)大多数像素都属于几个桶。出于论点的缘故,假设我们有256个像素落入让我们说,两个桶。 做到这一点最简单的方法是它似乎是 负载变量到共享内存中 如果需要做量化的负载为无符号字符等做。 做一个原子加入共享内存 做全球聚结写。 像这样: __global__ void shmem_atom

    0热度

    1回答

    我已经尝试使用atomicInc()程序下面的程序。 __global__ void ker(int *count) { int n=1; int x = atomicInc ((unsigned int *)&count[0],n); CUPRINTF("In kernel count is %d\n",count[0]); } int main() {

    0热度

    1回答

    我的cuda内核生成的东西在块执行结束时被送入主机。 骨架如下。 host_data将数据写入的地址被分配为主映射内存。 host_data_count也映射内存,它表示生成的数据的数量。 我使用的GPU是采用Fermi架构和CC 2.0的GTX 580。 __global__ void kernel(host_data, host_data_count) { __shared__ i

    8热度

    1回答

    对于在CUDA中使用原子操作,是否需要包含一些CUDA头文件? CUDA编程指南似乎对此非常敏感。 下面给出的代码glmax.cu给我下面的编译错误。 gaurish108 MyPractice: nvcc glmax.cu -o glmax glmax.cu(11): error: identifier "atomicMax" is undefined 1 error detected i

    4热度

    2回答

    我想CUDA来实现这个原子功能: __device__ float lowest; // global var __device__ int lowIdx; // global var float realNum; // thread reg var int index; // thread reg var if(realNum < lowest) { lowest= realNum