< Home

Jean-Luc Duprat: Résumé




Objectives

I have over 30 years experience as a software developer and manager in technology. In this time, I have worked for major hardware manufacturers, major video game studios, a major animated motion picture, and with Internet broadcasting of independent films. I have worked for startups and large public corporations. I have built code, systems, platforms and teams. I am currently looking at the problems associated with GPUs programming from the point of view of the compiler — programming models, heterogeneous compute, and their implications on hardware architectures.

Education

2008-2012

University of Victoria

Victoria, BC  Canada

PhD Student in Computer Science, Faculty of Engineering.

Not completed.
1994-1997

University of British Columbia (UBC)

Vancouver, BC  Canada

M.Sc. Computer Science (Computer Graphics), Faculty of Science.

Specialized in computer graphics working in the Imager Laboratory under the supervision of David R. Forsey.
Thesis: Integrating H-Splines into Softimage|3D.
1990-1994

McGill University

Montréal, PQ  Canada

B.Sc. Major Physics, Minor Mathematics, Faculty of Science.


Professional Experience

Since 2013 

Apple

Cupertino, CA  U.S.A.

Senior Engineering Manager, Developer Technologies

I have built and managed and org with several teams supporting Apple Silicon on all Apple devices: Apple Watch, AppleTV, iPhone, iPad, Macs and Apple Vision Pro. We build LLVM-based compiler backends and engage with the architecture, modelling, micro architecture, silicon enginering, driver, Xcode and Swift teams; we support the program from pre-silicon to production and consistently ship multiple products every year to billions of devices.

Engineering Manager, Developer Technologies

I manage a team of 10-12 engineers supporting multiple GPU backends covering all current iOS devices. The team's expertise spans a broad domain of knowledge including: LLVM, compiler optimizations, code transformation, code generation, computer graphics, shading languages, hardware architecture. We strive to compile quickly and generate small code that runs fast, while minimizing power and enabling the hardware team to minimize area. We cover both the pre-silicon and production aspects of the development cycle.

Compiler Backend Engineer, LLVM Team

Compiler backend engineer on GPU code generation team. I am focused on enabling future graphics and compute technologies by maximizing performance and minimizing power consumption of the generated code, while keeping compile times minimal.

2007-2013 

Intel Corporation

Victoria, BC  Canada
Hillsboro, OR  U.S.A.

Hardware and Software Architect, Visual and Parallel Computing Group (VPG), Intel Architecture Group (IAG)

Ported the open-source Intel SPMD Program Compiler (ISPC) to Knight's Corner (KNC)—Intel's first Xeon Phi processor out of the Many Integrated Core (MIC) architecture. ISPC is an LLVM-based compiler, the KNC backend emits C++ and intrinsics.

Helped customers port kernels from various HPC workloads from Xeon to Xeon Phi, and then extract performance out of the machine. These workloads represent an assortment of C/C++/Fortran mini-applications representing larger applications in use at the U.S. Department of Energy (DOE) National Labs. Worked on various interoperability issues between ISPC, Fortran, OpenMP and MPI.

Performed studies on various hardware features and their impact on software for the Knight's family of processors. This included evaluating impact of ISA changes on key workload performance, as well as the impact of various micro-architectural features—including page size, TLBs, caches. Used and modified the Intel architecture simulator, as well as custom-built SystemC-based infrastructure. Some of this work has resulted in patent applications.

Established the Intel Victoria site

Identified and selected office space for Intel in Victoria. Coordinated across several divisions for budgeting, planning and realization of the required upgrades to the space, in accordance with Intel standards. Worked with the contractors' superintendent during the construction project which lasted two months. Managed setup of network infrastructure, IT systems, phone and security systems. Planned the move into the new space. I remain the site manager responsible for IT, security and day-to-day operations; on top of my responsibilities as an architect.

Graphics and Software Architect, Visual and Parallel Computing Group (VPG), Intel Architecture Group (IAG)

Part of the team that wrote the high-performance DX driver for Larrabee. Work included adding support for DX9 and DX10 features to the driver, shader compiler, state management system and DX conformance testing (WHQL).

Graphics Architect, Advanced Rendering Technologies (ART), Software Solutions Group (SSG)

Designed and developed the software infrastructure for the demand-paged texturing system for Larrabee. Architected and coordinated work between multiple groups at Intel: hardware architecture, functional simulation, operating system development, shader compiler development, image and compression routines development, DirectX driver development, native system API development, native rendering API development and game developer support. Some of this work has resulted in patent applications.

Industry-Academy liaison between Intel and the University of Victoria. Worked with the department of Computer Science at UVic, coordinated grant applications from UVic faculty with Intel, tracked students participating in sponsored research, tracked NDA coverage. Obtained grant renewals. Worked with Canadian funding agencies (NSERC and MITACS).

Senior Graphics Software Engineer, Advanced Rendering Technologies (ART), Software Solutions Group (SSG)

Senior engineer working on the native graphics APIs for the Larrabee architecture.
2007

Neoptica, Inc.

Victoria, BC  Canada
San Francisco, CA  U.S.A.

Senior Software Engineer

Neoptica built a software platform that made fully programmable graphics a reality on machines with heterogeneous computing resources, scaling from the PS3 to multi-core, multi-gpu PCs. Neoptica was acquired by Intel in October 2007.
2005-2007 

Electronic Arts, Inc.

Vancouver, BC  Canada

Software Engineer, WorldWide Visualization Group

Part of the WWVG, a research group striving to push the limits of visual quality on next-gen platforms. Worked on Playable Universal Capture (UCAP), PCA and other compression techniques. This work was showcased at the Sony PS3 press conference at E3 in May 2006, in a Siggraph 2006 Sketch and shipped as part of Tiger Woods PGA Tour 07 and Need for Speed Carbon on both XBox360 and PS3. Rebuilt the modeling engine of the VirtualMe PC avatar creation tool. Finally, started exploring advanced rendering techniques made possible by DirectX10-class hardware.

Software Engineer, Criterion Canada

Worked on the RenderWare libraries which are used throughout the organization to support game teams. My work focused around rendering technology for the next-gen platforms, particularly PS3, while supporting current-gen hardware (mostly PS2).
2004-2005 

Upper Bounds Interactive

Vancouver, BC  Canada

Rendering Programmer

Rendering programmer on Tactile3D application. My role on the project was specifically to increase rendering speed, using various techniques including culling, impostoring and level of detail techniques.
1997-2003 

Radical Games, Ltd.

Vancouver, BC  Canada

Rendering and Camera Programmer

Worked on the production of the game The Hulk tied to movie of same name, released April 2003 by Universal Interactive. Developer in charge of rendering on XBox, GameCube PS2 and PC. Developer in charge of the camera system used throughout the game

Content Architect

Worked on the production of the AI: Gladiator game tied to the film Artificial Intelligence by director Stephen Spielberg, unreleased (Microsoft, XBox exclusive). Responsible for art data issues, how content integrates into game engine, art asset management and facial animation integration into the game engine.

Senior Research Engineer, R&D group

Developed Rodin, an implementation of H-Splines for 3D Studio MAX and Maya. The Maya release was used internally, while the MAX release was also sold as a commercial package. This development straddled studio transition from using 3D Max to Maya. Focused on modeling, character and facial animation issues, subdivision surfaces,… In parallel to this development, our team developed an H-Spline (B-Spline and Catmull-Clark subdivision surfaces) real-time rendering engine for the PS2.
1999-2002

Pepperview Broadcasting

Vancouver, BC  Canada
Paris, France

Founding Partner

Created and maintained a website studiocities.net backed by a SQL database. The goal was to build a community around a set of resources for independent film makers. The site offered streaming of short independent films in Real and QuickTime formats.
1996-1997

DreamWorks SKG, Feature Animation Dept.

Los Angeles, CA  U.S.A.

Software Developer

Software developer during the pre-production of the feature animation production Shrek, released May 2001 by DreamWorks & PDI. Developed a Softimage 3.7 plugin that integrated H-Splines into the package. Focus on grafting H-Splines together to create geometry that is difficult to represent with B-Spline patches, e.g.: hands. For more details, see my Master's thesis.
1994-1996

University of British Columbia (UBC)

Vancouver, BC  Canada

Research Assistant

Research on modeling and animation in collaboration with several Canadian companies:
  • Radical Entertainment (Vancouver)
  • Softimage (Montréal)
  • DHD Postimage (Montréal)
  • Le Centre Echo (Montréal)

Research Assistant

Created an interactive web site called FaceMaker to demonstrate the uses of H-Splines for facial animation via a web interface. Output was either GIF or VRML.

Teaching Assistant

Introductory and intermediate Scheme and C++ programming. Marked assignments and exams, performed teaching labs and tutorials for groups of students. Answered students' questions and assisted them with homework assignments during office hours.
1994

Crédit Lyonnais

Brussels, Belgium
Summer job, performing system administration duties and database maintenance for the Private Investment division of the bank.

Skills

Geometric modeling using polygons, splines, NURBS, subdivision surfaces and implicit surfaces.
Animation techniques.
Interactive and real-time rendering techniques, tools, shaders.
Computational geometry.
Strong math and physics background.
Concurrency, programming models, memory models, multi-threading, data-parallel computations, code vectorization.
Computer architecture, microarchitecture, performance optimization.
Extensive experience programming in C and C++.
Extensive experience programming and modeling systems with Mathematica.
Extensive experience with x86/x86_64 assembly programming.
Working knowledge of Swift, Perl, Python, C#, PHP, Bash and various other scripting languages.
Developed under SunOS, Irix, FreeBSD, Linux, Windows, iOS and macOS at various times.
Linux networking: security, routing, traffic shaping, firewalls.
Written GUIs using various toolkits, including SwiftUI, UIKit, AppKit, C# WinForms, GTK, Qt and Motif.
Knowledge of HTML, CSS, XML, SQL and other web technologies.
I have developed plug-ins for various image processing and 3D packages, including Maya, Softimage and 3D Studio Max.
Experienced at programming embedded systems, in particular gaming consoles. Worked most recently on XBox360 and PlayStation3; but also XBox, PlayStation2, PlayStation1 and GameCube.
Fluent in English and French.
Holder of a Canadian and US Private Pilot's license.

Affiliations

Association for Computing Machinery (ACM).
Institute of Electrical and Electronics Engineers (IEEE).

References

Available upon request