可以使用 GPGPU 并行处理完成大规模的“Double Dabble”移位和加 3处理吗?

问题描述

我正在寻找 2 个“是或否”的答案(见下文)以及任何适当的支持/澄清信息。我很擅长学习新事物,但时间对我来说是非常有限的资源。我对 GPGPU 编程一无所知,但如果我事先知道我想做的事情至少是可能的,我愿意花时间学习。如果不可能,那么我会寻找其他解决方案。

我所知道的: GPU 可以同时执行多个并行“线程”。每个线程都有独立的数据,可以在不同的数据上使用相同的算法产生不同的结果。再次对 GPU 编程一无所知,我使用“线程”一词来描述同一算法的每个单独进程。如果这不是正确的术语,请接受我的道歉并纠正我。此外,我对如何从 GPU 卡上传/下载数据以供 CPU 使用一无所知,但这不是我的问题的一部分(我假设有一种方法可以做到这一点,如果我深入研究该主题,我将学习)。

我想做什么: 我需要一种方法将数以千计的大整数(数百万位)从二进制转换为压缩的 BCD。我所知道的最有效的方法是 double-dabble (shift & add 3) 算法。在这个项目中不需要 FP 计算。这是我正在谈论的算法的几种变体的基本解释的链接。我个人倾向于页面上的最后一个。 ==> http://www.jakeselectronics.net/code_binarytobcd.php

是/否问题 1: 是否可以对 GPU 进行编程以同时执行不同数字的双重算法?我对此感到困惑的部分原因是我不知道是否所有线程都必须处于 lock-step 或每个线程是否可以沿着算法异步遵循自己的路径得出结论?

是/否问题 2: 是否可以对 GPU 进行编程以处理具有数百万位的无符号二进制数?理想情况下,我希望能够使用多个线程执行此操作,但如果使用 GPU 与标准 CPU 相比,使用 GPU 可以加快进程速度,我什至有兴趣一次只使用一个数字执行此操作。

至于我对支持/澄清信息的请求,我想我需要知道什么样的 GPU 卡适合这种工作,如果可能的话。我不是在寻求建议,而只是要求完成工作所需的最低硬件/软件功能,以及我如何知道 GPU 卡具有哪些功能。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...