Skip to content

[Idea]: add WebAssembly implementations for stats/strided routines #98

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
4 tasks done
kgryte opened this issue Feb 15, 2025 · 0 comments
Open
4 tasks done

[Idea]: add WebAssembly implementations for stats/strided routines #98

kgryte opened this issue Feb 15, 2025 · 0 comments
Labels
difficulty: 3 Likely to be challenging but manageable. idea Potential GSoC project idea. priority: normal Normal priority. tech: c Involves programming in C. tech: javascript Involves programming in JavaScript.

Comments

@kgryte
Copy link
Member

kgryte commented Feb 15, 2025

Idea

We've worked toward compiling BLAS routines to WebAssembly and offering ergonomic APIs for interfacing between JavaScript and WebAssembly binaries (see https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/blas/base/wasm). The goal of this project would be to extend these efforts to the stats/strided namespace, such that, for each typed interface in stats/strided/(d|s|c|z|)*, there would be a corresponding WebAssembly package in stats/strided/wasm/*.

Expected outcomes

Users wanting to potentially accelerate computation of strided statistics routines will be able to consume a corresponding WebAssembly API.

Status

Work has primarily happened in https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/blas/base/wasm. The efforts there would need to be replicated for the stats/strided/* namespace.

Involved software

Emscripten, which is necessary for compiling C to WebAssembly. stdlib already offers tooling for automatically installing the emsdk and getting things up and running.

Technology

C, JavaScript

Other technology

None.

Difficulty

3

Difficulty justification

Given that most stats/strided/* routines are straightforward one-dimensional strided array interfaces, developing the wasm packages should be similarly straightforward. The main time-consuming task will be writing tests and documentation.

Prerequisite knowledge

Some familiarity with WebAssembly will be helpful. Experience with JavaScript.

Project length

90/175/350. Can be scoped accordingly.

Checklist

  • I have read and understood the Code of Conduct.
  • I have read and understood the application materials found in this repository.
  • The issue name begins with [Idea]: and succinctly describes your idea.
  • I understand that, in order to apply to be a GSoC contributor, I must submit my final application to https://summerofcode.withgoogle.com/ before the submission deadline.
@kgryte kgryte added difficulty: 3 Likely to be challenging but manageable. idea Potential GSoC project idea. priority: normal Normal priority. tech: c Involves programming in C. tech: javascript Involves programming in JavaScript. labels Feb 15, 2025
@stdlib-js stdlib-js locked and limited conversation to collaborators Feb 15, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
difficulty: 3 Likely to be challenging but manageable. idea Potential GSoC project idea. priority: normal Normal priority. tech: c Involves programming in C. tech: javascript Involves programming in JavaScript.
Projects
None yet
Development

No branches or pull requests

1 participant