仕事内容
PFNが開発するAI半導体MN-Coreシリーズのランタイムソフトウェア開発・維持を担うソフトウェアエンジニアの募集です。PyTorchなどの上位フレームワークとMN-Coreを効率的に統合し、実サービスで運用するためのコンポーネント開発、分散学習/推論機能、パフォーマンス最適化、不具合解析などを担当します。次世代MN-Core設計へのフィードバックやKubernetesコンポーネント、デバイスドライバ開発にも関わる可能性があります。計算機を動作させることに面白さを感じる方にとって、MN-Coreのすべての要素に触れることができる魅力的なポジションです。
業務内容例
- PFNが開発するMN-Coreアクセラレータを最適に動作させるためのソフトウェア開発業務に従事します。
- PyTorchなどの上位フレームワークとMN-Core向けコンパイラの出力を基に、実デバイスへの命令/データ供給などを最適化するコンポーネントを開発します。
- 複数デバイスを用いた分散学習/推論機能に必要な集団通信の開発及び上位フレームワークとの統合を行います。
- アクセラレータシステムにおけるホストサイドのパフォーマンス解析と最適化を担当します。
- カーネルからユーザ空間までの複数レイヤにまたがる不具合の解析と対応を行います。
- MN-Coreのパフォーマンスを最大限に引き出し、信頼性やセキュリティ要件を満たすソフトウェア開発に設計から携わります。
- 次世代MN-Core設計に対するランタイムレイヤからのレビュー及びフィードバックを行います。
- MN-CoreをKubernetesクラスタで運用するために必要な、Device PluginやモニタリングシステムなどのKubernetesコンポーネントを開発します。
- MN-Core向けデバイスドライバの設計・開発に関わります。
本ポジションの魅力
- MN-Coreが動作する際に必要なすべての要素を触ることができます。
- 計算機を動作させることに面白さを感じる人にとって、最高の題材です。
求めるスキル・経験
必須
C言語によるソフトウェア開発経験 C
Pythonによるソフトウェア開発経験 Python
Linuxホストシステムについての基礎的な理解 Linux
コンテナ仮想化およびVM仮想化についての基礎的な理解 仮想化基盤経験
大学学部レベルのコンピュータサイエンスについての基礎的な理解
ビジネスレベルの日本語能力
平易な英語で書かれた技術資料を読み書きする能力
機械学習・深層学習ワークロードの最適化に関する知見 パフォーマンス最適化経験
PyTorchなど主要なフレームワークにおけるランタイム最適化に関する知見 パフォーマンス最適化経験PyTorch
歓迎
機械学習・深層学習ワークロードの最適化に関する実務経験 パフォーマンス最適化経験
PyTorchなど主要なフレームワークにおけるランタイムの開発・改良に関連する実務経験 PyTorch
アクセラレータシステム(GPUなど)の利用及び性能プロファイリングの経験 パフォーマンス最適化経験
InfiniBand や RoCE などの RDMA を使ったソフトウェアの開発経験
ユーザースペースI/Oなどを活用した低オーバヘッドなAPIの設計・実装経験
SSE/AVX などの拡張命令を用いたプログラムの実装経験
Linuxシステムソフトウェアやドライバ開発の実装経験 車載・組込ソフト開発Linux
Go言語によるソフトウェア開発経験 Go
Kubernetesクラスタの利用/構築/運用などの経験 Kubernetes
カンファレンスや勉強会等での発表経験
多人数のチームでのソフトウェア開発経験・OSSコミュニティでのソフトウェア開発経験
各種コンポーネント・レイヤを横断したトラブルシュートやバグ解析・修正の経験 インシデント対応
募集要項
- 雇用形態
- 正社員
- 想定年収
- 応相談
- レベル
- メンバー
- 勤務時間
- 裁量労働制 / 実働8時間
- 休日休暇
- 完全週休2日制 / 祝日休み
- 試用期間
- 3ヶ月