質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.36%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

並列処理

複数の計算が同時に実行される手法

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

解決済

1回答

1808閲覧

nvcc fatal : Value 'sm_20' is not defined for option 'gpu-architecture' というエラーが出る

tosakasimon

総合スコア8

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

並列処理

複数の計算が同時に実行される手法

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

0クリップ

投稿2020/08/31 12:53

編集2020/08/31 13:02

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

SM_20をSM_35にしたら解決しました。世代が違っていたようです

投稿2020/08/31 13:40

tosakasimon

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問