FPGA|CPLD|ASICwilliam hill官网
直播中

chybhao666

11年用户 9经验值
擅长:可编程逻辑 处理器/DSP 接口/总线/驱动
私信 关注
[问答]

用vivado HLS优化设计大规模矩阵相乘,求详细具体的优化策略


设计一个高性能的HLS, 可以用任何优化策略,在保持函数功能的同时尽可能提高性能。希望william hill官网 里的大神给予具体优化的指导,最近几天调试太费劲了,希望大神给予保罗loop unroll, pipeline, dataflow, memory partition在内的多种优化策略具体怎么在这段代码里摆放优化,以及输入输出矩阵的interface, resource设置。要详细具体的策略,不是泛泛而谈的。
有重谢,多谢!

void matrixmul(
      mat_a_t a[1024][1024],    //a[1024][1024]
      mat_b_t b[1024][1024],    //b[1024][1024]
      result_t res[1024][1024]) //res[1024][1024]
{
  // Iterate over the rows of the A matrix
   Row: for(int i = 0; i < 1024; i++) {
      // Iterate over the columns of the B matrix
      Col: for(int j = 0; j < 1024; j++) {
         res[i][j] = 0;
         // Do the inner product of a row of A and col of B
         Product: for(int k = 0; k < 1024; k++) {
            res[i][j] += a[i][k] * b[k][j];
         }
      }
   }
}

已退回4积分

回帖(2)

王鸿

2016-8-28 11:51:21
您的这种算法用浮点运算效率来衡量已经很高了,建议加大缓冲池,并在编译时使用单进程多线程并行运行于多个处理器来提高效率
举报

文清

2016-8-28 17:44:35
感谢分享
举报

更多回帖

发帖
×
20
完善资料,
赚取积分