dask-cuda 24.2.0a18__py3-none-any.whl → 24.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dask_cuda/VERSION +1 -1
- dask_cuda/__init__.py +0 -1
- dask_cuda/_version.py +1 -1
- dask_cuda/explicit_comms/dataframe/shuffle.py +1 -1
- dask_cuda/get_device_memory_objects.py +4 -0
- dask_cuda/tests/test_dgx.py +4 -0
- dask_cuda/tests/test_explicit_comms.py +29 -1
- dask_cuda/tests/test_proxify_host_file.py +14 -3
- {dask_cuda-24.2.0a18.dist-info → dask_cuda-24.4.0.dist-info}/METADATA +9 -8
- {dask_cuda-24.2.0a18.dist-info → dask_cuda-24.4.0.dist-info}/RECORD +14 -14
- {dask_cuda-24.2.0a18.dist-info → dask_cuda-24.4.0.dist-info}/WHEEL +1 -1
- {dask_cuda-24.2.0a18.dist-info → dask_cuda-24.4.0.dist-info}/LICENSE +0 -0
- {dask_cuda-24.2.0a18.dist-info → dask_cuda-24.4.0.dist-info}/entry_points.txt +0 -0
- {dask_cuda-24.2.0a18.dist-info → dask_cuda-24.4.0.dist-info}/top_level.txt +0 -0
dask_cuda/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
24.
|
|
1
|
+
24.04.00
|
dask_cuda/__init__.py
CHANGED
dask_cuda/_version.py
CHANGED
|
@@ -577,7 +577,7 @@ def get_rearrange_by_column_wrapper(func):
|
|
|
577
577
|
kw = kw.arguments
|
|
578
578
|
# Notice, we only overwrite the default and the "tasks" shuffle
|
|
579
579
|
# algorithm. The "disk" and "p2p" algorithm, we don't touch.
|
|
580
|
-
if kw["
|
|
580
|
+
if kw["shuffle_method"] in ("tasks", None):
|
|
581
581
|
col = kw["col"]
|
|
582
582
|
if isinstance(col, str):
|
|
583
583
|
col = [col]
|
|
@@ -124,6 +124,10 @@ def get_device_memory_objects_register_cudf():
|
|
|
124
124
|
def get_device_memory_objects_cudf_multiindex(obj):
|
|
125
125
|
return dispatch(obj._columns)
|
|
126
126
|
|
|
127
|
+
@dispatch.register(cudf.core.column.ColumnBase)
|
|
128
|
+
def get_device_memory_objects_cudf_column(obj):
|
|
129
|
+
return dispatch(obj.data) + dispatch(obj.children) + dispatch(obj.mask)
|
|
130
|
+
|
|
127
131
|
|
|
128
132
|
@sizeof.register_lazy("cupy")
|
|
129
133
|
def register_cupy(): # NB: this overwrites dask.sizeof.register_cupy()
|
dask_cuda/tests/test_dgx.py
CHANGED
|
@@ -144,6 +144,10 @@ def _test_ucx_infiniband_nvlink(
|
|
|
144
144
|
else:
|
|
145
145
|
skip_queue.put("ok")
|
|
146
146
|
|
|
147
|
+
# `ucp.get_active_transports()` call above initializes UCX, we must reset it
|
|
148
|
+
# so that Dask doesn't try to initialize it again and raise an exception.
|
|
149
|
+
ucp.reset()
|
|
150
|
+
|
|
147
151
|
if enable_infiniband is None and enable_nvlink is None and enable_rdmacm is None:
|
|
148
152
|
enable_tcp_over_ucx = None
|
|
149
153
|
cm_tls = ["all"]
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import multiprocessing as mp
|
|
3
3
|
import os
|
|
4
|
+
import signal
|
|
5
|
+
import time
|
|
6
|
+
from functools import partial
|
|
4
7
|
from unittest.mock import patch
|
|
5
8
|
|
|
6
9
|
import numpy as np
|
|
@@ -175,7 +178,7 @@ def test_dataframe_shuffle(backend, protocol, nworkers, _partitions):
|
|
|
175
178
|
|
|
176
179
|
|
|
177
180
|
@pytest.mark.parametrize("in_cluster", [True, False])
|
|
178
|
-
def
|
|
181
|
+
def _test_dask_use_explicit_comms(in_cluster):
|
|
179
182
|
def check_shuffle():
|
|
180
183
|
"""Check if shuffle use explicit-comms by search for keys named
|
|
181
184
|
'explicit-comms-shuffle'
|
|
@@ -217,6 +220,31 @@ def test_dask_use_explicit_comms(in_cluster):
|
|
|
217
220
|
check_shuffle()
|
|
218
221
|
|
|
219
222
|
|
|
223
|
+
@pytest.mark.parametrize("in_cluster", [True, False])
|
|
224
|
+
def test_dask_use_explicit_comms(in_cluster):
|
|
225
|
+
def _timeout(process, function, timeout):
|
|
226
|
+
if process.is_alive():
|
|
227
|
+
function()
|
|
228
|
+
timeout = time.time() + timeout
|
|
229
|
+
while process.is_alive() and time.time() < timeout:
|
|
230
|
+
time.sleep(0.1)
|
|
231
|
+
|
|
232
|
+
p = mp.Process(target=_test_dask_use_explicit_comms, args=(in_cluster,))
|
|
233
|
+
p.start()
|
|
234
|
+
|
|
235
|
+
# Timeout before killing process
|
|
236
|
+
_timeout(p, lambda: None, 60.0)
|
|
237
|
+
|
|
238
|
+
# Send SIGINT (i.e., KeyboardInterrupt) hoping we get a stack trace.
|
|
239
|
+
_timeout(p, partial(p._popen._send_signal, signal.SIGINT), 3.0)
|
|
240
|
+
|
|
241
|
+
# SIGINT didn't work, kill process.
|
|
242
|
+
_timeout(p, p.kill, 3.0)
|
|
243
|
+
|
|
244
|
+
assert not p.is_alive()
|
|
245
|
+
assert p.exitcode == 0
|
|
246
|
+
|
|
247
|
+
|
|
220
248
|
def _test_dataframe_shuffle_merge(backend, protocol, n_workers):
|
|
221
249
|
if backend == "cudf":
|
|
222
250
|
cudf = pytest.importorskip("cudf")
|
|
@@ -302,13 +302,24 @@ def test_dataframes_share_dev_mem(root_dir):
|
|
|
302
302
|
def test_cudf_get_device_memory_objects():
|
|
303
303
|
cudf = pytest.importorskip("cudf")
|
|
304
304
|
objects = [
|
|
305
|
-
cudf.DataFrame(
|
|
305
|
+
cudf.DataFrame(
|
|
306
|
+
{"a": [0, 1, 2, 3, None, 5, 6, 7, 8, 9], "b": range(10)},
|
|
307
|
+
index=reversed(range(10)),
|
|
308
|
+
),
|
|
306
309
|
cudf.MultiIndex(
|
|
307
310
|
levels=[[1, 2], ["blue", "red"]], codes=[[0, 0, 1, 1], [1, 0, 1, 0]]
|
|
308
311
|
),
|
|
309
312
|
]
|
|
310
313
|
res = get_device_memory_ids(objects)
|
|
311
|
-
|
|
314
|
+
# Buffers are:
|
|
315
|
+
# 1. int data for objects[0].a
|
|
316
|
+
# 2. mask data for objects[0].a
|
|
317
|
+
# 3. int data for objects[0].b
|
|
318
|
+
# 4. int data for objects[0].index
|
|
319
|
+
# 5. int data for objects[1].levels[0]
|
|
320
|
+
# 6. char data for objects[1].levels[1]
|
|
321
|
+
# 7. offset data for objects[1].levels[1]
|
|
322
|
+
assert len(res) == 7, "We expect seven buffer objects"
|
|
312
323
|
|
|
313
324
|
|
|
314
325
|
def test_externals(root_dir):
|
|
@@ -403,7 +414,7 @@ async def test_compatibility_mode_dataframe_shuffle(compatibility_mode, npartiti
|
|
|
403
414
|
ddf = dask.dataframe.from_pandas(
|
|
404
415
|
cudf.DataFrame({"key": np.arange(10)}), npartitions=npartitions
|
|
405
416
|
)
|
|
406
|
-
res = ddf.shuffle(on="key",
|
|
417
|
+
res = ddf.shuffle(on="key", shuffle_method="tasks").persist()
|
|
407
418
|
|
|
408
419
|
# With compatibility mode on, we shouldn't encounter any proxy objects
|
|
409
420
|
if compatibility_mode:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dask-cuda
|
|
3
|
-
Version: 24.
|
|
3
|
+
Version: 24.4.0
|
|
4
4
|
Summary: Utilities for Dask and CUDA interactions
|
|
5
5
|
Author: NVIDIA Corporation
|
|
6
6
|
License: Apache-2.0
|
|
@@ -14,15 +14,16 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.9
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
18
|
Requires-Python: >=3.9
|
|
18
19
|
Description-Content-Type: text/markdown
|
|
19
20
|
License-File: LICENSE
|
|
20
21
|
Requires-Dist: click >=8.1
|
|
21
22
|
Requires-Dist: numba >=0.57
|
|
22
|
-
Requires-Dist: numpy
|
|
23
|
-
Requires-Dist: pandas
|
|
23
|
+
Requires-Dist: numpy <2.0a0,>=1.23
|
|
24
|
+
Requires-Dist: pandas >=1.3
|
|
24
25
|
Requires-Dist: pynvml <11.5,>=11.0.0
|
|
25
|
-
Requires-Dist: rapids-dask-dependency ==24.
|
|
26
|
+
Requires-Dist: rapids-dask-dependency ==24.4.*
|
|
26
27
|
Requires-Dist: zict >=2.0.0
|
|
27
28
|
Provides-Extra: docs
|
|
28
29
|
Requires-Dist: numpydoc >=1.1.0 ; extra == 'docs'
|
|
@@ -30,12 +31,12 @@ Requires-Dist: sphinx ; extra == 'docs'
|
|
|
30
31
|
Requires-Dist: sphinx-click >=2.7.1 ; extra == 'docs'
|
|
31
32
|
Requires-Dist: sphinx-rtd-theme >=0.5.1 ; extra == 'docs'
|
|
32
33
|
Provides-Extra: test
|
|
33
|
-
Requires-Dist: cudf ==24.
|
|
34
|
-
Requires-Dist: dask-cudf ==24.
|
|
35
|
-
Requires-Dist: kvikio ==24.
|
|
34
|
+
Requires-Dist: cudf ==24.4.* ; extra == 'test'
|
|
35
|
+
Requires-Dist: dask-cudf ==24.4.* ; extra == 'test'
|
|
36
|
+
Requires-Dist: kvikio ==24.4.* ; extra == 'test'
|
|
36
37
|
Requires-Dist: pytest ; extra == 'test'
|
|
37
38
|
Requires-Dist: pytest-cov ; extra == 'test'
|
|
38
|
-
Requires-Dist: ucx-py ==0.
|
|
39
|
+
Requires-Dist: ucx-py ==0.37.* ; extra == 'test'
|
|
39
40
|
|
|
40
41
|
Dask CUDA
|
|
41
42
|
=========
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
dask_cuda/VERSION,sha256=
|
|
2
|
-
dask_cuda/__init__.py,sha256=
|
|
3
|
-
dask_cuda/_version.py,sha256=
|
|
1
|
+
dask_cuda/VERSION,sha256=cS6_wRwcl4ZhhE4gk3mZbC_4dD-r28YRdEQeaKdKu1U,9
|
|
2
|
+
dask_cuda/__init__.py,sha256=Vt42yCT1WhjZgehiNLDLw2uvfxjqLThD8uKDMyKQYsw,1454
|
|
3
|
+
dask_cuda/_version.py,sha256=OcuA1fDRuukb6OC8LzTwSO2aJ3ZtB1N2pm08Nrga8y8,778
|
|
4
4
|
dask_cuda/cli.py,sha256=XNRH0bu-6jzRoyWJB5qSWuzePJSh3z_5Ng6rDCnz7lg,15970
|
|
5
5
|
dask_cuda/cuda_worker.py,sha256=bIu-ESeIpJG_WaTYrv0z9z5juJ1qR5i_5Ng3CN1WK8s,8579
|
|
6
6
|
dask_cuda/device_host_file.py,sha256=yS31LGtt9VFAG78uBBlTDr7HGIng2XymV1OxXIuEMtM,10272
|
|
7
7
|
dask_cuda/disk_io.py,sha256=urSLKiPvJvYmKCzDPOUDCYuLI3r1RUiyVh3UZGRoF_Y,6626
|
|
8
|
-
dask_cuda/get_device_memory_objects.py,sha256=
|
|
8
|
+
dask_cuda/get_device_memory_objects.py,sha256=R3U2cq4fJZPgtsUKyIguy9161p3Q99oxmcCmTcg6BtQ,4075
|
|
9
9
|
dask_cuda/initialize.py,sha256=Gjcxs_c8DTafgsHe5-2mw4lJdOmbFJJAZVOnxA8lTjM,6462
|
|
10
10
|
dask_cuda/is_device_object.py,sha256=CnajvbQiX0FzFzwft0MqK1OPomx3ZGDnDxT56wNjixw,1046
|
|
11
11
|
dask_cuda/is_spillable_object.py,sha256=CddGmg0tuSpXh2m_TJSY6GRpnl1WRHt1CRcdWgHPzWA,1457
|
|
@@ -28,26 +28,26 @@ dask_cuda/benchmarks/utils.py,sha256=baL5zK6VS6Mw_M4x9zJe8vMLUd2SZd1lS78JrL-h6oo
|
|
|
28
28
|
dask_cuda/explicit_comms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
29
|
dask_cuda/explicit_comms/comms.py,sha256=Su6PuNo68IyS-AwoqU4S9TmqWsLvUdNa0jot2hx8jQQ,10400
|
|
30
30
|
dask_cuda/explicit_comms/dataframe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
-
dask_cuda/explicit_comms/dataframe/shuffle.py,sha256=
|
|
31
|
+
dask_cuda/explicit_comms/dataframe/shuffle.py,sha256=YferHNWKsMea8tele-ynPVr_6RAZNZIR-VzK_uFuEQU,20131
|
|
32
32
|
dask_cuda/tests/test_cudf_builtin_spilling.py,sha256=u3kW91YRLdHFycvpGfSQKrEucu5khMJ1k4sjmddO490,4910
|
|
33
33
|
dask_cuda/tests/test_dask_cuda_worker.py,sha256=gViHaMCSfB6ip125OEi9D0nfKC-qBXRoHz6BRodEdb4,17729
|
|
34
34
|
dask_cuda/tests/test_device_host_file.py,sha256=79ssUISo1YhsW_7HdwqPfsH2LRzS2bi5BjPym1Sdgqw,5882
|
|
35
|
-
dask_cuda/tests/test_dgx.py,sha256=
|
|
36
|
-
dask_cuda/tests/test_explicit_comms.py,sha256=
|
|
35
|
+
dask_cuda/tests/test_dgx.py,sha256=Oh2vwL_CdUzSVQQoiIu6SPwXGRtmXwaW_Hh3ipXPUOc,7162
|
|
36
|
+
dask_cuda/tests/test_explicit_comms.py,sha256=I4lSW-NQ0E08baEoG7cY4Ix3blGb1Auz88q2BNd1cPA,13136
|
|
37
37
|
dask_cuda/tests/test_from_array.py,sha256=okT1B6UqHmLxoy0uER0Ylm3UyOmi5BAXwJpTuTAw44I,601
|
|
38
38
|
dask_cuda/tests/test_gds.py,sha256=6jf0HPTHAIG8Mp_FC4Ai4zpn-U1K7yk0fSXg8He8-r8,1513
|
|
39
39
|
dask_cuda/tests/test_initialize.py,sha256=Rba59ZbljEm1yyN94_sWZPEE_f7hWln95aiBVc49pmY,6960
|
|
40
40
|
dask_cuda/tests/test_local_cuda_cluster.py,sha256=G3kR-4o-vCqWWfSuQLFKVEK0F243FaDSgRlDTUll5aU,18376
|
|
41
|
-
dask_cuda/tests/test_proxify_host_file.py,sha256=
|
|
41
|
+
dask_cuda/tests/test_proxify_host_file.py,sha256=Yiv0sDcUoWw0d2oiPeHGoHqqSSM4lfQ4rChCiaxb6EU,18994
|
|
42
42
|
dask_cuda/tests/test_proxy.py,sha256=6iicSYYT2BGo1iKUQ7jM00mCjC4gtfwwxFXfGwH3QHc,23807
|
|
43
43
|
dask_cuda/tests/test_spill.py,sha256=xN9PbVERBYMuZxvscSO0mAM22loq9WT3ltZVBFxlmM4,10239
|
|
44
44
|
dask_cuda/tests/test_utils.py,sha256=JRIwXfemc3lWSzLJX0VcvR1_0wB4yeoOTsw7kB6z6pU,9176
|
|
45
45
|
dask_cuda/tests/test_worker_spec.py,sha256=Bvu85vkqm6ZDAYPXKMJlI2pm9Uc5tiYKNtO4goXSw-I,2399
|
|
46
46
|
examples/ucx/client_initialize.py,sha256=YN3AXHF8btcMd6NicKKhKR9SXouAsK1foJhFspbOn70,1262
|
|
47
47
|
examples/ucx/local_cuda_cluster.py,sha256=7xVY3EhwhkY2L4VZin_BiMCbrjhirDNChoC86KiETNc,1983
|
|
48
|
-
dask_cuda-24.
|
|
49
|
-
dask_cuda-24.
|
|
50
|
-
dask_cuda-24.
|
|
51
|
-
dask_cuda-24.
|
|
52
|
-
dask_cuda-24.
|
|
53
|
-
dask_cuda-24.
|
|
48
|
+
dask_cuda-24.4.0.dist-info/LICENSE,sha256=MjI3I-EgxfEvZlgjk82rgiFsZqSDXHFETd2QJ89UwDA,11348
|
|
49
|
+
dask_cuda-24.4.0.dist-info/METADATA,sha256=mjy5YntsqIKdldcPEj-jjR70Aphe-B0LXqjcZjVFS9U,2570
|
|
50
|
+
dask_cuda-24.4.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
51
|
+
dask_cuda-24.4.0.dist-info/entry_points.txt,sha256=UcRaKVEpywtxc6pF1VnfMB0UK4sJg7a8_NdZF67laPM,136
|
|
52
|
+
dask_cuda-24.4.0.dist-info/top_level.txt,sha256=3kKxJxeM108fuYc_lwwlklP7YBU9IEmdmRAouzi397o,33
|
|
53
|
+
dask_cuda-24.4.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|