Job Title: Senior Member of the Technical Staff (Software Engineer)
Job Duties:
-
- Develop design specifications for mapping machine learning and linear algebra kernels to the Cerebras WSE System using various parallel programming algorithms and techniques.
- Develop and debug a software library of highly optimized Low-Level Assembly instructions and C-like domain specific programming language routines utilizing SIMD vectorization and other key architectural features of the Cerebras WSE.
- Design efficient distributed computing algorithms by overlapping the computation and communication routines of the processing elements and establishing efficient memory access optimizations across the memory hierarchy.
- Develop unit and system testing methodologies using C++ and Python to verify the correct functionality and performance of kernel libraries.
- Conduct a performance analysis of the software library and develop reference performance models of the kernels using C++ and Python.
- Develop CPU or host side kernels using MPI and OpenMp parallel programming frameworks for efficient host and WSE operations.
- Study emerging trends in distributed and shared memory parallel programming methodologies to address computational challenges of state-of-the-art deep learning and scientific computing applications and map them to the Cerebras WSE architecture.
- Interact with chip and system architects to optimize instruction sets, microarchitecture, and IO of next generation systems.
- Collaborate with other parts of the software stack and systems teams to efficiently integrate the software library into popular ML frameworks like PyTorch and TensorFlow.
Minimum Requirements:
Master’s degree or foreign equivalent degree in Computer Engineering, Computer and Information Science, Computer Science, Computer Architecture, or a related field and 1 year of work experience as a Research Assistant, High-Performance Computing Research Engineer, Senior Software Engineer, Software Engineer, Senior Member of the Technical Staff (Software Engineer), or a related occupation required. Employer accepts full-time or equivalent part-time experience (including academic research experience) gained before, after or during graduate studies.
Required Skills:
-
- Low-level assembly programming and debugging techniques;
- C, C++, Python, PyTorch and TensorFlow;
- OpenMP for shared-memory parallel programming;
- MPI (Message Passing Interface) for distributed-memory programming;
- Memory access optimization using loop tiling;
- SIMD vectorization;
- Profiling and performing performance analysis of high performance computing applications; and
- Optimizing linear algebra operations for applications in deep learning and scientific computing.
Additional Information:
Employer’s name: Cerebras Systems Inc.
Job site: 1237 E Arques Avenue, Sunnyvale, CA 94085
Telecommuting permitted
Salary Range: $220,000.00 per year to $245,000.00 per year
If you are interested in applying for this position, please apply online on this web page or mail resume to HR at Cerebras Systems Inc., 1237 E Arques Avenue, Sunnyvale, CA 94085. Please reference Job # 136 on resume or cover letter.
Apply for this Job
*Required