gpt4 book ai didi

java - JCuda 编译器错误

转载 作者:行者123 更新时间:2023-11-30 11:41:39 24 4
gpt4 key购买 nike

我已经开始使用 JCuda。当我编译程序时出现“jcuda.cuda exception cuda_error_launch_failed”错误。我已经按照安装指南中给出的步骤进行操作,但不起作用。在线资源很少。所以,请帮助我。这是我的代码:

extern "C"
__global__ void reduce(float *g_idata, float *g_odata, unsigned int n)
{
extern __shared__ float sdata[];
unsigned int tid = threadIdx.x;
unsigned int i = blockIdx.x*blockDim.x*2 + threadIdx.x;
unsigned int gridSize = blockDim.x*2*gridDim.x;

float mySum = 0;


while (i < n)
{
mySum += g_idata[i];
if (i + blockDim.x < n)
mySum += g_idata[i+blockDim.x];
i += gridSize;
}

sdata[tid] = mySum;
__syncthreads();

if (blockDim.x >= 512) { if (tid < 256) { sdata[tid] = mySum = mySum + sdata[tid + 256]; } __syncthreads(); }
if (blockDim.x >= 256) { if (tid < 128) { sdata[tid] = mySum = mySum + sdata[tid + 128]; } __syncthreads(); }
if (blockDim.x >= 128) { if (tid < 64) { sdata[tid] = mySum = mySum + sdata[tid + 64]; } __syncthreads(); }

if (tid < 32)
{
volatile float* smem = sdata;
if (blockDim.x >= 64) { smem[tid] = mySum = mySum + smem[tid + 32]; }
if (blockDim.x >= 32) { smem[tid] = mySum = mySum + smem[tid + 16]; }
if (blockDim.x >= 16) { smem[tid] = mySum = mySum + smem[tid + 8]; }
if (blockDim.x >= 8) { smem[tid] = mySum = mySum + smem[tid + 4]; }
if (blockDim.x >= 4) { smem[tid] = mySum = mySum + smem[tid + 2]; }
if (blockDim.x >= 2) { smem[tid] = mySum = mySum + smem[tid + 1]; }
}

if (tid == 0)
g_odata[blockIdx.x] = sdata[0];
}

我安装了 nvidia 460 gtx gpu 和 cuda 驱动程序和工具包。

最佳答案

使用 cudaFree(deviceId);cudaFree(deviceId); 释放内存并重试。希望这对你有帮助。

关于java - JCuda 编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12178121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com