-
Notifications
You must be signed in to change notification settings - Fork 407
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
ARM ML embedded evaluation Kit support #7423
Comments
cc: @digantdesai @mcr229 On running ET with ARM |
Hi It depends a bit on what CPU you want to support, is it something with a Ethos-U or a pure Cortex-M CPU? For Ethos-U, work has started and is ongoing here:
For a Cortex-M only system there is almost no work yet, there is some info here for way to start to build it, but not yet working: Currently a design to use fallback CPU code that is a bit more optimized then the standard ones in Executorch would be nice, and maybe also 8bit quantized version instead of float version would speed up things. |
Thanks for the information and clarification, @zingo. I am trying to use it with cortex-M55 and Ethus-U55 NPU. I am new to CMake and build stuff. According to #7177, it seems like we can use it with my setup. Instead of running in the bare-metal as shown in the https://github.com/pytorch/executorch/tree/main/examples/arm, can I use it with c++ module in the ARM platform: https://pytorch.org/executorch/stable/extension-module.html. if so can you give me some hints on how to build it in ARM embedded system. I am familiar with the ARM ML embedded evaluation Kit. there we use cmake and make to build project. place excuse for my limited knowledge on these topics. |
Thats great, Cortex-M55/Ethos U55 is working more out of the box and #7177 should not be needed , but some changes from it like config/link files might be good (see comment later).
When I did a fast try with something similar a few month back I just used run.sh in the project to build the .pte file and all libs. I then pointed them out (or you can copied them over) and included them the other project (c)magefiles and incorporated/edited the file e.g. first just run
Then use the .a files and generated model_pte.h (this is the pte file as a big memory blob) in your project
Most/all? needed stuff should be there (except maybe for special flashing tools) and chaining the used linker .ld file and and some special HW specific setup code to
to build, this might work for you. Even if we try to keep the example setup/flow a bit restricted by only supporting corstone-3x0 (as this can easily be tested with the FVP "simulators" and we currently try to not fan out in a lot of targets) it still means that If you get something working and we know what is really needed it would be really great if we could figure out a way to make this smoother if possible and patches/discussions to improve problems around this would be great. Thanks for playing with this. I hope this will get you further and solve some problems for you. |
Thanks @zingo I will try these |
Hi @zingo, I am having issues while linking the libraries to my project as you showed in the 1.In another/existing project, so I did the following steps ( by googling :) ) to use Module Extention in my project.
3.use the following cmake file in my project
when I try to make it I get errors, which seems to be related to linking
Could you please identify what I am doing wrong here, or can you provide how did you use those .a libraries in you're project Thanks |
Hi maybe you missed one or some lib files or .o files in your EXECUTORCH_LIBRARIES ? e.g. the lib/files where the functions below seems missing and is probably not picked up.
I'm not at my computer right now so I don't know what files they end up it and only looked at you msg above. But if you search for vlogf/get_log_timestamp/runtime_abort in the project you probably get some clues, there are also tools to peek into the .a/.o files and list symbols that you can used maybe nm could work. I think I ended up using one of those. Hope this helps. |
Hi I am new to using executorch
Is there a way I can use executorch with the ARM ML embedded evaluation Kit? It already uses tenserflow lite micro. does anyone has some guidelines to add executorch to ARM ML embedded evaluation Kit and use it through ExecuTorch Module Extension in C++.
Thanks
The text was updated successfully, but these errors were encountered: