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 ( 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..485e9fdf 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: [ @@ -57,7 +58,7 @@ export const fundableProjectsDetails = { currentFundingPercentage: 0, repoLink: "https://github.com/mamba-org/mamba" }], - + scientificComputing: [ { category: "Scientific Computing", @@ -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 ( + + ); +}