问题标签 [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 投票
2 回答
824 浏览

python - 更快地将大型 csv 作为 Pandas DataFrame 读取

我有一个 csv 正在读入 Pandas DataFrame,但需要大约 35 分钟才能读完。csv 大约为 120 GB。我发现了一个名为cudf允许 GPU DataFrame 的模块,但它仅适用于Linux. 有类似的东西Windows吗?

0 投票
1 回答
630 浏览

rapids - 在使用 rapids.ai 时如何确定内存统计数据?

我正在使用rapids.ai的python 库,我开始想知道的关键问题之一是:如何以编程方式检查内存分配?我知道我可以nvidia-smi用来查看一些总体高级统计数据,但具体来说,我想知道:

1)有没有一种简单的方法可以找到 cudf 数据帧(和其他急流对象)的内存占用?

2) 有没有办法让我确定可用的设备内存?

我确信 C++ 程序员有很多方法可以获取这些详细信息,但我希望找到一个答案,让我留在 Python 中。

0 投票
1 回答
193 浏览

python - 用于数据处理的低端 GPU 与中端 CPU

我目前有数据简单的数据处理,涉及分组、合并和并行列到列操作。不那么简单的部分是使用的大量行(其详细的成本/财务数据)。它的大小为 300-400 GB。

由于 RAM 有限,目前我正在使用 dask 的核心计算。然而,它真的很慢。

我之前读过使用 CuDF 来提高 map_partitions 和 groupby 的性能,但是大多数示例都使用中高端 gpu(至少 1050ti,大多数在基于 gv 的云 vm 上运行)并且数据可以适合 gpu RAM。

我的机器规格是 E5-2620v3(6C/12T)、128gb 和 K620(只有 2gb 专用 vram)。

使用的中间数据帧存储在镶木地板中。

如果我使用低端 GPU 使用 CuDF,它会更快吗?是否可以在 GPU 中进行核心计算?(例如,我环顾四周,但还没有找到)

下面是我试图做的简化伪代码

a.csv 是大小约为 300gb 的数据,由 3 列(Hier1、Hier2、Hier3、值)组成,Hier1-3 是字符串中的层次结构。value 是销售价值 b.csv 是大小约为 50gb 的数据,由 3 列(Hier1、Hier2、valuetype、cost)组成。Hier1-2 是层次结构,在字符串中。值类型是成本类型,在字符串中。成本是成本价值

基本上,我需要根据 a.csv 中的销售价值为 b.csv 中的每个成本按比例自上而下。最后,我在 Hier3 级别(更详细的级别)中都有可用的每个成本

第一步是创建按比例分配的比率:

然后进行合并以获得比率

然后将 PartGroup 上的成本数据合并并乘以 Ratio 以获得其按比例分配的值

在实际情况下,由于缺少参考数据等会导致残值,并且会使用多个参考在几遍中完成,但基本上以上是步骤

即使严格执行 parquet 到 parquet 操作,我的 128gb 中仍然需要大约 80gb 的 RAM,我的所有核心都在 100% 运行,并且运行 3-4 天。我正在寻找使用当前硬件更快完成此任务的方法。如您所见,它的大规模并行问题符合基于 gpu 的处理的定义

谢谢

0 投票
1 回答
25 浏览

cudf - 如何确定 RMM 池的使用情况

使用rmm 池时,是否可以查询该池被占用了多少?

0 投票
1 回答
325 浏览

gpu - BlazingSQL 和 dask 是什么关系?

我试图了解 BlazingSQL 是竞争对手还是 dask 的补充。

我有一些中型数据(10-50GB)保存为 Azure blob 存储中的 parquet 文件。

dask_cudfIIUC 我可以使用 SQL 语法通过 BlazingSQL 查询、加入、聚合、分组,但我也可以使用 python/ dataframe 语法将数据读入 CuDF并执行所有相同的操作。

所以,在我看来,他们是直接竞争对手?

使用 dask 的(其中一个)好处是它可以在分区上运行,因此可以在大于 GPU 内存的数据集上运行,而 BlazingSQL 仅限于 GPU 上可以容纳的东西,这是否正确?

为什么要选择使用 BlazingSQL 而不是 dask?

编辑:
文档谈论dask_cudf但实际的回购已存档,说现在支持 daskcudf本身。最好知道如何dask利用cudf

0 投票
1 回答
969 浏览

python - `pip install cudf-cuda100` 导致“错误:找不到与 cudf-cuda100 匹配的分布”

我运行 Windows 10 并安装了 Anaconda。我正在尝试安装cudf,但我一再失败:

我的 CUDA 版本:

你会建议我怎么做?

0 投票
1 回答
782 浏览

python - 使用 CuDF apply_chunks 的异常 - 使用不支持的 NumPy 函数“numpy.ones_like”或不支持使用该函数

我试图在 Numba 的 jit 优化代码中使用 numpy,但是当我尝试执行标准 numpy 操作(如 numpy.ones_like)时出现错误,即使 numba 文档提到该操作是受支持的。

文档链接:Numba 0.46

编辑:如果我直接调用“calc_method”方法,它可以正常工作,但在 apply_chunks 中使用时会失败。所以可能不是 Numba 本身的问题,而是如何使用 cudf.apply_chunks。

代码:

错误:

谁能告诉我在上面的例子中我做错了什么?提前致谢。

np.hstack 我也收到类似的错误

注意:这是重现问题的简化示例。

0 投票
1 回答
8872 浏览

pandas - 期望一个字节对象,使用 cudf 得到一个“int”对象错误

我有一个熊猫数据框,所有列都是对象类型。我正在尝试通过键入 cudf.from_pandas(df) 将其转换为 cudf,但出现此错误:

我不明白为什么即使那些列也是字符串而不是整数。我的第二个问题是如何将新元素附加到 cudf(如 pandas:df.append())

0 投票
0 回答
139 浏览

python - 在 cuDF 中实现 df.groupby('user')['item'].apply(np.array)

有没有办法将这个简单的熊猫功能复制到 cuDF?

请注意,数组长度是变化的。

下面是使用 pandas 和 NumPy(cuDF 案例中的 CuPy)的预期输出示例:

0 投票
1 回答
87 浏览

gpu - 如何用rapids.ai在GPU中的两个DataFrame之间做矩阵点积

我正在使用 CUDF,它是 Nvidia 的 rapids ML 套件的一部分。

使用这个套件,我将如何在两个 DataFrame 之间进行点积?

例如,我将如何在上述数据帧上执行点积?