Job Description / 職務内容
Preferred Networksでは、NumPy/Scipy互換のインターフェースを持つGPU向けの配列計算ライブラリであるCuPy (https://cupy.dev/)を開発しています。このポジションでは、オープンソース開発者としてCuPyコミュニティに参加し、CuPyの開発やメンテナンスに貢献していただきます。
主な業務内容:
- 新規機能の開発 (例: マルチノード計算のための機能, CuPy JITの機能拡張など)
- CUDA, ROCm, cuDNN, NCCL, NumPy, SciPyなどの最新バージョンをサポートするために必要な修正や拡張
- NumPy/SciPy APIカバレッジの向上
- プルリクエストのレビュー
- ユーザー向けのドキュメントの執筆
- ユーザーからのバグ報告への対応
- GitHubのIssue、Stack Overflow、Gitter、メーリングリストなどのコミュニティフォーラムに寄せられた質問への対応
- ビルドプロセスやCI/CDワークフローの改善を通じたユーザー体験・開発者体験の向上
具体的な内容は、ご経験や希望に応じてご相談の上で決定します。
At Preferred Networks, we are developing CuPy, a Python library that provides GPU-accelerated implementation of NumPy/SciPy features (learn more at https://cupy.dev/). As an open-source developer, you will be working with the CuPy development team and the community to contribute to the development and maintenance of the library.
Specific responsibilities include:
- Develop new features with mentoring from core maintainers, e.g., the enhancement of multi-node/GPU features and CuPy JIT.
- Maintain the library to support the latest libraries: CUDA, ROCm, cuDNN, NCCL, NumPy, SciPy, etc.
- Increase the coverage of NumPy/SciPy-compatible APIs.
- Conduct a code review on pull requests.
- Write documentation for end-users.
- Diagnose bug reports from users and apply any necessary fixes.
- Respond to requests and questions on the community forum, including GitHub issues, Stack Overflow, Gitter chat, and the mailing list.
- Enhance the user/developer experience by improving the build process, CI/CD infrastructure, and workflows.
Qualifications / 応募資格(必須)
必須要件:
- Python 3の1年以上の開発経験
- NumPy/SciPyの利用経験
- Git/GitHubを用いた開発フローに精通していること
- 目的を達成するための手段を自発的に提案する高いモチベーション
- ビジネスレベルの日本語または英語のコミュニケーション能力
Key qualifications:
- 1+ year of experience in development with Python 3.
- Experience with NumPy/SciPy software stack.
- Familiarity with Git and GitHub-based development flow.
- Self-motivated in pursuing goals.
- Business-level communication skills, either in English or Japanese.
Preferred Qualifications(歓迎要件)
歓迎要件:
- CUDAの経験 (CUB/ThrustやcuBLAS等のライブラリの利用経験やCUDA C/C++での開発経験)
- Cythonを用いた実装の経験
- 科学技術計算のオープンソースプロジェクトへのコミット経験
- Python/C++プロジェクトにおける高いデバッグ能力
- ROCm/HIPでの開発経験
- MyPyを用いたPythonの静的型付けの経験
- GPU計算の性能向上に取り組んだ経験
- 計算機科学およびその関連分野の学士号、修士号、博士号
The following experiences will set you apart from other candidates:
- Experience with CUDA (using libraries such as CUB/Thrust/cuBLAS or programming in CUDA C/C++)
- Coding in Cython.
- Contributions to science-related open-source projects.
- Strong debugging skills in Python/C++ projects.
- Development on ROCm/HIP platform.
- Static type checking using MyPy.
- Performance improvement with GPU computing.
- Bachelor’s Degree, Master’s Degree, or Ph.D. in Computer Science or related field.
Contents in resume
-
レジュメのフォーマットは一般的な履歴書に従う必要はありません。これまで参加したプロジェクト、アルバイト/インターン、執筆した論文、公開している実装等について自由にお書きください。
-
自身の技術ブログ、GitHubリポジトリ、オープンソースプロジェクトでの貢献などがあればリンクを記載してください。
-
The format of your resume does not need to follow any particular one. To help us understand as much as possible about you, please write about projects you have participated in, part-time jobs/internships, papers you have written, implementations you have published, etc.
-
Please include links to your own technical blogs, GitHub repositories, and contributions in open source projects, if any.
Location / 勤務地
リモート勤務 (日本国内に限る) / Remote work (limited to work in Japan)
必要に応じて大手町オフィス / PFN Office (Otemachi, Tokyo) when necessary