GithubHelp home page GithubHelp logo

Comments (9)

knmcguire avatar knmcguire commented on August 16, 2024

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.

Yaooooo avatar Yaooooo commented on August 16, 2024

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:

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.

SuperN1ck avatar SuperN1ck commented on August 16, 2024

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.

Yaooooo avatar Yaooooo commented on August 16, 2024

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.

SuperN1ck avatar SuperN1ck commented on August 16, 2024

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.

Yaooooo avatar Yaooooo commented on August 16, 2024

from aideck-gap8-examples.

hustc12 avatar hustc12 commented on August 16, 2024

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:

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.

Yaooooo avatar Yaooooo commented on August 16, 2024

Sorry, the sdk has been reorged... Please find the path here:

Yao

from aideck-gap8-examples.

hustc12 avatar hustc12 commented on August 16, 2024

Sorry, the sdk has been reorged... Please find the path here:

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.