LoginSignup
4
1

More than 5 years have passed since last update.

ZEAM開発ログ v.0.3.5 Elixir 1.7.2 でGPU駆動ベンチマークを実行してみた

Last updated at Posted at 2018-08-16

はじめに

ZACKYこと山崎進です。ようやく採点の祭典が終わりました。「採点の祭典」って何かって? 大学教員の間で流行っているキーワードで,成績評価のことです。大人数なので,なかなか大変なのですよ。私の勤務校である北九州市立大学では,お盆直前まで期末試験をやっていて,お盆明けに成績評価を提出するというスケジュールなので,お盆休み返上で成績評価するのです。

「ZEAM開発ログ 目次」はこちら

インタビューを受けました

forkwell press にてインタビュー記事が掲載されました!

「何を成したいのか」を、できる限り早く見つける手伝いを。山崎進(北九州市立大学准教授)〜Forkwellエンジニア成分研究所

ZACKY-3000.jpg

Personal Vision Co-Creator への想いが色濃く現れる記事の仕上がりになりました。

さて本題

今回は Elixir 1.7.2 がリリースされたので,さっそくインストールして GPU 駆動ベンチマークを実行してみました。結論からいうと,ソースコードを変更することなく実行可能で,実行時間に大差はないです。

使用した機材の仕様

Mac Pro (Mid 2010)

  • Processor: 2.8 GHz Quad-Core Intel Xeon (プロセッサ数 1,物理コア数 4,論理コア数8)
  • Memory: 16 GB 1066 MHz DDR3
  • Graphics: ATI Radeon HD 5770 1024MB
  • SSD (BlackMagic)
    • Write 473.9MB/s
    • Read 507.4MB/s

近日中にアップグレードする予定です。

iMac Pro (2017)

  • Processor: 2.3 GHz Intel Xeon W (プロセッサ数 1,物理コア18,論理コア36)
  • Memory: 32 GB 2666 MHz DDR4
  • Graphics: Radeon Pro Vega 64 16368MB
  • SSD (BlackMagic)
    • Write 2980.3MB/s
    • Read 2465.1MB/s

CPUとGPUは最高性能の構成,メモリとSSDは標準構成です。

ベンチマーク結果

Elixir 1.7.2 での実行結果です。

Mac Pro (Mid 2010)

$ elixir -v
Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe]

Elixir 1.7.2 (compiled with Erlang/OTP 21)
stages benchmarks1 benchmarks3 benchmarks8
pure Elixir pure Elixir Elixir/Rustler
loop inlining inside of Flow.map loop, passing by list, with Window
1 47.653314 37.392453 7.726425
2 23.946650 19.162682 25.177824
4 13.690849 12.417391 19.870013
8 12.361272 13.123296 18.489603
16 12.178206 11.210884 19.965729
32 12.540539 10.591330 22.487094
64 12.470190 10.878797 28.189323
128 12.262785 11.103630 38.555434
benchmarks_g2 benchmarks_t1 benchmarks_empty
Elixir/Rustler Elixir/Rustler Elixir/Rustler
OpenCL(GPU), inlining rayon Ruslter empty
2.423294 1.784261 1.313502

iMac Pro (2017)

$ elixir -v
Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:36:36] [ds:36:36:10] [async-threads:1] [hipe] [sharing-preserving]

Elixir 1.7.2 (compiled with Erlang/OTP 21)
stages benchmarks1 benchmarks3 benchmarks8
pure Elixir pure Elixir Elixir/Rustler
loop inlining inside of Flow.map loop, passing by list, with Window
1 22.823357 17.263715 4.577052
2 11.232475 8.647210 13.938190
4 5.954148 5.409378 10.471390
8 3.954989 4.129163 9.647276
16 4.225692 4.130425 10.081226
32 4.311388 3.965232 11.729024
64 4.157024 3.902033 15.635729
128 4.008359 4.323282 23.133601
benchmarks_g2 benchmarks_t1 benchmarks_empty
Elixir/Rustler Elixir/Rustler Elixir/Rustler
OpenCL(GPU), inlining rayon Ruslter empty
1.23860 0.67441 0.81719

速度変化は誤差の範囲内ではないかと思います。

おわりに

iMac Pro での Elixir のコンパイルは凄まじく速かったです!

Elixir 1.7.2 を使用してみましたが,ソースコードを特に変更する必要はなかったです。ベンチマークの実行速度の差はほぼ誤差の範疇でした。

次回は「ZEAM開発ログ v.0.3.6 Mac Pro (Mid 2010) をグレードアップしてGPU駆動ベンチマークを実行してみた」をお送りします。

というわけで...

fukuoka_ex.png

fukuoka.ex #13 夏のfukuoka.ex祭=技術のパラダイムシフトは,現在,参加者を募集しています! 私も 「Pythonを捨ててElixirに移行する日」というタイトルで発表します!

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1