Software Engineer - GPU performance

1 Week ago • All levels • Research & Development

About the job

SummaryBy Outscal

Must have:
  • Experienced with Low-level CUDA APIs
  • Strong C++/C fundamentals
  • Adept with Visual Studio
  • Low-level performance analysis and optimization
  • Understanding of GPU HW architecture
  • Proficiency with GPU profiling tools
  • Optimizing Time Continuous kernels
  • Designing Pipelined Image processing CUDA core optimization
  • Dynamic Load balancing between kernels and functions
  • Interleaving processing between CPU and GPU
  • Experience with NvidiaDirect
  • Constructing Direct Visualization of GPU Memory
  • Designing and optimizing foundational neural networks
  • Understanding of GPU-based application development
  • Knowledge of CUDA
  • State machine architecture
  • Realtime computing
  • Memory architectures and optimizations
  • MIMD, SIMD
Good to have:
  • Experience with Compiler working and construction
  • CPU architectures – x86, x64 & ARM
  • Hardware-associated driver development
  • OS and layers (Board Support Packages, BIOS, UEFI, BootLoader)
  • UI-based deployable application development
  • Exposure to Omniverse
Not hearing back from companies?
Unlock the secrets to a successful job application and accelerate your journey to your next opportunity.

About the job

About CynLr

Just like a baby’s brain, CynLr Visual Intelligence stack makes Robots to instinctively see & pick any object under any ambience, without any training. (a demo video link).


Today, we don’t have a robot that can fit a screw into a nut without slipping a thread. Imagine what it would take for a robot to assemble a Smartphone or a car by putting together 1000s of parts with varied shapes and weights, all in random orientations. Thus factories become complex, needing heavy customization of their environment.


CynLr enabled visual robots intuitively handles any object, even from a clutter – a universal alternative to custom machines, simplifying factory lines into modular LEGO blocks of micro-factories. Simplifying factories with robots that can pick & place any object has been a 40 year old pipe dream - touted as The Holy Grail of Robotics.


As a GPU developer, you will be responsible for building and translating the entire Vision Algorithm & Learning SW Stack into a performance-optimized code block and build mathematical models that are better represented in GPU.


Requirements in Practice:

  • Experienced with Low-level CUDA API
  • Strong with fundamentals of C++/C.
  • Adept with Visual Studio developer toolchain.
  • Experience in low-level performance analysis and optimization with a strong understanding of the GPU HW architecture and HW-oriented performance optimization.
  • including proficiency using GPU profiling tools such as NVIDIA Visual Profiler, NVIDIA Nsight Compute and Graphics Developer tools for debugging
  • Optimizing Time Continuous kernels - not just High-Level Kernel optimizations that are shipped with CUDA.
  • Design the framework of Pipelined Image processing
  • CUDA core optimization to achieve maximum performance for a pipelined processing between multiple blocks of functions executing simultaneously.
  • Dynamic Load balancing between kernels and functions.
  • Interleaving processing between CPU and GPU and runtime modification of GPU processing control flow from CPU.
  • Practice with NvidiaDirect to access memory directly from Peripheral devices (PCIe), Display and USB, bypassing the CPU
  • Practice with constructing Direct Visualization of GPU Memory for Debugging without CPU transfer
  • Experienced with designing and optimising foundational neural networks and modelling neurons (basically optimizing mathematical models that involve time-weighted kernels) ground up.
  • Exposure to Omniverse is a Plus


Must have an understanding of :

  • GPU-based application development. Knowledge of CUDA (Excellency is not necessary)
  • State machine architecture
  • Realtime computing
  • Memory architectures and optimizations.
  • MIMD, SIMD


Good to have experience and practice with

  • Compiler working and construction.
  • CPU architectures – x86, x64 & ARM
  • Hardware-associated driver development.
  • OS and layers (Board Support Packages, BIOS, UEFI, BootLoader)
  • UI-based deployable application development



Team Structure:

The engineering team will comprise of – Algo Team, GPU Team, SW Dev Team & HW Team. Members of other teams will be passive members of each team apart from the team they lead. The Algo Team will provide the Neural Models & Vision algorithms, while the GPU Team will provide the GPU optimizations for the algos, HW team will provide the HW integration and SW team with translate GPU optimized algos into SW blocks. Each team will split the implementation among other teams and guide them through the implementation. Every team member will be a passive member of all other teams.


What will you do?

Simplistically put – you will think all the algorithms that the Neuroscience team comes up with through GPU for maximum performance. You will break down the entire pipeline of processing that imitates the visual pathway into optimized blocks and kernels of processing in GPU. You will meticulously discover the mathematical models that gives the maximum timing performance for every Neural Model/algorithm that the Vision and Neuro team comes up with.

You will also be building some aspects of Debugging, profiling and Image visualizing tools for GPU.


How will you Do?

You have complete freedom here, but you will be subjected to reviews. Since this is a startup and the product is not yet well-defined, you would be the one with the responsibility of defining it. Expect things to be not orderly and requirements to not be solid. Part of your design effort largely involves requirements building too and developing architectures that are agnostic to such requirement changes. The SW part of the product significantly evolves as per your thought process and will henceforth carry your signature in it.

You will also be building a team as the product evolves to maintain and develop further. Though confined to a focused area, the work is pretty much expected to be entrepreneurial with the exact advantages and difficulties of a startup.

View Full Job Description

About The Company

Karnataka, India (On-Site)

Karnataka, India (On-Site)

Karnataka, India (On-Site)

View All Jobs

Level Up Your Career in Game Development!

Transform Your Passion into Profession with Our Comprehensive Courses for Aspiring Game Developers.

Job Common Plug