Cheng Cao

EECS Department, University of California, Berkeley

Technical Report No. UCB/EECS-2022-112

May 13, 2022

http://www2.eecs.berkeley.edu/Pubs/TechRpts/2022/EECS-2022-112.pdf

Computer graphics is an important field that is becoming ever ubiquitous. Programming languages and tools are important factors that define the industry, but these tools have not scaled asymptotically as quickly as the visual fidelity requirements, resulting in longer development time and larger budgets.

This project builds on and extends the Taichi programming language, an Domain Specific Language (DSL) embedded in Python. Taichi was created with the goal of writing cross-platform compatible programs that achieves better performance compared to lower-level programming tools, while using an order of magnitude less code.

This project introduces a common computing device abstraction layer (referred to as the Unified Device API), with an adaptive back-end code generation system (referred to as the SPIR-V Codegen), that is able to massively improve maintainability of Taichi by eliminating 1000 or more lines of backend-dependent code, while being able to provide an even greater range of device compatibility. This part of work has been proposed and designed by myself, and I developed the majority of the implementation.

In addition, this project also introduces the design of a new ahead-of-time compilation system, that helps engineers run their Taichi programs efficiently outside of Python. I proposed the initial design for the new API and conducted the user-studies that guides our development. This API is developed by multiple contributors, including myself, Ye Kuang (Taichi Graphics Inc), Ailing Zhang (Taichi Graphics Inc), Haidong Lan (Taichi Graphics Inc), Dunfan Lu (Facebook Inc), Gabriel Huau (OPPO US Research), and various Taichi users from the industry.

By the completion of this report, the Unified Device API and the SPIR-V Codegen has been submitted and incorporated into the Taichi programming language, and the AOT pipeline, the Taichi CGraph, is currently still in development. Finally, none of this would be possible without the collaboration and support of all the developers and users from the Taichi Open Source Community.

Advisors: Ren Ng


BibTeX citation:

@mastersthesis{Cao:EECS-2022-112,
    Author= {Cao, Cheng},
    Title= {Compatibility, Maintainability, and Portability Improvements to the Taichi Graphics Programming Framework},
    School= {EECS Department, University of California, Berkeley},
    Year= {2022},
    Month= {May},
    Url= {http://www2.eecs.berkeley.edu/Pubs/TechRpts/2022/EECS-2022-112.html},
    Number= {UCB/EECS-2022-112},
    Abstract= {Computer graphics is an important field that is becoming ever ubiquitous. Programming languages and tools are important factors that define the industry, but these tools have not scaled asymptotically as quickly as the visual fidelity requirements, resulting in longer development time and larger budgets.

This project builds on and extends the Taichi programming language, an Domain Specific Language (DSL) embedded in Python. Taichi was created with the goal of writing cross-platform compatible programs that achieves better performance compared to lower-level programming tools, while using an order of magnitude less code.

This project introduces a common computing device abstraction layer (referred to as the Unified Device API), with an adaptive back-end code generation system (referred to as the SPIR-V Codegen), that is able to massively improve maintainability of Taichi by eliminating 1000 or more lines of backend-dependent code, while being able to provide an even greater range of device compatibility. This part of work has been proposed and designed by myself, and I developed the majority of the implementation.

In addition, this project also introduces the design of a new ahead-of-time compilation system, that helps engineers run their Taichi programs efficiently outside of Python. I proposed the initial design for the new API and conducted the user-studies that guides our development. This API is developed by multiple contributors, including myself, Ye Kuang (Taichi Graphics Inc), Ailing Zhang (Taichi Graphics Inc), Haidong Lan (Taichi Graphics Inc), Dunfan Lu (Facebook Inc), Gabriel Huau (OPPO US Research), and various Taichi users from the industry.

By the completion of this report, the Unified Device API and the SPIR-V Codegen has been submitted and incorporated into the Taichi programming language, and the AOT pipeline, the Taichi CGraph, is currently still in development. Finally, none of this would be possible without the collaboration and support of all the developers and users from the Taichi Open Source Community.},
}

EndNote citation:

%0 Thesis
%A Cao, Cheng 
%T Compatibility, Maintainability, and Portability Improvements to the Taichi Graphics Programming Framework
%I EECS Department, University of California, Berkeley
%D 2022
%8 May 13
%@ UCB/EECS-2022-112
%U http://www2.eecs.berkeley.edu/Pubs/TechRpts/2022/EECS-2022-112.html
%F Cao:EECS-2022-112