We are looking for a Linear algebra and machine learning engineer interested in helping us leverage accelerators to support HPC architectures.
Codeplay is active in building compiler infrastructure, tools, libraries, frameworks, services, and products to enable and accelerate the next generation of research ideas. In the simplest form, improving the workflow has a super-linear impact on research efficiency, as not only does it free up more time - but the extra cognitive space can allow new research ideas to thrive that would otherwise never happen. Many recent breakthroughs in Machine learning research were made possible by the vast amounts of computational power from new hardware accelerators such as GPUs and TPU, and Domain-specific accelerators. As a Linear algebra and machine learning engineer, you will Work on the SYCL-based library development projects, to enhance and expand our Machine learning and lineae algebra software stack for various hardware accelerators and make it easy to use efficiently for our existing/future customers.
The position is permanent and may be based at our head office in central Edinburgh. The successful candidate must be able to demonstrate the right to work in the UK, or be eligible to apply for the right to work, should relocation be an agreed option.
Positions are available at various levels, from entry-level to senior positions, depending on your skills and experience.
Starting salary: Competitive & Negotiable
You will be working in a team towards developing performance-portable SYCL-based Machine learning and linear algebra libraries to provide high-performance solutions for different application domains such as image processing, signal processing, and data transformation systems on different hardware platforms, producing the comparable result with the native vendor-optimized model. The team you will be in works across various projects in our libraries software stack and explores/analyses all components that influence performance: from developing high-performance kernel implementations for the proposed domain to applying optimization techniques such as parameterization and auto-tuning tools for efficiently launching the libraries on various platforms.
- Taking the initiative and assuming responsibility for solving technical problems.
- Delivering documented software and standard methodologies.
- Communicating your ideas, your work, and your results to other team members and product owners.
- Writing accelerators-based kernels like GPUs, that achieve high levels of throughput and efficiency with your implementations.
- Profiling software running on GPUs, using appropriate tools and techniques to find performance issues & bottlenecks.
- Driving multiple stages of software projects - from requirements gatherings to launch and validation.
- Looking for what can be improved, and having a proactive attitude in helping other team members.
- Participating in technical discussions, asking insightful questions, and contributing to scoping schedules, and solutions to issues
- Having an interest in our mission and AI/Machine Learning/linear algebra.
- Contributing to knowledge sharing of the company.
What We Offer
Codeplay is internationally recognized as being at the forefront of software development technology. Working at Codeplay offers unique opportunities and challenges to learn new technologies and to get involved in shaping the software industry. Codeplay's projects range from creating tools and tool sets (optimizing compilers, debuggers, profilers, programming models & APIs, test systems/suites, etc.) for brand-new unannounced next-generation hardware; developing and optimizing current machine learning (TensorFlow™) and computer vision applications; research and development into lowering the power consumption of mobile devices; and contributing to new programming models and software standards (e.g. C++, SYCL™, OpenCL™, Vulkan® and SPIR™-V).
Codeplay Software is a world pioneer in enabling acceleration technologies used in AI, HPC and automotive. Codeplay was established in 2002 in Edinburgh, Scotland and developed some of the first tools enabling complex software to be accelerated using graphics processors. Today, most AI software is developed using graphics processors designed for video games, and more recently specialised AI and computer vision accelerators. Codeplay continues to work with global technology leaders to make the latest complex AI systems programmable using open-standards based programming languages and allows application developers to quickly bring software to the market. Codeplay is also deeply involved with the definition of open standards, especially OpenCL™, SPIR™, SYCL™, and Vulkan™ through The Khronos Group, and MISRA C++ for automotive.
- A friendly and relaxed working environment where colleagues respect and support each other.
- Learn from experienced colleagues: our staff frequently give company-wide knowledge-sharing presentations on new software and technology trends, personal projects and other relevant subjects.
- Great career prospects within a growing company
- We develop our staff to progress quickly in their roles, and to take ownership of business functions, become experts, and/or lead teams. We provide training in skills such as project and people management, networking and delivering effective presentations.
- Newstart mentoring scheme
- Opportunities to attend major worldwide industry conferences and events representing the company
- Flexible working hours
- Pension scheme offering 7% employer contributions
- Full pay whilst on Maternity/Partner or Shared Parental Leave
- Free annual membership for this service: Childcare.co.uk.
- Private healthcare insurance
- Free confidential counselling service
- Frequent company social events (social nights, pot luck lunches, gaming, karting, outdoor adventures, and more) (Post-COVID!)
- For applicants residing in the UK we can also offer in addition to the above benefits:
- Childcare Voucher Scheme (for existing members only)
- Bike2Work Scheme
- Season Ticket loans
The ideal candidate is a self-motivated individual who can work through a problem from start to finish, meet deadlines as required to support software projects, and has the ability to work under pressure. You will be working on technology that is seldom announced to the public and could be several years away from public release, so confidentiality is critical. You should be able to work both independently and collaboratively within teams of varying skill sets and expertise. You should be welcoming towards, and able to adapt to, the introduction of new technologies, responsibilities, and projects, as Codeplay works with cutting-edge technology and takes on a diverse range of projects.
- Familiarity with Linear algebra algorithms such as (, but not limited to, ) BLAS operations, Lapack operations
- Familiarity with data transformation and signal processing algorithms such as (, but not limited to, ) FFT, DFT, TopK, NMS
- Familiarity with Image processing algorithms such as (, but not limited to, )ROI align, Matrix multiplication, Box filter, histogram, image segmentation, Convolution, etc
- Hands-on experience in designing and developing high-performance computing and parallel computing on hardware accelerators
- Experience in designing and implementing solutions to common performance problems
- Understanding of parallel algorithms on different architectures
- Good knowledge of CPU/GPU/Embedded accelerator architectures
- Experience with coding GPUs (CUDA, OpenCL, SYCL).
- Experience with programming in C/C++/Python
- Familiarity with AI frameworks such as PyTorch, TensorFlow, etc
Beneficial Skills (any of)
Knowledge and/or experience of any of the following would be useful for the role, but are not essential. You must be able to learn new skills, but will be given support from Codeplay's team to get you up to speed.
- Familiarity with one or more performance primitive libraries such as NPP, IPP, RPP,
- Experience with debugging GPU performance issues.
- Familiarity with existing SYCL/OneAPI machine learning and Image processing libraries, such as SYCL-BLAS, SYCL-DNN, VisionCpp, oneMKL, oneDNN, ONNXRuntime
- Familiarity with Linear algebra libraries such as Eigen, cuBLAS, cuSolver, ArrayFire, rocBLAS, MAGMA
- Familiarities with AI accelerator architectures such as discrete GPU, Integrated GPU, Embedded Accelerators, or AI-Specialized Accelerators
- Familiarity with Image processing libraries such as OpenCV, scikit-learn, scipy, sikit-image
- Experience in adding/modifying Image processing backend such as OpenCV
- Familiarity with Data transformation libraries such as FFTW, cuFFT
- Experience in adding/modifying data transformation libraries such as FFTW
Any application which results in a job offer is conditional upon the candidate already having or successfully applying for the right to work in the UK. Codeplay is proud to be an Equal Opportunities employer. We celebrate and value diversity. We are committed to creating an inclusive environment for all employees, regardless of race, colour, gender, religion, national origin, ancestry, citizenship, disability, age, sexual orientation or any other characteristic protected by law. All employment is decided on the basis of qualifications, merit and business need and we strongly encourage applicants from all backgrounds and walks of life. We are committed to providing flexible working options such as part-time/compressed hours/timeshifting/remote. If you have a disability or additional need that requires accommodation, just let us know.
The Cover Note/Letter is just as important as your CV/Resume, so please include one, stating why you believe you are a good fit for the position. If you have examples of relevant work or projects, we would love to see them, so please include links to them in your application.
If you have C++ Code Samples (where relevant) please put the link to these on your application; however, should you not have any code samples available then this will not prejiduce your application. Note our system will only accept links to personal projects/GitHub accounts or PDF documents.