RISC-V and Julia

  • What Julia language can contribute to RISC-V development? There are few RISC-V computer manufacturers in the world like https://deepcomputing.io/.
  • What are possible topics where Julia can help in developing RISC-V ecosystem?
  • Are there any projects using Julia in RISC-V software libraries?
  • When we will have Julia ready to run on RISC-V chips?

The primary answer on Julia+riscv is that we’re mostly waiting for a chip that can build and run Julia quickly enough to be an interesting dev target. Currently ascalon looks like the one to finally be fast enough

That’s the nice question, honestly like Python has micropython, Julia has to be brought down to those same lines, so that it can be stripped off some of it’s stuff and can run on embedded, because of the constraints

Note, Julia currently supports RISC-V (64-bit; not [yet] 32-bit) with tier 3 support, i.e “experimental”. julia/doc/src/devdocs/build/riscv.md at master · JuliaLang/julia · GitHub with:

JULIA_CPU_TARGET := generic-rv64,i,m,a,f,d,zicsr,zifencei,c

I.e. it needs an OS, like Linux (probably only Linux currently supported).

Julia has only 3 RISC-V issues open (2 of on floating point, you might not need for embedded, 1 related to stack traces, non-essential? 16 closed), not many but maybe since few testing;

MicroPython runs on 32-bit MCUs with no OS, nor MMU (nor MPU), and Julia like regular Python requires thread support; and MMU (also OS requirement).

Julia has run (for some restrictive pre-JuliaC hack, without GC etc.) on 8-bit baremetal 16 MHz 8-bit (ATmega328P) AVR-microcontroller Arduino with 2 KB RAM (plus 32 KB of flash memory):

That will never be supported officially (I believe) by Julia. Maybe some non-MMU much later after some MMU-using will be supported better.

AI answer:

MicroPython cannot run on the ATmega328P due to its extremely low RAM (2 KB)

There is another RISC-V processor from StarFive Dubhe-100.