We are looking for a Research Engineer who is interested in helping us leverage accelerators to support AI research.
Codeplay R&D 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 AI research were made possible by the vast amounts of computational power from new hardware accelerators such as GPUs and TPU, and AO related accelerators. As a Research Engineer, you can help us enhance and expand our AI software stack for various hardware accelerators and make it easy to use efficiently for our existing/future customers.
Codeplay research relies on enabling Codeplay products on exciting/new hardware platforms and developing new ideas that can be later converted into products. The future of hardware is heterogeneous, with combinations of CPUs and accelerators, with ad-hoc software layers & APIs to program them. They can be hard to use effectively. Your job is to work across the backend of our HPC/AI software stack to enable our technologies to make faster progress towards our mission. You will look at all components that influence performance: from HPC and AI frameworks to compilers, to hardware and even distributed computing and networking.
- Taking the initiative and assume responsibility for solving technical problems.
- Working well within teams on multi-person software projects and/or on open-source projects.
- Documenting software and standard methodologies.
- Communicating your ideas, your work, and your results to team members, team leaders and senior managers.
- Writing accelerators-based kernels like GPUs, that achieves high levels of throughput and efficiency with your implementations.
- Profiling software running on GPUs, using appropriate tools and techniques to find performance issues & bottlenecks.
- Working towards expanding state-of-the compiler graph technologies for AI to target different architecture/languages
- 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 our researchers
- Participating in technical discussions, asking insightful questions, and working with the team to pull together scoping, schedules, and solutions to issues
- Having an interest in our mission and AI/Machine Learning.
- Writing papers, technical reports, presentation
- Hands-on experience on compiler technologies
Please Note: Due to COVID-19 we are following the Scottish Government Roadmap and, although we are operating normally, the office is closed and we are all working from home.
The successful candidate should be able to work from home for the duration of the office closure. 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. Fully remote working is also an option for this position.
What We Offer
Codeplay 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.
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 toolsets (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).
- 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
- EMI Stock Option Scheme
- Pension scheme offering 7% employer contributions
- Private healthcare insurance
- Free confidential counseling service
- Frequent company social events (social nights, pot luck lunches, gaming, karting, outdoor adventures, and more) (Post-COVID!)
- For applicants relocating to Edinburgh, Scotland: in addition to the above benefits :
- Childcare Voucher Scheme (for existing members only)
- Bike2Work Scheme
- Season Ticket loans
- Master or Ph.D. degree in Computer Science/Applied physics, a related technical field, or equivalent practical experience.
- Hands-on experience in writing and optimizing custom computational kernels for GPUs/Accelerators.
- Hands-on experience in designing and developing new approaches for high-performance computing and parallel computing on hardware accelerators
- Experience in designing and implementing solutions to common performance problems
- Experience in writing papers/technical reports/presentation
- Experience in giving talks/presentations in conferences/workshops both internally and externally
- Understanding of parallel algorithms on different architectures
- Good knowledge of CPU/GPU/Embedded accelerator architectures
Beneficial Skills (any of)
- You might have experience using these tools or extending and modifying them.
- You might have experience writing distributed GPU applications, using MPI, and debugging performance issues with such applications.
- Having publications in a related technical field.
- Experience with programming in C/C++.
- Experience with coding GPUs (CUDA, OpenCL, SYCL).
- Experience with large distributed systems and HPC applications (NCCL, MPI, OpenMP).
- Experience with debugging GPU performance issues.
- Experience in parallel programming and high-performance computing.
- Familiarity with Python.
- Interest in AI and basic knowledge of AI algorithms.
- Familiarities with AI accelerator architectures such as discrete GPU, Integrated GPU, Embedded Accelerators, or AI-Specialized Accelerators
- Familiarities with various ISAs (RISC-V knowledge is a plus).
- Familiarities with one of the graph compiler technologies: XLA, Halide, Glow, MLIR.
- Experience in adding/modifying AI framework backend such as TensorFlow, Pytorch, TVM.
- Experience in writing grant proposals
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. 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 prejudice your application. Note our system will only accept links to personal projects/GitHub accounts or PDF documents.