[RFC][RISCV] Possible incompatible change for RVV intrinsics

Hi all,

I don’t know if here is the appropriate place to post this. Please correct me if I am doing something wrong.


The RISC-V V intrinsics (specification at rvv-intrinsic-doc) have been holding open meetings since last month [0]. We are pushing for a formal v1.0 release. In this formal release, we hope to re-visit current intrinsics we have and complement the remaining functionalities of RVV not exposed yet at the intrinsic level (i.e. control of vxrm, test and set of vxsat) [1].

Regarding the current intrinsics we have, the non-policy intrinsics were the first series of intrinsics to be introduced, while it was developed when the v-spec was not entirely frozen. Then v-spec came out with policy configurations, and hence we had to add another set of intrinsic to expose the functionalities to the user. We think that multiple sets of intrinsics will harm user-friendliness of RVV intrinsics. First-time users will come in and see the repo and don’t know which set of intrinsics to use.

Following this concern, we are considering to simplify the intrinsics and reduce sets of intrinsics. RVV intrinsics is still at an early stage (currently at v0.10 without a formal release) and we think that this change will benefit in the long run as the simplification will reduce the mental or cognitive effort for users. However, this breaks compatibility as the older intrinsics will not be supported by the compiler in the future. The RVV intrinsic community is discussing on a conservative approach that hopes to give the community enough time to adapt to the change [2, 3].

OpenCV is one of the users I can find that is a current user of the RVV intrinsic. Please consider to drop by and share your thoughts on this issue. Additionally, if you are aware of any other repository that is also an user of the RVV intrinsics, please consider to repost this letter to notify them. Thank you.

[0] Notes - RVV C Intrinsic Documentation Release Open Meeting
[1] [RFC] Draft release roadmap for RVV v1.0 formal release
[2] rvv-intrinsic-doc Issue: How to support backward incompatible API. #145
[3] rvv-intrinsic-doc PR: Add document for the development process #171


Thank you for your time reading this letter.

Regards,

eop Chen

you should drop a note in the issues on OpenCV’s github. that is where the core developers of OpenCV will see it.

Just posted on the issue tracker [0], thank you for the pointer.

[0] [RFC][RISCV] Possible incompatible change for RVV intrinsics · Issue #22608 · opencv/opencv · GitHub