HIGH PERFORMANCE COMPUTING SOFTWARE ENGINEER
Description
We are looking for a candidate to join a team whose goal is to develop a high-performance and energy-efficient software targeting a novel HW-accelerator with thousands of RISC-V cores. You will participate in the design and implementation of different software stack components to materialize state of the art programming models for modern many-core architectures that will support both HPC and Machine Learning use cases, either in functional emulators or in real silicon. You will also be helping in establishing the foundations and processes of a rapidly growing SW team.
Responsibilities
- Have an impact in the team designing and implementing parallel programming models targeting a novel HPC/AI-accelerator.
- Interact with the HPC/AI-accelerator to debug functionality and performance.
- Develop production-quality code cooperating with open-source software stacks.
- Work closely with hardware and software design teams within the company.
- Benchmarking, Performance modelling and analysis.
Minimum Qualifications
- Proficient in software engineering principles (testing methodologies, modularity, best coding practices)
- Knowledge in systems programming, C and modern C++
- Understanding of low-level hardware-software interactions
- Good understanding of parallel programming
- MS in Computer Science or a related technical field
- Business fluent English
Desired Qualifications
- 3+ years of experience developing in C++ and parallel/kernel languages (CUDA/OpenMP/OpenCL/SYCL)
- Basic understanding of LLVM compiler infrastructure
- Good knowledge of profiling & debugging tools/frameworks
- Strong knowledge of processor and SOC architecture
- Understanding of compiler optimizations, vectorization and memory profilers
- Experience in Python or other scripting languages
- Experience with basic GitLab-CI or other CI pipeline flows