-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
RISC-V support #36748
Comments
cc: @marek-safar |
SiFive just announced a new powerful RISC-V development board coming out this year. Will be a number of new developers using the hardware. Might be worth looking at RISC-V support again, especially in IoT scenarios. https://www.sifive.com/blog/the-heart-of-risc-v-development-is-unmatched |
The First Affordable RISC-V Computer Designed to Run Linux Also the Allwinner RISC-V chip to set to debut on $13 Linux hacker board soon. |
I assume that libunwind needs to be ported first to RISC-V, as coreclr depends on this library. Is this statement true? There is a closed port request libunwind/libunwind#99 |
The BL602 is gaining popularity. It's an alternative to the hugely popular ESP32 which is everywhere. |
It looks like the support has been merged in upstream now. |
Just noticed this issue and wanted to clarify something:
For the record, "supports" is an overstatement here. IIRC, you can just barely run 'hello world' with the interpreter, and not much more. The JIT backend for RISC-V is like 10% done at most. There's a lot of work to be done for Mono's RISC-V support to actually be usable. |
You're definitely right @alexrp. If I can get it to build, I'd be very keen to contribute to getting the mono support working, which if I understand correctly is the first step in getting .net vanilla support? |
Hi all, He just build a installable riscv64 package dotnet-sdk-8.0.100-linux-riscv64.tar.gz(CoreCLR Backend by Default) at repo dkurt/dotnet_riscv. if you may try it. use following command to install dotnet riscv64
you can use dotnet at riscv64 normally.
modify
it will output
|
I tried this on a $8 Milk-V 256M running ubuntu.
Probably not surprising with such a low hardware spec. Maybe if we can do AOT compilation it might work. |
@0xStuart, might be related to fence.tso hardware bug. Please try GCC version: https://github.com/dkurt/dotnet_riscv/releases/download/v8.0.101/dotnet-sdk-8.0.101-linux-riscv64-gcc.tar.gz |
@dkurt It worked, although I had to kill it as it was taking forever to complete. I had htop running in another terminal, and it was visible that all the RAM got used up. Maybe adding swap will help. Anyway, this is fantastic. These new RISC-V SOC's are opening up new possibilities. |
@JaneX8 @archanox @am11 Thank you so much! And @Xinlong-Wu also did great work in Mono runtime. Actually, we are supported by @Samsung. So I hope @Xinlong-Wu get the bounty. @jkotas If you don't mind, could you add our developers to dotnet org (and/or to @dotnet/samsung team)? I know, even if they are added, nothing changed for them. However, when I was added and got a badge, I was so happy and proud. They worked hard for .net runtime and I think they deserve it. Could you please add? @gbalykov @bartlomiejko Could you check the members? |
@clamp03 it is correct, thank you! |
@clamp03 thanks, it is correct, some of us already joined. |
@gbalykov @bartlomiejko Thank you. |
@clamp03 Based on the above, I updated the @dotnet/samsung group as follows: Removed @leemgs @idkiller @myungjoo @jyoungyun @sjsinju I could not add @rzsc because they are not a member of the dotnet org. I believe @jkotas has sent them an invite. Note that @denis-paranichev @o-lek @rzsc GitHub profiles do not indicate they are affiliated with Samsung. |
hi @BruceForstall, same thing, I would be greatful if you can add me to dotnet org. |
@Xinlong-Wu We have added the folks above so that we can include them in dotnet samsung team that we have been working with closely for a long time and the team alias is convenient for github workflows. We do not add folks to the dotnet org without a demonstrated need. |
@Xinlong-Wu has been contributing riscv support for mono. |
I appreciate @Xinlong-Wu contributions. dotnet org membership is not required for contributing. It is only needed for membership in a dotnet org team alias or to grant additional permissions. |
Thank you so much!!!!! |
I have turned on two-factor authentication and accepted invitation to the @dotnet organization. Is anything more I need to do, please? |
@rzsc I have added you to the https://github.com/orgs/dotnet/teams/samsung team. |
is native aot for risc-v also covered here? |
AOT on risc-v would open a huge possibilities even on small microcontrollers having a decent amount of DRAM (I have some of them) |
@BruceForstall @jkotas Could you add @SzpejnaDawid to @dotnet/samsung (and @dotnet if necessary)? He joined our team in April and will be contributing to .NET RISC-V. Thank you. |
I've got the DC ROMA2 version. Do you have instructions on how to get dotnet running in its prerelease form? |
@archanox, I will polish up https://github.com/am11/CrossRepoCITesting/blob/master/.github/workflows/linux-riscv64-runtime-build.yml to upload artifacts, then we will get the runtime package in its releases. Later I will switch it to build source build (runtime+aspnetcore+sdk+everything-else). For now, having runtime will be enough to run .NET assemblies. |
I uploaded somewhat recent .NET SDK build for Risc-V here: https://github.com/filipnavara/dotnet-riscv/releases/tag/v9.0.0-preview.7.24405.7 (should be .NET 9 Preview 7). It has the same baseline requirements as the build from @am11, which means that the official Debian images for StarFive VisionFive 2 don't work (too old glibc). I checked that it runs on Ubuntu 24.04 which has some prebuilt images for common boards/machines. |
@filipnavara I got error on Ubuntu 24.04 riscv64 on StarFive VisionFive 2:
Update §1: Started working after remove Update §2: All tests in my OSS projects are 🟢 green for now!!! Thanks a lot!!! |
https://github.com/pvelesko/dotnet_riscv/releases/tag/v8.0.101 built dotnet with statically linked |
would really need RISC-V support for https://github.com/NethermindEth/nethermind 🙏 |
I understand that the work on this is not undertaken by Microsoft, but rather Samsung hence having no official releases. But I'm wondering what the current state is for having a dotnet 9 release, if there's a release timeline, any blockers, outstanding work? I have a pioneer that's waiting in the midst that's waiting to run some of my workloads. |
Yes, that's correct. You can truck current state of the project here: #84834
At this moment tests pass rate for coreCLR is 99.8% and for coreFX about 97%, although there is still a lot of work to be done. Technically we have a working runtime, but the sdk is not yet fully built (there are some problems with msbuild - I'm working on it). |
Posting because I cannot find mention anywhere
I have seen that mono supports the RISC-V architecture but cannot find anything relating to .NET 5 support for RISC-V.
Are there any plans to support said architecture on future releases of .NET like ARM64 has been added?
The text was updated successfully, but these errors were encountered: