0

我正在尝试读取一个巨大的 csv 文件 CUDF,但出现内存问题。

import cudf
cudf.set_allocator("managed")
cudf.__version__
user_wine_rate_df = cudf.read_csv('myfile.csv',
                                 sep = "\t",
                                 parse_dates = ['created_at'])


'0.17.0a+382.gbd321d1e93'

terminate called after throwing an instance of 'thrust::system::system_error'
  what():  parallel_for failed: cudaErrorIllegalAddress: an illegal memory access was encountered
Aborted (core dumped)

如果我删除cudf.set_allocator("managed") 我得到

MemoryError: std::bad_alloc: CUDA error at: /opt/conda/envs/rapids/include/rmm/mr/device/cuda_memory_resource.hpp:69: cudaErrorMemoryAllocation out of memory

我正在使用 CUDFrapidsai/rapidsai:cuda11.0-runtime-ubuntu16.04-py3.8

我想知道whar可能是命中内存的原因,而我可以用pandas读取这个大文件

**更新

我安装了dask_cudf

并使用dask_cudf.read_csv('myfile.csv')- 但仍然得到

parallel_for failed: cudaErrorIllegalAddress: an illegal memory access was encountered

4

2 回答 2

1

查看Nick Becker 撰写的关于阅读大于 GPU 内存文件的博客。它应该让你上路。

于 2021-02-05T18:17:07.983 回答
1

如果您正在读取的文件大于可用内存,那么您将观察到 OOM(内存不足)错误,因为 cuDF 在单个 GPU 上运行。为了读取非常大的文件,我建议使用dask_cudf

于 2021-02-01T17:16:57.853 回答