• Linear Algebra Software Engineer

    Numerical computations are usually based on a set of standard libraries which implement the most common operations. These libraries are different for dense matrices (BLAS, LAPACK, ScaLAPACK, ...) and for sparse matrices (SparseBLAS, ...). Moreover, there are vendor implementations such as ACML, ATLAS, cuBLAS, etc which are adjusted to platform features. 

    A good BLAS implementation can improve the performance of many other libraries and platforms. A BLAS library is also the main back-end in deep learning frameworks which have been solving a ton of interesting problems in recent years?—?from automated grocery store purchases to autonomous cars. Codeplay Software is actively working on setting the foundations of Linear Algebra libraries for SYCL (SYCL-BLAS) by creating and/or porting various implementations. We make heavy use of advanced C++ features to optimise code for all kinds of accelerators, from GPUs to DSPs, to maximise performance and reduce energy consumption.

    The main focus of this position is to measure and improve the performance of the SYCL-BLAS implementation, by contributing to the benchmark codes and adding missing features, such as other variants of GEMM operations or new hardware features such as sub-groups or other vendor-specific hardware features. The position can be tailored to the experience and interest of the intern, tackling different aspects of the library performance or new hardware features. There could be opportunities for publications in the topic.
    Explanation of What you Would Be Working On
    The candidate will be mainly involved (but not limited to) in:
    • Adding various feature tests for the implemented SYCL-BLAS operations on the existing SYCL-BLAS test case framework.
    • Adding SYCL-BLAS example to demonstrate how-to-tutorial on SYCL-BLAS operations.
    • Adding per-SYCL-BLAS-operation benchmark to the existing SYCL-BLAS benchmark framework and comparing the result with the existing BLAS subroutine (e.g. clBLast, intel MKL, etc).
    • Contributing on completing the remaining SYCL-BLAS features.
    • Adding usage of new hardware features into the library
    Candidate Skills - Must Have
    • Understanding of C++ programming, in particular modern C++ and template metaprograming.
    • Understanding of Software Engineering and optimization, with a focus on GPU and other accelerators
    • Knowledge of the underlying mathematical concepts involved in the BLAS operations
    • Knowledge of testing suits, like Google Test
    Candidate Skills - Any of the following would be beneficial
    • Experience with writing technical documents (research papers, documentation, etc. )
    • Understanding of BLAS/LaPACK
    • Understanding of Eigen framework
    • Understanding of CuBLAS
    • Understanding of HPC knowledge
    • Understanding of GPU optimisations and programming
    • Understanding knowledge of SYCL/OpenACC/C++AMP/OpenMP Programming
    What We Offer
    Codeplay is internationally recognized as being at the forefront of software development technology, and working with us offers unique opportunities and challenges to learn new technologies and to be 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, ...) 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 is an active contributor in the community for the Clang, LLVM and LLDB open-source compiler and debugger projects. Our engineers are also leading the effort to bring support for machine learning with TensorFlow to OpenCL-enabled devices, by adding support for SYCL (the C++ high-level programming model built on OpenCL) to the open-source codebase. We are building an ecosystem around SYCL standard, including public projects for computer vision, linear algebra, and C++ parallel programming APIs - see https://github.com/codeplaysoftware. If you are excited about development tools and the open-source community - please get in touch!
    • Work on exciting brand-new technologies and standards with well-recognized customers
    • Make an impact on the industry through contributing to open-source software, standardization efforts and Codeplay's products
    • A friendly and relaxed working environment where colleagues support each other. You will be working in a diverse team of creative and talented engineers from around the world
    • Learn from experienced engineers: our staff frequently give company-wide knowledge-sharing presentations on new software and technology trends, personal projects and other relevant subjects
    • Work on modern code bases using recent tools, with the freedom to choose platforms and tools to get the job done
    • Great career prospects within a growing company
    • We develop our engineers to progress quickly in their roles, to take ownership of code, become technical experts, and/or lead teams. We provide training in skills such as project and people management, networking and delivering effective presentations
    • Frequent opportunities to attend major worldwide industry conferences and developer meetings, represent the company, and become a recognized expert
    • Codeplay has been recognized as an excellent employer and has now attained a Silver Level Accreditation with Investors In People
    • Flexible working hours, stock options and pension scheme
    • Private healthcare insurance
    • Frequent company social events (film nights, pot luck lunches, gaming, karting, themed company breakfasts, outdoor adventures, and more)

    If you can prove skills and knowledge through portfolio work, projects or previous employment, then a degree is not essential. 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.

    Submit an Application

    Please fill in the forms below to the best of your ability. Don't forget to add any relevant links to GitLab, BitBucket etc! Personal projects are a big win for your application.

  • Status

    Open for Applications

    Position Type

    Permanent Positions