Description
Our work at NVIDIA is dedicated towards a computing model focused on visual and AI computing. For two decades, NVIDIA has pioneered visual computing, the art and science of computer graphics, with our invention of the GPU. The GPU has also shown to be spectacularly effective at solving some of the most complex problems in computer science. Today, NVIDIA's GPU simulates human intelligence, running deep learning algorithms and acting as the brain of computers, robots and self-driving cars that can perceive and understand the world.
We are looking to grow our company and teams with the smartest people in the world and there has never been a more exciting time to join our team!
As a Developer Technology Engineer, you will focus on CUDA performance optimization for workloads such as seismic processing (e.g., imaging/inversion pipelines), reservoir simulation, power grid simulators, and related HPC/AI production workflows. You will work hands-on with customer and partner engineering teams as well as NVIDIA product and engineering groups to deliver measurable speedups and scalable performance on multi-GPU and multi-nodes systems.
Key responsibilities include:
- Profiling, analyzing, and optimizing GPU-accelerated applications with emphasis on CUDA kernels, memory movement, concurrency, and end-to-end throughput.
- Driving performance improvements across the stack:
- Cuda C++ kernel optimization, launch configuration, memory hierarchy, streams/events
- GPU libraries (as applicable): cuBLAS, cuFFT, cuSPARSE, cuSOLVER, NCCL
- Multi-GPU and multi-nodes scaling using MPI+NCCL, CPU/GPU overlap, communication patterns
- Building reproducible benchmarks, performance reports, and tuning recommendations (before/after, methodology, scaling curves).
- Developing and maintaining reference implementations, examples, and/or patches to customer code to enable performance and portability.
- Supporting customer engagements (POCs to production), including debugging correctness/performance issues and advising on best practices for deployment (containers, schedulers, clusters).
- Collaborating with internal teams to file actionable issues, validate fixes, and influence roadmap based on real customer requirements in Energy.
- Building internal libraries and reusable code that would lead to future NVIDIA products.
Requirements include:
- BS/MS (or equivalent experience) in CS/CE/EE/Physics/Applied Math or related field.
- Strong programming skills in C/C++ and Python on Linux.
- Hands-on experience with CUDA programming and GPU performance optimization concepts.
- Experience profiling and debugging performance using tools such as NVIDIA Nsight Systems/Nsight Compute (or equivalent).
- Understanding of parallel computing and performance fundamentals (vectorization, threading, NUMA, memory bandwidth/latency).
- Ability to communicate technical findings clearly to both engineers and non-engineers.
- 5+ years relevant experience in GPU/HPC optimization; strong track record of delivered speedups and scaling improvements.
Preferred qualifications include:
- Leads performance reviews with customers stakeholders; creates reusable playbooks/referenced designs.
- HPC experience with MPI, distributed systems, and multi-node performance tuning.
- Energy/HPC domain exposure:\ * Seismic processing pipelines, RTM/FWI-style patterns, FFT/stencil/linear algebra heavy codes
- Reservoir simulation (sparse/iterative solvers), preconditioning, domain decomposition
- Power grid simulation/transient stability/optimization workflows
- Experience with CI/perf regression testing, containerized workflows (Docker/Apptainer), and schedulers (Slurm).
- Familiarity with AI workflows used alongside simulation (data prep, training/inference integration, pipeline performance).
If you're creative and autonomous, we want to hear from you!