求解 GF(2) 上稀疏线性方程组的硬件方案
在处理大整数分解等问题时,数域筛法(NFS)中的线性代数步骤是关键环节,而高效的硬件实现对于提高计算效率至关重要。本文将介绍两种用于线性代数步骤的硬件架构,并探讨如何通过分布式计算来克服硬件限制。
1. 线性代数步骤的两种架构
在数域筛法的关系收集步骤中,会构建一个稀疏矩阵 (A \in GF(2)^{m×m})。对于 1024 位数字,(m) 的估计值约为 (4×10^7) 或 (10^{10}),平均每列约有 100 个非零元素。为了找到矩阵列之间的线性依赖关系,通常使用块 Wiedemann 算法,该算法将问题转化为高效计算 (A · v, A^2 · v, …, A^k · v) 这样的序列,其中 (v) 是一个二进制向量。
1.1 Bernstein 设备
Bernstein 提出的设备使用 Schimmler 排序算法来实现矩阵向量乘法。该算法基于一个 (M × M) 的处理单元网格,每个处理单元存储一个整数值。通过一系列的交换操作,可以在 (8M - 8) 步内对 (M^2) 个数字进行排序。
以两个相邻处理单元 (\hat{Q}) 和 (\tilde{Q}) 为例,一个基本步骤如下:
1. (\hat{Q}) 向 (\tilde{Q}) 发送 (\hat{q}),(\tilde{Q}) 向 (\hat{Q}) 发送 (\tilde{q})。若存储的整数小于 (2^{26}),此操作可在一个时钟周期内通过单向 26 位总线完成。
2. (\hat{Q}) 和 (\tilde{Q}) 计算布尔值 (exchange := (\tilde{q} < \ha
超级会员免费看
订阅专栏 解锁全文
4037

被折叠的 条评论
为什么被折叠?



