Comments (9)
Hi! it seems confusing indeed but i'm sure that is a explanation. I will nudge the GW team for this but it might be difficult to get an answer before Christmas, so I hope this is not in a hurry?
happy holidays!
from aideck-gap8-examples.
Hi @SuperN1ck
There's a confusion between internal L2 RAM (512KB), and external Memory on HyperBUS.
On GAP8, we have 512KB L2 and 64KB L1 memory embeded, without Flash.
Thanks to Hyperbus and Quad-SPI interfaces, we can connect to an external RAM and an external Flash.
For example, on AI Deck, it's equipped with an external RAM + Flash, called HyperFlash and HyperRam.
You can find some related examples from our SDK:
- HyperFlash: https://github.com/GreenWaves-Technologies/gap_sdk/tree/master/examples/pmsis/bsp/flash/hyper_flash
- HyperRam: https://github.com/GreenWaves-Technologies/gap_sdk/tree/master/examples/pmsis/bsp/ram/hyper_ram
I see also one test from AI Deck repo: https://github.com/bitcraze/AIdeck_examples/tree/master/test/gap8_test
Best
from aideck-gap8-examples.
Thank you for the answer!
Do you know by any chance if it is possible to use the HyperRam similar to the L1/L2 memory. For instance such that I can do something like
int* test = pmsis_l3_malloc(sizeof(int) * 5)
Or do I always have to explicitly copy the memory through a task?
Best,
-Nick
from aideck-gap8-examples.
No, since the L3 Memory (external memory) is not memory mapped in our system, and we don't have MMU, we cannot use it as L2/L1 to have the direct access.
It's possible to have such an api like "pmsis_l3_malloc", but since it's an external device, which is managed in the BSP level. However, allocator is in runtime level. We won't mix them, since it will cause maintain issues in the future.
Do you see any problem in using our API for managing the external RAM ?
Yao
from aideck-gap8-examples.
Thank you for your info! Luckily I found a way such that our program fits in L2 only (for now). I will close that issue now since my initial question was answered.
So the following is more a guess not concrete feedback:
There is no problem with the API itself. But as far as I understand it's not possible to use the whole L3 memory at the same time since I always need to copy the parts I need to the L2 in order to do computations. In that case the program is then limited by the L2 memory size? If I want to process more than in the L2 fits, I have to copy the first chunk from L3 to L2, process it, copy back from L2 to L3, then the second chunk from L3 to L2 etc I guess. I'm not sure but maybe the Autotiler takes care of that?
Happy to your thoughts :)
from aideck-gap8-examples.
from aideck-gap8-examples.
Hi @SuperN1ck
There's a confusion between internal L2 RAM (512KB), and external Memory on HyperBUS. On GAP8, we have 512KB L2 and 64KB L1 memory embeded, without Flash. Thanks to Hyperbus and Quad-SPI interfaces, we can connect to an external RAM and an external Flash. For example, on AI Deck, it's equipped with an external RAM + Flash, called HyperFlash and HyperRam. You can find some related examples from our SDK:
- HyperFlash: https://github.com/GreenWaves-Technologies/gap_sdk/tree/master/examples/pmsis/bsp/flash/hyper_flash
- HyperRam: https://github.com/GreenWaves-Technologies/gap_sdk/tree/master/examples/pmsis/bsp/ram/hyper_ram
I see also one test from AI Deck repo: https://github.com/bitcraze/AIdeck_examples/tree/master/test/gap8_test
Best
hi, Yao,
Thank you for your comments but when I am trying to dive into the examples you shared, it looks like the links are invalid. Do you have the latest examples of how to allocate the HyperRAM that I can learn from? Thanks!
from aideck-gap8-examples.
Sorry, the sdk has been reorged... Please find the path here:
- Hyperflash: https://github.com/GreenWaves-Technologies/gap_sdk/tree/master/examples/gap8/basic/bsp/flash
- Hyperram: https://github.com/GreenWaves-Technologies/gap_sdk/tree/master/examples/gap8/basic/bsp/ram
Yao
from aideck-gap8-examples.
Sorry, the sdk has been reorged... Please find the path here:
- Hyperflash: https://github.com/GreenWaves-Technologies/gap_sdk/tree/master/examples/gap8/basic/bsp/flash
- Hyperram: https://github.com/GreenWaves-Technologies/gap_sdk/tree/master/examples/gap8/basic/bsp/ram
Yao
hi, Yao,
Thank you for your real-time response! I will take a look at these examples first and get back to you if I have questions. I appreciate your help!
from aideck-gap8-examples.
Related Issues (20)
- classification example will not perform make HOT 1
- remove opencv dependency warning
- CFloader flash img hangs at 99% with the classification demo HOT 5
- Flashing of GAP8 sometimes stops at 3-4% HOT 14
- Wifi image streaming hangs, when executed multiple times. HOT 8
- Question: custom network for Ai deck (classification example) HOT 4
- cpx array sending example to crazyflie HOT 6
- [Urgent] Unable to resolve host address to greenwaves? HOT 4
- Rework aideck repo docs HOT 1
- Enforce CPX version
- Add LED error message
- Investigate corrupt bootloader with firmware
- wifi-img-streamer slows down when there are multiple streamers HOT 1
- Himax camera does not work at lower resolutions HOT 2
- uart_send_char example not working
- Classification example - segmentation fault on some systems HOT 17
- Increase FPS rate streamer
- Improve classification demo
- Turning off/on the camera HOT 3
- Classification example fails to construct CNN when flashed with JTAG
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aideck-gap8-examples.