问题标签 [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.

0 投票
1 回答
699 浏览

python - CUDF/Python 警告:“用户警告:未检测到 NVIDIA GPU”

我在 python 中使用 cudf 和 dask_cudf 模块运行代码时遇到了一些困难。我正在通过 Anaconda 在 Jupyter Labs 上工作。我已经能够正确安装我的 nvidia-gpu 驱动程序、cudf(通过 rapidsai)和 cuda。只有,当我在 python 中使用 import cudf 时 import cudf,我得到一个错误读数:"home/lib/python3.7/site-packages/cudf/utils/gpu_utils.py:120: UserWarning: No NVIDIA GPU detected. Warnings.warn("No NVIDIA GPU detected")

我的环境:

  • Linux:RHEL8
  • 蟒蛇:3.7.7
  • 库达:10.2
  • 英伟达驱动程序:390.138
  • CUDF/Dask_CUDF:0.13 通过 rapidsai

我正在尝试使用数十万到数百万个项目的数据加载和操作数据集,所以我真的需要 cudf/dask_cudf 实用程序来最大限度地利用我的时间。

当我nvidia-smi在终端中运行时,一切看起来都很好,并且持久模式已打开。我在互联网上搜索了一个没有好主意的解决方案。任何帮助,将不胜感激。

0 投票
5 回答
734 浏览

sql-server - 当操作涉及对任何列进行排序、聚合和过滤时,内存数据库针对读取(低/无写入)进行了优化

我希望将约 10GB 的数据加载到内存中,并以以下形式对其执行 SQL:

  • 在单列(任何列)上排序
  • 在单个列(任何列)上聚合
  • 过滤单个列(任何列)

什么可能是性能的好选择?我遇到的一些可能可行的解决方案是TimesTenExtremeDBSQL In-memory,甚至是VaexCudf等数据帧。

我正在寻求优化查询时间——这就是我真正关心的。举个概念性的例子,想想一个 Excel 表格,用户可以在其中对任何列进行排序或过滤(应用程序不提前知道要“索引”哪些列,因为所有列都可能被使用)。


更新:我在下面发布我的熊猫基准。我知道 pandas 对此并不理想,但制作原型并获得基准数据非常棒:

文件(20M 行,1.2GB):https ://storage.googleapis.com/gcp-files/Sales20M.csv 。

  • 加载时间pd.read_csv):10.7s
  • 聚合: ( df.groupby('currency_code_id').count): 3.3s
  • 排序: ( df.sort_values('price')): 6.8s
  • 枢轴:( df.pivot_table(index='code',columns='territory_id', values='id', aggfunc=len, fill_value=0)):3.4 秒。

如果使用数据库,请不要创建索引,因为用例是我们不知道事先使用的列。(或者,我想你可以在每个字段上创建一个索引——但如果是这样,请在加载时包括所有这些索引的创建)。

哪个工具最适合这个?

0 投票
1 回答
690 浏览

c++ - 我正在尝试从源代码为 conda 安装 cudf,我无法使用 cmake 安装它

我正在尝试从页面中给出的源文件安装 CUDF(https://github.com/rapidsai/cudf/blob/branch-0.15/CONTRIBUTING.md#setting-up-your-build-environment

在以下几个步骤之后,我无法通过执行 cmake 来完成它

在其依赖项之后构建并安装 libcudf。CMake 取决于 nvcc 可执行文件在您的路径上或在 $CUDACXX 中定义。

然后它说

-DCMAKE_INSTALL_PREFIX 设置为库的安装路径或 $CONDA_PREFIX 如果您使用 Anaconda,即 -DCMAKE_INSTALL_PREFIX=/install/path 或 -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX# -DCMAKE_CXX11_ABI 设置为 ON 或 OFF,具体取决于您想要的 ABI 版本,默认为开。打开时,使用 C++11 的 ABI 兼容性。关闭时,使用 C++11 之前的 ABI 兼容性。

然后它显示如下错误

这一步我该怎么办?

Ps:我的 anaconda 路径就像 /home/anaconda3/ 和 cudf 环境路径就像 /home/anaconda3/envs/cudf_dev

0 投票
1 回答
154 浏览

numba - 滚动线性回归,用于 cuDF 数据帧上的 groupby 操作

我想使用 cuML LinearRegression 计算 y_value 在 x_value 上的滚动斜率。

样本数据(cuDF 数据框):

使用 LinearRegression 的简单函数:

我想做的事:

但是,我收到一个错误:NotImplementedError: Handling UDF with null values is not yet supported. 有没有办法克服这个错误?谢谢你。

0 投票
1 回答
1271 浏览

rapids - ModuleNotFoundError:谷歌 colab 中没有名为“cudf”的模块

我尝试导入 cudf 并收到以下错误:

我错过了什么?

0 投票
2 回答
203 浏览

pandas - 在大型数据集上进行多组计数活动的最有效方法

我正在尝试查找属性(列)值的子集(任何长度),它们在给定数据集中是唯一的。据我所知,找到这些的最有效方法是计算多个(许多)groupby 活动,计算 pandas 中相应的组大小。由于循环可能变得非常大,那么在同一数据集上加速那些按任务分组的最有效方法是什么?

0 投票
1 回答
36 浏览

python - dask 存储库中的语义版本控制

为什么由于函数 read_metadata 与旧版本不兼容,提交 7138f470f0e55f2ebdb7638ddc4dfe2e78671403没有触发新的主要版本 dask?提交引入了 4 个值的返回,但旧版本只返回 3 个。根据语义版本控制,这将是正确的行为。

由于那次提交,cudf坏了。

问题中的代码:

dask_cudf==0.14 仅与 dask<=0.19 兼容。在 dask_cudf==0.16 中,该问题已修复。

编辑:链接到问题

0 投票
2 回答
928 浏览

python - MemoryError: std::bad_alloc: rapids.ai Dask-cuDF

我想加载 5.9 GB CSV,但我不使用 pandas 库。我有 4 个 GPU。我使用rapids.ai更快地加载这个大型数据集,但每次我尝试时,都会向我显示这个错误,尽管我的其他 GPU 内存中有空间。一开始GPU的内存使用情况是:

代码是:

提示:

0 投票
2 回答
3290 浏览

python - GPU 处理 - cuDF 安装问题(操作系统或硬件问题?)

我的目标是探索具有 10,000 到 10M+ 记录的表格数据的 GPU 加速。我最熟悉 Pandas,所以 cuDF 似乎是一个不错的起点。

我发现混合结果:cuDF 是否会在我的系统上运行(Windows 7 Pro 64 位、i7-6820HQ、32GB RAM、NVidia Quadro M2000M 4GB)。还有一个板载显卡。

根据 gitHub 页面(https://github.com/rapidsai/cudf):

CUDA/GPU 要求

  • CUDA 10.0+(是的 - 我有 v10.1.120)
  • NVIDIA 驱动程序 410.48+(是的 - 我有 432.06)
  • Pascal 架构或更好的架构 (NO - Maxwell)

我听说 Pascal 架构是首选/最佳而不是要求,但也许那是针对旧版本的 cuDF?就在今天早上,我听说它将在 Win 64 上运行,尽管性能优势也可能会降低。尽管如此,我有兴趣试一试。

当我使用我的 CUDA 版本推荐的命令从 conda 提示符(python 3.6 env)安装时:

conda install -c rapidsai -c nvidia -c numba -c conda-forge cudf=0.13 python=3.6 cudatoolkit=10.1

我得到:

收集包元数据(repodata.json):完成求解环境:初始冻结求解失败。使用灵活的求解重试。

PackagesNotFoundError:当前频道不提供以下软件包:

  • cudf=0.13

当前频道:

要搜索可能提供您正在寻找的 conda 包的替代频道,请导航至

并使用页面顶部的搜索栏。

当我访问 anaconda.org 并搜索 cuDF(或 RAPIDS)时,我发现的只是 Linux 安装。

我今天早些时候参加了 Anaconda 赞助的网络研讨会,演讲者说它将在 Win-64 中运行,尽管这篇较旧的帖子建议我可能需要从源代码构建:

安装 CuSpatial 或 CuDf 库时找不到包错误

我还没准备好尝试从源代码构建。我只是在浪费时间吗?感谢建议(用于使用我的系统或替代软件包解决 cuDF)。

0 投票
1 回答
266 浏览

python - Cudf 仅使用单个 gpu 加载数据

我有一个要使用 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 并按顺序加载成批的列。虽然这适合记忆,但如果可能的话,我更喜欢更优雅的解决方案。