We're looking for engineers who will help us deliver AI-based compression to end-users by porting our codec from GPU-based systems to (primarily) mobile platforms, thus going from research to production. You'll enjoy working with low-level code and are comfortable with programming across multiple platforms. The ideal candidate will have a deep understanding of optimisation methodologies to reduce runtime and memory footprint for neural networks and has experience with taking algorithms from research to deployment on edge devices. Responsibilities:
- Work in a team to port ML research algorithms to edge devices with a focus on smartphones (Android, iOS).
- Profile various algorithms to analyse performance and identify any bottlenecks. Profiling includes data loading, data movement, data caching, operation count, execution chipset, warm-up latency and others.
- Implement solutions to the identified bottlenecks.
- Optional: Write custom operations using the low-level API for Android (OpenGL ES) and iOS (Metal) systems.
- Optional: Apply standard neural network runtime optimisation methods such as pruning, low-bit quantisation, architecture tuning, batching and others.
- At a minimum, a Bachelor's degree in computer science or related field (Mathematics, Physics, Engineering).
- At a minimum, 4-6 years of experience in performance optimisation.
- Some formal training in machine learning; either through education, work experience and/or extensive private projects. Resulting in an understanding of ML frameworks such as PyTorch and/or Tensorflow.
- Expertise in Python (Expert) and C++ (Semi-Expert)
- Some experience with ML-programming in either Android and IOS: Android Studio, XCode, Google ML, Core ML.
- Some experience with optimisation techniques. Examples include SIMD (SSE, AVX), vectorisation, loop dependencies, multithreading, multi-processor usage and tensor cores.
- A strong machine learning background
- Significant experience with ML-programming in either Android and IOS: Android Studio, XCode, Google ML, Core ML. Knowledge of the development stack for Android and iOS.
- Experience with Android NNAPI and or other Android-based NPU SDKs (Exynos, Hexagon HiSilicon).