Skip to content
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

[RFC]: add BLAS bindings and implementations for linear algebra #71

Closed
6 tasks done
performant23 opened this issue Mar 30, 2024 · 3 comments
Closed
6 tasks done
Labels
2024 2024 GSoC proposal. rfc Project proposal.

Comments

@performant23
Copy link

performant23 commented Mar 30, 2024

Full name

</>

University status

</>

University name

</>

University program

</>

Expected graduation

</>

Short biography

</>

Timezone

</>

Contact details

</>

Platform

</>

Editor

</>

Programming experience

</>

JavaScript experience

</>

Node.js experience

</>

C/Fortran experience

</>

Interest in stdlib

</>

Version control

</>

Contributions to stdlib

</>

Goals

</>

Why this project?

</>

Qualifications

</>

Prior art

</>

Commitment

</>

Schedule

</>

Related issues

</>

Checklist

  • I have read and understood the Code of Conduct.
  • I have read and understood the application materials found in this repository.
  • I understand that plagiarism will not be tolerated, and I have authored this application in my own words.
  • I have read and understood the patch requirement which is necessary for my application to be considered for acceptance.
  • The issue name begins with [RFC]: and succinctly describes your proposal.
  • 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.
@performant23 performant23 added 2024 2024 GSoC proposal. rfc Project proposal. labels Mar 30, 2024
@performant23
Copy link
Author

performant23 commented Mar 30, 2024

</>

1 similar comment
@performant23
Copy link
Author

performant23 commented Mar 31, 2024

</>

@kgryte
Copy link
Member

kgryte commented Apr 1, 2024

@performant23 Thank you for sharing a draft of your proposal; pushing forward the BLAS work is certainly high priority. A few comments:

  1. A general comment regarding our use of Fortran/C/JavaScript for implementing BLAS interfaces. We retain Fortran implementations in order to have a high fidelity port of netlib. We use Freeform Fortran 95 to improve commenting and take advantage of improved language features. We reimplement in C, as gfortran is not commonly available on Windows platforms and compiling from C to WebAssembly is more straightforward. We reimplement in JavaScript in order to support native browser usage and as a fallback in case native add-on bindings are not compiled in Node.js.
  2. You currently prioritize single-precision before double-precision. I'd revise that. Real-valued double-precision should take priority, followed by real-valued single-precision, then complex-valued double-precision, and then finally complex-valued single-precision. The rationale here is that real-valued double-precision will be the primary end-user dtype, so getting these finished should be higher priority.
  3. Another thing that we provide are "generic" BLAS interfaces (e.g., gasum). These are necessary for supporting arrays having data types other than d, s, c, z. We cannot pass an Int32Array down to C, when the C routine expects double-precision. Hence, we provide JavaScript-only interfaces for handling arrays of any type, including accessor arrays. These packages are, however, straightforward, as usually a copy-paste of the double-precision JavaScript implementation.
  4. One pre-requisite is implementing xerbla. This is necessary for handling error conditions in Level 2 and 3 routines.

@kgryte kgryte closed this as completed Apr 30, 2024
@performant23 performant23 changed the title [RFC]: add BLAS bindings and implementations for linear algebra [RFC]: Jun 12, 2024
@performant23 performant23 changed the title [RFC]: [RFC]: add BLAS bindings and implementations for linear algebra Jun 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2024 2024 GSoC proposal. rfc Project proposal.
Projects
None yet
Development

No branches or pull requests

2 participants