小编Han*_*ang的帖子

CUDA Primes Generation

当数据大小增加超过260k时,我的CUDA程序停止工作(它什么都不打印).

有人能告诉我为什么会这样吗?这是我的第一个CUDA计划.如果我想要更大的素数,如何在CUDA上使用大于long long int的数据类型?

显卡是GT425M.

#include<stdio.h>
#include<stdlib.h>
#include<cuda.h>
#define SIZE 250000
#define BLOCK_NUM 96
#define THREAD_NUM 1024
int data[SIZE];
__global__ static void sieve(int *num,clock_t* time){
    const int tid = threadIdx.x;
    const int bid = blockIdx.x;
    int tmp=bid*THREAD_NUM+tid;
    if(tid==0) time[bid] = clock();
    while(tmp<SIZE){
        int i=1;
        while(((2*tmp+3)*i+tmp+1)<SIZE){
            num[(2*tmp+3)*i+tmp+1] = 0;
            i++;
        }
        tmp+=BLOCK_NUM*THREAD_NUM;
    }
    if(tid==0) time[bid+BLOCK_NUM] = clock();
}
void GenerateNumbers(int *number,int size){
    for(int i=0;i<size;i++)
        number[i] = 2*i+1;
    number[0] = 2;
}
int main(){
    GenerateNumbers(data,SIZE);
    int *gpudata;
    clock_t* time;
    int cpudata[SIZE];
    cudaMalloc((void**)&gpudata,sizeof(int)*SIZE); …
Run Code Online (Sandbox Code Playgroud)

c c++ primes cuda gpu

6
推荐指数
1
解决办法
1006
查看次数

标签 统计

c ×1

c++ ×1

cuda ×1

gpu ×1

primes ×1