我在Python中创建一个抽象代数库,其中的一个功能就是使用Cayley表(将其视为一个抽象的"乘法"表,它没有' t必须遵守乘法或加法的标准规则,并用它来证明某些身份或属性是否适用于Cayley表定义的二元运算符。
任何这些程序的计算基本归结为:
由于需要完成大量操作,这可能会导致cpu密集,特别是如果你想对大小为n * n(O(n ^ 2!)的cayley表的所有排列执行此操作,我认为)。好处是,这是高度可分段化的,因为我有算法可以在大约O(n)时间内计算n * n cayley表的第m个排列,因此所有Cayley表排列的集合可以近似均匀分割,并且可以分配多个进程以并行处理问题的不同子集。
这样的过程(替换查找表中的值,比较结果)适合打开CL或任何其他GPU库吗?
答案 0 :(得分:0)
如果你可以改变
Compare the resulting values to see if they are equal
部分类似于
subtract one from another, save the result and check for a zero from host side.
如果结果只决定加法(+)操作,即使看起来像是
subtract one from another, multiply (1-signum(result)) with the adder value, then add.
可以比cpu更快。因为当以非随机方式读/写时,gpu内存通常比主机内存快一点。