问题标签 [rapids]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 cudf 数据框时的 Pandas TypeError,但不是 pandas
我不认为我正在尝试解决这个问题,而是要了解正在发生的事情,因此我可以将它应用到我更大的项目的上下文中。我正在重写一个 Python 包以在 GPU 上运行。
无论如何,我正在使用 cudf 和 cuml 将数据帧传递给一个搜索列并创建所有 unqiue 值的数组的函数。传入的数据是一个包含所有数字字段的 csv,以及一个包含 1 表示正类,否则为 0 的类/y 字段。
数据的加载几乎相同。
编辑: cudf.unique() 返回一个 Series 而不是数组的事实似乎是原因。
还是很奇怪。以下适用于 Pandas 系列对象:
但是与 <cudf.core.series.Series> 相同的循环会得到 TypeError: series objects not iterable 错误。为什么会这样?
熊猫版:
cdf 版本:
接下来,我将 X_train 和 y_train 传递给一个模型,该模型作为一百万个其他事物的一部分,创建了 y_train 的唯一值数组。作为该过程的一部分,它使用 pandas.unique()。使用 pandas 数据框时,没有问题,整个模型运行顺利(不足为奇,它是基于 pandas 构建的)
但是,当我使用 cudf 数据框时,我得到以下信息:
我想我不明白为什么它在访问 cudf 数据框时看到一个不可散列的系列,而不是熊猫——它们都是系列?我假设会发生的情况是,当使用它不具备的方法调用 cudf 数据帧时,会发生以下两种情况之一:
- 它将数据发送回 CPU 以供 Pandas 处理;或者,
- 它会因为根本不认识这个方法而崩溃
但似乎正在发生的事情是,它知道 cudf 数据帧是一个数据帧,并尝试用 pandas 处理它,但随后 pandas 看到了不同的东西。
我想了解为什么会这样,因为我相信我会遇到更多这样的问题。
感谢您的任何见解。
apache-spark - Spark RAPIDS - 操作未替换为 GPU 版本
我是 Rapids 的新手,无法理解支持的操作。
我有以下格式的数据:
我正在尝试使用以下代码找出哪些“kmer”具有哪些“source_seq”:
Spark Rapids 支持的操作符文档提到collect_list
仅受窗口支持,据我所知,这是我在代码中所做的。
但是,查看查询计划,很容易看出collect_list
不是由 GPU 执行的:
与具有不同功能的类似查询不同,我们可以看到使用 GPU 执行的窗口:
我是否以某种方式错误地理解了支持的操作文档,或者我是否以错误的方式编写了代码?对此的任何帮助将不胜感激。
rapids - 在 Rapids 0.19 环境(CONDA)的 Pycaret 2.2 中运行比较模型时出错
我在比较模型时遇到了 RandomForestRegressor 的这个问题。我的 Pycaret 版本是 Pycaret2.2,它在 Rapids-0.19 环境中运行。在此处输入图像描述。
cuda - 多 GPU 上的 cuGraph
最近在看cuGraph的代码。我注意到有人提到 Louvain 和 Katz 算法支持多 GPU。但是,当我阅读Louvain的 C++ 代码时,我找不到与多 GPU 相关的代码。具体来说,根据之前的帖子,多GPU可以通过调用来实现cudaSetDevice
。但是,我在 Louvain 的代码中找不到这个函数。我错过了什么吗?
time-series - Rapidsai cuml ARIMA 中的无效订单
我正在尝试为 ARIMA 找到正确的参数,但无法使用高于 4 的参数。这是代码。
错误信息
ValueError: ERROR: Invalid order. Required: p,q,P,Q <= 4
有什么方法可以使用高于 4 的参数。我在 statsmodel 库中使用了更高的参数,但是由于我的数据很大,我需要这个库提供的 GPU 支持。
python - 如何将 Pandas 与 cuDF 一起使用?
我正在尝试使用 cuDF 复制这个熊猫系列片段。
看起来还没有实现。我们如何实现 cuDF 版本?
python - cuML RandomForestClassifier:带有文档示例的 CUDA 错误
我正在尝试在 Jupyter 笔记本中运行在此处找到的示例,并在下面从关于分类的 rapids cuML 介绍中复制 - 它在 n_samples 低于 6000 时运行良好(此参数指示生成的数据集的行数)
超过 6000,我得到以下 CUDA 错误和内核崩溃。注意:
- 使用 n_samples = 5000 将n_features 从10 增加到5000 运行得非常好.. 所以这似乎是数据集行数的问题,而不是列数
- 在机器上可用的 2 个 GPU 上进行测试(GTX 1050 2GB)
- nvidia-smi 在运行期间显示不到 25% 的 GPU 内存使用率
- cuda v11.2
- 驱动版本:460.73.01
- Ubuntu 18
任何帮助是极大的赞赏。
CUDA 错误:
~/anaconda3/envs/rapids/lib/python3.8/site-packages/cuml/internals/api_decorators.py in inner_with_setters(*args, **kwargs) 408 target_val=target_val) 409 中的 RuntimeError Traceback (最近一次调用最后一次) --> 410 return func(*args, **kwargs) 411 412 @wraps(func) cuml/ensemble/randomforestclassifier.pyx in cuml.ensemble.randomforestclassifier.RandomForestClassifier.fit() RuntimeError: CUDA 错误发生在: file=/ opt/conda/envs/rapids/conda-bld/libcuml_1614210250760/work/cpp/src/ decisiontree/quantile/quantile.cuh line=150: call='cub::DeviceRadixSort::SortKeys( (void *)d_temp_storage->data(), temp_storage_bytes, &d_keys_in[batch_offset], d_keys_out->data(), n_sampled_rows, 0, 8 * sizeof(T) , tempmem->stream)', Reason=cudaErrorInvalidValue:invalid argument 在 /home/oleg/anaconda3/envs/rapids/lib/python3.8/site-packages/cuml/common/../ 中获得了 64 个堆栈帧 #0。 ./../../libcuml++.so(_ZN4raft9exception18collect_call_stackEv+0x46) [0x7fa9b83eef36] #1 在 /home/oleg/anaconda3/envs/rapids/lib/python3.8/site-packages/cuml/common/../ ../../../libcuml++.so(_ZN4raft10cuda_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x69) [0x7fa9b83ef699] #2 在 /home/oleg/anaconda3/envs/rapids/lib/python3.8/site-packages/cuml/common/.. /../../../libcuml++。所以(_ZN2ML12DecisionTree19preprocess_quantileIfiEEvPKT_PKjiiiiSt10shared_ptrI15TemporaryMemoryIS2_T0_EE+0xaaf)[0x7fa9b84fea7f] #3 in /home/oleg/anaconda3/envs/rapids/lib/python3.8/site-packages/cuml/common/../.++/../../libcuml .so(_ZN2ML12rfClassifierIfE3fitERKN4raft8handle_tEPKfiiPiiRPNS_20RandomForestMetaDataIfiEE+0xde3) [0x7fa9b8734b63] #4 in /home/oleg/anaconda3/envs/rapids/lib/python3.8/site-packages/cuml/common/../../../../ libcuml++.so(_ZN2ML3fitERKN4raft8handle_tERPNS_20RandomForestMetaDataIfiEEPfiiPiiNS_9RF_paramsEi+0x1fd) [0x7fa9b872f54d] #5 in /home/oleg/anaconda3/envs/rapids/lib/python3.8/site-packages/cuml/ensemble/randomforestclassifier.cpython-38-x .so(+0x3c7e5) [0x7fa98e6d97e5] #6 in /home/oleg/anaconda3/envs/rapids/bin/python(PyObject_Call+0x255) [0x5589964052b5] #7 in /home/oleg/anaconda3/envs/rapids/bin/python (_PyEval_EvalFrameDefault+0x21c1) [0x5589964b1de1] #8 在 /home/oleg/anaconda3/envs/rapids/bin/python(_PyEval_EvalCodeWithName+0x2c3) [0x558996490503] #9 在 /home/oleg/anaconda3/envs/rapids/bin/python (+0x1b2007) [0x558996492007] #10 in /home/oleg/anaconda3/envs/rapids/bin/python(_PyEval_EvalFrameDefault+0x4ca3) [0x5589964b48c3] #11 in /home/oleg/anaconda3/envs/rapids/bin/python( _PyEval_EvalCodeWithName+0x2c3) [0x558996490503] #12 in /home/oleg/anaconda3/envs/rapids/bin/python(PyEval_EvalCodeEx+0x39) [0x558996491559] #13 in /home/oleg/anaconda3/envs/rapids/bin/python( PyEval_EvalCode+0x1b) [0x5589965349ab] #14 in /home/oleg/anaconda3/envs/rapids/bin/python(+0x2731de)[0x5589965531de] #15 in /home/oleg/anaconda3/envs/rapids/bin/python(+0x128d4b) [0x558996408d4b] #16 in [ .....为了可读性而删除] [0x5589964b1de1] #54 in /home/oleg/anaconda3/envs/rapids/bin/python(_PyEval_EvalCodeWithName+0x2c3) [0x558996490503] #55 in /home/oleg/anaconda3/envs/rapids/bin/python( +0x1b2007) [0x558996492007] #56 in /home/oleg/anaconda3/envs/rapids/bin/python(_PyEval_EvalFrameDefault+0x1782) [0x5589964b13a2] #57 in /home/oleg/anaconda3/envs/rapids/bin/python(+ 0x1925da) [0x5589964725da] #58 in /home/oleg/anaconda3/envs/rapids/bin/python(+0x128d4b) [0x558996408d4b] #59 in /home/oleg/anaconda3/envs/rapids/bin/python(+0x13b3ea) [0x55899641b3ea] #60 在 /home/oleg/anaconda3/envs/rapids/bin/python(+0x21da4f) [0x5589964fda4f] #61 在 /home/oleg/anaconda3/envs/rapids/bin/python(+0x128fc2) [0x558996408fc2 ] #62 在 /home/oleg/anaconda3/envs/rapids/bin/python(_PyEval_EvalFrameDefault+0x92f) [0x5589964b054f] #63 在/home/oleg/anaconda3/envs/rapids/bin/python(_PyEval_EvalCodeWithName+0x2c3) [0x558996490503]
python - Dask 和 cudf 循环出现内存不足错误
我正在使用 Dask 和 Rapidsai 在大型(6.9GB)数据集上运行 xgboost 模型。硬件是 4 个 2080 TI,每个 11 GB 内存。原始数据集有几十个目标列已经过一次热编码,所以我试图运行一个循环,一次保留一个目标列,丢弃其余列,运行模型,然后重复。
这里有一些伪代码来展示这个过程:
好的,所以如果我在任何单独的目标列上运行它,它工作正常 - 推动可用内存,但不会中断。如果我在集群/客户端分配后尝试使用循环来执行此操作:
它在循环的第三次运行时中断,内存不足。相反,如果我在循环中分配集群/客户端:
它工作正常。
所以,我猜我在循环运行中创建的一些对象显然是持久的,对吧?因此,我尝试在每个循环结束时将 d_train 和 d_test 设置为空列表以清除内存,但这不起作用。我是否在循环之前或循环内读取原始数据或任何其他更改也无关紧要。
唯一可行的方法是在每个循环结束时重新初始化集群和客户端。
这是为什么?是否有更有效的方法在 dask 分区上循环处理内存?无论如何,我已经读过 dask 在循环中的效率非常低,所以也许我什至不应该以这种方式做事。
任何对 dask 或 rapids 内存管理的见解将不胜感激。
rapids - 用火花跑急流时 nvvp 时间线中的间隙
我正在对使用 tpch-dbgen 生成的 CSV 运行一些 sql 查询。为简单起见,我使用一个线程/任务运行它,并查看时间轴中的间隙,如附图所示。是磁盘操作吗?这种开销可以以某种方式放松或优化吗?我怎么能确定那里到底发生了什么?