• Intern Software Engineer - NCHW support for TensorFlow

    Codeplay is a leading developer of software tools and we are looking for interns with interest in C++ to work on the SYCL™ implementation of TensorFlow™. Codeplay has been developing TensorFlow™ for several years now, and is looking into supporting more machine learning models and benchmarks. TensorFlow™ currently only supports NHWC data layouts when using SYCL™, however some published Machine Learning models are only available in NCHW layout, for example some MLPerf™ benchmarks. The intern would work on implementing a graph transform that would convert a graph in the NCHW format to the NHWC format, allowing many more Machine Learning models to be run using SYCL™ TensorFlow™. The intern will be part of the SYCL-Ecosystem team within the company, taking part in daily standups and participating in the design discussions, while learning our internal technologies.

    What the Intern Would Be Working On

    • Studying up on existing graph transforms (e.g. TensorFlow Grappler can perform the transform for CUDA)
    • Implementing a NCHW to NHWC graph transform in SYCL TensorFlow
    • Reviewing merge requests from other team members

    Although we usually offer internships for the summer, we are delighted to accept applications for longer or shorter internships and many of our interns have stayed with us to do university placement years or have become permanent members of our team.

    The position is temporary and will be based at our head office in central Edinburgh. The successful candidate must, by the start of their employment, have successfully obtained the right to work in the UK.

    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 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). We are building an ecosystem around the 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 contributing to programming tools that will be used by developers worldwide, please get in touch!

    • Work with exciting brand-new technologies and standards with globally recognized customers
    • Help to shape the future of the industry through contributing to open-source software, standardization efforts and Codeplay's products
    • A friendly and relaxed working environment where colleagues respect and support each other. You will be working in a diverse team of creative and talented engineers from around the world
    • As an intern, you are expected to learn on the job and you will be treated as a contributing member of the team from the outset
    • 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
    • Work with modern code bases, with the freedom to choose platforms and tools to get the job done
    • Great career prospects within a growing company
    • Many of our interns have stayed with us for their degree's industrial placement year, or have become permanent members of our team
    • Opportunities to present your work to the rest of the company in a Knowledge Share talk, depending on your project
    • Codeplay has been recognized as an excellent employer and has attained a Silver Level Accreditation with Investors In People
    • Flexible working hours.
    • Frequent company social events (social nights, pot luck lunches, gaming, karting, outdoor adventures, and more).

    Required Skills

    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.

    Candidate Skills - Must Have

    • C++ development experience
    • Understanding of parallel programming
    • Some experience with common dev tools such as Git and CMake

    Beneficial Skills

    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.

    Candidate Skills - Any of the following would be beneficial

    • Knowledge of GPGPU memory and execution models
    • Understanding of Machine Learning
    • Some experience with using TensorFlow

    Application Guidance

    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, and 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. If you need a reasonable accommodation for any part of the employment process, please email jobs@codeplay.com and let us know the nature of your request and your contact information.

    You should be studying towards a degree in a relevant subject; however if you can demonstrate your 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

    Generic Internships Positions