首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cuDF -不利用GPU核心

cuDF -不利用GPU核心
EN

Stack Overflow用户
提问于 2020-04-21 14:20:16
回答 1查看 510关注 0票数 0

下面是用cuDF编写的python代码,以加速这个过程。但与我的4核心本地机器cpu相比,我没有看到任何速度上的差异。GPU配置为4 x NVIDIA Tesla T4

代码语言:javascript
复制
def arima(train):
    h = []
    for each in train:
        model = pm.auto_arima(np.array(ast.literal_eval(each)))
        p = model.predict(1).item(0)
        h.append(p)
    return h


for t_df in pd.read_csv("testset.csv",chunksize=1000):
    t_df = cudf.DataFrame.from_pandas(t_df)
    t_df['predicted'] = arima(t_df['prev_sales'])

我在这里错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-04-28 21:46:24

同时,我将帮助您解决不访问所有GPU的问题,我将与您分享一个性能提示:如果您的所有数据都适合于单个GPU,那么您应该使用cudf对单个GPU进行处理,因为它要快得多,因为它不需要任何编排开销。如果没有,请继续阅读:)

您没有使用这4个GPU的原因是因为您没有使用dask-cudfcudf是一个单独的GPU库。dask-cudf允许您将其扩展到多个GPU和多个节点,或者处理“大于GPU内存”大小的数据集。

这里是一个很好的起点:https://docs.rapids.ai/api/cudf/stable/10min.html

至于你的速度问题,你应该通过cudf直接将CSV读入GPU,如果可能的话。在您的代码中,您将读取数据两次--一次用于与熊猫一起托管CPU,另一次用于支持熊猫的GPU。这是不必要的-而且你失去了GPU加速的所有好处在读。在大型数据集上,与熊猫相比,cudf将给您一个相当不错的文件读取速度。

代码语言:javascript
复制
import dask_cudf
df = dask_cudf.read_csv("testset.csv", npartitions=4) # or whatever multiples of the # of GPUs that you have

然后从那里出发。一定要设置一个客户。https://docs.rapids.ai/api/cudf/stable/10min.html#Dask-Performance-Tips。在该链接中也可以找到此信息,该链接与上面链接的页面相同。不需要循环:)。

至于剩下的部分,我假设你在机器学习中使用累积值,就像ARIMA一样。https://docs.rapids.ai/api/cuml/stable/api.html?highlight=arima#cuml.tsa.ARIMA。下面是一个示例笔记本:https://github.com/rapidsai/cuml/blob/branch-0.14/notebooks/arima_demo.ipynb

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61345809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档