【问题标题】:Matrix multiplier with Chisel带凿子的矩阵乘法器
【发布时间】:2019-11-21 15:38:53
【问题描述】:

我想用Chisel描述一个矩阵乘法器,但是有些东西我不明白。

首先,我发现that response 给出了 3X5 矩阵乘法器的代码。我想将它推广到最大 128X128 的任何方阵。我知道在 Chisel 中,我可以通过为模块提供大小参数来参数化模块(这样我将使用 n.W 而不是定义的大小)。 但是在一天结束时,会生成一个 Verilog 文件,对吗?所以参数必须固定?我可能会混淆一些事情。我的目的是修改代码,使其能够执行高达 128x128 的任何矩阵乘法,我不知道这在技术上是否可行。

【问题讨论】:

    标签: matrix hardware chisel register-transfer-level


    【解决方案1】:

    凿子的优点是一切都可以参数化。话虽如此,在您制作物理硬件的那一天结束时,显然参数应该是固定的。使其参数化的优点是,如果您不知道您的确切要求(例如可用的模具区域等),您可以准备好参数化版本,并在时机成熟时插入您需要的值并生成 verilog 文件对于那个参数。为了回答您的问题,是的,可以执行高达 128x128 的任何矩阵乘法(如果您的笔记本电脑 RAM 足够,则可以更高)。只有在创建硬件驱动程序this tells you how to create verilog from chisel 时才能获得verilog,因此请继续创建参数化硬件。

    【讨论】:

    • 感谢您的回复。那么实现这个算法en.wikipedia.org/wiki/Matrix_multiplication_algorithm 就足够了吗?因此,如果我使用 128X128 矩阵构建它,以使用较低的矩阵(比如说 5X5)执行计算,只需用零替换未使用的框?
    • 您可以用这种方式填充零,但这只会浪费计算能力。我的意思不是你说的,凿子代码可以这样参数化,当你插入 128 和 128 时,你会得到一个 128x128 矩阵的硬件,同样,如果你想要一个 5x5 矩阵,你只需要插入在值 5 和 5 中。
    猜你喜欢
    • 1970-01-01
    • 2015-01-23
    • 2022-11-08
    • 2018-04-11
    • 2017-03-11
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    相关资源
    最近更新 更多