所以我正在使用 Aparapi(它从 Java 代码生成 OpenCL)编写一个神经网络库。无论如何,在很多情况下,在进行前向传播和反向传播时,我需要执行复杂的索引操作来找到给定权重的源/目标节点。
在许多情况下,这是非常简单的 1D 到 2D 公式,但在某些情况下,例如对于卷积网络,我需要做一些更复杂的操作来找到索引(通常类似于 3D 到 1D 到 3D)。
我一直坚持使用算法来计算这些指数。另一种方法是将每个权重的源索引和目标索引简单地存储在一个常量 int 数组中。我避免了这种情况,因为这几乎会使内存存储量增加一倍。
我想知道计算索引与从常量数组中读取索引的速度差异是多少?我是在失去速度来换取记忆吗?差异显着吗?