このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。
本日、フィックスターズは、CuPyをOpenCLでも使えるようにしたClPyの最新版として初の製品候補版v2.1.0rc1を公開しました!
12月にβ1版をリリースしてから丸3ヶ月、この四半期はClPyが割と活発で、結果、一部の例外を除きほぼ全ての機能が動くようになりました!
pip install .
でもインストールができるようになりました。一部のサードパーティ製のライブラリ等が動くようになります。その他より詳細な変更点についてはGitHubのIssue一覧をご覧ください。
今回のバージョンで、ClPyが基礎としてサポートすべきCuPyの主要機能がほぼ全て出揃いました。これにより、みなさんが実装したCuPyを使ったコード(Chainerを含む)の大多数がClPyでも動作するようになったはずで、実際のアプリケーションでClPyを実行できるようになることが期待されます。
しかし、これでまだCuPyすべてではありません。実際、テスト結果を見ても、主要機能以外のいくつかでまだまだ通っていないテストがあります。
これは、CUDAがOpenCLより広く使われている現状の大きな理由のひとつである「ライブラリの不足」によるものです。
前回のβ1リリース記事でもお伝えしたとおり、β1ではcuBLAS(密行列積)の代わりにCLBlastを導入しました。一方で、それ以外のCUDAを用いたライブラリ、すなわち、
あたりの機能は、現在のところ有効な代替がありません。これらをサポートするには、これらと同等の機能を自分たちで開発する(あるいは開発が中断されているものをフォークして継続する)しかなく、かなりの実装コストを要します。
また、性能については若干向上したものの、依然としてCuPyと同等には至っていません。引き続き性能測定および改善を続けていく必要があります。
と言った感じで、ClPyの完成には、今後も根気よく開発を継続する必要がありそうです。次回リリース(rc2)では、これらの、ライブラリの(代替)実装あるいは性能改善を含めたいと考えています。
今後の開発項目についてはGitHubで随時更新されます。開発中の機能もPull Requestに上がっていきますので、先行して試してみたい方は、ぜひGitHubのレポジトリをwatchしてみてください。
また、みなさんが使ってみた結果のフィードバックも引き続き歓迎しています。うまく動かなかったりで支援が必要でしたり、こうした方が良いと思うなどの提案があれば、GitHubにIssueを遠慮なく作ってください(何語でも歓迎ですが、日本語か英語が推奨です)。
ClPyの開発に興味がある方、ClPyだけのフルタイム従業員は残念ながら募集していませんが、インターン・アルバイトとして、給料をもらいながら&学びながらClPyの開発に参加することができます。もし興味のある方は、採用サイト/応募フォームから是非ご応募ください!(いきなり応募はちょっと・・・と気になる方は、Twitterで私(@LWisteria)宛にmentionなりDMを投げてくれれば可能な限りお答えします)
もちろん、インターンやアルバイトでなくても、チーム外からのIssue, Pull Request大歓迎です!
最後に、今回これまでの開発の多くに、元インターン→アルバイトでこの4月から新卒社員の、今泉さん・北脇さん・坂部さん(五十音順)らの多大な貢献がありました。ここに感謝の意を表すると共に、みなさんの今後のフィックスターズでの活躍を期待しています(本業に慣れたらまたClPy手伝ってくると嬉しいです)。
コンピュータビジョンセミナーvol.2 開催のお知らせ - ニュース一覧 - 株式会社フィックスターズ in Realizing Self-Driving Cars with General-Purpose Processors 日本語版
[…] バージョンアップに伴い、オンラインセミナーを開催します。 本セミナーでは、...
【Docker】NVIDIA SDK Managerでエラー無く環境構築する【Jetson】 | マサキノート in NVIDIA SDK Manager on Dockerで快適なJetsonライフ
[…] 参考:https://proc-cpuinfo.fixstars.com/2019/06/nvidia-sdk-manager-on-docker/ […]...
Windowsカーネルドライバを自作してWinDbgで解析してみる① - かえるのほんだな in Windowsデバイスドライバの基本動作を確認する (1)
[…] 参考:Windowsデバイスドライバの基本動作を確認する (1) - Fixstars Tech Blog /proc/cpuinfo ...
2021年版G検定チートシート | エビワークス in ニューラルネットの共通フォーマット対決! NNEF vs ONNX
[…] ONNX(オニキス):Open Neural Network Exchange formatフレームワーク間のモデル変換ツー...
YOSHIFUJI Naoki in CUDAデバイスメモリもスマートポインタで管理したい
ありがとうございます。別に型にこだわる必要がないので、ユニバーサル参照を受けるよ...