SHIFT-JIS変換を行う」でしたね。Calendar、頑張っていきますさて本題〜はじめにElixirでAI/MLを高速化すべく,今回はElixirからGPUを駆動しました。今までのまとめとしては次の通りです。OpenCLでGPUを利用した時にはC言語の1並列と比べて3.95倍の速度向上,Elixirの同等プログラムと比べて10.8〜11.9倍の速度向上になりました。OpenCLを使わずにマルチコアかつSIMD命令やAVX命令を使った場合は,GPUの場合より高速になる可能性があります。見積もりではElixirの同等プログラムと比べて13倍前後の速度向上を期待できそうです。GPUの場合は,データの転送に時間がかかっているので,データの転送量に比べて演算負荷が大きくなればなるほど,CPUよりGPUの方が有利になると思われます。CPUとGPUで適性を見極めて適切に負荷分散をすること,さらにCPUとGPUを並列実行することで,さらなるパフォーマンスを引き出せる可能性があります。1.5倍前後速いです。今後,研究・開発が進んだ暁には,PythonからElixirに移行することで,AI/ML処理の実行速度が大幅に向上する可能性があります。高速化できませんでした。便利ですが,オーバーヘッドがかなりあります。C言語やOpenCLと比べるとまだまだ速度差は歴然としています。さらなる高速化に向けてはデータ表現の相互変換をどのように工夫するかが鍵になりそうです。LLVMで直にアセンブリコードを出力したらどうなるか興味があります!今回はいよいよElixirからRustlerとOpenCL経由でGPUを駆動してみたいと思います。ありがとうございます。次のような記述を加えます。LLVMのcodegenの多重度。数字を増やすとコンパイル時間が短くなるが、最適化の機会が減ってしまう。1にするとコンパイル時間が長くなるが、コンパイル後のバイナリでは最高の性能が得られる。使うようにしないとオーバーフローするということだったので,修正しました。以上を踏まえて全面的にベンチマークを取り直すことにしました。いうライブラリがありました。書かれているコードを読んでください。下記のようにしてください。OpenCLソースコードはこんな感じです。endこのコードだとリスト長がGPUで確保できるメモリを超えてしまった時にエラーが発生します。その問題を修正するならこちらです。オーバーヘッドが発生することがわかったので,今回は前者で実験してみました。この辺りは課題ですね。コンパイルしてみると,OpenCLがインストールされている場合には,完全に次の1コマンドで実行できます。記事にしていただけるんじゃないかと期待しています!Rust単体実行バージョン比較のためにRust単体で実行するベンチマークも作成しました。