Software engineer & Team Lead with 13y of experience and background in arm CPUs, GPUs of arm and imagination designs, low level graphics and high performance computing. Had lead a team of customer focused engineers providing technical solutions and optimizations for the key customers of arm.
Had worked for 2 years on various tasks related to fixing problems and optimizing imagination GPU drivers for desktop and mobile. Had worked as software architect with HW design teams providing suggestions for future GPU design improvements.
Had built ( hired and trained ) a team of 7 engineers.
Had fixed more than 100 issues in pre and post-production phase of high performance graphics devices.
Had optimized various graphics content, the optimizations vary between 2% and 88%.
* Communicating with HW designers to compare next gen GPUs with competition based on content analysis of benchmarks and 3D games, give suggestions about improvements in design that can be made to make next gen GPUs more performant and more power efficient.
* Developed perfetto based profiler for Pixel GPUs. The profiler can generate a list of supported HW counters for a target GPU and user can define their own formulas based on those supported counter, For example user can define a counter that would produce a read or write bw per second based on raw bw counters, GPU utilization based on active counters and GPU frequency, etc.
* Had been actively involved in debugging critical issues: GPU faults or lockups, UI janks, performance regressions. Had fixed 6 production blocking issues.
Evaluation at google was `Exceeded expectations` which means they were among 18% of top performers.
At innosilison they had been introduced to Imagination GPU technology and spent time there debugging dEQP issues and optimizing performance for Unreal Engine Content.
During his 6 months at Innosilicon they had delivered 7% improvement for the UE based key benchmark ( CityPark) for their desktop GPU and fixed multiple dEQP failures.
He started on adding a few features and porting to Android OS Windows profiling tool and then switched into implementing from scratch a Vulkan based VR compositor together with the demo app working in both Vulkan and OpenXR modes.
The features implemented:
- Shared buffer mode
- IPC based on Android Hardware Buffers
- Simple reprojection layer with non-position timewarp
- Vulkan based graphics framework to use in the app and the compositor. - Simple spinning cube demo in OpenXR and Vulkan env.I started on adding a few features and porting to Android OS Windows profiling tool and then switched into implementing from scratch a Vulkan based VR compositor together with the demo app working in both Vulkan and OpenXR modes. Features implemented so far: - Shared buffer mode - IPC based on Android Hardware Buffers - Simple reprojection layer with non-position timewarp - Vulkan based graphics framework to use in the app and the compositor. - Simple spinning cube demo in OpenXR and Vulkan env.
Customers Engineering Team at arm.
He has been working with arm's key customers on OpenGL and Vulkan drivers, supporting their mali-based products during development and post-production stages with tight deadlines.
Main focused on:
• Problem solving (conformance failures, visual corruptions, GPU faults, CPU crashes etc).
• Performance analysis and optimizations for the customer specific HW ( specific GPU
configuration and SoC ) for the most famous mobile graphics benchmarks and applications,
including VR and AR apps.
Optimizations that my team has been working on:
• GPU scheduling
• Data flow optimizations
• Reducing GPU memory bandwidth
• Driver CPU overhead
I have contributed to the stability and performance of multiple high profile mobile devices running
on Mali-T88x through Mali-G77.
He had built a team of 7 engineers from scratch. This means:
* Hiring
* Training new employees
* Being a line manager for the new hires
* Planning work and communicating with other teams to solve problems and stay within deadlines.
Lead developer for customer critical features and extensions in opengl and vulkan drivers in the area of virtual reality, GPU/CPU performance optimizations.
Example of features implemented: OVR_Multiview, OVR_Multiview2.
Delivered performance ( fps ) optimization levels for various content such as gaming and benchmarking were between 2 and 88%.
Low level engineering, ARM GPU driver performance & power efficiency optimization for Android and Linux platforms.
The biggest feature he had worked on at a time was a CPU side GPU geometry bounding boxes inside GPU driver. The feature was of a high complexity and required hard performance tuning and aggressive caching to make it CPU efficient. He worked as a developer in a team of engineers while working on that feature.
He had optimized algorithms in the driver that were using vector computations by switching them to SIMD/NEON assembly for armv7/v8.
Programming languages:
C/C - 10 years of experience , high proficiency
Python - regular usage in work environment
OS:
Linux, Android