Skip to content

Commit c23914f

Browse files
committed
Require CUDA 12.2+
1 parent 5c0a462 commit c23914f

File tree

6 files changed

+10
-108
lines changed

6 files changed

+10
-108
lines changed

ci/build_cpp.sh

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -26,42 +26,10 @@ export RAPIDS_ARTIFACTS_DIR
2626
# populates `RATTLER_CHANNELS` array and `RATTLER_ARGS` array
2727
source rapids-rattler-channel-string
2828

29-
# Construct the extra variants according to the architecture
30-
if [[ "$(arch)" == "x86_64" ]]; then
31-
cat > variants.yaml << EOF
32-
c_compiler_version:
33-
- 14
34-
35-
cxx_compiler_version:
36-
- 14
37-
38-
cuda_version:
39-
- ${RAPIDS_CUDA_VERSION%.*}
40-
EOF
41-
else
42-
cat > variants.yaml << EOF
43-
zip_keys:
44-
- [c_compiler_version, cxx_compiler_version, cuda_version]
45-
46-
c_compiler_version:
47-
- 12
48-
- 14
49-
50-
cxx_compiler_version:
51-
- 12
52-
- 14
53-
54-
cuda_version:
55-
- 12.1 # The last version to not support cufile
56-
- ${RAPIDS_CUDA_VERSION%.*}
57-
EOF
58-
fi
59-
6029
# --no-build-id allows for caching with `sccache`
6130
# more info is available at
6231
# https://rattler.build/latest/tips_and_tricks/#using-sccache-or-ccache-with-rattler-build
6332
rattler-build build --recipe conda/recipes/libkvikio \
64-
--variant-config variants.yaml \
6533
"${RATTLER_ARGS[@]}" \
6634
"${RATTLER_CHANNELS[@]}"
6735

conda/recipes/libkvikio/recipe.yaml

Lines changed: 9 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,6 @@ schema_version: 1
55
context:
66
version: ${{ env.get("RAPIDS_PACKAGE_VERSION") }}
77
minor_version: ${{ (version | split("."))[:2] | join(".") }}
8-
# We need to support three cases:
9-
# 1. Linux x86_64, which always uses libcufile
10-
# 2. Linux aarch64 with CUDA >= 12.2, which uses libcufile
11-
# 3. Linux aarch64 with CUDA < 12.2, which does not use libcufile
12-
# Each case has different cuda-version constraints as expressed below
13-
should_use_cufile: ${{ x86_64 or (aarch64 and cuda_version >= "12.2") }}
148
# When reverting, instances of cuda_key_string can be replaced with cuda_major
159
cuda_key_string: ${{ cuda_version | replace(".", "_") }}
1610
#cuda_version: ${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[:2] | join(".") }}
@@ -67,9 +61,7 @@ cache:
6761
host:
6862
- cuda-version =${{ cuda_version }}
6963
- libcurl ==${{ libcurl_version }}
70-
- if: should_use_cufile
71-
then:
72-
- libcufile-dev
64+
- libcufile-dev
7365
- libnuma
7466

7567
outputs:
@@ -94,24 +86,16 @@ outputs:
9486
- cuda-version =${{ cuda_version }}
9587
- libcurl ==${{ libcurl_version }}
9688
run:
97-
- if: x86_64 or (aarch64 and cuda_version >= "13.0")
89+
- if: cuda_version >= "13.0"
9890
then:
9991
- ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }}
10092
else:
101-
- if: aarch64 and cuda_version >= "12.2"
102-
then:
103-
- ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="12.2.0a0") }}
104-
else:
105-
- ${{ pin_compatible("cuda-version", upper_bound="12.2.0a0", lower_bound="12.0") }}
106-
- if: should_use_cufile
107-
then:
108-
- libcufile-dev
93+
- ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="12.2.0a0") }}
94+
- libcufile-dev
10995
ignore_run_exports:
11096
by_name:
11197
- cuda-version
112-
- if: should_use_cufile
113-
then:
114-
- libcufile
98+
- libcufile
11599
tests:
116100
- script:
117101
- test -f $PREFIX/include/kvikio/file_handle.hpp
@@ -139,28 +123,20 @@ outputs:
139123
- cuda-version =${{ cuda_version }}
140124
- cuda-cudart-dev
141125
- libcurl ==${{ libcurl_version }}
142-
- if: should_use_cufile
143-
then:
144-
- libcufile-dev
126+
- libcufile-dev
145127
run:
146-
- if: x86_64
128+
- if: cuda_version >= "13.0"
147129
then:
148130
- ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }}
149131
else:
150-
- if: aarch64 and cuda_version >= "12.2"
151-
then:
152-
- ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="12.2.0a0") }}
153-
else:
154-
- ${{ pin_compatible("cuda-version", upper_bound="12.2.0a0", lower_bound="12.0") }}
132+
- ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="12.2.0a0") }}
155133
- cuda-cudart
156134
ignore_run_exports:
157135
by_name:
158136
- cuda-cudart
159137
- cuda-version
160138
- libnuma
161-
- if: should_use_cufile
162-
then:
163-
- libcufile
139+
- libcufile
164140
about:
165141
homepage: ${{ load_from_file("python/libkvikio/pyproject.toml").project.urls.Homepage }}
166142
license: ${{ load_from_file("python/libkvikio/pyproject.toml").project.license.text }}

cpp/include/kvikio/file_handle.hpp

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -283,9 +283,6 @@ class FileHandle {
283283
* This is an asynchronous version of `.read()`, which will be executed in sequence
284284
* for the specified stream.
285285
*
286-
* When running CUDA v12.1 or older, this function falls back to use `.read()` after
287-
* `stream` has been synchronized.
288-
*
289286
* The arguments have the same meaning as in `.read()` but some of them are deferred.
290287
* That is, the values pointed to by `size_p`, `file_offset_p` and `devPtr_offset_p`
291288
* will not be evaluated until execution time. Notice, this behavior can be changed
@@ -324,9 +321,6 @@ class FileHandle {
324321
* This is an asynchronous version of `.read()`, which will be executed in sequence
325322
* for the specified stream.
326323
*
327-
* When running CUDA v12.1 or older, this function falls back to use `.read()` after
328-
* `stream` has been synchronized.
329-
*
330324
* The arguments have the same meaning as in `.read()` but returns a `StreamFuture` object
331325
* that the caller must keep alive until all data has been read from disk. One way to do this,
332326
* is by calling `StreamFuture.check_bytes_done()`, which will synchronize the associated stream
@@ -355,9 +349,6 @@ class FileHandle {
355349
* This is an asynchronous version of `.write()`, which will be executed in sequence
356350
* for the specified stream.
357351
*
358-
* When running CUDA v12.1 or older, this function falls back to use `.read()` after
359-
* `stream` has been synchronized.
360-
*
361352
* The arguments have the same meaning as in `.write()` but some of them are deferred.
362353
* That is, the values pointed to by `size_p`, `file_offset_p` and `devPtr_offset_p`
363354
* will not be evaluated until execution time. Notice, this behavior can be changed
@@ -397,9 +388,6 @@ class FileHandle {
397388
* This is an asynchronous version of `.write()`, which will be executed in sequence
398389
* for the specified stream.
399390
*
400-
* When running CUDA v12.1 or older, this function falls back to use `.read()` after
401-
* `stream` has been synchronized.
402-
*
403391
* The arguments have the same meaning as in `.write()` but returns a `StreamFuture` object
404392
* that the caller must keep alive until all data has been written to disk. One way to do this,
405393
* is by calling `StreamFuture.check_bytes_done()`, which will synchronize the associated stream

cpp/src/batch.cpp

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515

1616
namespace kvikio {
1717

18-
#ifdef KVIKIO_CUFILE_BATCH_API_FOUND
19-
2018
BatchHandle::BatchHandle(int max_num_events) : _initialized{true}, _max_num_events{max_num_events}
2119
{
2220
CUFILE_TRY(cuFileAPI::instance().BatchIOSetUp(&_handle, max_num_events));
@@ -78,28 +76,4 @@ std::vector<CUfileIOEvents_t> BatchHandle::status(unsigned min_nr,
7876

7977
void BatchHandle::cancel() { CUFILE_TRY(cuFileAPI::instance().BatchIOCancel(_handle)); }
8078

81-
#else
82-
83-
BatchHandle::BatchHandle(int max_num_events)
84-
{
85-
KVIKIO_FAIL("BatchHandle requires cuFile's batch API, please build with CUDA v12.1+");
86-
}
87-
88-
bool BatchHandle::closed() const noexcept { return true; }
89-
90-
void BatchHandle::close() noexcept {}
91-
92-
void BatchHandle::submit(std::vector<BatchOp> const& operations) {}
93-
94-
std::vector<CUfileIOEvents_t> BatchHandle::status(unsigned min_nr,
95-
unsigned max_nr,
96-
struct timespec* timeout)
97-
{
98-
return std::vector<CUfileIOEvents_t>{};
99-
}
100-
101-
void BatchHandle::cancel() {}
102-
103-
#endif
104-
10579
} // namespace kvikio

dependencies.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,6 @@ dependencies:
180180
specific:
181181
- output_types: conda
182182
matrices:
183-
- matrix:
184-
cuda: "12.0"
185-
packages:
186-
- cuda-version=12.0
187183
- matrix:
188184
cuda: "12.2"
189185
packages:

java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ SPDX-License-Identifier: Apache-2.0
2424
<maven.compiler.source>11</maven.compiler.source>
2525
<maven.compiler.target>11</maven.compiler.target>
2626
<junit.version>5.4.2</junit.version>
27-
<jcuda.version>12.0.0</jcuda.version>
27+
<jcuda.version>12.2.2</jcuda.version>
2828
<cmake.version>3.31.5-b1</cmake.version>
2929
</properties>
3030

0 commit comments

Comments
 (0)