Kernel Engineer — Scientific Computing (SPU)
Vorticity Inc. · Redwood City, CA · Yesterday
On-siteEngineeringFull-time
Responsibilities
- Prototyping and implementing core kernels and low-level numerical primitives for the SPU.
- Translating mathematical formulations into executable, performance-relevant kernel implementations.
- Analyzing and optimizing memory-access patterns, including coalescing, locality, shared memory usage, cache behavior, register pressure, and host-device data movement.
- Collaborating closely with hardware architects to evaluate algorithm–architecture tradeoffs around memory hierarchy, synchronization, vector/SIMT execution, instruction behavior, and parallel scheduling.
- Working with compiler and runtime teams to ensure kernels map cleanly to the SPU programming model.
- Designing microbenchmarks, correctness tests, numerical accuracy tests, and performance models, then iteratively refining kernels based on hardware evolution, compiler behavior, profiler output, and measured performance.
Core Skills
- Strong applied mathematics and scientific computing judgment, with the ability to understand numerical workloads deeply enough to implement them correctly and efficiently.
- Strong proficiency in C++ and CUDA, HIP, SYCL, or an equivalent accelerator programming model.
- Experience writing custom kernels, not just using existing frameworks or vendor libraries.
- Ability to translate mathematical formulations into low-level implementations while balancing accuracy, stability, precision, data movement, and performance.
- Deep understanding of GPU execution and memory hierarchy, including global memory, shared memory, registers, caches, coalescing, atomics, reductions, scans, warp-level execution, and occupancy.
- Experience using profiling and performance tools to identify bottlenecks, test hypotheses, and validate improvements.
- Ability to reason from profiler output to concrete code changes, rather than treating performance debugging as guesswork.
- Solid concurrency fundamentals, including race conditions, atomicity, synchronization, and thread/process execution behavior.
Nice To Have Skills
- Familiarity with performance analysis tools or modeling techniques (profilers, roofline models)
- Experience in applied scientific domains such as physics, geophysics, CFD, climate, materials, fusion, or finance.
- Experience with low-level GPU assembly or intermediate representations.
- Familiarity with low-level system software or drivers.
Non-Technical Qualities
- Excellent written and verbal communication skills
- Strong ability to work independently and collaboratively in a team.
- Comfort operating in an early-stage environment where the hardware, compiler, and software stack are evolving together.
- Willingness to put in the hard work needed to bring the SPU to life.
- Above all: low ego.