我使用 OpenCL 进行 GPGPU 编程,但不幸的是没有原生 256 位整数支持。我决定将 256 位整数分成四个 64 位整数。基本操作的很好的解决方案,但我怎样才能得到它们的模数?
我需要这样做:
(uint256) % (uint256)
Run Code Online (Sandbox Code Playgroud)
但是使用 OpenCL,我只能有这个:
[ (uint64), (uint64), (uint64), (uint64) ] % [ (uint64), (uint64), (uint64), (uint64) ]
Run Code Online (Sandbox Code Playgroud)
那么我怎样才能做到这一点呢?我应该使用什么算法,最重要的是 - 什么是最容易实现的?
PS我需要公钥密码学。
编辑:我没有实现加法和减法。
我可以删除地图中的第一个元素吗?切片是可能的slice = append(slice, slice[1:]...),但是我可以用地图做这样的事情吗?