Jetson Nanoで遊ぼう8:CUDAのサンプルプログラム(simpleVulkan)を実行してみる

投稿日:2024年4月28日
最終更新日:2024年4月28日

CUDAのサンプルプログラムを実行してみる

前回はCUDAのコンパイラを使ってHello Worldをやってみたが、今回はNVIDIAが用意しているサンプルプログラムを実行してみる。

今回はsimpleVulkanというSin波の画像が表示されるプログラムを実行してみることにした。

 

開発環境

開発用PC:Windows 10

Jetson Nano Development kit 4GB B01

Jetson Nanoのイメージ:JetPack 4.6.1 + Ubuntu 18.04 LTS

CUDA Version 10.2.300

 

サンプルプログラムを実行してみる

NVIDIAが配布しているJetson Nanoのイメージでは、最初から/usr/local/cuda-10.2/samples/にサンプルが置いてある。今回は以下のsimpleVulkanというディレクトリのプログラムをmakeして実行する(Vulkanって何?についてはググってください)。まずcdコマンドでディレクトリに移動。

$ cd /usr/local/cuda-10.2/samples/2_Graphics/simpleVulkan/

Makefileが最初からおいてあるので、以下のコマンドでmakeを実行。

$sudo make

これでOK…かと思いきや、以下のようなエラーが発生。glfw3パッケージが無いとのこと。

No package 'glfw3' found
vulkanCUDASinewave.cu:21:10: fatal error: GLFW/glfw3.h: No such file or directory
 #include <GLFW/glfw3.h>

ということで以下でインストール。

$ sudo apt install libglfw3-dev

再度makeを実行したら、エラーは出ずに無事に完了。

$ sudo make
>>> GCC Version is greater or equal to 4.7.0 <<<
/usr/local/cuda-10.2/bin/nvcc -ccbin g++ -I../../common/inc `pkg-config --static --cflags glfw3` -I/usr/include  -m64    --std=c++11 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_32,code=sm_32 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_75,code=compute_75 -o vulkanCUDASinewave.o -c vulkanCUDASinewave.cu
/usr/local/cuda-10.2/bin/nvcc -ccbin g++   -m64      -gencode arch=compute_30,code=sm_30 -gencode arch=compute_32,code=sm_32 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_75,code=compute_75 -o simpleVulkan vulkanCUDASinewave.o  -L/usr/lib/aarch64-linux-gnu `pkg-config --static --libs glfw3` -lvulkan
mkdir -p ../../bin/aarch64/linux/release
cp simpleVulkan ../../bin/aarch64/linux/release

ディレクトリ内にあるsimpleVulkanが実行ファイルなので、以下で実行すればサンプルプログラムが実行される。ちなみにTeraTermからSSH接続したまま実行しても画像が表示されないので、VNCでGUI接続して実行して、ターミナルから接続した。

$./simpleVulkan

以下が表示された画像。Sin波がうねうねしている画像が表示される。

やはり視覚的に動くプログラムは面白い。ただ、サンプルを実行して終わり…だとあまり身にならないので、次回はsampleのコードを読んでみて、一部コードを変えて実行してみたいと思う。


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください