问题标签 [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 - 更快地将大型 csv 作为 Pandas DataFrame 读取
我有一个 csv 正在读入 Pandas DataFrame,但需要大约 35 分钟才能读完。csv 大约为 120 GB。我发现了一个名为cudf
允许 GPU DataFrame 的模块,但它仅适用于Linux
. 有类似的东西Windows
吗?
rapids - 在使用 rapids.ai 时如何确定内存统计数据?
我正在使用rapids.ai的python 库,我开始想知道的关键问题之一是:如何以编程方式检查内存分配?我知道我可以nvidia-smi
用来查看一些总体高级统计数据,但具体来说,我想知道:
1)有没有一种简单的方法可以找到 cudf 数据帧(和其他急流对象)的内存占用?
2) 有没有办法让我确定可用的设备内存?
我确信 C++ 程序员有很多方法可以获取这些详细信息,但我希望找到一个答案,让我留在 Python 中。
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 的处理的定义
谢谢
cudf - 如何确定 RMM 池的使用情况
使用rmm 池时,是否可以查询该池被占用了多少?
gpu - BlazingSQL 和 dask 是什么关系?
我试图了解 BlazingSQL 是竞争对手还是 dask 的补充。
我有一些中型数据(10-50GB)保存为 Azure blob 存储中的 parquet 文件。
dask_cudf
IIUC 我可以使用 SQL 语法通过 BlazingSQL 查询、加入、聚合、分组,但我也可以使用 python/ dataframe 语法将数据读入 CuDF并执行所有相同的操作。
所以,在我看来,他们是直接竞争对手?
使用 dask 的(其中一个)好处是它可以在分区上运行,因此可以在大于 GPU 内存的数据集上运行,而 BlazingSQL 仅限于 GPU 上可以容纳的东西,这是否正确?
为什么要选择使用 BlazingSQL 而不是 dask?
编辑:
文档谈论dask_cudf
但实际的回购已存档,说现在支持 daskcudf
本身。最好知道如何dask
利用cudf
python - `pip install cudf-cuda100` 导致“错误:找不到与 cudf-cuda100 匹配的分布”
我运行 Windows 10 并安装了 Anaconda。我正在尝试安装cudf
,但我一再失败:
我的 CUDA 版本:
你会建议我怎么做?
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 我也收到类似的错误
注意:这是重现问题的简化示例。
pandas - 期望一个字节对象,使用 cudf 得到一个“int”对象错误
我有一个熊猫数据框,所有列都是对象类型。我正在尝试通过键入 cudf.from_pandas(df) 将其转换为 cudf,但出现此错误:
我不明白为什么即使那些列也是字符串而不是整数。我的第二个问题是如何将新元素附加到 cudf(如 pandas:df.append())
python - 在 cuDF 中实现 df.groupby('user')['item'].apply(np.array)
有没有办法将这个简单的熊猫功能复制到 cuDF?
请注意,数组长度是变化的。
下面是使用 pandas 和 NumPy(cuDF 案例中的 CuPy)的预期输出示例:
gpu - 如何用rapids.ai在GPU中的两个DataFrame之间做矩阵点积
我正在使用 CUDF,它是 Nvidia 的 rapids ML 套件的一部分。
使用这个套件,我将如何在两个 DataFrame 之间进行点积?
例如,我将如何在上述数据帧上执行点积?