Nyuzi is an experimental multicore GPGPU processor. It supports vector floating point, hardware multithreading, and cache coherence. The SystemVerilog-based hardware implementation is synthesizable and runs on FPGA. This project also includes an LLVM-based C++ toolchain, a symbolic debugger, an emulator, software libraries, and hardware verification tests. It is useful for microarchitecture experimentation, performance modeling, and parallel software development.
Mailing list: https://groups.google.com/forum/#!forum/nyuzi-processor-dev
License: Apache 2.0
The following sections explain how to get Nyuzi running in the Verilog simulator and the emulator. These allow development of hardware and software, but do not need an FPGA. These instructions assume you have cloned this repo and have a shell open in the top directory.
Install Linux Prerequisites (Ubuntu)
This requires Ubuntu 14 or later to get the proper package versions. It should work for other distributions, but you will probably need to modify some package names.
sudo apt-get -y install cmake make gcc g++ bison flex python perl emacs curl openjdk-7-jdk swig zlib1g-dev python-dev libxml2-dev libedit-dev ncurses-dev libsdl2-dev gtkwave imagemagick
Emacs is used for verilog-mode AUTO macros. The makefile executes this operation in batch mode
Install MacOS Prerequisites
These instructions assume Mavericks or later. If you don't have XCode already, install the command line tools like this:
This installs the remaining packages using MacPorts:
sudo port install cmake bison swig swig-python imagemagick libsdl2 curl emacs
You may optionally also want to install GTKWave for analyzing waveform files.
Build (Linux & MacOS)
Download and build Verilator as follows (while some Linux package managers have this, it is way out of date):
cd tools curl http://www.veripool.org/ftp/verilator-3.876.tgz | tar xz cd verilator-3.876/ ./configure make sudo make install cd ../..
Download and build the Nyuzi toolchain as follows (This clones my repo. If you want to use your own fork, change the clone URL):
git clone https://github.com/jbush001/NyuziToolchain.git tools/NyuziToolchain cd tools/NyuziToolchain mkdir build cd build cmake .. make sudo make install cd ../../..
Build remaining tools and hardware model. Run unit tests.
make make test
From here, you can run the 3D renderer:
cd software/apps/sceneview make run
I have not tested this on Windows. Many of the libraries are already cross platform, so it should theoretically be possible. The easiest route is probably to run Linux under VirtualBox or VMWare.
Running on FPGA
See instructions in hardware/fpga/de2-115/README.md