Skip to content

Latest commit

 

History

History

nabeatsu

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

概要

世界のナベアツ さんのネタ「3の倍数と3のつく数字でアホになる」をプログラムにしたものです。

実装

実行方法

OpenCL版

$ cd ocl/build
$ cmake ..
$ ./nabeatsu-cl [回数]

3rd Partyが提供するSDKなどを使用する場合は、それが提供するヘッダとライブラリをCMakeに認識させてください。 OpenCL_ROOT 環境変数にパスを指定することで認識させることができます。CUDA Toolkit が提供する OpenCL の場合は以下のように cmake を実行します。

$ cmake OpenCL_ROOT=$CUDA_HOME cmake ..

2021 年 10 月現在、WSL 2 上の OpenCL はまだ WSL 側が対応していないようです microsoft/WSL#6951

OpenMP版

ompmake test を実行してください。

C++ AMP版

Visual Studio 2017以降で amp/amp.sln を読み込んでビルドし、実行してください。

GraalVM版

  • GraalVM版は graalvm/native/lib にある libnabeatsu.so をGraalVMのLLVMツールチェーンを用いてビルドし、利用します
  • graalvm/run.sh 経由で呼び出すことで、必要なもののビルドと実行が一気に可能です
  • $GRAALVM_HOME を必ず設定してください
  • バイナリを削除する場合は、各ディレクトリで make clean してください

JavaからのPolyglot呼び出し

$ ./run.sh java [回数]

ネイティブ実行

$ ./run.sh native [回数]

CUDA版

nvcc

$ cd cuda/nvcc/build
$ CUDA_ROOT=$CUDA_HOME cmake ..
$ ./nabeatsu-cl [回数]

Runtime Compilation

NVRTC を使って、 cuda/rtc/nabeatsu-rtc.cKERNEL_CODE として定義されているカーネルコードを実行時にコンパイルして結果を得ます。

$ cd cuda/rtc
$ export CUDA_HOME
$ make
$ ./nabeatsu-rtc [回数]

Java 版の場合は JDK 21 をインストールし、コンパイルと実行をします。以下の例は WSL 2 Ubuntu 22.04 で CUDA 12.1 で動かしたものです。

$ cd cuda/java-rtc
$ export CUDA_HOME
$ export JAVA_HOME
$ mvn package
$ $JAVA_HOME/bin/java -Djava.library.path=$CUDA_HOME/lib64:/usr/lib/wsl/lib --enable-preview --enable-native-access=ALL-UNNAMED -jar target/nabeatsu-rtc-0.1.1.jar [回数]