company logo

Preferred Networks

Compiler Engineer

コンパイラエンジニア

Tags: Full-time, 4~5 YOE, Business Japanese, Remote

Remote (Remote) / Chiyoda-ku, Tokyo, Japan・Fetched 30+ days ago

Job Description

Job Description / 職務内容
PFNの計算基盤の心臓部である、MN-Coreのソフトウェアスタックの研究開発を行うエンジニアを募集します。

PFNのさまざまな研究開発や事業は、機械学習やシミュレーションを中心とした膨大な計算量によって支えられています。計算基盤の心臓部はアクセラレータであり、PFNでは独自のアーキテクチャにもとづくアクセラレータであるMN-Core™およびその後継であるMN-Core2(開発中仮称)を開発・活用しています。

MN-Coreを用いて事業を加速するためには、コンパイラなどのソフトウェアスタックの開発が非常に重要です。MN-Coreはプロセッサの制御の大半をソフトウェアで事前にスケジューリングすることによって高い効率を出すアーキテクチャを採用しており、ソフトウェアの品質が直接的にアクセラレータの効率を決定づけます。

今後、MN-Coreシリーズの活用を加速するために、継続した研究開発を担うソフトウェアエンジニアを募集します。

本ポジションでは、Pythonで定義されたNN (DL) のコードを、MN-Coreで動作できるようにするプロダクト・ツールを開発するプロジェクトへのアサインを想定しています。具体的には、以下のようなソフトウェア開発に携わることを想定しています

- グラフ最適化コンパイラ
- Numpy-like interface for MN-Core
- 高速なカーネル実装
- コンパイラコア実装(計算グラフを機械語に翻訳していく処理)
- MN-Coreへの高速なデータ供給/前処理
- 社内ワークロードのMN-Coreへのポーティング/高速化作業
これら業務に加え、希望や適性に応じてMN-Core自体のアーキテクチャの検討など幅広く高速な計算機を作る・活用する業務に従事していただくことができます。

PFNでは最先端のDeep Learning向けASICに向けた「実際に使われている」機械学習コンパイラの開発に関わることが出来ます。実際のユーザやハードウェア開発者と非常に距離が近い環境で、世界一の計算機を実際に活用する業務に意欲のある方のご応募をお待ちしています。




We are looking for an engineer to research and develop the software stack for MN-Core, the heart of PFN's computational infrastructure.

PFN's various R&D and business activities are supported by a huge amount of computation, mainly for machine learning and simulation. The heart of the computational infrastructure is the accelerator, and PFN is developing and utilizing MN-Core™, an accelerator based on a proprietary architecture, and its successor, MN-Core2 (under development, tentative name).

The development of software stacks, such as compilers, is critical to accelerating actual projects using MN-Core, which employs an architecture that achieves high efficiency by off-line scheduling by compiler. The quality of the compiler directly determines the efficiency of the accelerator.

To accelerate the utilization of the MN-Core series, we are looking for a software engineer who will be responsible for ongoing research and development.

This position is expected to be assigned to a project to develop product tools that will enable NN (DL) code defined in Python to run on MN-Core. Specifically, the candidate will be involved in the development of the following software

- Graph compiler
- numpy-like interface for MN-Core
- High-speed kernel implementation
- Compiler core implementation (process of translating computed graphs into machine language)
- High-speed data supply/pre-processing for MN-Core
- Porting/accelerating actual in-house workloads to MN-Core

In addition to these tasks, you may also be engaged in a wide range of tasks to create and utilize high-speed computers, such as studying the architecture of MN-Core itself, depending on your desire and aptitude.

At PFN, you will be involved in the development of "real-world" machine learning compilers for cutting-edge ASICs for Deep Learning. We are looking forward to hearing from you if you are interested in working in an environment that is very close to actual users and hardware developers and where you can actually make use of the world's best computing machines.
Qualifications / 応募資格(必須)
該当分野への強いモチベーション
- 「世界最高を目指したアクセラレータ開発」にわくわくする方
- 進歩の速い分野に適応して意欲的に知識を吸収できる方
- 幅広い技術領域への興味

加えて、以下の経験と能力
- 計算機アーキテクチャに関する知識
- 並行処理/分散処理に関する知識と実装経験
- C++11以降の十分な経験
- 最低限の英語スキル(オフラインでの議論は必要に応じて日本語も使いますが、ソースコードやドキュメント、GitHub 上での議論はすべて英語を用います)

Strong motivation for the relevant field
- Those who are excited about "accelerator development aiming for the best in the world"
- Those who can adapt to fast-growing fields and absorb knowledge enthusiastically
- Interest in a wide range of technical fields

In addition, the following experience and skills.
- Deep knowledge of computer architecture
- Experience of concurrency/distributed processing and implementation
- Experience of modern C++ development
- English skills
Preferred Qualifications / 応募資格(歓迎
- 競技プログラミングに関する知識、経験
- 最適化問題に対する知識、実務経験
- 機械学習/深層学習の基礎的なアルゴリズムやワークフローの知識、実務経験
- 複数の深層学習フレームワークの API および実装に関する知識、実務経験
- システムプログラミングの経験、実務経験
- コンパイラに関する知識、実務経験
- 一般的なコンパイラに関する知識
- コンパイラから出力された機械語(アセンブリ)を直接読み書きするような経験など
- Experience of competitive programming
- Experience of optimization problems
- Experience of machine learning/deep learning algorithms and workflows
- Experience of implementations of multiple deep learning frameworks
- Experience of systems programming
- Knowledge of compiler for several architecture
- knowledge about general architecture of compiler
- experience optimizing workload with machine languag
Appeal
- 新しい世界を作り出す仕事に携われる
- 最先端のDeep Learning向けASICに向けた「実際に使われている」機械学習コンパイラの開発に関わることが出来る
- 実際のユーザやハードウェア開発者とも非常に距離が近いため、必要や興味に応じて様々な仕事をすることができる
- 高い技術力を持ったチームメンバーと共に働くことができる
- HWエンジニアと近い距離で、共に議論しながら開発ができる
Salary /賃金
経験、業績、能力、貢献に応じて、当社規定により優遇
Experience, performance, skills, contribution are taken into consideration.
Location / 勤務地
[Otemachi Bldg., 1-6-1 Otemachi, Chiyoda-ku, Tokyo, Japan 100-0004 リモート勤務制度あり (日本国内に限る) / Remote work system available (limited to work in Japan)]