问题标签 [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.
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
在终端中运行时,一切看起来都很好,并且持久模式已打开。我在互联网上搜索了一个没有好主意的解决方案。任何帮助,将不胜感激。
sql-server - 当操作涉及对任何列进行排序、聚合和过滤时,内存数据库针对读取(低/无写入)进行了优化
我希望将约 10GB 的数据加载到内存中,并以以下形式对其执行 SQL:
- 在单列(任何列)上排序
- 在单个列(任何列)上聚合
- 过滤单个列(任何列)
什么可能是性能的好选择?我遇到的一些可能可行的解决方案是TimesTen、ExtremeDB和SQL In-memory,甚至是Vaex或Cudf等数据帧。
我正在寻求优化查询时间——这就是我真正关心的。举个概念性的例子,想想一个 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 秒。
如果使用数据库,请不要创建索引,因为用例是我们不知道事先使用的列。(或者,我想你可以在每个字段上创建一个索引——但如果是这样,请在加载时包括所有这些索引的创建)。
哪个工具最适合这个?
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
numba - 滚动线性回归,用于 cuDF 数据帧上的 groupby 操作
我想使用 cuML LinearRegression 计算 y_value 在 x_value 上的滚动斜率。
样本数据(cuDF 数据框):
使用 LinearRegression 的简单函数:
我想做的事:
但是,我收到一个错误:NotImplementedError: Handling UDF with null values is not yet supported
. 有没有办法克服这个错误?谢谢你。
rapids - ModuleNotFoundError:谷歌 colab 中没有名为“cudf”的模块
我尝试导入 cudf 并收到以下错误:
我错过了什么?
pandas - 在大型数据集上进行多组计数活动的最有效方法
我正在尝试查找属性(列)值的子集(任何长度),它们在给定数据集中是唯一的。据我所知,找到这些的最有效方法是计算多个(许多)groupby 活动,计算 pandas 中相应的组大小。由于循环可能变得非常大,那么在同一数据集上加速那些按任务分组的最有效方法是什么?
python - dask 存储库中的语义版本控制
为什么由于函数 read_metadata 与旧版本不兼容,提交 7138f470f0e55f2ebdb7638ddc4dfe2e78671403没有触发新的主要版本 dask?提交引入了 4 个值的返回,但旧版本只返回 3 个。根据语义版本控制,这将是正确的行为。
由于那次提交,cudf坏了。
问题中的代码:
dask_cudf==0.14 仅与 dask<=0.19 兼容。在 dask_cudf==0.16 中,该问题已修复。
编辑:链接到问题
python - MemoryError: std::bad_alloc: rapids.ai Dask-cuDF
我想加载 5.9 GB CSV,但我不使用 pandas 库。我有 4 个 GPU。我使用rapids.ai更快地加载这个大型数据集,但每次我尝试时,都会向我显示这个错误,尽管我的其他 GPU 内存中有空间。一开始GPU的内存使用情况是:
代码是:
提示:
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
当前频道:
- https://conda.anaconda.org/rapidsai/win-64
- https://conda.anaconda.org/rapidsai/noarch
- https://conda.anaconda.org/nvidia/win-64
- https://conda.anaconda.org/nvidia/noarch
- https://conda.anaconda.org/numba/win-64
- https://conda.anaconda.org/numba/noarch
- https://conda.anaconda.org/conda-forge/win
- https://conda.anaconda.org/conda-forge/noa
- https://repo.anaconda.com/pkgs/main/win-64
- https://repo.anaconda.com/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/r/win-64
- https://repo.anaconda.com/pkgs/r/noarch
- https://repo.anaconda.com/pkgs/msys2/win-6
- https://repo.anaconda.com/pkgs/msys2/noarc
要搜索可能提供您正在寻找的 conda 包的替代频道,请导航至
并使用页面顶部的搜索栏。
当我访问 anaconda.org 并搜索 cuDF(或 RAPIDS)时,我发现的只是 Linux 安装。
我今天早些时候参加了 Anaconda 赞助的网络研讨会,演讲者说它将在 Win-64 中运行,尽管这篇较旧的帖子建议我可能需要从源代码构建:
我还没准备好尝试从源代码构建。我只是在浪费时间吗?感谢建议(用于使用我的系统或替代软件包解决 cuDF)。
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 并按顺序加载成批的列。虽然这适合记忆,但如果可能的话,我更喜欢更优雅的解决方案。