OpenCL大数乘法

时间:2017-07-06 08:32:02

标签: c opencl gpu gpgpu

这些天我对from selenium import webdriver driver = webdriver.Chrome(executable_path= r"C:\\Utility\\BrowserDrivers\\chromedriver.exe") 太过comp。了。我正在寻找那里的大数乘法函数(不是矩阵乘法)并使某些东西工作得很好但我也有失败。我有几个这样的问题;

  • 首先,做两个整数数组的最佳乘法算法是什么(代表一个像100000位数这样的大数字)。我喜欢学校等级系​​统和矩阵乘法(加法交叉线)。我已经检查了Karatsuba和ToomCook,但它们是递归的我看到并且OpenCL里面不允许这样做。我做过真正的方式还是有这么简单的事情?

  • 我已经多次查看运行内核了,因为当超过512位数时,我的gpu不能正常工作。这看起来像OpenCL问题但是当我在NDKernel上尝试全局(1024)和本地(512)输入时,它也不起作用。(无效的工作量错误)我的mac上有两个GPU,即Iris pro和R9M370X。 AMD现在效率很高,但是过度的情况仍然存在问题。

  • 使用障碍(GLOBAL)也在512位之后无效。我认为除此之外没有任何好主意。如果我使用2048全局和256本地大小,内核应该工作8工作组,我猜是256本地大小。我尝试了当地的障碍和全球障碍(这是有效的)但没有奏效。在512位数字(或1024位数字没有移位 - 只需添加矩阵的交叉线)之后,它会给出不同的值。

  • 最后一个应该是将长数组划分为小数组并将其作为异构内核。我的意思是在for循环中,将参数作为一个小块。

我向内核发送了两个整数数组(local_work_sizeint* A),这是不利的。

我希望我解释了我的情况。谢谢你的帮助。

int* B

(我试过哪些障碍工作)

0 个答案:

没有答案
相关问题