NPU Library Software Engineer
Rebellions
Job Summary
This role involves designing and enhancing compute libraries for neural network operations, focusing on functional coverage and performance optimization on Rebellions' proprietary ISA. Key qualifications include a Master's degree in EE/CS, deep knowledge of neural network operations, strong troubleshooting and optimization skills, and proficiency in C++ and Python.
Must Have
- Master's or higher degree in Electrical Engineering, Computer Science, or a related field
- Thorough knowledge of neural network operations, from high-level concepts to low-level computation flow
- Excellent troubleshooting, problem-solving, and in-depth optimization skills
- Proficiency in C++ and Python programming languages
Good to Have
- Thorough knowledge of deep learning models for various applications, including vision, language, speech, etc.
- Experience in model/layer-level customization in terms of computation efficiency (e.g., sparsity, reduced precision, layer decomposition, etc.)
- Experience in architecture-specific parallel programming to accelerate target operations (e.g., SSE/AVX in x86, NEON in AArch, CUDA/OpenCL in GPU, etc.)
- A major in computer architecture field is preferred
Job Description
Responsibilities and Opportunities
- Designing a compute library (such as blas, dnn, etc.) composed of various neural network operations, which are being accelerated on the rebellions' proprietary instruction set architecture (ISA)
- From a functionality perspective, enhancing the functional coverage of each operation by considering operation-specific constraints (e.g., tensor shape variation, precision loss handling, etc.)
- From a performance perspective, enhancing the utilization of the computational units in heterogeneous compute resources by considering operation-specific characteristics
Key Qualifications
- Master's or higher degree in Electrical Engineering, Computer Science, or a related field
- Thorough knowledge of neural network operations, not only for the high-level concepts but also for the low-level computation flow
- Excellent troubleshooting, problem-solving, in-depth optimization skills
- Proficiency in programming languages: C++, Python
Ideal Qualifications
- Thorough knowledge of deep learning models for various applications, including vision, language, speech, etc.
- Experience in model/layer-level customization in terms of computation efficiency (e.g., sparsity, reduced precision, layer decomposition, etc.)
- Experience in architecture-specific parallel programming to accelerate target operations (e.g., SSE/AVX in x86, NEON in AArch, CUDA/OpenCL in GPU, etc.)
- A major in computer architecture field is preferred
Application Process
- Document screening - On-line interview - On-site interview - Culture-fit interview - Compensation negotiation - Final acceptance
- The application process may vary by job, and may change depending on the schedule and circumstances.
- Application schedule and results will be individually notified via the email address provided during application.
Notes
- This announcement may close early if recruitment is completed.
- If there are false facts in the application, acceptance may be canceled.
- Recruitment may be restricted if legal qualifications required for recruitment and job performance are not met.
- Being a person of national merit or a person with a disability does not cause any disadvantage in the recruitment process.
- The scope of duties may be changed considering the candidate's overall career, experience, and other circumstances. If such a change is necessary, it will be communicated with the candidate at an appropriate time before the final acceptance notification.
- For recruitment-related inquiries, please contact the email address below.
- recruit@rebellions.ai
8 Skills Required For This Role
Problem Solving
Cpp
Talent Acquisition
Game Texts
Cuda
Opencl
Deep Learning
Python