11 IOWeb3 Jobs
CUDA Developer - C/C++ Programming - Parallel Computing (5-7 yrs)
IOWeb3
posted 1mon ago
Key skills for the job
Job Description
We are seeking a highly skilled and motivated CUDA Developer with at least 5+ years of software development experience, including a minimum of 2 years in CUDA development. The ideal candidate should have a strong foundation in parallel computing, performance optimization, and be proficient in C/C++.
As a CUDA Developer, you will be responsible for optimizing performance, resolving CUDA-related issues, and continuously improving algorithms through parallelization.
This role requires immediate joining and involves working closely with a cross-functional team to deliver high-quality, efficient, and scalable solutions. If you are passionate about cutting-edge technologies, problem-solving, and optimizing code for performance, we would love to hear from you.
Key Responsibilities:
Performance Optimization & Problem Solving :
- Identify and resolve performance bottlenecks and bugs related to CUDA and parallel computing.
- Analyze and enhance algorithm performance through efficient parallelization and code optimization techniques.
- Troubleshoot and debug CUDA-specific issues to ensure efficient execution of parallel tasks.
CUDA Development & Algorithm Enhancement :
- Write, test, and optimize CUDA kernels to ensure high-performance execution on NVIDIA GPUs.
- Leverage CUDA libraries like cuBLAS, cuDNN, and other relevant frameworks to accelerate compute-heavy workloads.
- Ensure that code adheres to best practices in terms of scalability, maintainability, and performance.
Collaboration & Knowledge Sharing :
- Work closely with other team members (i.e. software engineers, data scientists) to design and implement high-performance applications.
- Stay updated with new developments in the field of CUDA, parallel computing, and high-performance computing (HPC).
- Provide support and guidance to junior developers on best practices for CUDA and parallelization.
Performance Tuning :
- Analyze and profile GPU performance, utilizing tools such as NVIDIA Nsight and CUDA Profiler to measure performance gains.
- Continuously optimize memory usage, compute efficiency, and algorithm design for CUDA-based applications.
- Ensure the scalability of applications by optimizing for both single-GPU and multi-GPU setups.
Documentation & Reporting :
- Maintain clear and concise documentation for all CUDA-related code and optimizations.
- Provide regular reports on the progress of performance improvements, including benchmarks and optimization results.
Required Qualifications :
- Bachelor's degree in Computer Science, Computer Engineering, or a related field.
- 5+ years of software development experience, with at least 2 years of hands-on experience in CUDA development.
- Strong proficiency in C/C++ programming languages.
- Expertise in CUDA version 12.0 or above (12.3 preferred).
- Familiarity with CUDA libraries and frameworks such as cuBLAS, cuDNN, and Thrust.
- Solid understanding of parallel computing concepts, GPU architecture, and high-performance computing (HPC).
- Strong experience in performance tuning and optimizing GPU-based applications.
- Ability to analyze and improve algorithms for parallel execution.
- Good communication skills and the ability to work effectively in a collaborative team environment.
- Strong problem-solving and troubleshooting skills with an ability to work independently.
Preferred Skills :
- Familiarity with multi-GPU programming.
- Experience with other parallel computing tools and libraries such as OpenCL or MPI.
- Experience working with NVIDIA GPUs and CUDA-related toolchains.
- Knowledge of machine learning frameworks (i.e., TensorFlow, PyTorch) that utilize GPU acceleration
Functional Areas: Software/Testing/Networking
Read full job description