← Takaisin työpaikkoihin

Principal HPC Software Engineer

  • Etätyö
  • Suomi
  • Englanti
  • Julkaistu 03.09.26 18:00

Principal HPC Software Engineer – CPU/GPU Heterogeneous Computing & Kernel OptimizationLocation: EuropeWorking Model: Remote / Flexible within EuropeLevel: Senior / PrincipalAbout the OpportunityOur client is developing high-performance engineering software for large-scale numerical simulation, CAE and AI-enabled scientific computing.As part of the development of its next-generation computing platform, the company is looking for a highly experienced HPC Software Engineer specialising in CPU/GPU heterogeneous computing, parallel computing and low-level kernel optimisation.This is a deep software engineering position focused on extracting maximum performance from modern CPU and GPU architectures.The successful candidate will develop and optimise computational kernels, numerical operators and parallel computing infrastructure used by large-scale engineering and simulation applications.ResponsibilitiesDesign and develop high-performance numerical software for heterogeneous CPU/GPU computing environments.Develop and optimise low-level computational kernels and numerical operators.Port and optimise computational workloads across CPU and GPU architectures.Develop highly parallel algorithms for engineering and scientific computing applications.Optimise memory access, data layout, cache utilisation and CPU/GPU data transfer.Develop and optimise CUDA, HIP, SYCL or equivalent GPU kernels.Analyse and improve kernel performance including occupancy, warp utilisation, memory coalescing and compute efficiency.Optimise CPU implementations using multithreading, SIMD and vectorisation.Develop scalable numerical components for large-scale CAE and simulation applications.Optimise sparse and dense linear algebra operations.Develop acceleration technologies for numerical solvers and scientific computing workloads.Profile complex applications and identify CPU, GPU, memory and communication bottlenecks.Design reusable high-performance computing libraries and software components.Support multi-GPU and distributed computing architectures where required.Work closely with numerical solver, CAE, AI and software architecture teams.Contribute to technical architecture, performance engineering standards and long-term platform strategy. RequirementsDegree in Computer Science, Computational Science, Applied Mathematics, Physics, Engineering or a related discipline.Strong professional experience in high-performance computing or performance-critical software development.Excellent C/C++ programming skills.Strong experience with GPU programming using one or more of:CUDAHIP / ROCmSYCL / DPC++oneAPIOpenCLStrong understanding of CPU/GPU architecture and heterogeneous computing.Deep knowledge of parallel programming concepts.Strong understanding of memory hierarchy, caching, bandwidth and compute optimisation.Experience developing and optimising performance-critical computational kernels.Experience with profiling and performance analysis. Highly DesirableExperience with:CUDA kernel optimisationGPU kernel fusionshared/global memory optimisationmemory coalescingwarp-level programmingoccupancy optimisationSIMD / SIMTAVX / AVX2 / AVX-512vectorisationNUMA optimisationExperience with OpenMP, MPI, OpenACC or distributed parallel computing.Experience with multi-GPU computing.Experience with numerical and scientific computing libraries such as:cuBLAScuSPARSEcuSOLVERCUTLASSMKL / oneMKLrocBLAS / rocSPARSEExperience with sparse matrix computations and numerical linear algebra.Experience developing or optimising:sparse matrix-vector multiplicationsparse matrix-matrix multiplicationGEMMiterative linear solverspreconditionersfinite element operatorsExperience with performance tools such as:NVIDIA Nsight ComputeNVIDIA Nsight SystemsIntel VTuneIntel AdvisorrocprofExperience with Triton or custom AI/ML operators would be advantageous.Experience working on CAE, CFD, FEM, computational mechanics or scientific simulation software would be highly valuable.Ideal BackgroundWe are particularly interested in engineers who have developed high-performance computing infrastructure, numerical libraries, solver technology or performance-critical scientific software.Strong candidates may come from HPC software companies, semiconductor/GPU companies, CAE or simulation software vendors, scientific computing organisations, supercomputing centres or advanced engineering software R&D teams.This role is particularly suited to engineers who enjoy working close to the hardware and have demonstrated the ability to significantly accelerate real-world numerical workloads through architecture-aware software optimisation.