Skip to content

Commit 190060b

Browse files
committed
feat: add cumulative sum CUDA kernels
1 parent f2a2340 commit 190060b

File tree

4 files changed

+137
-2
lines changed

4 files changed

+137
-2
lines changed

dev/generate-kernel-signatures.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,16 @@
1212

1313

1414
cuda_kernels_impl = [
15+
"awkward_Index_nones_as_index",
1516
"awkward_ListArray_min_range",
1617
"awkward_ListArray_validity",
1718
"awkward_BitMaskedArray_to_ByteMaskedArray",
1819
"awkward_ListArray_compact_offsets",
1920
"awkward_ListOffsetArray_flatten_offsets",
2021
"awkward_IndexedArray_overlay_mask",
22+
"awkward_ByteMaskedArray_numnull",
23+
"awkward_IndexedArray_numnull",
24+
"awkward_IndexedArray_numnull_parents",
2125
"awkward_IndexedArray_numnull_unique_64",
2226
"awkward_NumpyArray_fill",
2327
"awkward_ListArray_fill",

dev/generate-tests.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -652,12 +652,16 @@ def gencpuunittests(specdict):
652652

653653

654654
cuda_kernels_tests = [
655+
"awkward_Index_nones_as_index",
655656
"awkward_ListArray_min_range",
656657
"awkward_ListArray_validity",
657658
"awkward_BitMaskedArray_to_ByteMaskedArray",
658659
"awkward_ListArray_compact_offsets",
659660
"awkward_ListOffsetArray_flatten_offsets",
660661
"awkward_IndexedArray_overlay_mask",
662+
"awkward_ByteMaskedArray_numnull",
663+
"awkward_IndexedArray_numnull",
664+
"awkward_IndexedArray_numnull_parents",
661665
"awkward_IndexedArray_numnull_unique_64",
662666
"awkward_NumpyArray_fill",
663667
"awkward_ListArray_fill",

kernel-test-data.json

Lines changed: 125 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1138,7 +1138,7 @@
11381138
},
11391139
{
11401140
"name": "awkward_ByteMaskedArray_numnull",
1141-
"status": false,
1141+
"status": true,
11421142
"tests": [
11431143
{
11441144
"error": false,
@@ -1795,11 +1795,51 @@
17951795
},
17961796
{
17971797
"name": "awkward_IndexedArray_numnull",
1798-
"status": false,
1798+
"status": true,
17991799
"tests": [
18001800
{
18011801
"error": false,
18021802
"message": "",
1803+
"inputs": {
1804+
"fromindex": [1],
1805+
"lenindex": 1
1806+
},
1807+
"outputs": {
1808+
"numnull": [0]
1809+
}
1810+
},
1811+
{
1812+
"error": false,
1813+
"inputs": {
1814+
"fromindex": [-1],
1815+
"lenindex": 1
1816+
},
1817+
"outputs": {
1818+
"numnull": [1]
1819+
}
1820+
},
1821+
{
1822+
"error": false,
1823+
"inputs": {
1824+
"fromindex": [-1, -1, -1, -1],
1825+
"lenindex": 4
1826+
},
1827+
"outputs": {
1828+
"numnull": [4]
1829+
}
1830+
},
1831+
{
1832+
"error": false,
1833+
"inputs": {
1834+
"fromindex": [0, -1, 2, -1, -1, -1, -1],
1835+
"lenindex": 7
1836+
},
1837+
"outputs": {
1838+
"numnull": [5]
1839+
}
1840+
},
1841+
{
1842+
"error": false,
18031843
"inputs": {
18041844
"fromindex": [0, 1],
18051845
"lenindex": 2
@@ -1942,6 +1982,89 @@
19421982
}
19431983
]
19441984
},
1985+
{
1986+
"name": "awkward_IndexedArray_numnull_parents",
1987+
"status": true,
1988+
"tests": [
1989+
{
1990+
"error": false,
1991+
"inputs": {
1992+
"fromindex": [1],
1993+
"lenindex": 1
1994+
},
1995+
"outputs": {
1996+
"numnull": [0],
1997+
"tolength": [0]
1998+
}
1999+
},
2000+
{
2001+
"error": false,
2002+
"inputs": {
2003+
"fromindex": [-1],
2004+
"lenindex": 1
2005+
},
2006+
"outputs": {
2007+
"numnull": [1],
2008+
"tolength": [1]
2009+
}
2010+
},
2011+
{
2012+
"error": false,
2013+
"inputs": {
2014+
"fromindex": [-1, -1, -1, -1],
2015+
"lenindex": 4
2016+
},
2017+
"outputs": {
2018+
"numnull": [1, 1, 1, 1],
2019+
"tolength": [4]
2020+
}
2021+
},
2022+
{
2023+
"error": false,
2024+
"inputs": {
2025+
"fromindex": [0, -1, 2, -1, -1, -1, -1],
2026+
"lenindex": 7
2027+
},
2028+
"outputs": {
2029+
"numnull": [0, 1, 0, 1, 1, 1, 1],
2030+
"tolength": [5]
2031+
}
2032+
},
2033+
{
2034+
"error": false,
2035+
"inputs": {
2036+
"fromindex": [0, 1],
2037+
"lenindex": 2
2038+
},
2039+
"outputs": {
2040+
"numnull": [0, 0],
2041+
"tolength": [0]
2042+
}
2043+
},
2044+
{
2045+
"error": false,
2046+
"inputs": {
2047+
"fromindex": [0, 1, 2, 3],
2048+
"lenindex": 4
2049+
},
2050+
"outputs": {
2051+
"numnull": [0, 0, 0, 0],
2052+
"tolength": [0]
2053+
}
2054+
},
2055+
{
2056+
"error": false,
2057+
"inputs": {
2058+
"fromindex": [0, 1, -2, 3, -4, 5, -6],
2059+
"lenindex": 7
2060+
},
2061+
"outputs": {
2062+
"numnull": [0, 0, 1, 0, 1, 0, 1],
2063+
"tolength": [3]
2064+
}
2065+
}
2066+
]
2067+
},
19452068
{
19462069
"name": "awkward_IndexedArray_numnull_unique_64",
19472070
"status": true,

src/awkward/_connect/cuda/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ def fetch_template_specializations(kernel_dict):
7171
# These cuda kernels consist of multiple kernels that don't have templated
7272
# specializations of the same name (e.g. '_a', '_b').
7373
kernel_exclusions = [
74+
"awkward_Index_nones_as_index",
7475
"awkward_ByteMaskedArray_getitem_nextcarry",
76+
"awkward_ByteMaskedArray_numnull",
77+
"awkward_IndexedArray_numnull",
78+
"awkward_IndexedArray_numnull_parents",
7579
"awkward_ByteMaskedArray_getitem_nextcarry_outindex",
7680
"awkward_ByteMaskedArray_reduce_next_64",
7781
"awkward_ByteMaskedArray_reduce_next_nonlocal_nextshifts_64",

0 commit comments

Comments
 (0)