问题标签 [cudf]
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.
memory - 合并 cuda 数据帧和距离计算时 RAPIDS 内存不足
我正在尝试 RAPIDS cudf 和 cuspatial,想知道交叉连接两个产生 270 亿行的数据帧的更好方法是什么?
我有两个数据集——一个来自纽约市出租车行程数据(1470 万行),其中包含接送地点的经度/纬度。另一个数据集包含 1.8k 个地铁站的经度/纬度。对于每次旅行,我想与所有车站位置交叉连接,然后计算所有排列的 Haversine 距离。
我不认为 cudf 允许交叉连接,所以我key
在两个数据集中创建了一个新列。
我在 Nvidia V100 和 4 个虚拟 CPU 上运行代码,但仍然遇到内存不足的问题。我猜我需要分批处理合并,但不知道如何处理它!任何建议表示赞赏!
cudf - cuDF GPU 利用率低
我有一项任务涉及在数据帧上运行许多查询。我比较了在 Xeon CPU (Pandas) 与 RTX 2080 (CUDF) 上运行这些查询的性能。对于 100k 行的数据帧,GPU 速度更快,但速度并不快。查看 nvidia-smi 输出,运行查询时 GPU 利用率约为 3-4%。
我的问题是我可以做些什么来加快 cuDF 任务并实现高 GPU 利用率?
例如,对于 CPU 用例,我可以在 8 个 CPU 内核上并行运行 8 个这样的查询。
这是一个不需要很多 GPU 周期的示例代码,但是我想对数据运行数千个这样的查询,并且我不想按顺序运行它们。有没有办法在 cuDF 数据帧上并行运行多个 query() 调用以最大化 GPU 利用率?
python - 如何安装 dask_cudf?
我在终端中使用以下行安装rapids,然后安装dask cudf:
但是当我将 dask_cudf 导入 python 笔记本时:
我收到以下错误:
为什么找不到模块?
python - 为什么在创建设备分位数矩阵时出现断言错误?
我正在使用以下代码将 csv 文件加载到 dask cudf 中,然后为 xgboost 创建一个产生错误的 devicequantilematrix:
错误:
我不知道这个错误是由什么引起的,因为它除了“断言错误”之外什么也没说。我有一个太大的数据集,无法读入单个 GPU,因此当我从磁盘读取数据时,我使用 dask_cudf 将其拆分,然后将其直接输入 XGBoost 所需的数据结构。我不确定它是 dask_cudf 问题还是 XGBoost 问题。
当我坚持使用“等待”时出现新错误:
cudf - 使用 cudf 读取一个巨大的 csv 文件
我正在尝试读取一个巨大的 csv 文件 CUDF,但出现内存问题。
如果我删除cudf.set_allocator("managed")
我得到
我正在使用 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
pandas - 从 numba 导入 cuda、numpy_support 和 ImportError:无法从“numba”导入名称“numpy_support”
我正在将 pandas 更改为 cudf 以加快聚合速度并降低处理速度。我想出了一个可以在 GPU 上使用 pandas 的库。
“CUDF 链接” https://github.com/rapidsai/cudf
当我输入以下内容以在我的项目中安装时,它给出了一个错误,我还尝试了许多版本的 numba。
追溯
python - 将 Pandas 代码更改为 CUDF 以提高 GPU 利用率
我通过混合正负对来制作成对的图像。这个过程计算量很大,需要大量的 RAM 和处理器。为了加快速度,我想使用 GPU 并将熊猫代码更改为 CUDF。现在,CUDF 的文档非常有限,我想将下面的代码更改为 CUDF。
python - TypeError:数据必须是 CUDF 中的列表或类字典
我正在实施 CUDF 以加快我的 python 进程。首先,我导入 CUDF 并删除多处理代码,并使用 CUDF 初始化变量。更改为 CUDF 后,会出现字典错误。
如何删除这些循环以进行有效实施?
代码
追溯
cupy - 在急流容器内时出现 hdbscan 错误
我在 rapidsai docker 容器内将 rapids UMAP 与 HDBSCAN 结合使用:rapidsai/rapidsai-core:0.18-cuda11.0-runtime-ubuntu18.04-py3.7
我得到一个错误,如果我使用它会修复core_dist_n_jobs=1
但会使代码变慢:
-------------------------------------------------- ------------------------- 1 个集群中的 TerminatedWorkerError Traceback(最近一次调用最后一次)= hdbscan.HDBSCAN(min_cluster_size=1000, prediction_data=True, gen_min_span_tree =True) ----> 2 clusterer.fit(numpy_projected)
/opt/conda/envs/rapids/lib/python3.7/site-packages/hdbscan/hdbscan_.py in fit(self, X, y) 917 self._condensed_tree, 918 self._single_linkage_tree, --> 919 self._min_spanning_tree ) = hdbscan(X, **kwargs) 920 921 如果 self.prediction_data:
/opt/conda/envs/rapids/lib/python3.7/site-packages/hdbscan/hdbscan_.py in hdbscan(X, min_cluster_size, min_samples, alpha, cluster_selection_epsilon, metric, p, leaf_size, algorithm, memory, approx_min_span_tree, gen_min_span_tree , core_dist_n_jobs, cluster_selection_method, allow_single_cluster, match_reference_implementation, **kwargs) 613 approx_min_span_tree, 614 gen_min_span_tree, --> 615 core_dist_n_jobs, **kwargs) 616 else: # Metric is a valid BallTree metric 617 # TO DO: 需要启发式来决定何时去博鲁夫卡;
/opt/conda/envs/rapids/lib/python3.7/site-packages/joblib/memory.py in call (self, *args, **kwargs) 350 351 def call (self, *args, **kwargs) : --> 352 return self.func(*args, **kwargs) 353 354 def call_and_shelve(self, *args, **kwargs):
/opt/conda/envs/rapids/lib/python3.7/site-packages/hdbscan/hdbscan_.py in _hdbscan_boruvka_kdtree(X,min_samples,alpha,metric,p,leaf_size,approx_min_span_tree,gen_min_span_tree,core_dist_n_jobs,**kwargs)276 leaf_size=leaf_size // 3, 277 approx_min_span_tree=approx_min_span_tree, --> 278 n_jobs=core_dist_n_jobs, **kwargs) 279 min_spanning_tree = alg.spanning_tree() 280 # 按权重排序 min_spanning_tree 的边
hdbscan/_hdbscan_boruvka.pyx 在 hdbscan._hdbscan_boruvka.KDTreeBoruvka 算法中。初始化()
hdbscan/_hdbscan_boruvka.pyx in hdbscan._hdbscan_boruvka.KDTreeBoruvkaAlgorithm._compute_bounds()
/opt/conda/envs/rapids/lib/python3.7/site-packages/joblib/parallel.py in call (self, iterable) 1052 1053 with self._backend.retrieval_context(): -> 1054 self.retrieve() 1055 # 确保我们收到最后一条消息,告诉我们完成了 1056
elapsed_time = time.time() - self._start_time/opt/conda/envs/rapids/lib/python3.7/site-packages/joblib/parallel.py in retrieve(self) 931 try: 932 if getattr(self._backend, 'supports_timeout', False): --> 933 self._output.extend(job.get(timeout=self.timeout)) 934 else: 935 self._output.extend(job.get())
/opt/conda/envs/rapids/lib/python3.7/site-packages/joblib/_parallel_backends.py in wrap_future_result(future, timeout) 540 AsyncResults.get from multiprocessing.""" 541 try: --> 542 return future .result(timeout=timeout) 543 除了 CfTimeoutError as e: 544 raise TimeoutError from e
/opt/conda/envs/rapids/lib/python3.7/concurrent/futures/_base.py in result(self, timeout) 433 raise CancelledError() 434 elif self._state == FINISHED: --> 435 return self. __get_result() 436 else: 437 引发 TimeoutError()
/opt/conda/envs/rapids/lib/python3.7/concurrent/futures/_base.py in __get_result(self) 382 def __get_result(self): 383 if self._exception: --> 384 raise self._exception 385 else : 386 返回 self._result
TerminatedWorkerError:执行器管理的工作进程意外终止。这可能是由于调用函数时出现分段错误或内存使用过多导致操作系统杀死工作人员造成的。
工人的退出代码是 {EXIT(1)}
有没有办法解决这个问题,但仍然保持 HDBSCAN 快速?
pandas - cuDF:Pandas Groupby + Shift 的替代方案?
我有一个想要使用 Groupby + Shift 的 DF。我可以在 pandas 中执行此操作,但我无法在 cuDF 中执行此操作,因为它尚未实现:请参阅问题Issue #7183。功能请求是很久以前的,所以他们似乎不会在不久的将来实现这个。有没有替代方法?