Description
Innovative Physics Ltd (IPL) is a small dynamic company working at the forefront of physics technology. The company designs and builds and integrates complex solutions that are built from its own range of intellectual property and integrated into its customers' systems.
About Position
Assist in developing architecture and design of high throughput/high-performance GPU based signal processing workflow. Primary system to be developed is centred around a high-speed data capture card, 100MS/s, capturing pulse data from various radiation measurement kit. The captured data is to be processed using multiple GPUs. Hence, develop C++ CUDA based signal processing algorithms and time-critical control functions, based on a Linux platform.
Required Skills
- 8+ years of relevant experience in computer or software engineering
- Experience developing applications for GPU using CUDA
- Experience that includes testing and debugging in C++ on Linux environments
- BS or BA degree in a STEM degree including Computer Science, Computer Engineering, Electrical Engineering, Mathematics, Software Engineering, or related. Advanced degree desirable.
Desirable Skills
- Domain knowledge working and understanding of parallelism and concurrency as applied to algorithm implementation on shared memory multi-GPU systems.
- Direct experience implementing complex signal processing algorithms in C++ meeting latency and throughput performance requirements and/or experience in implementing complex control operations in software with defined performance timelines
- Experience in Software Tools: Continuous integration and test experience in a hardware/software laboratory environment.
- A high degree of creativity and ability to solve a wide range of difficult problems Strong communication skills
- Ability to work independently and in a teamy
Position Summary
- Lead in developing architecture and design of high throughput/high-performance computing platforms using high-speed data capture
- Work with systems, hardware, FPGA, and software engineers to understand end-user requirements and apply implementation on new and established processing platforms.
- Develop C++ implementation of signal processing algorithms and time-critical control functions involved in direct control of sensor systems in Linux or Unix operating system
- Develop robust, scalable, performance-driven software to be deployed on large scale computing systems
- Improve code quality by supporting software integration, verification and performing code reviews