Hi! My name is Yao. I am a fresh student from China, majoring in Computer Science. I want to reach out to this sub-program: “porting SIMD-heavy code (eg. volk, fftw3, etc) to use the Wasm-supported set of intrinsics”. Following is my background and my solution to achieve this program.
Background: I am familiar with modern C++ and I have used AVX512 to accelerate the convolution algorithm(Winograd) in a competition. Besides, currently, I am working to improve a wasm runtime(called WasmEdge <https://github.com/WasmEdge/WasmEdge> previous SSVM) performance in LFX mentorship LFX Workspace: Improving the performance of running miniruby · Issue #1292<https://github.com/WasmEdge/WasmEdge/issues/1292>. Solution: Since not all simd instructions are supported<https://emscripten.org/docs/porting/simd.html> well in Wasm, If the emscripten is done well, we can port it with an extra compile flag. On the other side, I think we should reimplement related code with official wasm-simd header if the original function is not supported and really necessary (like many portable functions in volk ). Additionally, I found the GSoCIdeas (section) page<https://wiki.gnuradio.org/index.php?title=GSoCIdeas#GNU_Radio_goes_Browser:_Web_Assembly_(WASM)_port> has a typo in the sentence: [ porting SIMD-heavy code (eg. volk, fftw3, etc) to use the Wasm-suppprted set of intrinsics. ] I believe the Wasm-suppprted should be Wasm-supported. That’s my thought, thank you for reading this!