Status – Week 270 Victor Moya. Summary ShaderEmulator. ShaderEmulator. ShaderSimulator. ShaderSimulator. Schedule. Schedule. Name. Name. Projects. Projects.

Slides:



Advertisements
Similar presentations
GPGPU Programming Dominik G ö ddeke. 2Overview Choices in GPGPU programming Illustrated CPU vs. GPU step by step example GPU kernels in detail.
Advertisements

Status – Week 257 Victor Moya. Summary GPU interface. GPU interface. GPU state. GPU state. API/Driver State. API/Driver State. Driver/CPU Proxy. Driver/CPU.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir.
GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV
Exploiting Graphics Processors for High- performance IP Lookup in Software Routers Author: Jin Zhao, Xinya Zhang, Xin Wang, Yangdong Deng, Xiaoming Fu.
Discussion Week 4 TA: Kyle Dewey. Overview Project #1 debriefing System calls Project #2.
Presented By Srinivas Sundaravaradan. MACH µ-Kernel system based on message passing Over 5000 cycles to transfer a short message Buffering IPC L3 Similar.
OS Case Study: The Xbox 360  Instructor: Rob Nash  Readings: See citations in the slides.
Control Flow Virtualization for General-Purpose Computation on Graphics Hardware Ghulam Lashari Ondrej Lhotak University of Waterloo.
1 Shader Performance Analysis on a Modern GPU Architecture Victor Moya, Carlos González, Jordi Roca, Agustín Fernández Jordi Roca, Agustín Fernández Department.
Status – Week 229 Victor Moya. Summary Simulator parameters. Simulator parameters. Hierarchical Z-Buffer. Hierarchical Z-Buffer.
Status – Week 274 Victor Moya. Simulator model Boxes. Boxes. Perform the actual work. Perform the actual work. A box can only access its own data, external.
Status – Week 259 Victor Moya. Summary OpenGL Traces. OpenGL Traces. DirectX Traces. DirectX Traces. Proxy CPU. Proxy CPU. Command Processor. Command.
CS 300 – Lecture 22 Intro to Computer Architecture / Assembly Language Virtual Memory.
CIS 487 GAME EVALUATION NEED FOR SPEED UNDERGROUND 2 LUCIAN BLEBEA.
Status – Week 243 Victor Moya. Summary Current status. Current status. Tests. Tests. XBox documentation. XBox documentation. Post Vertex Shader geometry.
Status – Week 291 Victor Moya. Tracing 3D applications Three layers or levels for tracing: Three layers or levels for tracing: 3D Appl API Driver GPU.
Threads 1 CS502 Spring 2006 Threads CS-502 Spring 2006.
GPU Simulator Victor Moya. Summary Rendering pipeline for 3D graphics. Rendering pipeline for 3D graphics. Graphic Processors. Graphic Processors. GPU.
Status – Week 230 Victor Moya. Summary Simulator parameters. Simulator parameters. Oclusion culling (Z-Buffer). Oclusion culling (Z-Buffer). To be done.
1 A Single (Unified) Shader GPU Microarchitecture for Embedded Systems Victor Moya, Carlos González, Jordi Roca, Agustín Fernández Department of Computer.
Status – Week 265 Victor Moya. Summary ShaderEmulator ShaderEmulator ShaderFetch ShaderFetch ShaderDecodeExecute ShaderDecodeExecute Communication storage.
Status – Week 272 Victor Moya. Vertex Shader VS 2.0+ (NV30) based Vertex Shader model. VS 2.0+ (NV30) based Vertex Shader model. Multithreaded?? Implemented.
Evolution of the Programmable Graphics Pipeline Patrick Cozzi University of Pennsylvania CIS Spring 2011.
Status – Week 283 Victor Moya. 3D Graphics Pipeline Akeley & Hanrahan course. Akeley & Hanrahan course. Fixed vs Programmable. Fixed vs Programmable.
Andreas Sandberg ARM Research
Status – Week 275 Victor Moya. Simulator model Boxes. Boxes. Perform the actual work. Perform the actual work. Parameters: wires in, wires out, child.
Status – Week 260 Victor Moya. Summary shSim. shSim. GPU design. GPU design. Future Work. Future Work. Rumors and News. Rumors and News. Imagine. Imagine.
Comparison of Modern CPUs and GPUs And the convergence of both Jonathan Palacios Josh Triska.
Status – Week 266 Victor Moya. Summary ShaderEmulator ShaderEmulator ShaderFetch ShaderFetch ShaderDecodeExecute ShaderDecodeExecute Communication storage.
Introduction What is GPU? It is a processor optimized for 2D/3D graphics, video, visual computing, and display. It is highly parallel, highly multithreaded.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
CIS 487: Formal Game Review NBA LIVE 2004 Presented by Steven Myslinski.
CSU0021 Computer Graphics © Chun-Fa Chang CSU0021 Computer Graphics September 10, 2014.
Background image by chromosphere.deviantart.com Fella in following slides by devart.deviantart.com DM2336 Programming hardware shaders Dioselin Gonzalez.
Ray Tracing and Photon Mapping on GPUs Tim PurcellStanford / NVIDIA.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Next-Generation Consoles Brenden Schubert & Nathaniel Williams With a Special talk by John F. Rhoads on Video Game Ethics.
Computer Graphics Graphics Hardware
GPUs and Accelerators Jonathan Coens Lawrence Tan Yanlin Li.
Instructor Notes GPU debugging is still immature, but being improved daily. You should definitely check to see the latest options available before giving.
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
GPU Architecture and Programming
2003 Dominic Swayne1 Microsoft Disk Operating System and PC DOS CS-550-1: Operating Systems Fall 2003 Dominic Swayne.
GPU Computation Strategies & Tricks Ian Buck NVIDIA.
Processes Introduction to Operating Systems: Module 3.
GPUs: Overview of Architecture and Programming Options Lee Barford firstname dot lastname at gmail dot com.
Kirk Scott Computer Science The University of Alaska Anchorage 1.
M. Jędrzejewski, K.Marasek, Warsaw ICCVG, Multimedia Chair Computation of room acoustics using programable video hardware Marcin Jędrzejewski.
1)Leverage raw computational power of GPU  Magnitude performance gains possible.
Introduction Why are virtual machines interesting?
GPU Functional Simulator Yi Yang CDA 6938 term project Orlando April. 20, 2008.
System Programming Basics Cha#2 H.M.Bilal. Operating Systems An operating system is the software on a computer that manages the way different programs.
Open Source Graphic Drivers - They Don't Kill Kittens
Computer Graphics Graphics Hardware
GPU Architecture and Its Application
Bare metal OS project CSSE 332 Operating Systems
Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir. A.C. Verschueren Eindhoven University of Technology Section of Digital.
Week 2 - Friday CS 113.
Nouveau reverse engineering NVIDIA
GRAPHICS PROCESSING UNIT
CSC 2231: Parallel Computer Architecture and Programming GPUs
CS 179 Project Intro.
Static Image Filtering on Commodity Graphics Processors
I/O Systems I/O Hardware Application I/O Interface
Computer Graphics Graphics Hardware
Processes David Ferry CSCI 3500 – Operating Systems
TC 310 The Computer in Technical Communication
Graphics Processing Unit
Presentation transcript:

Status – Week 270 Victor Moya

Summary ShaderEmulator. ShaderEmulator. ShaderSimulator. ShaderSimulator. Schedule. Schedule. Name. Name. Projects. Projects.

ShaderEmulator General structure almost done. General structure almost done. Some problems: Some problems: Jump Table for instruction emulation functions. Jump Table for instruction emulation functions. Meaning of static members in a C++ class. Meaning of static members in a C++ class. Possible solution: new parameters. Possible solution: new parameters. shDP3(shInstr, numThread, PC, decodReg, addrBank) shDP3(shInstr, numThread, PC, decodReg, addrBank) Another solution: Another solution: Separate ShaderState from ShaderEmulator. Separate ShaderState from ShaderEmulator. Pass ShaderState to the emulation functions. Pass ShaderState to the emulation functions. Problems: shared state. Problems: shared state.

ShaderEmulator Currently implemented one instrution: DP3/DP3C. Currently implemented one instrution: DP3/DP3C. To be used as reference for the other instructions. To be used as reference for the other instructions. Not yet tested. Not yet tested.

ShaderSimulator Nothing done yet. Nothing done yet. ShaderExecInstruction => Carlos. ShaderExecInstruction => Carlos.

Schedule Finish ShaderEmulator and test it. Finish ShaderEmulator and test it. Solve the function table problem in some way. Solve the function table problem in some way. Create test programs. Create test programs. Would be interesting a shader assembler and disassembler. Would be interesting a shader assembler and disassembler. Extend ShaderInstruction class with two new methods: encode() and disasm(). Add a new constructor (empty instruction). Extend ShaderInstruction class with two new methods: encode() and disasm(). Add a new constructor (empty instruction). Create a parser. Create a parser.

Schedule Implement the Shader Simulator classes (ShaderFetch, ShaderDecode). Implement the Shader Simulator classes (ShaderFetch, ShaderDecode). Create the stub classes for testing. Create the stub classes for testing. Expand ShaderEmulator until implement all the instructions. Expand ShaderEmulator until implement all the instructions. Further testing. Further testing. Start Command Processor stuff. Start Command Processor stuff.

Name Suggestions: Suggestions: GPU3D/gpu3d (current no-name). GPU3D/gpu3d (current no-name). SimGPU. SimGPU. SimpleGPU (copy of SimpleScalar). SimpleGPU (copy of SimpleScalar). Something absolutely different like Dixie … Something absolutely different like Dixie … Or something not related with anything like your pet favourite name … Athenea. Or something not related with anything like your pet favourite name … Athenea. Your ideas? Your ideas?

Projects Agustin suggested to propose final year projects about graphics 3D. Agustin suggested to propose final year projects about graphics 3D. For example to implement a GPU driver for a current GPU. For example to implement a GPU driver for a current GPU. Other alternatives: Other alternatives: Implement the driver for our own GPU (too early?). Implement the driver for our own GPU (too early?). Perform performance measurements of GPUs. Perform performance measurements of GPUs. Create tests/demos for GPUs (DX9/OpenGL). Create tests/demos for GPUs (DX9/OpenGL).

Projects Build a driver for a GPU: Build a driver for a GPU: dfx: Voodoo 3, 4, 5. 3dfx: Voodoo 3, 4, 5. ATI: Rage, Radeon, R200 (8500). ATI: Rage, Radeon, R200 (8500). Others: Intel. Matrox, 3DLabs. Others: Intel. Matrox, 3DLabs. Read (hard to read?) code so could be the easiest solution. Boring. Information is NDAed so no more help available. Read (hard to read?) code so could be the easiest solution. Boring. Information is NDAed so no more help available. No info from IHVs? No info from IHVs? Reverse Engeniering. Reverse Engeniering. Emulation. Emulation.

Projects Reverse engeniering: Reverse engeniering: Memory mapped IO and DMA used. Memory mapped IO and DMA used. This means we should hack the kernel or the driver. This means we should hack the kernel or the driver. Linux: Linux: Source code available. Source code available. Driver code not available (NVidia, ATI). Driver code not available (NVidia, ATI). Windows: Windows: No source code. No source code. VxDs for entering inside the kernel. VxDs for entering inside the kernel. Or kernel debuggers (SoftIce). Or kernel debuggers (SoftIce).

Projects Dissassembly drivers (but who could read thousands of lines of assembly). Dissassembly drivers (but who could read thousands of lines of assembly). Legal issues? Legal issues?

Projects Emulation :) Emulation :) We have all the code and we can do whatever we want with it. We have all the code and we can do whatever we want with it. DreamCast: SH4 200 MHz and PowerVR2 (very similar hardware that the PC version). No shaders or T&L but deferred rendering. A lot of information out there (I have the developer kit). DreamCast: SH4 200 MHz and PowerVR2 (very similar hardware that the PC version). No shaders or T&L but deferred rendering. A lot of information out there (I have the developer kit). Xbox: Pentium III 733 and NV2A (similar to NV25, GeForce 4 Ti). Shaders supported. Similar to PC architecture (but unified memory and secure/encrypted crap). BIOS is disponible, also open source tools and information. Xbox: Pentium III 733 and NV2A (similar to NV25, GeForce 4 Ti). Shaders supported. Similar to PC architecture (but unified memory and secure/encrypted crap). BIOS is disponible, also open source tools and information.

Projects GameCube: PowerPC 433 MHz, ATI/ARTX Flipper. Very hard to get any information. No BIOS or images. No shaders. GameCube: PowerPC 433 MHz, ATI/ARTX Flipper. Very hard to get any information. No BIOS or images. No shaders. More fun. But also more difficult. More fun. But also more difficult. Legal issues. Legal issues.