[Weekly Review] 2019/12/23-29

Published: by Creative Commons Licence (Last updated: )

2019/12/23-29

Last week, I read four Journal Articles related to Deep Learning Accelerator Implementation. They're:

  1. Efficient Processing of Deep Neural Networks: A Tutorial and Survey;
  2. Eyeriss v2: A Flexible and High-Performance Accelerator for Emerging Deep Neural Networks;
  3. Eyeriss: An Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks;
  4. Eyeriss: A Spatial Architecture for Energy-Efficient Dataflow for Convolutional Neural Networks.

Thanks to Shien's recommendation, I learned a lot from these articles as I have a more vivid knowledge of DLA with several in-deep views in some components.

When I reviewed these four articles, I found that even though I know how to design the hardware architecture, I may not know how to run some DNN models with the accelerator. Letty told me that they need the help of some compilers to translate the models to instructions, but I don't think I could optimize the compiler to compile the program into my custom instructions. So maybe I would not run a complex model if I can not load instructions manually.

And next week, I am supposed to read some papers which describe the method to compress the different types of data in CNN, i.e., QNN, to decrease the movements of data and the storage requirements of its four levels of the memory hierarchy. Besides, Chen Peng has introduced me thinking that routers can also be regards as one of the calculation components in NoC, so maybe the next few weeks, I will improve the dataflow of Eyeriss with this kind of pattern.


Some Troubles

Scalac_2.12.4:4.2.3

I tried run verilator simulation with the default command

make CONFIG=SmallBoomAndRocketConfig BINARY=mt-vvadd.riscv run-binary

But got the following error:

[warn]     Note: Unresolved dependencies path:
[error] sbt.librarymanagement.ResolveException: Error downloading org.scalameta:semanticdb-scalac_2.12.4:4.2.3
[error]   Not found
[error]   Not found
[error]   not found: /home/singularity/.ivy2/local/org.scalameta/semanticdb-scalac_2.12.4/4.2.3/ivys/ivy.xml
[error]   not found: https://repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.12.4/4.2.3/semanticdb-scalac_2.12.4-4.2.3.pom
[error]   not found: https://oss.sonatype.org/content/repositories/snapshots/org/scalameta/semanticdb-scalac_2.12.4/4.2.3/semanticdb-scalac_2.12.4-4.2.3.pom
[error]   not found: https://oss.sonatype.org/content/repositories/releases/org/scalameta/semanticdb-scalac_2.12.4/4.2.3/semanticdb-scalac_2.12.4-4.2.3.pom

When I got into the website it mentioned https://repo1.maven.org/maven2/org/scalameta/ I could only found the version 4.2.3 in https://repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.13.1/4.2.3/.

Firstly, I tried to change the Scala version to 2.13.1 but occurred some syntax errors when I tried to sbt publishLocal for firrtl, so I had to give up that way.

Then, I wanted to find why the default Scala version is 2.12.4 though I had set that to 2.12.1 in build.sbt. Then I found the default setting was in variables.mk:143, so I changed it to 2.12.10, which is the same to that in firrtl.

No found: firrlt object

After that, I countered with the old trouble: not found: object firrtl

[error] /home/singularity/chipyard/tools/chisel3/src/main/scala/chisel3/ChiselExecutionOptions.scala:7:8: not found: object firrtl
[error] import firrtl.{AnnotationSeq, ExecutionOptionsManager, ComposableOptions}
[error]        ^
[error] /home/singularity/chipyard/tools/chisel3/src/main/scala/chisel3/ChiselExecutionOptions.scala:21:44: not found: type ComposableOptions

I tried to re-do publishLocal in almost all components in chipyard/tools but failed.

Then, Jiuyang told me that I was supposed to sbt publishLocal then sbt update in these three directories in order:

  • firrtl
  • chisel3
  • rocket-chip

But while I tried to publishLocal under rocket-chip, I found the version of firrtl it need was 1.2 while I only had 1.3 version. So I re-do this flow with the correctness of version := "1.2-SNAPSHOT" in build.sbt under firrtl.

Although I published the rocket-chip, I could not build chipyard successfully.