We have had no meeting this week, due to vacations and travel. This is a report on progress at the end of the week.
Make requested revisions to Paolo's upstream patches:
- REOPENED.
- the first patch had been awaiting merge. However, Max has posted his concern about exceptions during the load/store leading to an invalid value in the
vstart
CSR (see this mailing list post). This is under investigation. - on the second patch, Richard Henderson has clarified that atomicity is a concern because we must not accept an interrupt in the middle of storing an element, which could happy with
memcpy
because of it being byte oriented (see this mailing list post). We may have a solution, which we are exploring. This will be a new patch, because the existing patch is now incompatible with upstream.
SiFive benchmarks:
- COMPLETE
- LMUL is fixed to the value in the benchmark
- benchmarks are timed using QEMU built with plugins disabled.
- results are shown as times for one million iterations
Generate TCG Ops for vector load/store
- IN PROGRESS.
Improve first-fault handling for vector load/store helper functions.
- IN PROGRESS.
Improve strided load/store helper functions.
- IN PROGRESS.
See report-2024-11-22-20-00-58.pdf. Commits in branches of the rise-rvv-tcg-qemu repository:
- master: 134b443512
- development: 503712d564 (Embecosm patch #1)
Embecosm patch #1 v. master.
- no significant impact:
memchr
,strcat
,strchr
,strcmp
,strcpy
,strlen
- improvement for small data:
memcmp
,memcpy
,memmove
,memset
- improvement for large data:
strncat
,strncmp
,strncpy
,strnlen
- improvement for all data: None
2024-11-13:
- Paolo Savini to investigate whether patch #1 may cause exceptions to be taken at the wrong byte address, thereby causing a failure on resumption.
- IN PROGRESS
- under investigation as described above.
- Paolo Savini to investigate whether patch #2 can use larger
memcpy
than Max and therefore may offer further improvements.- IN PROGRESS
- potential solution identified - see above.
- Jeremy Bennett to redo the SiFive benchmark scripts without any plugins enabled and to report just total execution time when comparing.
- COMPLETE
Next meeting 27 November 2024.