使用 OpenCL 从 CPU 内核读取缓冲区并将其复制到 FPGA 内核

问题描述

我正在尝试加速赛灵思 u50 FPGA 上的 Ethash 算法。我的问题不是关于 FPGA,而是关于在 CPU 中生成的传递 DAG 文件并将其发送到 FPGA。

首先我在测试中使用 this code。我做了一些更改以支持 Intel OpenCL 驱动程序。现在,如果我只使用 CPU 来运行 Ethash(或在本例中为 xleth)程序,则所有过程都已完成。但就我而言,我首先在 CPU 中生成 DAG 文件,并使用 4 核生成 0 号纪元需要 30 秒。之后我想将 DAG 文件(在显示 m_dag 的代码中)传递到一个类似于 g_dag 的新缓冲区来发送它在 u50 HBM 中。

我不能在这个程序中只使用一个上下文,因为我使用了 2 个分离的内核文件(CPU 为 .cl,FPGA 为 .xclbin),当我尝试制作程序和内核时,它向我发送错误 33( CL_INVALID_DEVICE)。所以我创建了单独的上下文(名称为 g_context)。

现在我想知道如何将数据从 m_contex 发送到 g_context?是否可以并优化性能?(如果有,请给我发送另一个解决方案。)

我在 this link 中发送了我的代码,所以如果可以,请将代码解决方案发送给我。

解决方法

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

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...