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

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

新規登録して質問してみよう
ただいま回答率
87.20%
CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

解決済

Cudaにおけるエラー

gejisaki
gejisaki

総合スコア33

CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

1回答

0評価

0クリップ

379閲覧

投稿2022/03/14 05:14

編集2022/03/16 15:35

失礼します。初めてこちらで質問させていただきます。
機械学習の入門書を買って勉強を始め、c++のcuda環境を構築しようとしています。試しに打ち消し線cudaに付属のサンプルコードclockをコンパイルして実行しようとしたのですがうまくいきません。(makeは通りましたが、実行時にエラー出てしまいます。)

./clockの実行結果
CUDA Clock sample
CUDA error at ../../common/inc/helper_cuda.h:1160 code=30(cudaErrorUnknown) "cudaGetDeviceCount(&device_count)"

こちらはグラフィックボードがcudaに認識されていないということでしょうか。当方、cudaに疎く、エラーの意味が調べてもよくわかりませんでした。こちらのエラーから分かることがありましたら、ご教示ください。

Clock.cのソースコードについては著作権の関係上掲載できませんでした。
一番重要な情報だと存じます。申し訳ありません。
もし可能であれば、エラーの意味だけでもご教示いただけますと幸いです。

追記:
https://symfoware.blog.fc2.com/blog-entry-2395.htmlのvector_add.cuを試してみましたが、うまく行きませんでした。
$ nvcc vector_add.cu -o vector_add_cuda ←コンパイルは通る
$ ./vector_add_cuda
0.000000 ←サイトでは3.000000になっているのでちゃんと計算できてないと思います。
nvcc --gpu-architecture=sm_30 vector_add.cuとしても同じ結果だった。

hello.cuも試しましたが、こちらもうまく行きませんでした。
$ nvcc hello.cu -o hello  ←コンパイルは通る
$ ./hello
$            ←何も表示されず

追記2:
nvidia-driver390を使っておりましたが、470も対応しているのではとのご指摘いただき、ubuntu20.04再インストールの後、sudo apt install nvidia-driver-470;sudo reboot; nvidia-smi;すると認識していることがわかりました。
現在cuda10.2を入れて再度試しています。
こちらで結果報告します。

【実行環境】
プラットフォーム:dos/v
Os:Ubuntu 20.04 64bit
グラボ:quadro k2000M
グラボのドライバ: nvidia-driver-390(aptでインストールしました。)
Cuda:version9.1(aptになかったのでnvidiaのページからダウンロードしたスクリプトでインストールしました)
Nvidia-smiの実行画面(最初の質問時点):
==============NVSMI LOG==============

Timestamp : Mon Mar 14 13:57:37 2022
Driver Version : 390.144

Attached GPUs : 1
GPU 00000000:01:00.0
Product Name : Quadro K2000M
Product Brand : Quadro
Display Mode : Enabled
Display Active : Enabled
Persistence Mode : Disabled
Accounting Mode : Disabled
Accounting Mode Buffer Size : 4000
Driver Model
Current : N/A
Pending : N/A
Serial Number : N/A
GPU UUID : GPU-ed976116-56e3-cccb-0666-149f23505d2c
Minor Number : 0
VBIOS Version : 80.07.31.00.18
MultiGPU Board : No
Board ID : 0x100
GPU Part Number : N/A
Inforom Version
Image Version : N/A
OEM Object : N/A
ECC Object : N/A
Power Management Object : N/A
GPU Operation Mode
Current : N/A
Pending : N/A
GPU Virtualization Mode
Virtualization mode : None
PCI
Bus : 0x01
Device : 0x00
Domain : 0x0000
Device Id : 0x0FFB10DE
Bus Id : 00000000:01:00.0
Sub System Id : 0x21F617AA
GPU Link Info
PCIe Generation
Max : 2
Current : 1
Link Width
Max : 16x
Current : 16x
Bridge Chip
Type : N/A
Firmware : N/A
Replays since reset : 0
Tx Throughput : N/A
Rx Throughput : N/A
Fan Speed : N/A
Performance State : P8
Clocks Throttle Reasons
Idle : Active
Applications Clocks Setting : Not Active
SW Power Cap : Not Active
HW Slowdown : Not Active
HW Thermal Slowdown : N/A
HW Power Brake Slowdown : N/A
Sync Boost : Not Active
SW Thermal Slowdown : Not Active
Display Clock Setting : Not Active
FB Memory Usage
Total : 1998 MiB
Used : 57 MiB
Free : 1941 MiB
BAR1 Memory Usage
Total : 256 MiB
Used : 5 MiB
Free : 251 MiB
Compute Mode : Default
Utilization
Gpu : 0 %
Memory : 5 %
Encoder : 0 %
Decoder : 0 %
Encoder Stats
Active Sessions : 0
Average FPS : 0
Average Latency : 0
Ecc Mode
Current : N/A
Pending : N/A
ECC Errors
Volatile
Single Bit
Device Memory : N/A
Register File : N/A
L1 Cache : N/A
L2 Cache : N/A
Texture Memory : N/A
Texture Shared : N/A
CBU : N/A
Total : N/A
Double Bit
Device Memory : N/A
Register File : N/A
L1 Cache : N/A
L2 Cache : N/A
Texture Memory : N/A
Texture Shared : N/A
CBU : N/A
Total : N/A
Aggregate
Single Bit
Device Memory : N/A
Register File : N/A
L1 Cache : N/A
L2 Cache : N/A
Texture Memory : N/A
Texture Shared : N/A
CBU : N/A
Total : N/A
Double Bit
Device Memory : N/A
Register File : N/A
L1 Cache : N/A
L2 Cache : N/A
Texture Memory : N/A
Texture Shared : N/A
CBU : N/A
Total : N/A
Retired Pages
Single Bit ECC : N/A
Double Bit ECC : N/A
Pending : N/A
Temperature
GPU Current Temp : 40 C
GPU Shutdown Temp : 104 C
GPU Slowdown Temp : 96 C
GPU Max Operating Temp : 91 C
Memory Current Temp : N/A
Memory Max Operating Temp : N/A
Power Readings
Power Management : N/A
Power Draw : N/A
Power Limit : N/A
Default Power Limit : N/A
Enforced Power Limit : N/A
Min Power Limit : N/A
Max Power Limit : N/A
Clocks
Graphics : 135 MHz
SM : 135 MHz
Memory : 405 MHz
Video : 405 MHz
Applications Clocks
Graphics : N/A
Memory : N/A
Default Applications Clocks
Graphics : N/A
Memory : N/A
Max Clocks
Graphics : 745 MHz
SM : 745 MHz
Memory : 900 MHz
Video : 540 MHz
Max Customer Boost Clocks
Graphics : N/A
Clock Policy
Auto Boost : N/A
Auto Boost Default : N/A
Processes
Process ID : 1038
Type : G
Name : /usr/lib/xorg/Xorg
Used GPU Memory : 49 MiB
Process ID : 1192
Type : G
Name : /usr/bin/gnome-shell
Used GPU Memory : 4 MiB

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

episteme

2022/03/14 05:47

Quadro K2000 てかなり旧いグラボですよね... 今どきのCUDA toolkitで対応できるのかしら?
jbpb0

2022/03/14 07:02

epistemeさん > Quadro K2000 てかなり旧いグラボですよね... 今どきのCUDA toolkitで対応できるのかしら? https://developer.nvidia.com/cuda-gpus から探すと、「Quadro K2000M」が見当たらないので代わりに「K2000」を見ると、「Compute Capability」(CC)は3.0です > Cuda:version9.1 https://web.chaperone.jp/w/index.php?CUDA を見ると、CUDA 9.1はCC 3.0をサポートしてるようです
gejisaki

2022/03/14 07:30

episteme様、jbpj0様、ご回答有り難うございます。 >Quadro K2000 てかなり旧いグラボですよね... 今どきのCUDA toolkitで対応できるのかしら? おっしゃるとおり、かなり古いものだと思われます。。GPUを新しく買おうか悩んでいたところ、家に眠っていたノートパソコンにこちらが載っているのを発見。なんとか利用できないものかと横着精神が働きました。。 nvidiaのサイトでは一応cudaには対応していると書いてあったような…気がしましたので。 ubuntu-drivers devicesを実行しますと、nvidia-driver-390がrecommendedと出たため、390を入れました。 最新の510や430も試してみたのですが、nvidia-smiで認識せず、すべてアンインストールして素直に390にしたところ動きました。 cudaはnvidia-driverのバージョンに合わせて少し古いもの(9.1)を入れました。 $nvcc vector_add.cu -o vector_add $./vector_add 0.000000
gejisaki

2022/03/14 07:33

jpbp0様 >https://symfoware.blog.fc2.com/blog-entry-2395.html の「vector_add.cu」のコンパイルと実行はできますでしょうか? 試してみたところ、コンパイルはエラーも警告もなく通るのですが、実行すると0.000000とおかしな結果が出てしまいました。 $nvcc vector_add.cu -o vector_add $./vector_add 0.000000 hello.cuも試しましたが、コンパイルは通るものの、実行時何も表示されませんでした…。(エラーも出ませんでした。)
episteme

2022/03/14 08:00 編集

> 試してみたところ、コンパイルはエラーも警告もなく通るのですが、実行すると0.000000とおかしな結果が出てしまいました。 マトモに動いてなさそう。僕とこでは正しいコタエ: 3.000000 が出力されました。 nvcc --gpu-architecture=sm_30 vector_add.cu とかでもダメかしら
jbpb0

2022/03/14 07:56

ドライバーやCUDAをインストールした後で、パソコンを再起動してますでしょうか?
gejisaki

2022/03/14 08:14

episteme様 >マトモに動いてなさそう。僕とこでは正しいコタエ: 3.000000 が出力されました。 >nvcc --gpu-architecture=sm_30 vector_add.cu とかでもダメかしら ありがとうございます。早速試してみたのですが、同じ結果でした。
jbpb0

2022/03/14 08:23 編集

> ubuntu-drivers devicesを実行しますと、nvidia-driver-390がrecommendedと出たため、390を入れました。 https://www.nvidia.co.jp/Download/index.aspx?lang=jp で「Quadro K2000」と「Linux 64-bit」で検索すると、バージョン:470.103.01が出てきて、そこからダウンロードできるようです > cudaはnvidia-driverのバージョンに合わせて少し古いもの(9.1)を入れました。 https://web.chaperone.jp/w/index.php?CUDA によると、CUDA 10.2まではCC 3.0をサポートしてるようで、 https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html によると、ドライバーが470ならCUDA 10.2は使えるはず ただし、470を入れたら、 > 最新の510や430も試してみたのですが、nvidia-smiで認識せず、 となるかもしれません (公式が推奨してるバージョンを使うと認識しないって、変だと思うけど) あと、上記は「Quadro K2000M」と「Quadro K2000」が同じものという前提で書きましたが、そもそもそれが違うのかもしれません
gejisaki

2022/03/14 08:15

jbpb0様 >ドライバーやCUDAをインストールした後で、パソコンを再起動してますでしょうか? 再起動はこちらで質問する前に試したのですが、変わらずでした。
gejisaki

2022/03/14 08:21

>https://www.nvidia.co.jp/Download/index.aspx?lang=jp で「Quadro K2000」と「Linux 64-bit」で検索すると、バージョン:470.103.01が出てきて、そこからダウンロードできるようです ありがとうございます。本当ですね。ドライバは390しか使えないとばかり思っておりましたが、公式でこう言われているなら470も使えるかもしれないですね。470は試してないので試してみます。 また結果報告させていただきます。 470が使えたらcuda10.2も使えるということで、万々歳です。 >あと、上記は「Quadro K2000M」と「Quadro K2000」が同じものという前提で書きましたが、そもそもそれが違うのかもしれません ありがとうございます。確かにそうですね。念の為、注意しておきます。
gejisaki

2022/03/14 09:19

sudo apt intall nvidia-driver-470をインストールしようとしたところエラーが出てしまったので、おそらくドライバやcudaを何度も入れたり消したりしたせいかと思い、ubuntu20.04を再インストールしてから改めて sudo apt install nvidia-driver-470 sudo reboot nvidia-smiすると認識しました! 以下に実行結果を載せます。 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 470.103.01 Driver Version: 470.103.01 CUDA Version: 11.4 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 Quadro K2000M Off | 00000000:01:00.0 On | N/A | | N/A 46C P8 N/A / N/A | 39MiB / 1998MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 0 N/A N/A 870 G /usr/lib/xorg/Xorg 32MiB | | 0 N/A N/A 1127 G /usr/bin/gnome-shell 3MiB | +-----------------------------------------------------------------------------+ nvidia-driver-390のときよりいろんな縛りがなくなっている(cuda10.2も対応しているはず)ので、気持ちがかなり楽になりました。 これからcuda10.2を入れてサンプルプログラム等、再度試して見たいと思います。 途中経過報告ではありますが、取り急ぎ報告いたします。 episteme様、jbpj0様、ひとまず、お知恵をいただき、ありがとうございました。 また、結果報告をさせていただきます。
gejisaki

2022/03/14 10:52

失礼いたします。先程の投稿に続けて、下記コマンドでcudaをインストールしました。 sudo apt install nvidia-cuda-toolkit その後、vector_add.cuを再度コンパイル、実行すると、無事3.000000と表示されました。 hello.cuはうまく行きませんでしたが、サイトの管理者様もうまく行っていないようなので大丈夫と捉えました。 cudaのバージョンが変わったためか、9.1にあったようなサンプルコードがすぐには見つけられず、最初の質問にあったclock.cuというプログラムを試すことはできませんでした。 しかし、vector_addが動いたということで、質問当初の何もできない状態から、最低限cudaを動かせる環境は整い、やりたかったことは達成できたと思います。 なので、本質問は解決とさせていただきます。episteme様、jbpj0様、的確なご回答いただき、また、長らくお付き合いいただきまして、誠にありがとうございました。 また、質問させていただくことがあるかもしれませんが、その折はよろしくお願いいたします。
gejisaki

2022/03/14 10:53

念の為、nvcc -versionの実行結果を付記させていただきます。 nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Sun_Jul_28_19:07:16_PDT_2019 Cuda compilation tools, release 10.1, V10.1.243
gejisaki

2022/03/14 10:57

episteme様、jbpj0様 本質問は解決済みにしようと思いますが、この場合、回答欄はどのようにするのが適当でしょうか。 自己解決ではないので、自己解決欄に書いて良いものか迷いました。。 ご意見いただけますと幸いでございます。
gejisaki

2022/03/16 06:35

とりあえず、自己解決とさせていただきました。 改めまして、ご回答いただき、ありがとうございました。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。