Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions src/components/fundable/descriptions/Float16InArrowCpp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#### Overview

Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics.

Arrow offers three floating-point data types based on the standard IEEE binary floating-point representation:
Float16, Float32 and Float64.

In some workloads, 16-bit floating-point numbers have become a popular alternative to 32-bit and 64-bit representations, bringing better memory footprint and potentially better performance (when hardware support is present).

However, while basic support is present, Float16 is not universally supported in all Arrow C++ components because of limited language support for 16-bit floating-point numbers.

We propose to finish implementing support for Float16 in all components of Arrow C++:

* scalar compute kernels:
- arithmetic: `abs`, `add`, etc.
- comparisons: `equal`, etc.
- math: `sqrt`, etc.
- `is_in`, `index_in`

* vector compute kernels:
- `sort_indices`, `rank`, `rank_normal`, `rank_quantile`
- `partition_nth_indices`
- `select_k_unstable`

* aggregate compute kernels:
- `sum`, `product`, `mean`, `mode`, `quantile`, `tdigest`
- `variance`, `stddev`, `skew`, `kurtosis`
- `first`, `last`, `min`, `max`
- `index`

* CSV reader

* ORC reader and writer

Funders can decide to fund the entire package, or choose the components they are interested in.

##### Are you interested in this project? Either entirely or partially, contact us for more information on how to help us fund it
14 changes: 14 additions & 0 deletions src/components/fundable/projectsDetails.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import SVE2SupportInXsimdMD from "@site/src/components/fundable/descriptions/SVE
import MatrixOperationsInXtensorMD from "@site/src/components/fundable/descriptions/MatrixOperationsInXtensor.md"
import BinaryViewInArrowCppMD from "@site/src/components/fundable/descriptions/BinaryViewInArrowCpp.md"
import Decimal32InArrowCppMD from"@site/src/components/fundable/descriptions/Decimal32InArrowCpp.md"
import Float16InArrowCppMD from"@site/src/components/fundable/descriptions/Float16InArrowCpp.md"

export const fundableProjectsDetails = {
jupyterEcosystem: [
{
Expand Down Expand Up @@ -111,6 +113,18 @@ export const fundableProjectsDetails = {
currentNbOfFunders: 0,
currentFundingPercentage: 0,
repoLink: "https://github.com/apache/arrow"
},
{
category: "Apache Arrow and Parquet",
title: "Complete Float16 support in Arrow C++",
pageName: "Float16InApacheArrow",
shortDescription: "Float16 is a more compact data type than Float32 and Float64, and sees growing usage in applications where its limited precision is sufficient.",
description: Float16InArrowCppMD,
price: "TBD",
maxNbOfFunders: 2,
currentNbOfFunders: 0,
currentFundingPercentage: 0,
repoLink: "https://github.com/apache/arrow"
}
]

Expand Down
9 changes: 9 additions & 0 deletions src/pages/fundable/Float16InApacheArrow/GetAQuote.tsx
Original file line number Diff line number Diff line change
@@ -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 (
<GetAQuotePage/>
);
}
9 changes: 9 additions & 0 deletions src/pages/fundable/Float16InApacheArrow/index.tsx
Original file line number Diff line number Diff line change
@@ -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 (
<LargeProjectCardPage/>
);
}
Loading