RISC-V Vector: Current Status and Next? - Tao Chiu

  Рет қаралды 193

Linux Plumbers Conference

Linux Plumbers Conference

Күн бұрын

In this talk we are going to briefly share the status of Vector extension support and focus our discussion on the use of Vector in the kernel-mode. We will do it by reviewing others arch approaches and seeking if there is anything we may carry or improve as risc-v.
Most architectures provide SIMD instruction set to improve throughput of some operations. However, the use of SIMD instructions in their kernel mode is often restricted due to latency considerations for extra state-keeping. For example, it is not uncommon to see an arch that disables preemption when using kernel-mode SIMD. Also, msot ban the use of SIMD in interrupt context.
Among these architectures, seldom provide SIMD-optimized common sub-routines (mem/str ops). PowerPC provides vsx/vmx-optimized common routines with a precondition and a side-effect. First, it cannot leverage those routines in interrupt context. And, it must disable kernel preemption while using these subroutines. Meanwhile, though the same side effect applies to x86, it provides irq_fpu_usable() to allow some level of SIMD uses in interrupt context.
On risc-v, should we follow the path of powerPC? If yes, how do we decide when to use it? Vendors may have varies performance characteristic of V and using SIMD for small inputs may not gain. Should we do runtime detection for this or just enable V whenever the hardware supports?
Further, should risc-v take a step forward, by enabling preemption for its kernel-mode SIMD [1]? Supporting kernel preemption during Vector execution may enable us to widely use Vector in kernel thread or syscalls while remain same level of responsiveness. Historically, the reason for disabling kernel preemption while using kernel-mode SIMD is the per-cpu variable consideration [2]. However, the per-cpu FPU cache is phasing out on x86 and is not present on risc-v's approach. So, it might be a good timing for discussing if such support is a good idea now.
The talk will cover the following topics:
The current status of Vector extension support
Basic idea of supporting kernel-mode Vector
The use of Vector optimized sub-routines for us and other arch
Should we support running kernel-mode Vector with preemption?
1 lore.kernel.or...
2 yarchive.net/c...

Пікірлер
Control Flow Integrity on RISCV - Deepak Gupta
20:21
Linux Plumbers Conference
Рет қаралды 517
2023 LLVM Dev Mtg - Vector codegen in the RISC-V backend
26:24
Explaining RISC-V: An x86 & ARM Alternative
14:24
ExplainingComputers
Рет қаралды 452 М.
Perf feature improvements in RISCV - Atish Patra
15:52
Linux Plumbers Conference
Рет қаралды 208
RISC-V Vector Performance Analysis
16:09
RISC-V International
Рет қаралды 2,3 М.
Expanding a RISC-V Processor with Vector Instructions for Accelerating Machine Learning
28:09
British Computer Society Open Source Specialists
Рет қаралды 6 М.
RISC-V OOO IP Core and Vector Unit, by Roger Espasa​, CEO & Founder, Semidynamics
18:57
SemIsrael - The Israeli Semiconductor Portal
Рет қаралды 393
Driver Development Kit DDK and Vendor Workflow - John Moon
14:46
Linux Plumbers Conference
Рет қаралды 294