Skip to content

Commit 33e232f

Browse files
Merge pull request #315 from HaudinFlorence/add-matrix-operations-for-xtensor-as-fundable-project
Add implementing Kazushige Goto Algoritm for matrix operations in xtensor as a fundable project
2 parents 821635f + e31df68 commit 33e232f

File tree

5 files changed

+51
-2
lines changed

5 files changed

+51
-2
lines changed

src/components/fundable/LargeProjectCardPage.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ export default function LargeProjectCardPage() {
5151
const { pageName } = match.params; /* extract the dynamic part from the url i.e. the pageName*/
5252
const projectsByCategory = getCategoryFromProjectPageName(pageName);
5353
const project = projectsByCategory.find((project) => project.pageName === pageName);
54-
console.log('project:', project)
5554
if (!project) return null;
5655

5756
return (
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#### Overview
2+
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.
3+
4+
##### Background
5+
6+
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.
7+
8+
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.
9+
10+
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.
11+
12+
##### Objectives
13+
14+
- Study and understand Kazushige Goto's matrix multiplication algorithms.
15+
- 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.
16+
- Integrate the implementation into the xtensor framework.
17+
- Benchmark the performance against existing xtensor matrix operations and other libraries like Eigen and BLAS.
18+
- Document the implementation and provide examples for users.
19+

src/components/fundable/projectsDetails.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import JupyterGISRasterProcessingMD from "@site/src/components/fundable/descript
33
import JupyterGISToolsForPythonAPIMD from "@site/src/components/fundable/descriptions/JupyterGISToolsForPythonAPI.md"
44
import EmscriptenForgePackageRequestsMD from "@site/src/components/fundable/descriptions/EmscriptenForgePackageRequests.md"
55
import SVE2SupportInXsimdMD from "@site/src/components/fundable/descriptions/SVE2SupportInXsimd.md"
6+
import MatrixOperationsInXtensor from "@site/src/components/fundable/descriptions/MatrixOperationsInXtensor.md"
67

78
export const fundableProjectsDetails = {
89
jupyterEcosystem: [
@@ -57,7 +58,7 @@ export const fundableProjectsDetails = {
5758
currentFundingPercentage: 0,
5859
repoLink: "https://github.com/mamba-org/mamba"
5960
}],
60-
61+
6162
scientificComputing: [
6263
{
6364
category: "Scientific Computing",
@@ -70,6 +71,18 @@ export const fundableProjectsDetails = {
7071
currentNbOfFunders: 0,
7172
currentFundingPercentage: 0,
7273
repoLink: "https://github.com/xtensor-stack/xsimd"
74+
},
75+
{
76+
category: "Scientific Computing",
77+
title: "Implementing Kazushige Goto Algorithms for Matrix Operations in xtensor",
78+
pageName: "MatrixOperationsInXtensor",
79+
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.",
80+
description: MatrixOperationsInXtensor,
81+
price: "45 000 €",
82+
maxNbOfFunders: 1,
83+
currentNbOfFunders: 0,
84+
currentFundingPercentage: 0,
85+
repoLink: "https://github.com/xtensor-stack/xtensor"
7386
}
7487
]
7588
}
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+
}

0 commit comments

Comments
 (0)