Could Someone Provide Me Knowledge for Optimising RISC-V Applications on SiFive Hardware?

Hello everyone :blush: :smiling_face_with_three_hearts:

I m currently working on optimising an application for SiFive RISC V hardware and would like to learn more about best practices particular to this architecture. My research combines signal processing and machine learning inference; so performance, power efficiency; and memory utilisation are all important considerations. I would appreciate any thoughts or resources on optimising apps for the RISC-V ISA; particularly SiFive hardware.

  • I hve read that the RISC V GNU Toolchain is widely used, but I’d want to know if anyone has any ideas for alternative compilers or custom toolchains that can improve performance or enable additional optimizations., are there any compiler flags or optimization levels that have proven particularly beneficial for improving performance on SiFive’s core implementations?

  • Are there any cache optimization or memory alignment solutions that perform well on SiFive hardware? Any advice on improving L1 and L2 cache efficiency would be appreciated. Given my application’s processing demands, effective data handling and memory bottleneck reduction are critical.

  • I’m also curious about how to best use the RISC-V Vector Extensions and any custom extensions for signal processing and ML applications. Are there any libraries, tools, or example implementations that can assist me learn how to use these extensions effectively?

  • Are there any tools particular to SiFive or third-party solutions recommended by the community for profiling RISC-V applications? I’ve been using general profiling tools, but I’m searching for tools that can provide more detailed insights into RISC-V performance data or better show the impact of optimizations.

Also I explored some topics related to this https://forums.sifive.com/t/i-am-using-hifive1-rev-b-to-learn-risc-v-how-to-differentiate-risc-v-concepts-hifivesalesforceadmin but I did not get the sufficient solution of my query so I would really want to get some help from a more experienced person

I m looking for any more hints or general advice on optimising applications for the SiFive platform. Any documentation; tutorials; & programming examples would be quite useful. Thank you in advance for any guidance you might provide.

I look forward to learning from this community. :hugs: :hugs: