I have tried to use my code, which works perfectly fine offline, on Google Colab. In an attempt to convert data from CPU to GPU for ML training using cuML i get an Error.
Here is the part of my code:
for _interval in list(range(0,26)):
print(_interval)
train,capm_1,capm_3,capm_12,to_be_predicted_df,evaluate,test=adjust_dates_by_month(dax_df,df,True,-1,2015,3,interval=_interval)
# df.drop(['PrefStock_w', 'PrefDiv_w'], axis=1, inplace=True)
train['Date'] = train['Date'].astype('str')
evaluate['Date'] = evaluate['Date'].astype('str')
for col in train.select_dtypes(include=['Float64', 'Int64']).columns:
train[col] = train[col].astype(float)
for col in evaluate.select_dtypes(include=['Float64', 'Int64']).columns:
evaluate[col] = evaluate[col].astype(float)
evaluate=cpd.from_dataframe(evaluate,allow_copy=True)
train=cpd.from_dataframe(train,allow_copy=True)
last two lines cause this error message:
MemoryError Traceback (most recent call last)
<ipython-input-22-f0b3ec832a19> in <cell line: 47>()
55 for col in evaluate.select_dtypes(include=['Float64', 'Int64']).columns:
56 evaluate[col] = evaluate[col].astype(float)
---> 57 evaluate=cpd.from_dataframe(evaluate,allow_copy=True)
58 train=cpd.from_dataframe(train,allow_copy=True)
59
3 frames
/usr/local/lib/python3.10/dist-packages/cudf/core/dataframe.py in from_dataframe(df, allow_copy)
7788
7789 def from_dataframe(df, allow_copy=False):
-> 7790 return df_protocol.from_dataframe(df, allow_copy=allow_copy)
7791
7792
/usr/local/lib/python3.10/dist-packages/cudf/core/df_protocol.py in from_dataframe(df, allow_copy)
728
729 elif col.dtype[0] == _DtypeKind.STRING:
--> 730 columns[name], _buf = _protocol_to_cudf_column_string(
731 col, allow_copy
732 )
/usr/local/lib/python3.10/dist-packages/cudf/core/df_protocol.py in _protocol_to_cudf_column_string(col, allow_copy)
871 assert buffers["data"] is not None, "data buffer should never be None"
872 data_buffer, data_dtype = buffers["data"]
--> 873 data_buffer = _ensure_gpu_buffer(data_buffer, data_dtype, allow_copy)
874 encoded_string = build_column(
875 data_buffer._buf,
/usr/local/lib/python3.10/dist-packages/cudf/core/df_protocol.py in _ensure_gpu_buffer(buf, data_type, allow_copy)
774 if buf.__dlpack_device__()[0] != _Device.CUDA:
775 if allow_copy:
--> 776 dbuf = rmm.DeviceBuffer(ptr=buf.ptr, size=buf.bufsize)
777 return _CuDFBuffer(
778 as_buffer(dbuf, exposed=True),
device_buffer.pyx in rmm._lib.device_buffer.DeviceBuffer.__cinit__()
MemoryError: std::bad_alloc: CUDA error at: /__w/cudf/cudf/python/cudf/build/cp310-cp310-linux_x86_64/_deps/rmm-src/include/rmm/mr/device/cuda_memory_resource.hpp:60: cudaErrorIllegalAddress an illegal memory access was encountered