[Weekly Review] 2019/12/23-29
2019/12/23-29
Last week, I read four Journal Articles related to Deep Learning Accelerator Implementation. They're:
- Efficient Processing of Deep Neural Networks: A Tutorial and Survey;
- Eyeriss v2: A Flexible and High-Performance Accelerator for Emerging Deep Neural Networks;
- Eyeriss: An Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks;
- 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.