GPU Debug Infrastructure Developer
The GPU Engineering Division require an experienced and highly motivated debug infrastructure developer to join a fast growing team and verify our next generation of pioneering GPUs. Our team predominantly employs taking issues from FPGA's and debugging them on emulation or simulation platforms using machine parsable outputs and waveforms. You will play a key role in the team - both with hands-on project work, crafting and deploying new tools and methodologies within the team. Please do not hesitate to apply if you have any of the experience listed below.
About the team
Working in our main office, located in Cambridge within a team that spans three sites across Europe. The team includes design, verification and modelling engineers working on the next gen graphics processors. Given the span of the team, there may be opportunity for travel to other sites during your work.
About GPU Engineering
GPU Engineering produces media processing hardware and software products for mobile and embedded devices. Our Mali™ Graphics Processor is the world's #1 shipping GPU!
Now we are entering into a new growth phase to provide new technologies and products for new and existing markets and are looking for not just hardworking people but those that are inquisitive to join the team.
We work with the globe's best companies, making world-leading products based on our IP alongside the best engineers in the world. We are a distributed team working across numerous sites and cultures. Your ideas will make a difference and you will have the opportunity to lead, challenge the status quo and ultimately change the world of media processing.
Please have a look at the following video to see what it's like to work in our team: https://youtu.be/F4tNBNBgYEY
The role covers development and deployment of methodologies as well as direct hands-on test bench development. Your responsibilities will be:
• Implementing GLES, OpenGL, Vulkan APIs into verification scenarios
• Reviewing and assessing proposed design changes
• Extracting data from IP and building GPU level views of performed SW.
• Expected to investigate and script new verification flows and optimizing existing flows
• You will be required to have an overview understanding of the GPU HW and its features per project. Ensuring we deliver a high quality product.
• Debug sophisticated IP using scripts and waveforms, especially understanding CPU Tarmac outputs.
• Investigating areas of methodology improvements and deploying within the group and having full ownership of verification closure.
What skills, experience and qualifications do I need?
Encouraged to have a proven record with debug tool development including ownership of a suitably sophisticated libraries. Be comfortable using C to modify kernel codebase and be familiar with the tools and processes for developing test benches which run on FPGA or Emulators. You are capable of developing debug flows to the best use of EDA tools.
• Strong experience with Python & C for complex tooling.
• Experience of architecting and implementing functional verification environments for complex IP.
• Experience developing re-usable and scalable code whilst having solid understanding of low level C.
• Excellent UNIX scripting skills - being able to develop scripting to support new flows.
• Knowledgeable on how to setup and run Jenkins Pipelines
• Experience of developing or working with CoreSight debug frameworks.
• You should have the ability to quickly understand and apply complex specification details and capable of owning all stages of a project to completion.
• Commit to tackle multifaceted and sophisticated technical challenges.
• Strong communication skills and passionate to work well as part of a team as well as experience working and communicating with remote design centers.
• Must be able to work delivering to internal customers, collaborating with multiple team members to provide the technically best solution.
• A person interested in crossing the HW & SW domains of GPU development.
• Experience of working with FPGA prototype boards or Emulators for debugging designs.
• Knowledge of SystemVerilog DPI or Emulator Transactor technologies
• Linux Embedded Systems knowledge
• Knowledge or understanding of graphics principles.
• Ability to build Android or Linux systems and comfortable working in a Linux shell environment
• Experience with formal verification.
• Experience with emulation flows.
• Willingness to travel to Arm sites within Europe