このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。
本日、フィックスターズは、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手伝ってくると嬉しいです)。
keisuke.kimura in Livox Mid-360をROS1/ROS2で動かしてみた
Sorry for the delay in replying. I have done SLAM (FAST_LIO) with Livox MID360, but for various reasons I have not be...
Miya in ウエハースケールエンジン向けSimulated Annealingを複数タイルによる並列化で実装しました
作成されたプロファイラがとても良さそうです :) ぜひ詳細を書いていただきたいです!...
Deivaprakash in Livox Mid-360をROS1/ROS2で動かしてみた
Hey guys myself deiva from India currently i am working in this Livox MID360 and eager to knwo whether you have done the...
岩崎システム設計 岩崎 満 in Alveo U50で10G Ethernetを試してみる
仕事の都合で、検索を行い、御社サイトにたどりつきました。 内容は大変参考になりま...
Prabuddhi Wariyapperuma in Livox Mid-360をROS1/ROS2で動かしてみた
This issue was sorted....