Cudf 仅使用单个 gpu 加载数据
Cudf only using single gpu to load data
我有一个大文件要使用 cudf.read_csv() 加载。有问题的文件太大,无法放入单个 gpu 的内存中,但仍然足够小,可以放入 cpu 内存中。我可以通过 pd.read_csv() 加载文件,但它需要很长时间!在较小(但仍然很大)的文件中,cudf.read_csv() 比 pandas.
快 6-10 倍左右
使用 cudf.read_csv() 时,我注意到 4 个可用的 Tesla V100-DGXS 中只有 1 个实际加载了数据。其余的闲着。我想象如果所有 4 个都被使用,该文件将适合内存。我怎样才能使用所有 4 个 gpu 来加载文件?
注意:我知道我可以使用像 cudf.read_csv('file.csv', usecols=FIRST_n_COLS) 这样的 hack 并按顺序加载批次的列。虽然这适合记忆,但如果可能的话,我更喜欢更优雅的解决方案。
如果您有多个 GPU,并且想一次使用所有 GPU,请使用 dask_cudf
。 RAPIDS has a few guides for this, but @Nick Becker did a great job explaining it here: 。那会让你上路
我有一个大文件要使用 cudf.read_csv() 加载。有问题的文件太大,无法放入单个 gpu 的内存中,但仍然足够小,可以放入 cpu 内存中。我可以通过 pd.read_csv() 加载文件,但它需要很长时间!在较小(但仍然很大)的文件中,cudf.read_csv() 比 pandas.
快 6-10 倍左右使用 cudf.read_csv() 时,我注意到 4 个可用的 Tesla V100-DGXS 中只有 1 个实际加载了数据。其余的闲着。我想象如果所有 4 个都被使用,该文件将适合内存。我怎样才能使用所有 4 个 gpu 来加载文件?
注意:我知道我可以使用像 cudf.read_csv('file.csv', usecols=FIRST_n_COLS) 这样的 hack 并按顺序加载批次的列。虽然这适合记忆,但如果可能的话,我更喜欢更优雅的解决方案。
如果您有多个 GPU,并且想一次使用所有 GPU,请使用 dask_cudf
。 RAPIDS has a few guides for this, but @Nick Becker did a great job explaining it here: