[Weekly Review] 2020/02/24-03/01

Published: by Creative Commons Licence (Last updated: )

2020/02/24-03/01

This week I read a deep learning accelerator survey "A Survey of Accelerator Architectures for Deep Neural Networks" and gave a presentation related to it with some more details from Sze's 2019 presentation.

Also, I tried to generate the random test data to test PE. I found a Scala library named Breeze, which contains almost all data types and operators needed to do convolution or img2col matrix multiply. But it need to be translated to standard Scala type such as List or Array and then it can be used as the data source of my Chisel test.

Plus, Sequencer helped me to establish mill development environment and re-organize my project directories, hence now I can use mill instead of sbt.

Chisel & Scala Syntax

Breeze

Breeze is a library for numerical processing. I want to use Breeze to generate random dense or sparsity matrix and then get the golden results of convolution or matrix multiply.

Here is an api summary. To use Breeze, we need to add dependence in build.sc (in mill).

override def ivyDeps = Agg(
    ivy"other_dependences",
    ivy"org.scalanlp::breeze:1.0"
  )

Replace sbt with mill in idea

After setup build.sc, then run this command in terminal at the project root directory to let the idea utilize mill:

mill mill.scalalib.GenIdea/idea