Skip to content

Commit 0860c21

Browse files
Merge pull request #328 from pitrou/arrow-fundable-float16
Add Float16 in Arrow C++ as a fundable project
2 parents 94343ba + 6a1d5d4 commit 0860c21

4 files changed

Lines changed: 69 additions & 0 deletions

File tree

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#### Overview
2+
3+
Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics.
4+
5+
Arrow offers three floating-point data types based on the standard IEEE binary floating-point representation:
6+
Float16, Float32 and Float64.
7+
8+
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).
9+
10+
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.
11+
12+
We propose to finish implementing support for Float16 in all components of Arrow C++:
13+
14+
* scalar compute kernels:
15+
- arithmetic: `abs`, `add`, etc.
16+
- comparisons: `equal`, etc.
17+
- math: `sqrt`, etc.
18+
- `is_in`, `index_in`
19+
20+
* vector compute kernels:
21+
- `sort_indices`, `rank`, `rank_normal`, `rank_quantile`
22+
- `partition_nth_indices`
23+
- `select_k_unstable`
24+
25+
* aggregate compute kernels:
26+
- `sum`, `product`, `mean`, `mode`, `quantile`, `tdigest`
27+
- `variance`, `stddev`, `skew`, `kurtosis`
28+
- `first`, `last`, `min`, `max`
29+
- `index`
30+
31+
* CSV reader
32+
33+
* ORC reader and writer
34+
35+
Funders can decide to fund the entire package, or choose the components they are interested in.
36+
37+
##### 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/projectsDetails.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import SVE2SupportInXsimdMD from "@site/src/components/fundable/descriptions/SVE
66
import MatrixOperationsInXtensorMD from "@site/src/components/fundable/descriptions/MatrixOperationsInXtensor.md"
77
import BinaryViewInArrowCppMD from "@site/src/components/fundable/descriptions/BinaryViewInArrowCpp.md"
88
import Decimal32InArrowCppMD from"@site/src/components/fundable/descriptions/Decimal32InArrowCpp.md"
9+
import Float16InArrowCppMD from"@site/src/components/fundable/descriptions/Float16InArrowCpp.md"
10+
911
export const fundableProjectsDetails = {
1012
jupyterEcosystem: [
1113
{
@@ -111,6 +113,18 @@ export const fundableProjectsDetails = {
111113
currentNbOfFunders: 0,
112114
currentFundingPercentage: 0,
113115
repoLink: "https://github.com/apache/arrow"
116+
},
117+
{
118+
category: "Apache Arrow and Parquet",
119+
title: "Complete Float16 support in Arrow C++",
120+
pageName: "Float16InApacheArrow",
121+
shortDescription: "Float16 is a more compact data type than Float32 and Float64, and sees growing usage in applications where its limited precision is sufficient.",
122+
description: Float16InArrowCppMD,
123+
price: "TBD",
124+
maxNbOfFunders: 2,
125+
currentNbOfFunders: 0,
126+
currentFundingPercentage: 0,
127+
repoLink: "https://github.com/apache/arrow"
114128
}
115129
]
116130

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)