|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
小弟最近写一个proposal,关于某种算法的ASIC实现。想找一些公认的term或者名词来准确表达我的设计。
实现的算法方是N^2的复杂度,即a1,a2,a3..ai...a100,每一个ai需要和与全部这100个
数相乘。所以总共有100x100次乘法运算。
总共算下来,如果只用一个乘法器,一共要10000个周期。
(1)已有的大部分同样领域的VLSI文章:
它们号称有parallel computing,实现方法是用100个乘法器并行地算出每个ai和100数
相乘的乘积,那么只需要100周期就能全部完成。
(2)我们的设计是这样的:
也要号称有parallel computing, 实现方法是事先把100个数分成5个小的数据集,对于
每一个小的数据集用一个乘法器来实现ai与此集中全部20个数相乘,由于这5个乘法器
是并行执行的,所以总共需要20个周期就可以。
这里我没写错,的确是20个周期,而且总共的计算量是20x20x5次乘法,不需要10000次
了。数学算法比较难解释,但是最后需要的结果,以上两种方法的确是一样的,这是我
们这个邪门算法的bonus。
回到正题,VLSI实现中,
(1)是一个Core,这种设计依靠这个core内部的并行乘法器陈列来实现parallelsim,
没有用到这种邪门算法的bonus。
(2)是5个Core,这种设计依靠这种邪门算法的bonus来实现parallelism,每个Core里
有一个乘法器(其实多个也行)。
感觉上,(2)采用的并行计算level比(1)高,但是我找不出一个合理的term来形容
。都叫parallelism,但是我感觉:
(2)叫做algorithm-level parallel 或者 Core-level parallel;(硬件上有并行,
但主要优势在这种算法的bonus上)
(1) 叫做ALU-level parallel 或者 Multiplier-level parallel;(硬件上有并行,
只是加速原算法的一部分,没有利用bonus)
请问没有什么名词来指代区分以上(1)和(2)两种并行技术呢?
我查过Data Parallelsim,Task Parallelism, Thread Parallelsim这些概念,结果发
现很难对上号,也很难直接解释以上区别。 |
|