###前提・実現したいこと
CUDA5.0で、CURANDを用いて乱数を発生させようとしていますが、コアダンプになってしまいます
###発生している問題・エラーメッセージ
Segmentation fault (コアダンプ)
###該当のソースコード
CUDA
1#include <iostream> 2#include <curand_kernel.h> 3 4__global__ 5void rand(unsigned long seed,float* out, float* out2) { 6 int id = blockIdx.x * blockDim.x + threadIdx.x; 7 curandState s; 8 9 curand_init(seed, id, 0, &s); 10 11 out[id] = curand_uniform(&s); 12 out2[id] = curand_uniform(&s); 13} 14 15int main() { 16 std::cout << "hi"; 17 cudaSetDeviceFlags(cudaDeviceMapHost); 18 19 int const n_thread = 16; 20 int const n_block = 16; 21 int const n = n_thread * n_block; 22 23 float* out; 24 float* d_out; 25 26 float* out2; 27 float* d_out2; 28 29 out = (float *) malloc(n * sizeof(float)); 30 out2 = (float *) malloc(n * sizeof(float)); 31 32 cudaMalloc((void **)&d_out, n * sizeof(float)); 33 cudaMalloc((void **)&d_out2, n * sizeof(float)); 34 35 36 rand<<<n_block, n_thread>>>(0, d_out,d_out2); 37 38 cudaMemcpy(out, d_out,n * sizeof(float),cudaMemcpyDeviceToHost); 39 cudaMemcpy(out2,d_out2,n * sizeof(float),cudaMemcpyDeviceToHost); 40 41 for(int i = 0;i < n;i++){ 42 std::cout<<d_out[i]<<" & "<<d_out2[i]<<"\n"; 43 } 44 45 46 return 0; 47} 48
###試したこと
main文冒頭に挿入した”hi”も表示されません
関数呼び出しの箇所を消してもコアダンプのままなので乱数発生以前の問題だと思います
GPUはGeForce GTX 650です
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。