{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/16886"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/16886","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"PyStream: Python Shaders Running on the GPU","abstract":"Abstract Graphics processing units (GPUs) have tremendous computing power, but are hard to program. Most GPU programming languages are extremely low level; no one has run a general-purpose high-level language on a GPU. This dissertation shows how to run Python shaders on a GPU for real-time rendering. Shaders written in Python run 30,000 - 300,000 times faster than on a CPU. This is partly because GPUs are designed to run shaders and partly because of the design of PyStream, a Python compiler for the GPU. PyStream advances the state-of-the-art in pointer analysis for Python, eliminates abstraction overhead for Python, maps a language with references onto an architecture that does not support references, and uses a single code base to program both the CPU and GPU. PyStream points the way for running high-level languages on specialized architectures.","abstract_html":"Abstract Graphics processing units (GPUs) have tremendous computing power, but are hard to program. Most GPU programming languages are extremely low level; no one has run a general-purpose high-level language on a GPU. This dissertation shows how to run Python shaders on a GPU for real-time rendering. Shaders written in Python run 30,000 - 300,000 times faster than on a CPU. This is partly because GPUs are designed to run shaders and partly because of the design of PyStream, a Python compiler for the GPU. PyStream advances the state-of-the-art in pointer analysis for Python, eliminates abstraction overhead for Python, maps a language with references onto an architecture that does not support references, and uses a single code base to program both the CPU and GPU. PyStream points the way for running high-level languages on specialized architectures.","abstract_has_math":false,"creators":["Bray, Nicholas C."],"institution":"University of Illinois at Urbana-Champaign","degree_name":"Ph.D.","degree_level":"Dissertation","degree_discipline":"Electrical & Computer Engr","degree_department":null,"school":null,"contributors":["Hwu, Wen-Mei W.","Johnson, Ralph E.","Hart, John C.","Wah, Benjamin W.","Lumetta, Steven S."],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2010,"date_issued":"2010-08-20T18:00:52Z","date_published":"2010-08-20T18:00:52Z","updated_at":"2026-07-22T22:25:09Z","subjects":["Python","Graphics Processing Units (GPU)","Real-time Rendering","Compiler","Pointer Analysis"],"languages":["en"],"rights":["Copyright 2010 Nicholas C. Bray"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/16886","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Hwu, Wen-Mei W.","Johnson, Ralph E.","Hart, John C.","Wah, Benjamin W.","Lumetta, Steven S."]},{"key":"dc:creator","label":"Author","values":["Bray, Nicholas C."]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2010-08-20T18:00:52Z","2010-08"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Electrical & Computer Engr"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Dissertation"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Ph.D."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois at Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Python","Graphics Processing Units (GPU)","Real-time Rendering","Compiler","Pointer Analysis"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2010 Nicholas C. Bray"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/16886"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Abstract Graphics processing units (GPUs) have tremendous computing power, but are hard to program. Most GPU programming languages are extremely low level; no one has run a general-purpose high-level language on a GPU. This dissertation shows how to run Python shaders on a GPU for real-time rendering. Shaders written in Python run 30,000 - 300,000 times faster than on a CPU. This is partly because GPUs are designed to run shaders and partly because of the design of PyStream, a Python compiler for the GPU. PyStream advances the state-of-the-art in pointer analysis for Python, eliminates abstraction overhead for Python, maps a language with references onto an architecture that does not support references, and uses a single code base to program both the CPU and GPU. PyStream points the way for running high-level languages on specialized architectures.","Item withdrawn by Mark Zulauf (zulauf@illinois.edu) on 2010-07-13T19:21:59Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Bray_Nicholas.pdf: 2521724 bytes, checksum: 866761770a40caff1f2be23f15b635ad (MD5)","Made available in DSpace on 2010-08-20T18:00:52Z (GMT). No. of bitstreams: 2 Bray_Nicholas.pdf: 2521724 bytes, checksum: 866761770a40caff1f2be23f15b635ad (MD5) license.txt: 4061 bytes, checksum: 5f8947d30a9f0f9cb00bf951ac47c289 (MD5)"]},{"key":"dc:title","label":"Title","values":["PyStream: Python Shaders Running on the GPU"]}]}],"canonical_facts":{"dc:contributor":["Hwu, Wen-Mei W.","Johnson, Ralph E.","Hart, John C.","Wah, Benjamin W.","Lumetta, Steven S."],"dc:creator":["Bray, Nicholas C."],"dc:date":["2010-08-20T18:00:52Z","2010-08"],"dc:description":["Abstract Graphics processing units (GPUs) have tremendous computing power, but are hard to program. Most GPU programming languages are extremely low level; no one has run a general-purpose high-level language on a GPU. This dissertation shows how to run Python shaders on a GPU for real-time rendering. Shaders written in Python run 30,000 - 300,000 times faster than on a CPU. This is partly because GPUs are designed to run shaders and partly because of the design of PyStream, a Python compiler for the GPU. PyStream advances the state-of-the-art in pointer analysis for Python, eliminates abstraction overhead for Python, maps a language with references onto an architecture that does not support references, and uses a single code base to program both the CPU and GPU. PyStream points the way for running high-level languages on specialized architectures.","Item withdrawn by Mark Zulauf (zulauf@illinois.edu) on 2010-07-13T19:21:59Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Bray_Nicholas.pdf: 2521724 bytes, checksum: 866761770a40caff1f2be23f15b635ad (MD5)","Made available in DSpace on 2010-08-20T18:00:52Z (GMT). No. of bitstreams: 2 Bray_Nicholas.pdf: 2521724 bytes, checksum: 866761770a40caff1f2be23f15b635ad (MD5) license.txt: 4061 bytes, checksum: 5f8947d30a9f0f9cb00bf951ac47c289 (MD5)"],"dc:identifier":["http://hdl.handle.net/2142/16886"],"dc:language":["en"],"dc:rights":["Copyright 2010 Nicholas C. Bray"],"dc:subject":["Python","Graphics Processing Units (GPU)","Real-time Rendering","Compiler","Pointer Analysis"],"dc:title":["PyStream: Python Shaders Running on the GPU"],"thesis:degree_discipline":["Electrical & Computer Engr"],"thesis:degree_level":["Dissertation"],"thesis:degree_name":["Ph.D."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:25:09Z"}