尽管我在 Kaggle 中打开了 GPU,但为什么它没有被使用?

问题描述 投票:0回答:1

我已经在kaggle上上传了一个数据集(大约73GB),并且我正在尝试预处理这些数据以用于模型训练目的。该数据集有很大的数量。缺失值,我正在尝试对其进行插值以进行数据准备。我当前正在运行以下代码来插入数据:

import xarray as xr
import dask

# Ensuring Dask's distributed scheduler is set up
from dask.distributed import Client
client = Client()

# Loading the combined SST dataset
dataset_path = '/kaggle/input/combined-sst-data/combined_sst_data.nc'
ds = xr.open_dataset(dataset_path, engine='h5netcdf', chunks={'time': 'auto'})

# # Rechunk the dataset so the 'time' dimension is in a single chunk
# ds_rechunked = ds.chunk({'time': -1})

# # Now, try to interpolate missing values across the 'time' dimension
# sst_filled = ds_rechunked['sea_surface_temperature'].interpolate_na(dim='time', method='linear')

# # Since operations with Dask are lazy, trigger computation to evaluate results
# sst_filled = sst_filled.compute()

# # Example to save output data - Kaggle allows you to write files
# sst_filled.to_netcdf('cleaned_sst_data.nc')

ds_grouped = ds.groupby('time').mean()

# Ensure all operations are completed if using Dask
ds_grouped = ds_grouped.compute()

但是,Kaggle 最终使用 CPU 而不是 GPU 来实现此目的。在下图中,您可以看到尽管 GPU 加速器已打开,但 CPU 的使用情况。这会导致内核在进程完成之前死亡。

我尝试寻找解决方案,例如这个帖子有人遇到同样的问题,但还没有有用的解决方案。

我遇到了这个 stackoverflow 问题,其中建议使用 CPU 而不是 GpU,这让我想知道我的方法是否有问题,这就是为什么没有使用 GPU,但是内容来自 2017 年,我不确定现在是否已经过时。

我对这个领域比较陌生,对这些概念还没有清楚的了解,所以任何帮助将不胜感激!

python gpu cpu kaggle data-preprocessing
1个回答
0
投票

我不认为

xarray
默认情况下是 GPU 加速的。您可以查看这个项目,它是
xarray
的 GPU 加速版本。您可以使用
pip install cupy-xarray
安装它。

使用示例:

import xarray as xr
import cupy_xarray  # This registers the `DataSet.cupy` and `DataArray.cupy` namespaces but is not used directly

ds = xr.tutorial.load_dataset("air_temperature.nc")
type(ds.air.data)  # numpy.ndarray

%timeit ds.air.mean()  # 8.56 ms ± 15.6 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

ds = ds.cupy.as_cupy()  # Also available via convenience method ds.as_cupy()
type(ds.air.data)  # cupy.core.core.ndarray

%timeit ds.air.mean()  # 2.14 ms ± 21.4 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

ds = ds.as_numpy()
type(ds.air.data)  # numpy.ndarray
© www.soinside.com 2019 - 2024. All rights reserved.