Data Analytics is one of the rapidly growing fields in GPU accelerated computing. Data preprocessing and data engineering are traditionally CPU based and are becoming the bottleneck for Machine Learning (ML) and Deep Learning (DL) applications, as performance of the frameworks and core ML/DL libraries has been highly optimized leveraging GPUs. Many of today’s applications have complex data analytics pipelines that can benefit from optimizations in memory management, compression, parallel algorithms like sort, search, join, aggregation, groupby, scaling up to multi GPU systems, and scaling out to many nodes. Take a look at some of the open-source projects that our Devtech team have worked on:
NVIDIA nvcomp (https://developer.nvidia.com/nvcomp),
NVIDIA Distributed join (https://www.nvidia.com/en-us/on-demand/session/gtcsj20-s21482/),
NVIDIA cuCollections (https://github.com/NVIDIA/cuCollections)
What you will be doing:
In this role, you will research and develop techniques to GPU-accelerate applications across data analytics domains, e.g., ETL, ML, graphs, etc., and intersecting with DL.
Work directly with key customers to perform in-depth analysis and optimization of complex data intensive workloads to ensure the best possible performance on current and next-generation GPU architectures.
Collaborate with libraries, tools, system software architecture, hardware, and research teams at NVIDIA to influence the design of next-generation programming models, software, and architectures.
What we need to see:
A Bachelors, Masters or PhD in Computer Science, Computer Engineering, or related computationally focused science degree (or equivalent experience)
At least 3+ years of relevant work or research experience.
Programming fluency in C/C++ with a deep understanding of algorithms and software design.
Experience with parallel programming, e.g., CUDA, OpenACC, OpenMP, MPI, pthreads, TBB, etc.
In-depth expertise with computer architecture fundamentals, especially memory subsystem.
Good communication and organization skills, with a logical approach to problem solving, and prioritization skills.
Ways to stand out from the crowd:
Domain expertise in data analytics, e.g., ETL, ML, graph applications .
Experience optimizing the performance of distributed systems and frameworks, Spark highly desired.
Background with compression, storage systems, networking, and distributed systems.
Experience with linear algebra and machine learning applications.
Graduate degree in Computer Engineering, Computer Science, or related engineering discipline.