My UW
|
UW Search
Computer Science Home Page
Home
Projects
Work Experience
Teaching
Publications
Courses
Resume (.pdf)
Miscellaneous
CS Dept Home Page
|
|
|
Kaida (Tommy) Zhao
Email:
Computer Architect & Software Engineer
Department of Computer Sciences
University of Wisconsin-Madison
|
Projects
-
Exploring Proximate, a multi-tile programmable accelerator
CS 758: Adv Topics in Computer Architecture: Programming Multicore Processors, Fall 2016
- Implemented parallel workloads on different parts of a Proximate compute tile
- Investigated scalability and speedup to improve hardware design choices
|
|
-
CS/ECE 757: Advanced Computer Architecture II: Parallel Computer Architecture, Spring 2016
- Transactional memory can perform better than locks depending on how often data conflict occurs in the critical section for multithreaded programs
- Used gem5 to simulate various lock elision and transactional memory predictor
|
|
-
CS/ECE 752: Advanced Computer Architecture I, Fall 2014
- Researched and developed methods for extracting confidence from branch predictor
- Used gem5 to simulate fetching instructions from both branch paths (taken and not taken) for various issue widths and low branch predictor confidence
- Achieved up to 7 percent speedup by fetching based on branch predictor confidence
|
|
-
Tronsisters-32, a Nintendo Entertainment System (NES) Clone
ECE 554: Digital Engineering Laboratory, Fall 2015
- Designed an Instruction Set Architecture (ISA) for computation and graphics
- Used Verilog for FPGA programming to create a NES Clone and support the ISA
- Used assembly language in the ISA to write Tron, DDR, and Pac-Man
|
|
-
WISC-SP13, a pipelined microprocessor with cache
CS/ECE 552: Introduction to Computer Architecture, Spring 2016
- Used Verilog for hardware implementation to support WISC-SP13 ISA
- Implemented pipelining, forwarding, data and instruction set associative cache, register file bypassing, branch predictor, and carry-lookahead adders
|
|
-
ECE 551: Digital System Design and Synthesis, Spring 2015
- Used Verilog for FPGA programming to control a motored robot to follow a (curved) line until it reaches the specified barcode station
- Verilog modules includes UART, command controller, and motion controller
|
|
-
Bonsai, a distributed data collection and storage system for data processing
CS 736: Advanced Operating Systems, Fall 2014
- Scalable data collection in a ring structure by implementing a circular buffer for stored data with a token as synchronization logic
- Real-time data processing in a tree structure by multicasting map requests to backends and reducing results towards the frontend
|
|
-
CS/ECE/EMA/ME 759: High Performance Computing for Applications in Engineering, Fall 2015
- Placing connected gates closer to each other results in shorter wires, which in turn reduces delay and power consumption.
- Implemented gate placement algorithms for obtaining optimal wire length using CUDA and comparing it with a CPU implementation
- Achieved 6400 speedup with an optimized GPU implementation over CPU
|
|
-
CS 559: Computer Graphics, Spring 2017
- 3D rendition of Pokemon FireRed Version of Pallet Town
- NPCs look like human figures and have hierarchical modeling movements
- Many textures for buildings, objects, and signs
- View angles and TimeOfDay affects lighting
- Bump mapping on grass for a more realistic 3D visualization
- Pokemons patrol in piecewise Bezier and Hermite curves
|
|
-
Level Up Bound, a pattern-puzzle obstacle game
CS 107: Introduction to Computing and Programming, Fall 2011
- Level Up Bound was an action pattern-puzzle obstacle game created by Mp(U) for Blizzard Starcraft in 2001.
- I remade Level Up Bound for Scratch, currently having 15 levels.
|
|
More projects listed under [courses].
| |
|