Software Engineer, Parallel Scientific Computing
Core
Develop and optimize core computational kernels for custom Scientific Processing Units (SPUs) to run scientific applications across simulation, emulation, and real hardware.
Role type
Senior IC parallel scientific computing engineer
Builds
High-performance scientific computing kernels and reference implementations for custom SPU architecture
Domain
High-Performance Computing (HPC) / Custom Silicon Architecture
Required skills
C++ (CUDA C++), Python, Linux, parallel programming, numerical algorithms, computer architecture, performance profiling, kernel optimization
Preferred skills
CUDA C++ experience, experience with finite-difference time-domain methods, computational fluid dynamics, electromagnetic wave propagation
Technologies
C++, Python, Linux, CUDA, proprietary SPU SDK
Responsibilities
Develop high-level reference implementations from mathematical descriptions; Implement and parallelize applications using proprietary SDK; Optimize performance-critical kernels; Profile and benchmark to identify bottlenecks; Collaborate on co-designing software and hardware solutions; Write technical documentation
Seniority
Senior, hands-on IC
