Profiling Tool Suite Software Engineer
Greenwaves Technologies is a 5-year-old fabless semiconductor startup established in Grenoble, France. Our first product GAP8 is the world’s first IoT Application Processor armed with 8+1 RISC-V based cores and a high performance HW convolution engine. It is a simple yet very sophisticated unique processor architecture, which delivers an energy efficiency that is 20x better than the state-of-the-art, opening a large range of battery powered applications. Examples of applications are people counting, keyword spotting, combined with beamforming, object recognition, face detection and vibration analysis. GAP8 is especially effective on machine learning inference algorithms (CNN, SVM, Bayesian, Boosting, Cepstral analysis). Yet, GAP8 is by and large programmed just like a regular MCU.
Our technology is very much ahead of the state-of-art, and our chip is just about to prove its revolutionary potential on a wide open global market. For a team, it is a very motivating challenge that each of us could be part of in proportion to one’s own enthusiasm at work. As a growing and highly multicultural team with sharp personalities, Greenwaves Technologies is very proud of its specific collaborative management style. The company is and will be what we each of us make of it, as we experience every day, and we are looking for talented, enthusiastic, curious and committed people, who will be ready to bring their energy and skills for a significant contribution to the success of the company’s project.
Greenwaves Technologies is developing an SDK to allow people to design, debug and profile applications for his GAP products. Optimization of application porting on GAP8 is key to reach the best performances and lowest power consumption. It requires parallelization and optimization of inter-core synchronizations and data movements across the memory hierarchy, in parallel of the execution of application kernels.
For this reason we are developing specific tools to help developers improve the performances of their applications on the chip. The tool suite includes tools for debugging (gdb, openocd), profiling (execution traces, statistics, graphical environment), and for other purposes (flash tools, etc.). As a member of our SDK and Tools team, you will actively contribute to specifying, developing and maintaining this tool suite:
- Definition of the new tools and the evolutions of the existing ones;
- Contribution to the development of different tools, and to their integration in the tool suite;
- Interaction with Application team for internal feedback and new requirements;
- Interaction with field application engineers to gather feedback from end-users, discuss new features and provide customer support;
- Documentation and tutorials.
- C/C++, Python programming;
- Development of graphical environments (e.g. using GTK, Qt or SDL);
- Software debug techniques;
- Familiarity with versioning/revision control systems.
- Good level of spoken and written English, to be used daily to communicate with colleagues and international partners;
- Organizational skills;
- Strong team spirit and communication abilities, in a multisite environment;
- Ability to work autonomously and proactively on assigned tasks.
- Knowledge of parallel embedded architectures and DSP processors;
- Git proficiency.
- Master Degree or plus with a specialization in computer engineering;
- A previous experience in application programming, ideally with a GUI, in a professional, personal or educational context is highly desirable.