From 70c7069c6e039da161a956d837c5bbba6ebc5750 Mon Sep 17 00:00:00 2001 From: Florence Haudin Date: Thu, 2 Apr 2026 15:42:00 +0200 Subject: [PATCH 1/3] Add implementing Kazushige Goto Algoritm for matrix operations in xtensor as a fundable project. --- .../descriptions/MatrixOperationsInXtensor.md | 19 +++++++++++++++++++ src/components/fundable/projectsDetails.ts | 13 +++++++++++++ .../MatrixOperationsInXtensor/GetAQuote.tsx | 9 +++++++++ .../MatrixOperationsInXtensor/index.tsx | 9 +++++++++ 4 files changed, 50 insertions(+) create mode 100644 src/components/fundable/descriptions/MatrixOperationsInXtensor.md create mode 100644 src/pages/fundable/MatrixOperationsInXtensor/GetAQuote.tsx create mode 100644 src/pages/fundable/MatrixOperationsInXtensor/index.tsx diff --git a/src/components/fundable/descriptions/MatrixOperationsInXtensor.md b/src/components/fundable/descriptions/MatrixOperationsInXtensor.md new file mode 100644 index 00000000..523c4af1 --- /dev/null +++ b/src/components/fundable/descriptions/MatrixOperationsInXtensor.md @@ -0,0 +1,19 @@ +#### Overview +This project aims to integrate Kazushige Goto’s highly optimized matrix multiplication algorithms into the [xtensor](https://github.com/xtensor-stack/xtensor/) framework, leveraging the [xsimd](https://github.com/xtensor-stack/xsimd/) library for SIMD acceleration. + +##### Background + +The GOTO algorithms, formalized by Kazushige Goto and Robert van de Geijn in their landmark paper "Anatomy of High-Performance Matrix Multiplication", are the algorithmic foundations underlying high-performance libraries such as GotoBLAS and OpenBLAS. The algorithms achieve near-peak CPU throughput through a principled exploitation of the memory hierarchy. + +xtensor library is a popular C++ library for numerical analysis with a focus on multi-dimensional arrays and broadcasting, inspired by NumPy. xtensor leverages SIMD acceleration through the xsimd library and offers language bindings for Python, Julia and R. + +By integrating Goto's algorithms into xtensor and using xsimd for SIMD optimizations, we can provide users with faster matrix operations, especially for large-scale computations. + +##### Objectives + +- Study and understand Kazushige Goto's matrix multiplication algorithms. +- Implement these algorithms in C++ using xsimd for SIMD acceleration. This implementation could be done in a way that is not tied to the xtensor codebase for better reusability. +- Integrate the implementation into the xtensor framework. +- Benchmark the performance against existing xtensor matrix operations and other libraries like Eigen and BLAS. +- Document the implementation and provide examples for users. + diff --git a/src/components/fundable/projectsDetails.ts b/src/components/fundable/projectsDetails.ts index 547b0203..2fa013d2 100644 --- a/src/components/fundable/projectsDetails.ts +++ b/src/components/fundable/projectsDetails.ts @@ -3,6 +3,7 @@ import JupyterGISRasterProcessingMD from "@site/src/components/fundable/descript import JupyterGISToolsForPythonAPIMD from "@site/src/components/fundable/descriptions/JupyterGISToolsForPythonAPI.md" import EmscriptenForgePackageRequestsMD from "@site/src/components/fundable/descriptions/EmscriptenForgePackageRequests.md" import SVE2SupportInXsimdMD from "@site/src/components/fundable/descriptions/SVE2SupportInXsimd.md" +import MatrixOperationsInXtensor from "@site/src/components/fundable/descriptions/MatrixOperationsInXtensor.md" export const fundableProjectsDetails = { jupyterEcosystem: [ @@ -70,6 +71,18 @@ export const fundableProjectsDetails = { currentNbOfFunders: 0, currentFundingPercentage: 0, repoLink: "https://github.com/xtensor-stack/xsimd" + }, + { + category: "Scientific Computing", + title: "Implementing Kazushige Goto Algorithms for Matrix Operations in xtensor", + pageName: "MatrixOperationsInXtensor", + shortDescription: "This project aims to integrate Kazushige Goto’s highly optimized matrix multiplication algorithms into the [xtensor](https://github.com/xtensor-stack/xtensor/) framework, leveraging the [xsimd](https://github.com/xtensor-stack/xsimd/) library for SIMD acceleration.", + description: MatrixOperationsInXtensor, + price: "45 000 €", + maxNbOfFunders: 1, + currentNbOfFunders: 0, + currentFundingPercentage: 0, + repoLink: "https://github.com/xtensor-stack/xtensor" } ] } diff --git a/src/pages/fundable/MatrixOperationsInXtensor/GetAQuote.tsx b/src/pages/fundable/MatrixOperationsInXtensor/GetAQuote.tsx new file mode 100644 index 00000000..a945b598 --- /dev/null +++ b/src/pages/fundable/MatrixOperationsInXtensor/GetAQuote.tsx @@ -0,0 +1,9 @@ +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import GetAQuotePage from '@site/src/components/fundable/GetAQuotePage'; + +export default function FundablePage() { + const { siteConfig } = useDocusaurusContext(); + return ( + + ); +} \ No newline at end of file diff --git a/src/pages/fundable/MatrixOperationsInXtensor/index.tsx b/src/pages/fundable/MatrixOperationsInXtensor/index.tsx new file mode 100644 index 00000000..876857af --- /dev/null +++ b/src/pages/fundable/MatrixOperationsInXtensor/index.tsx @@ -0,0 +1,9 @@ +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import LargeProjectCardPage from '@site/src/components/fundable/LargeProjectCardPage'; + +export default function FundablePage() { + const { siteConfig } = useDocusaurusContext(); + return ( + + ); +} From 30cef3fd504045ac4f04a45e66e87fdad41b8d87 Mon Sep 17 00:00:00 2001 From: Florence Haudin Date: Thu, 2 Apr 2026 15:45:27 +0200 Subject: [PATCH 2/3] Fix lint issue. --- src/components/fundable/projectsDetails.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/fundable/projectsDetails.ts b/src/components/fundable/projectsDetails.ts index 2fa013d2..485e9fdf 100644 --- a/src/components/fundable/projectsDetails.ts +++ b/src/components/fundable/projectsDetails.ts @@ -58,7 +58,7 @@ export const fundableProjectsDetails = { currentFundingPercentage: 0, repoLink: "https://github.com/mamba-org/mamba" }], - + scientificComputing: [ { category: "Scientific Computing", @@ -72,7 +72,7 @@ export const fundableProjectsDetails = { currentFundingPercentage: 0, repoLink: "https://github.com/xtensor-stack/xsimd" }, - { + { category: "Scientific Computing", title: "Implementing Kazushige Goto Algorithms for Matrix Operations in xtensor", pageName: "MatrixOperationsInXtensor", From e31df68e9fbe8d35e091671032b8dc6fdd3915e9 Mon Sep 17 00:00:00 2001 From: Florence Haudin Date: Thu, 2 Apr 2026 15:49:50 +0200 Subject: [PATCH 3/3] Remove console.log. --- src/components/fundable/LargeProjectCardPage.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/fundable/LargeProjectCardPage.tsx b/src/components/fundable/LargeProjectCardPage.tsx index cfd5cc32..70834251 100644 --- a/src/components/fundable/LargeProjectCardPage.tsx +++ b/src/components/fundable/LargeProjectCardPage.tsx @@ -51,7 +51,6 @@ export default function LargeProjectCardPage() { const { pageName } = match.params; /* extract the dynamic part from the url i.e. the pageName*/ const projectsByCategory = getCategoryFromProjectPageName(pageName); const project = projectsByCategory.find((project) => project.pageName === pageName); - console.log('project:', project) if (!project) return null; return (