Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gemmini Integration #356

Merged
merged 30 commits into from
Dec 14, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
583801e
gemmini submodule
alonamid Oct 23, 2019
8cdf95d
fix build.sbt
alonamid Oct 23, 2019
cfc6678
firechip gemmini config
alonamid Oct 23, 2019
b53ba30
bump gemmini
alonamid Oct 26, 2019
9c9b797
bump gemmini
alonamid Nov 19, 2019
c72dbd5
Merge remote-tracking branch 'origin/dev' into gemmini
alonamid Nov 19, 2019
33f8480
bump gemmini
alonamid Nov 19, 2019
9c7569d
fix hwacha typo
alonamid Nov 25, 2019
d9ce7da
start gemmini docs
alonamid Nov 26, 2019
22b3d0f
bump gemmini
alonamid Nov 26, 2019
cfe591c
gemmini docs
alonamid Dec 1, 2019
86ac650
Update Gemmini RST. Add quick-build instructions to Gemmini RST
hngenc Dec 5, 2019
46b15a3
Merge pull request #354 from hngenc/gemmini-rst-update
alonamid Dec 5, 2019
da445fe
start gemmini CI
alonamid Dec 6, 2019
d2aef03
bump gemmini
alonamid Dec 6, 2019
5c89761
Merge remote-tracking branch 'origin/dev' into gemmini
alonamid Dec 6, 2019
383daca
gemmini CI fixes
alonamid Dec 7, 2019
ddfc6b3
bump gemmini
alonamid Dec 9, 2019
6820acc
fix simulator name in gemmini CI
alonamid Dec 9, 2019
48eb366
cleanup gemmini CI
alonamid Dec 9, 2019
766bf9d
bump esp-isa-sim to include gemmini
alonamid Dec 10, 2019
6ff23d2
update gemmini docs
alonamid Dec 10, 2019
219ab45
[ci skip] fix gemmini docs typos
alonamid Dec 11, 2019
182b1d3
Update Gemmini.rst
hngenc Dec 11, 2019
c07be06
Changed order of VCS and Verilator in Gemmini docs
hngenc Dec 12, 2019
33e6950
Remove "make your own tests" from Gemmini README
hngenc Dec 13, 2019
56b6ce6
Merge pull request #368 from hngenc/update-gemmini-docs
alonamid Dec 13, 2019
c4a2b63
Merge remote-tracking branch 'origin/dev' into gemmini
alonamid Dec 13, 2019
b1dbd9b
bump gemmini
alonamid Dec 13, 2019
2648485
try to fix midasexamples CI
alonamid Dec 14, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .circleci/check-commit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ search () {
done
}

submodules=("boom" "hwacha" "icenet" "sha3" "rocket-chip" "sifive-blocks" "sifive-cache" "testchipip")
submodules=("boom" "hwacha" "icenet" "sha3" "rocket-chip" "sifive-blocks" "sifive-cache" "testchipip" "gemmini")
dir="generators"
if [ "$CIRCLE_BRANCH" == "master" ] || [ "$CIRCLE_BRANCH" == "dev" ]
then
Expand Down
62 changes: 62 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,35 @@ jobs:
key: hwacha-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
prepare-gemmini:
docker:
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps:
- add_ssh_keys:
fingerprints:
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e"
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- esp-tools-installed-v2-{{ checksum "../esp-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Building the gemmini subproject using Verilator
command: .circleci/do-rtl-build.sh gemmini
no_output_timeout: 120m
- save_cache:
key: gemmini-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
prepare-tracegen:
docker:
- image: riscvboom/riscvboom-images:0.0.12
Expand Down Expand Up @@ -516,6 +545,30 @@ jobs:
- run:
name: Run hwacha tests
command: .circleci/run-tests.sh hwacha
gemmini-run-tests:
docker:
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps:
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- esp-tools-installed-v2-{{ checksum "../esp-tools.hash" }}
- restore_cache:
keys:
- gemmini-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Run gemmini tests
command: .circleci/run-tests.sh gemmini
tracegen-run-tests:
docker:
- image: riscvboom/riscvboom-images:0.0.12
Expand Down Expand Up @@ -660,6 +713,11 @@ workflows:
- install-esp-toolchain
- install-verilator

- prepare-gemmini:
requires:
- install-esp-toolchain
- install-verilator

- prepare-tracegen:
requires:
- install-riscv-toolchain
Expand Down Expand Up @@ -704,6 +762,10 @@ workflows:
requires:
- prepare-hwacha

- gemmini-run-tests:
requires:
- prepare-gemmini

- tracegen-run-tests:
requires:
- prepare-tracegen
Expand Down
1 change: 1 addition & 0 deletions .circleci/defaults.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ mapping["boom"]="SUB_PROJECT=example CONFIG=SmallBoomConfig"
mapping["rocketchip"]="SUB_PROJECT=rocketchip"
mapping["blockdevrocketchip"]="SUB_PROJECT=example CONFIG=SimBlockDeviceRocketConfig TOP=TopWithBlockDevice"
mapping["hwacha"]="SUB_PROJECT=example CONFIG=HwachaRocketConfig"
mapping["gemmini"]="SUB_PROJECT=example CONFIG=GemminiRocketConfig"
mapping["tracegen"]="SUB_PROJECT=tracegen CONFIG=NonBlockingTraceGenL2Config"
mapping["firesim"]="DESIGN=FireSim TARGET_CONFIG=DDR3FRFCFSLLC4MB_FireSimRocketChipConfig PLATFORM_CONFIG=BaseF1Config"
mapping["fireboom"]="DESIGN=FireSim TARGET_CONFIG=DDR3FRFCFSLLC4MB_FireSimBoomConfig PLATFORM_CONFIG=BaseF1Config"
2 changes: 1 addition & 1 deletion .circleci/do-firesim-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ TOOLS_DIR=$REMOTE_RISCV_DIR
LD_LIB_DIR=$REMOTE_RISCV_DIR/lib
VERILATOR_BIN_DIR=$REMOTE_VERILATOR_DIR/install/bin

if [ $1 = "hwacha" ]; then
if [ $1 = "hwacha" ] || [ $1 = "gemmini" ]; then
TOOLS_DIR=$REMOTE_ESP_DIR
LD_LIB_DIR=$REMOTE_ESP_DIR/lib
run "mkdir -p $REMOTE_ESP_DIR"
Expand Down
2 changes: 1 addition & 1 deletion .circleci/do-rtl-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ run "cp -r ~/.sbt $REMOTE_WORK_DIR"

TOOLS_DIR=$REMOTE_RISCV_DIR
LD_LIB_DIR=$REMOTE_RISCV_DIR/lib
if [ $1 = "hwacha" ]; then
if [ $1 = "hwacha" ] || [ $1 = "gemmini" ]; then
TOOLS_DIR=$REMOTE_ESP_DIR
LD_LIB_DIR=$REMOTE_ESP_DIR/lib
run "mkdir -p $REMOTE_ESP_DIR"
Expand Down
2 changes: 1 addition & 1 deletion .circleci/run-midasexamples-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ trap clean EXIT

cd $LOCAL_CHIPYARD_DIR
./scripts/init-submodules-no-riscv-tools.sh
cd sims/firesim/sim/midas && git submodule update --init
cd sims/firesim/sim/midas

# set stricthostkeychecking to no (must happen before rsync)
run "echo \"Ping $SERVER\""
Expand Down
12 changes: 12 additions & 0 deletions .circleci/run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,18 @@ case $1 in
export PATH=$RISCV/bin:$PATH
make run-rv64uv-p-asm-tests -j$NPROC -C $LOCAL_SIM_DIR VERILATOR_INSTALL_DIR=$LOCAL_VERILATOR_DIR ${mapping[$1]}
;;
gemmini)
export RISCV=$LOCAL_ESP_DIR
export LD_LIBRARY_PATH=$LOCAL_ESP_DIR/lib
export PATH=$RISCV/bin:$PATH
GEMMINI_SOFTWARE_DIR=$LOCAL_SIM_DIR/../../generators/gemmini/software/gemmini-rocc-tests
cd $GEMMINI_SOFTWARE_DIR
./build.sh
cd $LOCAL_SIM_DIR
$LOCAL_SIM_DIR/simulator-example-GemminiRocketConfig $GEMMINI_SOFTWARE_DIR/build/bareMetalC/aligned-baremetal
$LOCAL_SIM_DIR/simulator-example-GemminiRocketConfig $GEMMINI_SOFTWARE_DIR/build/bareMetalC/raw_hazard-baremetal
$LOCAL_SIM_DIR/simulator-example-GemminiRocketConfig $GEMMINI_SOFTWARE_DIR/build/bareMetalC/mvin_mvout-baremetal
;;
tracegen)
run_tracegen ${mapping[$1]}
;;
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,6 @@
[submodule "software/coremark"]
path = software/coremark
url = https://github.com/ucb-bar/coremark-workload.git
[submodule "generators/gemmini"]
path = generators/gemmini
url = https://github.com/ucb-bar/gemmini
6 changes: 5 additions & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ lazy val testchipip = (project in file("generators/testchipip"))
.settings(commonSettings)

lazy val example = conditionalDependsOn(project in file("generators/example"))
.dependsOn(boom, hwacha, sifive_blocks, sifive_cache, utilities, sha3)
.dependsOn(boom, hwacha, sifive_blocks, sifive_cache, utilities, sha3, gemmini)
.settings(commonSettings)

lazy val tracegen = conditionalDependsOn(project in file("generators/tracegen"))
Expand All @@ -150,6 +150,10 @@ lazy val sha3 = (project in file("generators/sha3"))
.dependsOn(rocketchip, chisel_testers, midasTargetUtils)
.settings(commonSettings)

lazy val gemmini = (project in file("generators/gemmini"))
.dependsOn(rocketchip, chisel_testers, testchipip)
.settings(commonSettings)

lazy val tapeout = conditionalDependsOn(project in file("./tools/barstools/tapeout/"))
.dependsOn(chisel_testers, example)
.settings(commonSettings)
Expand Down
2 changes: 2 additions & 0 deletions docs/Chipyard-Basics/Initial-Repo-Setup.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ After cloning this repo, you will need to initialize all of the submodules.
cd chipyard
./scripts/init-submodules-no-riscv-tools.sh

.. _build-toolchains:

Building a Toolchain
------------------------

Expand Down
90 changes: 90 additions & 0 deletions docs/Generators/Gemmini.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
Gemmini
====================================

The Gemmini project is developing a systolic-array based matrix multiplication unit generator for the investigation of software/hardware implications of such integrated SoC accelerators. It is inspired by recent trends in machine learning accelerators for edge and mobile SoCs.

Gemmini is implemented as a RoCC accelerator with non-standard RISC-V custom instructions. The Gemmini unit uses the RoCC port of a Rocket or BOOM `tile`, and by default connects to the memory system through the System Bus (i.e., directly to the L2 cache).

To add a Gemmini unit to an SoC, you should add the ``gemmini.DefaultGemminiConfig`` config mixin to the SoC configurations. To change the configuration of the Gemmini accelerator unit, you can write a custom configuration to replace the ``DefaultGemminiConfig``, which you can view under `generators/gemmini/src/main/scala/configs.scala <https://github.com/ucb-bar/gemmini/blob/master/src/main/scala/gemmini/configs.scala>`__ to see the possible configuration parameters.

The example Chipyard config includes the following example SoC configuration which includes Gemmini:

.. literalinclude:: ../../generators/example/src/main/scala/RocketConfigs.scala
:language: scala
:start-after: DOC include start: GemminiRocketConfig
:end-before: DOC include end: GemminiRocketConfig

To build a simulation of this example Chipyard config, run the following commands:

.. code-block:: shell

cd sims/verilator # or "cd sims/vcs"
make CONFIG=GemminiRocketConfig

.. image:: ../_static/images/gemmini-system.png

Generator Parameters
--------------------------

Major parameters of interest include:

* Systolic array dimensions (``tileRows``, ``tileColumns``, ``meshRows``, ``meshColumns``): The systolic array is composed of a 2-level hierarchy, in which each tile is fully combinational, while a mesh of tiles has pipeline registers between each tile.

.. image:: ../_static/images/gemmini-systolic-array.png

* Dataflow parameters (``dataflow``): Determine whether the systolic array in Gemmini is output-stationary or weight-stationary, or whether it supports both dataflows so that programmers may choose between them at runtime.

* Scratchpad and accumulator memory parameters (``sp_banks``, ``sp_capacity``, ``acc_capacity``): Determine the properties of the Gemmini scratchpad memory: overall capacity of the scratchpad or accumulators (in KiB), and the number of banks the scratchpad is divided into.

* Type parameters (``inputType``, ``outputType``, ``accType``): Determine the data-types flowing through different parts of a Gemmini accelerator. For example, ``inputType`` may be an 8-bit fixed-point number, while ``accType``, which determines the type of partial accumulations in a matrix multiplication, may be a 32-bit integer. ``outputType`` only determines the type of the data passed between two processing elements (PEs); for example, an 8-bit multiplication may produce a 16-bit result which must be shared between PEs in a systolic array.

* Access-execute queue parameters (``ld_queue_length``, ``st_queue_length``, ``ex_queue_length``, ``rob_entries``): To implement access-execute decoupling, a Gemmini accelerator has a load instruction queue, a store instruction queue, and an execute instruction queue. The relative sizes of these queue determine the level of access-execute decoupling. Gemmini also implements a reorder buffer (ROB) - the number of entries in the ROB determines possible dependency management limitations.

* DMA parameters (``dma_maxbytes``, ``dma_buswidth``, ``mem_pipeline``): Gemmini implements a DMA to move data from main memory to the Gemmini scratchpad, and from the Gemmini accumulators to main memory. The size of these DMA transactions is determined by the DMA parameters. These DMA parameters are tightly coupled with Rocket Chip SoC system parameters: in particular ``dma_buswidth`` is associated with the ``SystemBusKey`` ``beatBytes`` parameter, and ``dma_maxbytes`` is associated with ``cacheblockbytes`` Rocket Chip parameters.

Software
------------------

The Gemmini non-standard ISA extension is specified in the `Gemmini repository <https://github.com/ucb-bar/gemmini/blob/master/README.md>`__.
The ISA includes configuration instructions, data movement instructions (from main memory to the Gemmini scratchpad, and from the Gemmini accumulators to main memory), and matrix multiplication execution instructions.

Since Gemmini instructions are not exposed through the GNU binutils assembler, several C macros are provided in order to construct the instruction encodings to call these instructions.

The Gemmini generator includes a C matrix multiplication library which wraps the calls to the custom Gemmini instructions.
The ``software`` directory of the generator includes the aforementioned library and macros, as well as bare-metal tests, and some FireMarshal workloads to run the tests in a Linux environment. In particular, the matrix multiplication C library can be found in the ``software/gemmini-rocc-tests/include/gemmini.h`` file.

The Gemmini generator generates a C header file based on the generator parameters. This header files gets compiled together with the matrix multiplication library to tune library performance. The generated header file can be found under ``software/gemmini-rocc-tests/include/gemmini_params.h``

Build and Run Gemmini Tests
^^^^^^^^^^^^^^^^^^^^^^^^^

To build Gemmini tests:

.. code-block:: shell

cd generators/gemmini/software/gemmini-rocc-tests/
./build.sh

Afterwards, the test binaries will be found in ``generators/gemmini/software/gemmini-rocc-tests/build``. Binaries whose names end in ``-baremetal`` are meant to be run in a bare-metal environment, while binaries whose names end in ``-linux`` are meant to run in a Linux environment. You can run the tests either on a cycle-accurate RTL simulator, or on a (much faster) functional ISA simulator called Spike.

The Gemmini generator implements a custom non-standard version of Spike. This implementation is found within the ``esp-tools`` Spike implementation, together with the Hwacha vector accelerator non-standard ISA-extension. In order to use this version of Spike, please make sure to build the ``esp-tools`` software toolchain, as described in :ref:`build-toolchains`.

In order to run Spike with the gemmini functional model, you will need to use the ``--extension=gemmini`` flag. For example:

.. code-block:: shell

spike --extension=gemmini <some/gemmini/baremetal/test>

Spike is built by default without a commit log. However, if you would like to add detailed functional log of gemmini operation to the spike model, you can rebuild spike manually (based on the instructions in the ``esp-tools/riscv-isa-sim/README`` file), with the ``--enable-gemminicommitlog`` option added to the ``configure`` step.

Alternative SoC Configs
--------------------------

The Gemmini generator includes additional alternative SoC configs (configs that are not in the Chipyard example project).
If you would like to build one of these alternative SoC configurations which are defined in within the Gemmini project repository, you can run the following commands. These commands are similar to the one required when building a simulation from the example project, but they specify that the location of the configs are in the Gemmini subproject, as opposed to the Chipyard example project:

.. code-block:: shell

cd sims/verilator # or "cd sims/vcs"
make CONFIG=GemminiAcceleratorConfig CONFIG_PACKAGE=gemmini MODEL_PACKAGE=freechips.rocketchip.system GENERATOR_PACKAGE=freechips.rocketchip.system TOP=ExampleRocketSystem

2 changes: 1 addition & 1 deletion docs/Generators/Hwacha.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ To add the Hwacha vector unit to an SoC, you should add the ``hwacha.DefaultHwac

To change the configuration of the Hwacha vector unit, you can write a custom configuration to replace the ``DefaultHwachaConfig``. You can view the ``DefaultHwachaConfig`` under `generators/hwacha/src/main/scala/configs.scala <https://github.com/ucb-bar/hwacha/blob/master/src/main/scala/configs.scala>`__ to see the possible configuration parameters.

Since Hwacha implements a non-standard RISC-V extension, it requires a unique software toolchain to be able to compile and asseble its vector instructions.
Since Hwacha implements a non-standard RISC-V extension, it requires a unique software toolchain to be able to compile and assemble its vector instructions.
To install the Hwacha toolchain, run the ``./scripts/build-toolchains.sh esp-tools`` command within the root Chipyard directory. This may take a while, and it will install the ``esp-tools-install`` directory within your Chipyard root directory. ``esp-tools`` is a fork of ``riscv-tools`` (formerly a collection of relevant software RISC-V tools) that was enhanced with additional non-standard vector instructions. However, due to the upstreaming of the equivalent RISC-V toolchains, ``esp-tools`` may not be up-to-date with the latest mainline version of the tools included in it.
1 change: 1 addition & 0 deletions docs/Generators/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ so changes to the generators themselves will automatically be used when building
Rocket
BOOM
Hwacha
Gemmini
IceNet
TestChipIP
SiFive-Generators
Expand Down
Binary file added docs/_static/images/gemmini-system.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/images/gemmini-systolic-array.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions generators/example/src/main/scala/RocketConfigs.scala
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,16 @@ class HwachaRocketConfig extends Config(
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
new freechips.rocketchip.system.BaseConfig)

// DOC include start: GemminiRocketConfig
class GemminiRocketConfig extends Config(
new WithTop ++
new WithBootROM ++
new freechips.rocketchip.subsystem.WithInclusiveCache ++
new gemmini.DefaultGemminiConfig ++ // use Gemmini systolic array GEMM accelerator
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
new freechips.rocketchip.system.BaseConfig)
// DOC include end: GemminiRocketConfig

class RoccRocketConfig extends Config(
new WithTop ++
new WithBootROM ++
Expand Down
12 changes: 12 additions & 0 deletions generators/firechip/src/main/scala/TargetConfigs.scala
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,18 @@ class FireSimRocketBoomConfig extends Config(
new FireSimBoomConfig
)

//**********************************************************************************
//* Gemmini Configurations
//*********************************************************************************/

// Gemmini systolic accelerator default config
class FireSimRocketChipGemminiL2Config extends Config(
new WithInclusiveCache ++
new gemmini.DefaultGemminiConfig ++
new WithNBigCores(1) ++
new FireSimRocketChipConfig)


//**********************************************************************************
//* Supernode Configurations
//*********************************************************************************/
Expand Down
1 change: 1 addition & 0 deletions generators/gemmini
Submodule gemmini added at 16fda8
2 changes: 1 addition & 1 deletion toolchains/esp-tools/riscv-isa-sim
Submodule riscv-isa-sim updated 86 files
+3 −0 config.h.in
+66 −0 configure
+2 −1 configure.ac
+4 −0 gemmini/gemmini.ac
+324 −0 gemmini/gemmini.cc
+84 −0 gemmini/gemmini.h
+19 −0 gemmini/gemmini.mk.in
+2 −2 hwacha/decode_hwacha.h
+1 −1 hwacha/insns/vf.h
+1 −1 hwacha/insns_ut/vfadd_d.h
+1 −1 hwacha/insns_ut/vfadd_d_h.h
+1 −1 hwacha/insns_ut/vfadd_d_s.h
+1 −1 hwacha/insns_ut/vfadd_h.h
+1 −1 hwacha/insns_ut/vfadd_s.h
+1 −1 hwacha/insns_ut/vfadd_s_h.h
+1 −1 hwacha/insns_ut/vfcvt_d_h.h
+1 −1 hwacha/insns_ut/vfcvt_d_l.h
+1 −1 hwacha/insns_ut/vfcvt_d_lu.h
+1 −1 hwacha/insns_ut/vfcvt_d_s.h
+1 −1 hwacha/insns_ut/vfcvt_d_w.h
+1 −1 hwacha/insns_ut/vfcvt_d_wu.h
+1 −1 hwacha/insns_ut/vfcvt_h_d.h
+1 −1 hwacha/insns_ut/vfcvt_h_l.h
+1 −1 hwacha/insns_ut/vfcvt_h_lu.h
+1 −1 hwacha/insns_ut/vfcvt_h_w.h
+1 −1 hwacha/insns_ut/vfcvt_h_wu.h
+2 −2 hwacha/insns_ut/vfcvt_l_d.h
+2 −2 hwacha/insns_ut/vfcvt_l_h.h
+2 −2 hwacha/insns_ut/vfcvt_l_s.h
+2 −2 hwacha/insns_ut/vfcvt_lu_d.h
+2 −2 hwacha/insns_ut/vfcvt_lu_h.h
+2 −2 hwacha/insns_ut/vfcvt_lu_s.h
+1 −1 hwacha/insns_ut/vfcvt_s_d.h
+1 −1 hwacha/insns_ut/vfcvt_s_l.h
+1 −1 hwacha/insns_ut/vfcvt_s_lu.h
+1 −1 hwacha/insns_ut/vfcvt_s_w.h
+1 −1 hwacha/insns_ut/vfcvt_s_wu.h
+2 −2 hwacha/insns_ut/vfcvt_w_d.h
+2 −2 hwacha/insns_ut/vfcvt_w_h.h
+2 −2 hwacha/insns_ut/vfcvt_w_s.h
+2 −2 hwacha/insns_ut/vfcvt_wu_d.h
+2 −2 hwacha/insns_ut/vfcvt_wu_h.h
+2 −2 hwacha/insns_ut/vfcvt_wu_s.h
+1 −1 hwacha/insns_ut/vfdiv_d.h
+1 −1 hwacha/insns_ut/vfdiv_h.h
+1 −1 hwacha/insns_ut/vfdiv_s.h
+1 −1 hwacha/insns_ut/vfmadd_d.h
+1 −1 hwacha/insns_ut/vfmadd_d_h.h
+1 −1 hwacha/insns_ut/vfmadd_d_s.h
+1 −1 hwacha/insns_ut/vfmadd_h.h
+1 −1 hwacha/insns_ut/vfmadd_s.h
+1 −1 hwacha/insns_ut/vfmadd_s_h.h
+1 −1 hwacha/insns_ut/vfmsub_d.h
+1 −1 hwacha/insns_ut/vfmsub_d_h.h
+1 −1 hwacha/insns_ut/vfmsub_d_s.h
+1 −1 hwacha/insns_ut/vfmsub_h.h
+1 −1 hwacha/insns_ut/vfmsub_s.h
+1 −1 hwacha/insns_ut/vfmsub_s_h.h
+1 −1 hwacha/insns_ut/vfmul_d.h
+1 −1 hwacha/insns_ut/vfmul_d_h.h
+1 −1 hwacha/insns_ut/vfmul_d_s.h
+1 −1 hwacha/insns_ut/vfmul_h.h
+1 −1 hwacha/insns_ut/vfmul_s.h
+1 −1 hwacha/insns_ut/vfmul_s_h.h
+1 −1 hwacha/insns_ut/vfnmadd_d.h
+1 −1 hwacha/insns_ut/vfnmadd_d_h.h
+1 −1 hwacha/insns_ut/vfnmadd_d_s.h
+1 −1 hwacha/insns_ut/vfnmadd_h.h
+1 −1 hwacha/insns_ut/vfnmadd_s.h
+1 −1 hwacha/insns_ut/vfnmadd_s_h.h
+1 −1 hwacha/insns_ut/vfnmsub_d.h
+1 −1 hwacha/insns_ut/vfnmsub_d_h.h
+1 −1 hwacha/insns_ut/vfnmsub_d_s.h
+1 −1 hwacha/insns_ut/vfnmsub_h.h
+1 −1 hwacha/insns_ut/vfnmsub_s.h
+1 −1 hwacha/insns_ut/vfnmsub_s_h.h
+1 −1 hwacha/insns_ut/vfsqrt_d.h
+1 −1 hwacha/insns_ut/vfsqrt_h.h
+1 −1 hwacha/insns_ut/vfsqrt_s.h
+1 −1 hwacha/insns_ut/vfsub_d.h
+1 −1 hwacha/insns_ut/vfsub_d_h.h
+1 −1 hwacha/insns_ut/vfsub_d_s.h
+1 −1 hwacha/insns_ut/vfsub_h.h
+1 −1 hwacha/insns_ut/vfsub_s.h
+1 −1 hwacha/insns_ut/vfsub_s_h.h
+11 −0 riscv-gemmini.pc.in