ARMからv8、sve対応のHPC向けコンパイラ評価版出ましたね、、、flangのフロントエンドによってFortranも対応している、、、https://t.co/ZaOBKpgWwM
— インターネットの闇 (@no_maddo) 2017年6月23日
この前魔が差してJetson TX2を買っていたので評価ができる~。
が、割りと意味分からない感じだったので誰か教えてくれ。
ARMからv8、sve対応のHPC向けコンパイラ評価版出ましたね、、、flangのフロントエンドによってFortranも対応している、、、https://t.co/ZaOBKpgWwM
— インターネットの闇 (@no_maddo) 2017年6月23日
この前魔が差してJetson TX2を買っていたので評価ができる~。
が、割りと意味分からない感じだったので誰か教えてくれ。
ファンが回ると割りとうるさい感じ pic.twitter.com/nGoZJQFgri
— インターネットの闇 (@no_maddo) 2017年6月21日
こんなオタクデバイスを買ったのだけど、サンプルを動かすまで割とハマったのでメモしておく。
何一つ新しい情報はないけどまぁ他の人の時間が節約されて欲しい。。。。
Jetson TX2は買った状態で何かしらのUbuntuがはいっているけども、これを上書きしてALL in OneのパッケージであるJetpackを入れるのが正規の手段らしい。
最初困ったのはこのWEBページを見てもドキュメントがどこにあるのかわからないこと。
じつは「Release Noteはここだよ!」って書いてあるリンクの先がドキュメントになっている(???????????
基本的にインストールのガイダンスに従うだけでOKなのだけど、en設定のUbuntuをホストにして書き込みを行わないといけなかった。
JP設定のUbuntuでは中途半端な状態でインストールが終了してしまい、必要なツールが入っていない状態で異常終了してしまいます。
cuda-install-samples-8.0.sh
を実行するとサンプルプログラムが展開される。
なんとCUDAサンプルはそのままでは動かない(???????
霊感でエイヤと修正が必要。
下のリンクに書いてあるパッチを当てる。
https://devtalk.nvidia.com/default/topic/999381/jetpack-compiling-oceanfft-on-tx2/
libGL.so
がなんか変5_simulatorとかのサンプルを動かそうとするとリンクエラーでビルドできない。
主にlibGL周りの関数への未定義参照。
おそらく/usr/lib/aarchi64-linux-gnu/
などにあるlibGL.so
が腐っており、-L /usr/lib/aarch64-linux-gnu/tegra
が必要。
nbody --benchmark --numbodies=256000
で色々なGPUで性能を測った記事があったので同じサンプルプログラムを動作させてみた。
nvidia@tegra-ubuntu:~/sample/NVIDIA_CUDA-8.0_Samples/5_Simulations/nbody$ ./nbody --benchmark --numbodies=256000 --device=0 Run "nbody -benchmark [-numbodies=<numBodies>]" to measure performance. -fullscreen (run n-body simulation in fullscreen mode) -fp64 (use double precision floating point values for simulation) -hostmem (stores simulation data in host memory) -benchmark (run benchmark to measure performance) -numbodies=<N> (number of bodies (>= 1) to run in simulation) -device=<d> (where d=0,1,2.... for the CUDA device to use) -numdevices=<i> (where i=(number of CUDA devices > 0) to use for simulation) -compare (compares simulation results running once on the default GPU and once on the CPU) -cpu (run n-body simulation on the CPU) -tipsy=<file.bin> (load a tipsy model file for simulation) NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled. > Windowed mode > Simulation data stored in video memory > Single precision floating point simulation > 1 Devices used for simulation gpuDeviceInit() CUDA Device [0]: "GP10B > Compute 6.2 CUDA device: [GP10B] number of bodies = 256000 256000 bodies, total time for 10 iterations: 36523.914 ms = 17.943 billion interactions per second = 358.866 single-precision GFLOP/s at 20 flops per interaction nvidia@tegra-ubuntu:~/sample/NVIDIA_CUDA-8.0_Samples/5_Simulations/nbody$
サンプル動作をテストしてから出荷してくれ。
計算機がわからない。
ので実験を2つほど。
追記:
ろんだくん@fetburnerから「fadddとaddは同時に実行されているだろう」という指摘をうけました。
確かにALUとFPUは独立している回路なのでやってできないことはない筈です。
分岐命令の実行時間が無視できなくなっているのではないかということです。
解釈が間違っている可能性がありますので近日中に見直します。
ちなみに分岐命令のクロックを図りました。多分分岐予測に成功するときで3クロックです。
続きを読むC# のHelloworldの基礎を説明できる人、弊社に一発で入社できますよ。ってかんじだ。
— きょん@うさみみモード (@kyon_mm) 2017年5月16日
@func_hs 別に言語はとわないつもりですけど、 C# だとうれしい。
— きょん@うさみみモード (@kyon_mm) 2017年5月16日
前一度調べたので記事をまとめておく。
OCamlプログラムの初期化は複雑だなぁ思った次第です。