Skip to content

Commit da37722

Browse files
Merge pull request #314 from HaudinFlorence/add-SVE2-support-in-xsimd-as-fundable-project
Add SVE2 support in xsimd as a fundable project.
2 parents 626c760 + eff48a0 commit da37722

File tree

10 files changed

+208
-82
lines changed

10 files changed

+208
-82
lines changed

src/components/fundable/MenuSideBar.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import styles from "./styles.module.css";
44

55
const sections = [
66
{ id: 'jupyter-ecosystem', label: 'Jupyter ecosystem' },
7-
{ id: 'package-management', label: 'Package management' }
7+
{ id: 'package-management', label: 'Package management' },
8+
{ id: 'scientific-computing', label: 'Scientific computing' }
89
];
910

1011
export default function MenuSideBar() {
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#### Overview
2+
xsimd is a C++ header-only library that abstracts SIMD (vectorization) intrinsics behind a single, generic API. The same code - `xsimd::batch<float>` - compiles to optimal machine code on x86 SSE/AVX, ARM NEON, RISC-V, and WebAssembly, with no runtime overhead. When an intrinsic is missing on a given target, xsimd falls back gracefully rather than failing or leaving the developer to write platform-specific branches. This is why projects like Mozilla Firefox, Apache Arrow, and Pythran have adopted it as their vectorization layer.
3+
4+
Writing SIMD intrinsics by hand is notoriously painful. Each architecture exposes different types, different naming conventions, and different gotchas — alignment rules, predicate registers, lane-width surprises, compiler bugs. Targeting two architectures means two separate, opaque, hard-to-test code paths. xsimd eliminates that cost entirely.
5+
6+
ARM is now a first-class server architecture. AWS Graviton4 — broadly deployed today across EC2 instance families — ships with SVE2, ARM's latest vector ISA. Google and Microsoft have both announced their own ARM-based server chips (Axion and Cobalt 200 respectively), signalling an industry-wide shift. SVE2 brings a materially richer instruction set than NEON, and xsimd currently cannot exploit it — falling back to SVE and NEON on hardware that is capable of significantly more.
7+
8+
We propose to implement a complete xsimd::sve2 backend — all arithmetic, mathematical, and reduction operations . The work will be fully tested, documented, and merged upstream into the public repository under the existing BSD 3-Clause license.
9+
10+
##### Are you interested in this project? Either entirely or partially, contact us for more information on how to help us fund it

src/components/fundable/index.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ export function MainAreaFundableProjects() {
3030
projectCategoryName={"Package management"}
3131
projectCategory={fundableProjectsDetails.packageManagement}
3232
/>
33+
</section>
34+
<section id="scientific-computing">
35+
<ProjectCategory
36+
projectCategoryName={"Scientific computing"}
37+
projectCategory={fundableProjectsDetails.scientificComputing}
38+
/>
3339
</section>
3440
<section id="propose-and-fund-a-project">
3541
<h2 className={styles.project_category_header} style={{ margin: "0px" }}>Can't find a project?</h2>

src/components/fundable/projectsDetails.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import NbconvertModernizationMD from "@site/src/components/fundable/descriptions
22
import JupyterGISRasterProcessingMD from "@site/src/components/fundable/descriptions/JupyterGISRasterProcessing.md"
33
import JupyterGISToolsForPythonAPIMD from "@site/src/components/fundable/descriptions/JupyterGISToolsForPythonAPI.md"
44
import EmscriptenForgePackageRequestsMD from "@site/src/components/fundable/descriptions/EmscriptenForgePackageRequests.md"
5-
import JupyterLabParquetFileViewerMD from "@site/src/components/fundable/descriptions/JupyterLabParquetFileViewer.md"
5+
import SVE2SupportInXsimdMD from "@site/src/components/fundable/descriptions/SVE2SupportInXsimd.md"
66

77
export const fundableProjectsDetails = {
88
jupyterEcosystem: [
@@ -57,5 +57,20 @@ export const fundableProjectsDetails = {
5757
currentFundingPercentage: 0,
5858
repoLink: "https://github.com/mamba-org/mamba"
5959
}],
60+
61+
scientificComputing: [
62+
{
63+
category: "Scientific Computing",
64+
title: "SVE2 support in xsimd",
65+
pageName: "SVE2SupportInXsimd",
66+
shortDescription: "xsimd is a C++ scientific library that abstract low-level high performances computing primitives across different hardwares. We will add support for the latest SVE2 generation of ARM CPUs.",
67+
description: SVE2SupportInXsimdMD,
68+
price: "30 000 €",
69+
maxNbOfFunders: 2,
70+
currentNbOfFunders: 0,
71+
currentFundingPercentage: 0,
72+
repoLink: "https://github.com/xtensor-stack/xsimd"
73+
}
74+
]
6075
}
6176

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
2+
import GetAQuotePage from '@site/src/components/fundable/GetAQuotePage';
3+
4+
export default function FundablePage() {
5+
const { siteConfig } = useDocusaurusContext();
6+
return (
7+
<GetAQuotePage/>
8+
);
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
2+
import LargeProjectCardPage from '@site/src/components/fundable/LargeProjectCardPage';
3+
4+
export default function FundablePage() {
5+
const { siteConfig } = useDocusaurusContext();
6+
return (
7+
<LargeProjectCardPage/>
8+
);
9+
}

static/atom.xml

Lines changed: 41 additions & 41 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

static/atom_all.xml

Lines changed: 41 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)