[Weekly Review] 2020/03/09-15

Published: by Creative Commons Licence (Last updated: )

2020/03/09-15

This week, I re-thought the data flow of row stationary plus (RS+) and tried to generate the right data for each ports.

After I figure out the truly data flow of row stationary plus, I thought we are supposed to call it column stationary as we can get one column of partial sum at Noc level and Global Buffer level.

Git Commit Types

How to commit a elegant git log can be found here.

Commit Type Title Description Emoji
feat Features A new feature
fix Bug Fixes A bug Fix 🐛
docs Documentation Documentation only changes 📚
style Styles Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) 💎
refactor Code Refactoring A code change that neither fixes a bug nor adds a feature 📦
perf Performance Improvements A code change that improves performance 🚀
test Tests Adding missing tests or correcting existing tests 🚨
build Builds Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) 🛠
ci Continuous Integrations Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) ⚙️
chore Chores Other changes that don't modify src or test files ♻️
revert Reverts Reverts a previous commit 🗑

Scala Syntax

List.init

List.init: return the elements of the list except the tail.

List.flatten

Use flatten to flat one dimension.

List.collect

list.zipWithIndex.collect {
  case (x,i) if i % 3 == 0 => x
}

List.exists && List.contains

val result = m1.exists(y => {y % 3 == 0})
val result2 = m1.contains(5)

Chisel Syntax

fork.withRegion

Because the fork likes the thread in Linux, each child run and generate data separately without any sharing. So if we want to poke in one child thread and peek at another thread, then we need to use fork.withRegion to let the compiler knows that they should sharing the information.