Bernhard Manfred Gruber

Senior System Software Engineer @NVIDIA. CCCL (CUB, Thrust, libcu++, ...) maintainer. WG21 member.

Traunkirchen, Upper Austria, Austria

About

Recently joined NVIDIA's CUDA Core Compute Libraries (CCCL) team to work on making CUDA a delight to use! Working fully remote from the beautiful lake Traunsee in Upper Austria. Currently still finishing my PhD at TU Dresden in high-performance computing with focus on data layout optimization for heterogeneous architectures. Previously worked at CERN as Fellow on industrial controls, and before on industrial software in the CAD/CAM sector at RISC Software in Austria. Strong experience in C++ (15 years, 10 professional), GPGPU programming (mostly CUDA, also OpenCL and SYCL), parallel and concurrent programming, performance optimization, performance portability and heterogeneous code bases, library design, open source workflows, code reviews, refactoring, upgrading legacy code, (automated) testing/QA, cross platform development (Win/Linux), teaching students and training professionals on all levels, 3D geometry, visualization (OpenGL/raycasting). I love teaching C++! Teaching physicists at CERN and internationally via the HEP Software Foundation. Previously taught C++, project engineering and math to students and professionals at the Applied University of Science in Hagenberg. Voting member of ISO C++ committee. Strong desire to deepen involvement and speak at conferences via and for future employer! Curious about C++ tool chains + ecosystem, standard library development, becoming a C++ language lawyer, SIMD, accelerator technologies, emerging system programming languages like Rust, Zig or Val, consulting, part-time university lecturing.

Experience

  • Senior System Software Engineer - CUDA Core Libraries at NVIDIA
    Apr 2024 - Present · 2 yrs 3 mos

    Performance optimization and maintenance of CUDA Core Compute Libraries: CUB, Thrust, and libcu++.

  • Voting WG21 "C++ committee" Member at ISO - International Organization for Standardization
    Mar 2022 - Present · 4 yrs 4 mos

    Member of INCITS (US National Body) representing NVIDIA. Former member of SVN (Swiss Association for Standardization) representing CERN. Regular participant and voting member of WG21 (C++ committee). Focus on concurrency, SIMD, mdspan, data layout, reflection and meta programming.

  • CERN (5 yrs 3 mos)
    • Research Software Engineer and Doctoral Student
      May 2020 - Dec 2023 · 3 yrs 8 mos

      Researching data layout and memory access abstractions on heterogeneous architectures using C++, as member of the experimental physics software group (CERN EP-SFT). In collaboration with Helmholz Zentrum Dresden-Rossendorf, the CASUS institute and TU Dresden. Maintainer of heterogeneous portability (alpaka), data layout abstraction (LLAMA), and SIMD (Vc) libraries. Contributing to ROOT (data analysis), Geant4 (detector simulation), and PIConGPU (GPU particle in cell code). In-house expert on accelerators and parallelization Instructor for C++ at the HEP Software Foundation.

    • Fellow
      Oct 2018 - May 2020 · 1 yr 8 mos

      C++ real-time supervision software for the cryogenic instrumentation and magnet quench protection of the large hadron collider. Embedded C++ firmware with PROFINET, OPC UA, and webserver for cryogenic instrumentation equipment for LHC and ITER fusion experiment.

  • Software Engineer at RISC Software GmbH
    Apr 2013 - Aug 2018 · 5 yrs 5 mos

    C++/Qt cross platform software framework for aircraft pre-design and simulation. Collaboration with Airbus Defense and Space and German Aerospace Center. C++/OpenCL/OpenGL library for simulation, visualizing and collision detection of industrial milling machines, including applied research on tri-dexel representations, surface reconstruction, and GPU-accelerated interactive raycasting. Project management of CAD design software.

  • University Teacher at University of Applied Sciences Upper Austria
    Oct 2017 - Jun 2018 · 9 mos

    Industrial software development with C and C++ and mathematical foundations for software engineering.