https://github.com/hughperkins/VeriGPU Skip to content Sign up * Product + Features + Mobile + Actions + Codespaces + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Learning Lab + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} hughperkins / VeriGPU Public * Notifications * Fork 6 * Star 85 OpenSource GPU, in Verilog, loosely based on RISC-V ISA MIT License 85 stars 6 forks Star Notifications * Code * Issues 6 * Pull requests 0 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 6 branches 0 tags Code Latest commit @hughperkins hughperkins readme ... ab67efe Apr 17, 2022 readme ab67efe Git stats * 820 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .circleci try changing to medium Apr 16, 2022 cicd reduce py tests abit Apr 17, 2022 cmake patch_hostside builds and links... Apr 7, 2022 docs planning Apr 17, 2022 examples more notes on pytorch Apr 17, 2022 prot starting to build compute unit and driver and tests Apr 16, 2022 src adding test_add.py (which doenst work yet) Apr 17, 2022 tech/osu018 remove spam Apr 3, 2022 test reduce some spam Apr 16, 2022 third_party add argparsecpp and gtest Apr 6, 2022 verigpu move test_hip.py into examples/hip Apr 17, 2022 .gitignore gitignore Apr 17, 2022 LICENSE Initial commit Mar 1, 2022 README.md readme Apr 17, 2022 requirements.txt remove networkx and pydot Mar 20, 2022 run.py rename single_core_mounted to core_and_mem Apr 16, 2022 setup.cfg save things in progress Mar 4, 2022 setup.py rename toy_proc to verigpu Mar 27, 2022 View code [ ] OpenSource GPU Vision Architecture Simulation Single-source C++ Planning Tech details Verification Metrics README.md OpenSource GPU Build an opensource GPU, targeting ASIC tape-out, for machine learning ("ML"). Hopefully, can get it to work with the PyTorch deep learning framework. Vision Create an opensource GPU for machine learning. I don't actually intend to tape this out myself, but I intend to do what I can to verify somehow that tape-out would work ok, timings ok, etc. Intend to implement a HIP API, that is compatible with pytorch machine learning framework. Open to provision of other APIs, such as SYCL or NVIDIA(r) CUDA(tm). Internal GPU Core ISA loosely compliant with RISC-V ISA. Where RISC-V conflicts with designing for a GPU setting, we break with RISC-V. Intend to keep the cores very focused on ML. For example, brain floating point ("BF16") throughout, to keep core die area low. This should keep the per-core cost low. Similarly, Intend to implement only few float operations critical to ML, such as exp, log, tanh, sqrt. Architecture Big Picture: Big Picture GPU Die Architecture: GPU Die Architecture Single Core: Single Core Single-source compilation and runtime End-to-end Architecture Simulation Single-source C++ Single-source C++: * examples/cpp_single_source/sum_ints.cpp Single-source C++ Compile the GPU and runtime: * CMakeLists.txt: src/gpu_runtime/CMakeLists.txt * GPU runtime: src/gpu_runtime/gpu_runtime.cpp * GPU controller: src/gpu_controller.sv * Single GPU RISC-V core: src/core.sv Compile GPU and runtime Compile the single-source C++, and run: * examples/cpp_single_source/run.sh sum_ints Run single-source example Planning What direction are we thinking of going in? What works already? See: * docs/planning.md Tech details Our assembly language implementation and progress. Design of GPU memory, registers, and so on. See: * docs/tech_details.md Verification If we want to tape-out, we need solid verification. Read more at: * docs/verification.md Metrics we want the GPU to run quickly, and to use minimal die area. Read how we measure timings and area at: * docs/metrics.md About OpenSource GPU, in Verilog, loosely based on RISC-V ISA Topics machine-learning gpu verification verilog gpu-acceleration hardware-designs risc-v asic-design risc-v-assembly Resources Readme License MIT License Stars 85 stars Watchers 8 watching Forks 6 forks Releases No releases published Packages 0 No packages published Contributors 2 * @hughperkins hughperkins Hugh Perkins * @hpasapp hpasapp Hugh Perkins Languages * SystemVerilog 52.5% * C++ 25.9% * Python 10.7% * Shell 4.0% * Verilog 2.8% * C 2.3% * Other 1.8% * (c) 2022 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.