Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
e7c7534
Update README.md
FrancescoConti Dec 10, 2020
7b5ed41
Updated dpi-models
NBruschi Dec 11, 2020
50587a7
README: Update location of legacy SDK
andreaskurth Dec 14, 2020
6a8fb19
Added toolchain description
NBruschi Dec 15, 2020
058501b
Add argcomplete requirement in README.md
FrancescoConti Dec 17, 2020
2e97f7e
Merge pull request #86 from pulp-platform/FrancescoConti-patch-2
FrancescoConti Dec 17, 2020
353fb99
Replace GAP_SDK_HOME->PULP_SDK_HOME and GAP_RISCV_GCC_TOOLCHAIN->PULP…
FrancescoConti Dec 17, 2020
9d1f126
Merge pull request #87 from pulp-platform/pulp-env-vars
NBruschi Dec 17, 2020
31fccbc
Added CONFIG_NO_STD_RELOC: Avoids tiny section -> Fixes linking-time …
NBruschi Dec 21, 2020
1d961a6
Update udma_hyper_v3.cpp
NBruschi Jan 30, 2021
4865c66
Merge pull request #88 from pulp-platform/fix_lto
FrancescoConti Feb 1, 2021
0180f93
Add MobileNetV1 benchmark
NBruschi Feb 15, 2021
0cfe3e1
Remove typo in message
NBruschi Feb 26, 2021
5bb0f31
Add tests for GVSoC
NBruschi Feb 27, 2021
68bf702
Add README to tests folder and adapt flash writes examples
NBruschi Mar 1, 2021
575f16b
added buffer_id for bouble buffering test
mrusci Mar 2, 2021
1519af9
Merge pull request #90 from pulp-platform/integration-manu
NBruschi Mar 2, 2021
1db195c
Add check for ram write
NBruschi Mar 2, 2021
b0bb8eb
Add vector by vector example
NBruschi Mar 3, 2021
bcbe77f
Delete .sconsign.dblite
NBruschi Mar 5, 2021
dbdd9a2
Align hyper drivers and models to fpga, add barrier for asyncronous r…
NBruschi Mar 9, 2021
7ff76d2
Adding support to compile and install static libraries
gtagliavini Apr 20, 2021
15889c7
FIX: PULP_AR was broken for some configurations
gtagliavini Apr 23, 2021
bf67196
Add support and model for 2d hyper transfers, remove L2 accesses beha…
NBruschi May 3, 2021
d0023b8
Add xpulpnn ISA configuration and model
NBruschi Jan 30, 2021
a597743
Add ima support and model
NBruschi Feb 11, 2021
ae9dfbe
Merge pull request #94 from pulp-platform/gvsoc_hyper2d
NBruschi May 4, 2021
0b60536
Merge branch 'main' into gvsoc_xpulpnn
NBruschi May 4, 2021
b2b83a8
Merge pull request #95 from pulp-platform/gvsoc_xpulpnn
NBruschi May 4, 2021
3b7c89b
Merge pull request #97 from pulp-platform/pr_ima
NBruschi May 4, 2021
035f7dd
Align periph ids with pulp-open
NBruschi May 4, 2021
29e4749
Basic support for OpenMP (experimental)
gtagliavini May 11, 2021
84c3077
replace g++ with $(CXX)
da-gazzi May 20, 2021
ef9dcff
add MAGICK_ROOT variable to specify graphicsmagick installation prefix
da-gazzi May 21, 2021
7d53800
[NE16] Add NE16 model
Jun 2, 2021
1d75087
[NE16] Integrated NE16 in GVSOC
FrancescoConti Jun 2, 2021
36f3b07
Merge pull request #99 from pulp-platform/ne16
FrancescoConti Jun 3, 2021
ca3c5d7
[NE16] Check if xtensor lib is present at gvsoc.build stage
FrancescoConti Jun 3, 2021
2423c88
Simple CI
NBruschi Jul 20, 2021
2a733c8
Fix CI
NBruschi Jul 20, 2021
aa0a869
Merge pull request #101 from pulp-platform/fix_compilation
NBruschi Jul 23, 2021
5fd473c
Update regression-tests.yml
NBruschi Jul 23, 2021
137b2c3
Fix typo
NBruschi Jul 23, 2021
84cdabf
Minor fixes for GCC 9.2 support
gtagliavini Jul 26, 2021
715cb95
Merge pull request #105 from pulp-platform/fix-gcc9.2-1
NBruschi Jul 26, 2021
5307f96
[NE16] Update model with several bugfixes
FrancescoConti Oct 27, 2021
ef84b08
[NE16] Missing changes in ne16.hpp in prev. commit
FrancescoConti Oct 27, 2021
39e75b0
Merge pull request #110 from pulp-platform/ne16-update
FrancescoConti Oct 27, 2021
c2d5947
[NE16] Fix incorrect RELU when quantization is not enabled
FrancescoConti Nov 14, 2021
eefb05a
[NE16] Align mode16 padding behavior to actual hardware
FrancescoConti Nov 17, 2021
85d7de9
Build __float128 in flexfloat only if it is actually used
FrancescoConti Jan 18, 2022
6ea2d92
Update README.md
NBruschi Jan 21, 2022
bf789ca
Add reference for citing to README.md
NBruschi Jan 21, 2022
89daba7
Allow custom vsim if `$VSIM` is defined
micprog Jan 25, 2022
9b15960
Merge pull request #113 from pulp-platform/flexfloat-on-quad-ifdef
NBruschi Jan 28, 2022
079ef9a
Merge pull request #114 from pulp-platform/custom_vsim
NBruschi Jan 28, 2022
5d32ea9
working except quant=8 and signed activations
Feb 6, 2022
bf904d2
keeping for backup
Feb 9, 2022
4a165de
added tests
Feb 9, 2022
57b5a16
name is modified to neureka from ne16
Feb 9, 2022
1e75336
added weight port successfully
arpansur Apr 20, 2022
9aa1dc2
memcpy is successful
arpansur Apr 26, 2022
051fa1e
removed unnecessary code. added memcpy to copy weights from L2 to WME…
arpansur May 3, 2022
2ff246f
removed the unnecessary cout used only for debugging
arpansur May 3, 2022
2c5a0e1
added additional functional argument bool w_demux to VectorLoad, to s…
arpansur May 3, 2022
2a0cdb2
added weight_demux flag to 0 as it is not used for activation fetch
arpansur May 3, 2022
f5dcb0d
default used weight_demux, it will be modified in future to make it c…
arpansur May 3, 2022
9dc8731
similar to activations, set weight_demux=false
arpansur May 3, 2022
800e9dd
removed unnecessary std::cout used only for debugging purpose
arpansur May 3, 2022
9fcc3d3
removed unnecessary std::cout used only for debugging purpose
arpansur May 3, 2022
b40492a
here w_demux is used for two purpose. 1. When w_demux is enabled the …
arpansur May 3, 2022
bdf9ba8
w_demux=0 as we don't need access to weight memory for streamin
arpansur May 3, 2022
a01e483
modified to use wmem instead of L1
arpansur May 3, 2022
db6bf86
modified to use wmem instead of L1
arpansur May 3, 2022
31a8bae
removed unnecessary print
arpansur May 3, 2022
7e8c67a
for the cfg.h file weight_demux is enabled to check it's configurabil…
arpansur May 3, 2022
5b931a3
added a weight_demux variable to take the cvalue from reg[0][9]. if w…
arpansur May 3, 2022
43cb2b1
added readme for neureka gvsoc model
arpansur May 12, 2022
74b4837
Update tools/gvsoc/Readme.md
arpansur May 12, 2022
631e130
updated Readme
arpansur May 12, 2022
b17972d
updated Readme
arpansur May 12, 2022
3608069
fixed markdown typo
arpansur May 12, 2022
3e6d44b
adding L1 model(not working)
arpansur May 13, 2022
3122cc1
Merge branch 'wmem' of iis-git.ee.ethz.ch:prasadar/neureka_gvsoc into…
arpansur May 13, 2022
19b1b79
Added L1 patch implementation
arpansur May 15, 2022
dd848a3
fixed bugs , L1_stream_mask
arpansur May 15, 2022
c7ee2b2
removed streamin for streamin layer as it shares the same streamin as…
arpansur May 16, 2022
8231eae
reduced the L1 to 256kB
arpansur May 16, 2022
ed55bfa
set the L1 memory size to 256kB
arpansur May 16, 2022
40efb2b
revised STREAM_L1_MASK to accommodate 256kB L1 size
arpansur May 16, 2022
2305336
modified name
arpansur May 22, 2022
29c6962
removed unnecessary cout
arpansur May 31, 2022
4d3b4d3
Add Siracusa target
NBruschi Jun 8, 2022
a769493
adapted for clutser size, l1 size, wmem and included neureka
arpansur Jun 9, 2022
fd11365
adapted the L1 size to 256kB
arpansur Jun 9, 2022
889755c
added print for x_buffer after padding
arpansur Jun 12, 2022
9e2f709
fixed dw tiling when kout=28
arpansur Jun 14, 2022
71cd54a
added additional tests for dw fix
arpansur Jun 14, 2022
5cb5db9
fixed dw bug
arpansur Jun 14, 2022
4e7cb4e
fixed dw streamout lim for the patches
arpansur Jun 14, 2022
512a6ef
neureka with other cores
arpansur Jun 16, 2022
a1c1c41
backup depthwise failing, removed linear and mode16
arpansur Jun 22, 2022
8a56407
working regression tests and removed unnecessary code for linear and …
arpansur Jun 22, 2022
6a6787f
[WIP] Porting siracusa support in pmsis runtime
NBruschi Jun 22, 2022
b440534
fixed normquant for signed activation
arpansur Jul 19, 2022
11dc0e2
pusing the changes needs to check the regression but works with dory …
arpansur Jul 19, 2022
689a380
modified the current running job id which was not at all updated thus…
arpansur Jul 19, 2022
6b5bd3b
modified binconv_block to account for unsigned activations
arpansur Jul 20, 2022
d789ade
fixed bug related to 8-bit quantization with relu
arpansur Jul 20, 2022
809b5f2
modified the header pulp.h path for correct compilation
arpansur Aug 1, 2022
8079537
added padmux and i3c drivers and includes in the target for compilation
arpansur Aug 1, 2022
d653476
added bitfield.h which is needed for padctrl
arpansur Aug 1, 2022
86e3392
added padmux driver to router uart signals to the receiver connected …
arpansur Aug 1, 2022
5c7d68e
modified the application to make it compatible for both gvsoc and rtl…
arpansur Aug 2, 2022
d898152
fixed relu in qutput quant is enabled or disabled
arpansur Aug 5, 2022
8c2a80c
Merge branch 'neureka_siracusa' into siracura_runtime
arpansur Aug 12, 2022
9575eb7
modified the memory map to L2=2MB FROM 512KB
arpansur Aug 15, 2022
d0e0a5f
fixed performance bugs related to overhgead adjust
arpansur Aug 16, 2022
8a3e523
added variables to track stand and end cycles thus latency of neureka
arpansur Aug 17, 2022
0e61256
initialized the start and end cycles for reset condition
arpansur Aug 17, 2022
b65158a
fixed performance bug related to 1x1 and 3x3 mode
arpansur Aug 17, 2022
95d09e6
fixed bugs related to byteenable workaround for streamout
arpansur Aug 17, 2022
e0975c8
hello world on FPGA tested
arpansur Aug 19, 2022
75f526c
removed unnecessary comment
arpansur Aug 19, 2022
9a98677
patched for cluster cores
arpansur Aug 24, 2022
2a4b044
ported the tutorial developed by Manuel from pulp-runtime to pulp-sdk
arpansur Aug 29, 2022
0a20474
moved neureka tests to a single folder to improve visibility of tests…
arpansur Aug 29, 2022
7b13d26
ported pulp-runtime to pulp-sdk(tutorial developed by manuel)
arpansur Aug 29, 2022
e30b5ea
added pi_yield_polling to extract the right cycles on gvsoc model
arpansur Aug 29, 2022
053e657
working image_maxpool_jtag and hello application on FPGA
arpansur Aug 29, 2022
2801dcb
backup works on DORY but need to remove the prints
arpansur Oct 27, 2022
3417f23
removed printf
arpansur Oct 27, 2022
cd51074
fixed wmem bank size
arpansur Oct 27, 2022
22bb54a
added a test to check wmem meory region
arpansur Oct 27, 2022
3b065cb
ported the changes to neureka model to mak eit consistent with the si…
arpansur Oct 27, 2022
7bfbe33
modified the wmem size from 4M to 8M
arpansur Oct 27, 2022
b37c449
Add weightmemory locations in linker script
Nov 11, 2022
38b4955
Update pulp-sdk in many ways
Feb 3, 2023
9d9992c
Merge remote-tracking branch 'meta/meta'
Feb 3, 2023
d219e9b
Replace 12 Bit imm bne with 20 Bit imm jmp
Jun 30, 2023
4c3bcb7
Set ax attributes on text_l2 sections
Jun 30, 2023
377067c
Colocate data_tiny_fc and _l1 explicitly
Jun 30, 2023
3ed6a89
Keep got contiguous with rodata
Jun 30, 2023
3808193
"Fix" linker script so Luka is happy
Jan 19, 2024
872d142
Move the BSS away from stack bank
Jan 19, 2024
4620e64
Remove polluting prints in GVSoC model of Neureka
Victor-Jung Apr 8, 2025
8ee5bf9
Update task_asm for llvm (tiny unsupported)
Victor-Jung Apr 8, 2025
d44cd60
Fix pos_soc_event_handler_asm when using LLVM, save and correctly res…
Victor-Jung Apr 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
49 changes: 49 additions & 0 deletions .github/workflows/regression-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: PULP-SDK CI
on: [push, pull_request]
jobs:
Regression-Tests:
name: Regression Tests
runs-on: ubuntu-latest
steps:
- run: echo "The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v2
- run: echo "The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "The workflow is now ready to test your code on the runner."
- name: Download PULP toolchain
run: |
wget https://github.com/pulp-platform/pulp-riscv-gnu-toolchain/releases/download/v1.0.16/v1.0.16-pulp-riscv-gcc-ubuntu-18.tar.bz2
tar -xf v1.0.16-pulp-riscv-gcc-ubuntu-18.tar.bz2
cd v1.0.16-pulp-riscv-gcc-ubuntu-18
export PULP_RISCV_GCC_TOOLCHAIN=$(pwd)
cd ${{ github.workspace }}
export -p > temp_env
- name: Install PULP-SDK dependancies
run: |
source temp_env
cd ${{ github.workspace }}
sudo apt-get update -y
sudo apt-get install -y build-essential git libftdi-dev libftdi1 doxygen python3-pip libsdl2-dev curl cmake libusb-1.0-0-dev scons gtkwave libsndfile1-dev rsync autoconf automake texinfo libtool pkg-config libsdl2-ttf-dev
pip install --user argcomplete pyelftools
cd ${{ github.workspace }}
export -p > temp_env
- name: Build PULP-SDK
run: |
source temp_env
source configs/pulp-open.sh
make build
cd ${{ github.workspace }}
export -p > temp_env
- name: Launch regression tests
run: |
source temp_env
cd tests/
dirs=$(dirname $(find . -name "Makefile" -printf "%P\n")); for file in ${dirs}; do cd ${file}; echo ${file}; rm -rf BUILD/; make clean all run; cd -; done;
cd ${{ github.workspace }}
export -p > temp_env
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "This job's status is ${{ job.status }}."
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
__pycache__
BUILD/
build/
install/
.sconsign.dblite
23 changes: 8 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
# the MAGICK_ROOT variable can be used to pass an alternative installation
# prefix for the GraphicsMagick library.
ifdef MAGICK_ROOT
export MAGICK_ROOT := $(realpath $(MAGICK_ROOT))
endif

SHELL=bash

ifndef GAP_SDK_HOME
ifndef PULP_SDK_HOME
$(error Please source the proper configuration first)
endif

BUILD_DIR ?= $(CURDIR)/build
ARTIFACT_PATH ?= $(CURDIR)/artifact

export BUILD_DIR
export ARTIFACT_PATH

include rules/json-tools.mk
include rules/gap-configs.mk
Expand All @@ -17,19 +21,8 @@ include rules/dpi-models.mk
include rules/gvsoc.mk
include rules/pulpos.mk

checkout: gvsoc.checkout.all
git submodule update --init rtos/pulpos/pulp_hal rtos/pulpos/pulp_archi tests/pmsis_tests rtos/pulpos/pulp rtos/pmsis/pmsis_api tools/gapy

build: gvsoc.build.all

clean: gvsoc.clean

all: checkout build

artifact: gvsoc.artifact pulpos.artifact
rsync -avR --exclude=".git*" Makefile rules configs tools/rules README.md LICENSE $(ARTIFACT_PATH)

mkdir -p $(ARTIFACT_PATH)/tools/jenkins
git rev-parse HEAD &> $(ARTIFACT_PATH)/tools/jenkins/sdk_version.txt

.PHONY: artifact
all: build
121 changes: 106 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,86 @@
# SDK setup

Previous version is available at: https://github.com/pulp-platform/pulp-sdk-legacy
# PULP-SDK

This is the latest version of the PULP SDK, which is under active development. The previous (now legacy) version, which is no longer supported, is on the [`v1` branch](https://github.com/pulp-platform/pulp-sdk/tree/v1).

## Citing

If you intend to use or reference GVSoC for an academic publication, please consider citing it:

```
@INPROCEEDINGS{9643828,
author={Bruschi, Nazareno and Haugou, Germain and Tagliavini, Giuseppe and Conti, Francesco and Benini, Luca and Rossi, Davide},
booktitle={2021 IEEE 39th International Conference on Computer Design (ICCD)},
title={GVSoC: A Highly Configurable, Fast and Accurate Full-Platform Simulator for RISC-V based IoT Processors},
year={2021},
volume={},
number={},
pages={409-416},
doi={10.1109/ICCD53106.2021.00071}}
```

PULP-SDK completely supports Dory as QNNs deployment tool. You can find an example of deployment [\[here\]](#cnns-at-the-edge). If you intend to use or reference Dory for an academic publication, please consider citing it:

```
@ARTICLE{9381618,
author={Burrello, Alessio and Garofalo, Angelo and Bruschi, Nazareno and Tagliavini, Giuseppe and Rossi, Davide and Conti, Francesco},
journal={IEEE Transactions on Computers},
title={DORY: Automatic End-to-End Deployment of Real-World DNNs on Low-Cost IoT MCUs},
year={2021},
volume={70},
number={8},
pages={1253-1268},
doi={10.1109/TC.2021.3066883}}
```

## Getting started

These instructions were developed using a fresh Ubuntu 18.04 Bionic Beaver 64-Bit virtual machine from https://www.osboxes.org/ubuntu/#ubuntu-1804-info
These instructions were developed using a fresh Ubuntu 18.04 Bionic Beaver 64-Bit.

The following packages needed to be installed:

~~~~~shell
sudo apt-get install -y build-essential git libftdi-dev libftdi1 doxygen python3-pip libsdl2-dev curl cmake libusb-1.0-0-dev scons gtkwave libsndfile1-dev rsync autoconf automake texinfo libtool pkg-config libsdl2-ttf-dev
~~~~~

The SDK also requires the `argcomplete` and `pyelftools` Python package. You can install them for the local user with:
~~~~~shell
pip install --user argcomplete pyelftools
~~~~~
Omit `--user` to install at system level instead, which will probably require admin rights.

This version requires PULP toolchain to compile the application exploiting pulp features. PULP toolchain is available at: https://github.com/pulp-platform/pulp-riscv-gnu-toolchain

You can choose also its precompiled version, exploring: https://github.com/pulp-platform/pulp-riscv-gnu-toolchain/releases/tag/v1.0.16

Please, refer to the corresponding README for the installation.

Once PULP toolchain is correctly installed, define the path in which there is toolchain bin folder:

~~~~~shell
export PULP_RISCV_GCC_TOOLCHAIN=<INSTALL_DIR>
~~~~~

Source the file corresponding to the desired configuration:

~~~~~shell
cd pulp-sdk
source configs/pulp-open.sh
~~~~~

At least gcc 4.9.1 is needed. If the default one is not correct, CC and CXX can be set to
point to a correct one.
point to a correct one. To check if gcc has the right version:

~~~~~shell
gcc --version
~~~~~

GAP_RISCV_GCC_TOOLCHAIN must be defined to point to the riscv compiler.
Please, refer to official guide to update gcc if is needed.

## SDK build
## GVSoC

Compile the SDK with this command:
GVSoC is the PULP chips simulator that is natively included in the SDK and is described and evaluated fully in Bruschi et al. [\[arXiv:2201.08166v1\]](https://arxiv.org/abs/2201.08166).

Compile GVSoC with this command:

~~~~~shell
make build
Expand All @@ -41,24 +96,60 @@ Then, go to a test, for example pmsis_tests/quick/cluster/fork/, and execute:
make clean all run
~~~~~

This will by default execute it on gvsoc, and you can configure the platform with this command:
This will by default execute it on GVSoC (platform=gvsoc), and you can configure the RTL platform with this command:

~~~~~shell
make clean all run platform=rtl
~~~~~

## Getting a single module
Notice that the environment variable `VSIM_PATH` should be set to the directory where the RTL platform has been built.
This is typically done by sourcing the `setup/vsim.sh` file from the main folder of the RTL platform.

<a name='cnns-at-the-edge'>
## Application: CNNs at the Edge
</a>

You can also use this SDK to just get one module and his depencies, by doing:
To run pre-generated real-world networks, such as MobileNetV1:

~~~~~shell
make <module name>.all
cd applications/MobileNetV1
make clean all run platform=<PLATFORM> CORE=<NUM_CORES>
~~~~~

For example, to get GVSOC, you can execute:
### Nemo + Dory + Pulp-NN

Our vertical flow allows to deploy optimized QNNs on low-power and low-resources MCUs, starting from a Pytorch model.

#### Nemo

[\[Nemo\]](https://github.com/pulp-platform/nemo) is a framework for Deep Neural Networks layer-wise quantization.
He starts from a common Pytorch project and produces an equivalent quantized model, which well suits the usually integer MCUs.
Its output are a `.onnx` as quantized model and several `.txt` as set of input and weigths of the network, also including the golden activations to checks the output of every network's layer.
Please refer to its README for more details and [\[here\]](https://colab.research.google.com/drive/1qdc__9uZAGk9TzylsH3S8tB73bWcA2cA?usp=sharing#scrollTo=xelcF1jxkAit) you can find a Colab project and a very detailed tutorial on how to get started with Nemo.

#### Dory

[\[Dory\]](https://github.com/pulp-platform/dory) is an automatic tool to generate and directly deploy MLP/CNNs on PULP family boards, exploiting [\[Pulp-NN\]](https://github.com/pulp-platform/pulp-nn) as optimized back-end.

Dory has a complete and autonomous testsuite, named [\[Dory-Example\]](https://github.com/pulp-platform/dory_examples), which is periodically updated, and please refer to its README for more details.
To generate the code and run one of these examples:

~~~~~shell
cd dory/dory_examples/
python3 network_generate --network_dir <e.g., ./examples/MobileNetV1/>
cd application
make clean all run platform=<PLATFORM> CORE=<NUM_CORES>
~~~~~

where you should choose `CORE=8` if you want to test the network on pulp cluster with all of the eight cores active (by default only 1 is set).

To set up and execute a custom application, firstly, copy your file `network.onnx` and files `out_layer{i}.txt` in a single folder (e.g., `pulp-sdk/application/MyCustomNetwork/`) and then:

~~~~~shell
make gvsoc.all
cd dory/dory_examples/
python3 network_generate --network_dir <pulp-sdk/application/MyCustomNetwork/>
cd application
make clean all run platform=<PLATFORM> CORE=<NUM_CORES>
~~~~~

Note that you still need to source a config before doing that.
You can use L1 and L2 memory constraints to specify the amount of memory used inside the application. Please refer to Dory and Dory-example READMEs for more details.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
97 changes: 97 additions & 0 deletions applications/MobileNetV1/DORY_network/inc/dory.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
/*
* dory.h
* Alessio Burrello <alessio.burrello@unibo.it>
*
* Copyright (C) 2019-2020 University of Bologna
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#include "mchan_test.h"
unsigned int dory_get_tile_1d(
unsigned x,
int tile_ii,
int tile_size_i,
int data_size
);
unsigned int dory_get_tile_2d(
unsigned int x,
int tile_ii,
int tile_jj,
int tile_size_i,
int tile_size_j,
int tile_stride_j,
int data_size
);
unsigned int dory_get_tile_3d(
unsigned int x,
int tile_ii,
int tile_jj,
int tile_kk,
int tile_size_i,
int tile_size_j,
int tile_size_k,
int tile_stride_j,
int tile_stride_k,
int tile_overlap_i,
int tile_overlap_j,
int tile_overlap_k,
int tile_offset_i,
int tile_offset_j,
int tile_offset_k,
int data_size
);

unsigned int dory_get_tile_4d(
unsigned int x,
int tile_ii,
int tile_jj,
int tile_kk,
int tile_ll,
int tile_size_i,
int tile_size_j,
int tile_size_k,
int tile_size_l,
int tile_stride_j,
int tile_stride_k,
int tile_stride_l,
int tile_offset_i,
int tile_offset_j,
int tile_offset_k,
int tile_offset_l,
int data_size
);

void dory_dma_memcpy_3d_custom(
unsigned int ext,
unsigned int loc,
unsigned short size,
unsigned short stride_1,
unsigned short stride_0,
unsigned short length_2,
unsigned short length_0,
unsigned int dir,
unsigned int *id
);

void dory_dma_memcpy_3d_custom_hwc_to_chw(
unsigned int ext,
unsigned int loc,
unsigned short size,
unsigned short stride_1,
unsigned short stride_0,
unsigned short length_2,
unsigned short length_0,
unsigned int dir,
unsigned int *id
);
Loading