windows10でGPUを用いた並列プログラミングの勉強をしています。CUDACやCUDNNなどのインストールはちゃんとできていると思うのですが、cuファイルをコンパイルしようとするとタイトルのようなエラーが出てしまいます。使っているGPUはGeforceGTX680でCUDAのバージョンは10.1です。
nvcc -arch sm_20 hello.cu -o hello
h
1//common_vc.h 2#if defined(_WIN32) || (_MSC_VER) 3#define VC_MODE 4#endif 5#ifdef VC_MODE 6#include <sys/types.h> 7#include <sys/timeb.h> 8#else 9#include <sys/time.h> 10#endif 11#ifdef VC_MODE 12inline double seconds() 13{ 14 _timeb tp; 15 _ftime(&tp); 16 return ((double)tp.time + (double)tp.millitm / 1000.0); 17} 18#else 19inline double seconds() 20{ 21 struct timeval tp; 22 struct timezone tzp; 23 int i = gettimeofday(&tp, &tzp); 24 return ((double)tp.tv_sec + (double)tp.tv_usec * 1.e-6); 25} 26#endif 27#ifndef _COMMON_H 28#define _COMMON_H 29#define CHECK(call) \ 30{ \ 31 const cudaError_t error = call; \ 32 if (error != cudaSuccess) \ 33 { \ 34 fprintf(stderr, "Error: %s:%d, ", __FILE__, __LINE__); \ 35 fprintf(stderr, "code: %d, reason: %s\n", error, \ 36 cudaGetErrorString(error)); \ 37 } \ 38} 39#define CHECK_CUBLAS(call) \ 40{ \ 41 cublasStatus_t err; \ 42 if ((err = (call)) != CUBLAS_STATUS_SUCCESS) \ 43 { \ 44 fprintf(stderr, "Got CUBLAS error %d at %s:%d\n", err, __FILE__, \ 45 __LINE__); \ 46 exit(1); \ 47 } \ 48} 49#define CHECK_CURAND(call) \ 50{ \ 51 curandStatus_t err; \ 52 if ((err = (call)) != CURAND_STATUS_SUCCESS) \ 53 { \ 54 fprintf(stderr, "Got CURAND error %d at %s:%d\n", err, __FILE__, \ 55 __LINE__); \ 56 exit(1); \ 57 } \ 58} 59#define CHECK_CUFFT(call) \ 60{ \ 61 cufftResult err; \ 62 if ( (err = (call)) != CUFFT_SUCCESS) \ 63 { \ 64 fprintf(stderr, "Got CUFFT error %d at %s:%d\n", err, __FILE__, \ 65 __LINE__); \ 66 exit(1); \ 67 } \ 68} 69#define CHECK_CUSPARSE(call) \ 70{ \ 71 cusparseStatus_t err; \ 72 if ((err = (call)) != CUSPARSE_STATUS_SUCCESS) \ 73 { \ 74 fprintf(stderr, "Got error %d at %s:%d\n", err, __FILE__, __LINE__); \ 75 cudaError_t cuda_err = cudaGetLastError(); \ 76 if (cuda_err != cudaSuccess) \ 77 { \ 78 fprintf(stderr, " CUDA error \"%s\" also detected\n", \ 79 cudaGetErrorString(cuda_err)); \ 80 } \ 81 exit(1); \ 82 } \ 83} 84#endif // _COMMON_H
cu
1//hello.cu 2#include "../common/common_vc.h" 3#include <stdio.h> 4 5/* 6 * A simple introduction to programming in CUDA. This program prints "Hello 7 * World from GPU! from 10 CUDA threads running on the GPU. 8 */ 9 10__global__ void helloFromGPU() 11{ 12 printf("Hello World from GPU!\n"); 13} 14 15int main(int argc, char **argv) 16{ 17 printf("Hello World from CPU!\n"); 18 19 helloFromGPU<<<1, 10>>>(); 20 CHECK(cudaDeviceReset()); 21 return 0; 22} 23 24 25
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。