gpt4 book ai didi

python - 如何利用 GPU 将大型 dask 数组 (numpy.ndarray) 写入 Zarr 文件?

转载 作者:行者123 更新时间:2023-11-30 21:51:23 43 4
gpt4 key购买 nike

我正在尝试使用 dask 将大型 dask 数组(46 GB,包含 124 - 370 MB block )写入 zarr 文件。如果我的 dask 数组被命名为 dask_data,那么一个简单的 dask_data.to_zarr("my_zarr.zarr") 就可以工作。但据我了解,这是一个同步的、CPU 密集型进程。

我想做的是对分配给 Quadro GV100 GPU 的大部分工作使用并行性。我尝试通过 dask_data_cupy = dask_data.map_blocks(cupy.asarray) 将 numpy.ndarray 转换为 cupy.ndarray 并将其写入 zarr 文件,但我收到:

ValueError:对象 __array__ 方法不生成数组(坦率地说,我也没有看到性能提升)。

如何使用 GPU 并行地将 dask 数组写入 zarr 文件?

谢谢!

最佳答案

But from what I understand, this is a synchronous, CPU bound process.

这可能不是真的,您的瓶颈可能是存储设备。在任何情况下,每个 block 都会写入一个单独的文件,并且跨线程和/或进程并行写入(取决于您的设置)。这就是 zarr 设计的全部要点,应用程序可以独立地与每个 block 交互。

如果您选择使用各种压缩编码,您可能会受到CPU限制;然而,这些并不一定适合 GPU 操作。

简而言之,除非您的数据已经在 GPU 上生成,否则如果在将其写入文件之前将其传输到 GPU 进行处理是值得的,我会感到惊讶。如果有一个函数可以直接将 cupy 数组读/写到 zarr,并且您也在 GPU 上进行处理,那么情况会有所不同 - 但我不相信有。

关于python - 如何利用 GPU 将大型 dask 数组 (numpy.ndarray) 写入 Zarr 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60119406/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com