2020年6月2日 星期二

從京東購買 Ryzen 4700U 16GB 的 swift 3(上)

距離上次更新竟然已經超過一年了
隨著最近 AMD 4000U CPU 的推出
趁著親戚在想要換筆電的時候
找機會把 2018 的 swift 3 (8265u+8G) 用超低價 2000 NTD 脫手
想辦法找到另外一台輕薄筆電

2019年4月24日 星期三

在 Anki 匯入網路資料,製作自己的單字表

Anki 是好用的用科學方式讓你背單字的初音軟體
網路上可以看到打包好的大量 Anki package 直接匯入來使用
但是更多的時候網路上面雖然有單字表,卻不是 Anki 格式
這時我們就要一些手段來把他匯入 Anki
這篇文章使用了一個例子,說明了如何把網路上的單字表匯入成 Anki

2019年1月25日 星期五

gdb 顯示 polymorphic type (derived type) 的方法

C++ 中有 polymorphism 的功能
可以讓我們用同一個型別的 pointer 產生不同的功能
然而在 debug 這樣的 code 因為 pointer 是同一種
會產生理解上的困難

2018年12月20日 星期四

隨筆兩篇 - Clang++ vs g++ 速度;Verilator 使用簡易心得

最近在使用 Verilator 這個 tool
這是一個可以把可合成 RTL 轉換成 C++ 然後跑 RTL-sim 的開源工具
verilator 產生出來的 code 動輒數十萬行 C++,compile time 數分鐘
中型的 RTL-sim 也是在秒~分鐘上下
於是就想說以此為 benchmark
比較用不同的 C++ compiler 的本身性能以及產出的 code 的速度

2018年8月7日 星期二

C++11 rvalue 使用筆記

C++11 中多了一個叫 rvalue 的東西表示「可以破壞的暫時變數」
當這些東西跟 STL, return value optimization (RVO) 等等的東西融合時
就讓事情變得很複雜了,讓我現在都不敢跟別人說我會 C++ 了
因此本文紀錄了一些我遇到的 case,希望未來也會繼續更新

2018年7月6日 星期五

在 Arch 安裝 CIC EDA tool 紀錄

由於 EDA 公司跟數位 IC 領域比較封閉的關係
很多的 EDA tool 還是會「建議」用 CentOS 5 之類的環境
甚至有公司在 2018 的現在,電腦的系統還是 gcc 3 或是 Python 2.4 的
雖然有很多 tool 其實就算放到最新的 Archlinux 可以跑
但是有很多情形會缺少一些老舊的 library
有時候是會有一坨智障 script 檢查的時候會不讓你執行

2018年4月23日 星期一

git submodule 複製現有的副本

Git 有提供一個 submodule 的功能
可以把另外的 Git repo 引入現在的 project 使用
然而,有時候我們會需要複製包含 submodule 的 repo 給別人
如果是遇到超大型 project 或是 project 裡面放超大 test data
這時候 clone ~100MB 的時間就會超級久
(有時候 Github 的連線 < 100KBps)

2018年2月19日 星期一

在 WSL (Windows subsystem linux) 模擬 xdg-open

WSL 是 Windows 10 提供的執行原生 Linux 程式的方法
但是如果不能跟 Windows 做某些互動的話很不方便
例如 Linux 中,有時會用 nautilus . 或是 dolphin . 把目前終端機的資料夾打開

2018年1月9日 星期二

遊戲介紹:Factorio(二)

上一篇中提到了因為 Factorio 的關係
導致我的 journal 的進度嚴重落後
呃不對,這件事對這篇文章並不重要
總之因為 journal 草稿寫完了,所以來寫個第二集
讓我們重新開始
上一篇中提到了 Factorio 之中的初期開局
維持了半手動的鐵、銅、電力生產
接著就要來提昇自動化的程度

2018年1月2日 星期二

遊戲介紹:Factorio(一)


最近 Steam 上的 factorio 從 470NTD 降到 320NTD
這款遊戲是我之前看到就非常有興趣的
所以趁著降價,兩個月前就順便買下來了
從結論上來看我推薦這個遊戲嗎?
如果你之前喜歡 minecraft 的,然後最近有事情要忙的
那麼我個人非常不推薦這個遊戲
因為光是兩個月我發現我就累積了 110 小時的遊戲時數
已經是我一年半之前買的 cities skylines 的兩倍
導致我的 journal 的進度嚴重落後
這邊來分享一下一些簡單的心得跟攻略

這個遊戲一開始的設定是太空船出事
落在了一個不知名的星球
遊戲的結局是你要發射火箭上太空
為了達成這個目標,你要建立大量的自動生產系統
剛開始的時候是這樣
(為了偷懶,以下示意圖都開啟了作弊模式)

遊戲中有三種重要的資源銅礦 鐵礦 還有碳
剛開始可以用 M 開啟地圖檢查這三個的總量

如果說走一陣子之後,找不到亮度區域含有 1M 的鐵跟 400k 的銅
那還是建議重新開地圖吧
另外,遊戲中期之後需要的石油最好有 500% 以上的產量
要不然要從遠處搬運,有點麻煩

遊戲開局會有一些基本道具
可以先拿所有的鐵板來產生鐵稿,採集跟拆建築的速度快非常多
一開始先要手動取得一些木頭 (~20) 跟石頭 (~50)
石頭有兩種方式取得,擋路的大石頭(右上)跟石礦(左下)
前者不能自動收成,但是手動挖的時候 CP 值比較高

木頭...就砍樹

自動化工廠最最一開始最先需要的資源是碳
可以先拿開局的時候的熱能採礦機
前面放一個箱子自動收成
(註:按下 alt 可以顯示箱子裡面有什麼)
(註:綠色點點是 bottleneck 的 mod,很好用)
接著手動挖九個鐵拿去燒
製造另外一個熱能採礦機,可以自動收成鐵板

(註:最好熟悉一下遊戲中 ctrl, shift 的使用,很好用)
同理,可以自動挖銅礦

到這邊就完成了半手動的鐵、銅、碳生成了
(這時鐵的需求遠大於銅,可以蓋兩個自動鐵礦熱能採礦機)

當鐵大約達到 100 個的時候可以開始電力化
找個適當空間的水邊建立電力系統
這裡使用了遊戲內部一個非常好用、重要的功能 -- 藍圖
可以在 creative mode 生成之後在 survival mode 使用
雖然遊戲可以簡單的分享其他人的藍圖
但生成自己的藍圖是遊戲的樂趣之一,所以就不分享了

塞滿木炭就開始發電了
把電線拉到電力採礦機的旁邊
電力採礦機的速度大約是熱能採礦機的兩倍


接著繼續電力化鐵的生產
同時建立實驗室,手動生成 30 個 level 1 的科技包
研究「自動化 level 1 」跟「物流學 level 1」

另外,退役的熱能採礦機可以拿去用在銅礦跟石頭上面
到這邊大約完成了整個遊戲結束的,嗯...... 1% 吧
journal 完成之後有機會再繼續分享

順帶一題打個廣告
我在 ICCV'17 發表的論文是有關平行運算的簡化
可以用簡短的 code 完成高規律性的 GPGPU 程式開發
如果有要寫 GPU 程式的可以在 github 找到我的 header file
https://github.com/johnjohnlin/UMI
UMI (unrolled memory inner-product)
(就當作 AMP 或是 thrust 這種東西來使用)
如果你使用了之後,節省到你的時間也請幫我宣傳一下(笑

對了,我的另外一個 project 是有關上面的 ASIC 實做
MIMORI (Multiple input multiple output ranged inner-product)
取這兩個名字絕對跟我個人興趣沒有任何關係

2017年9月24日 星期日

閱讀筆記 - matrix computation (3e)

讀完之後打下來以免哪天又要重新看一次
不是什麼教學性質的,只是單純的筆記而已

2017年1月8日 星期日

SystemVerilog 裡的 UVM 驗證之概念以及 Cocotb (二)


前一篇文章中說明了用 trace-based simulation 會出現的問題
本篇會說明是怎麼從 trace-based simulation 變成 UVM 的
以及說明 UVM 的核心的想法

2017年1月7日 星期六

SystemVerilog 裡的 UVM 驗證之概念以及 Cocotb (一)

SystemVerilog Universal Verification Methodology 是用來驗證硬體的一種手段
本系列文將會說明 SystemVerilog UVM 的結構以及前因後果
注意這邊並不會講解如何 SystemVerilog UVM 怎麼使用
而是會介紹一個 Opensourced 類似的工具 - Cocotb
(COroutine based COsimulation TestBench)
https://github.com/potentialventures/cocotb

2016年12月29日 星期四

Linux 系統意外關機之後 SSD 分割區讀不到的解決方法(?)

今天不小心踢到 Linux 電腦的電源
不知道是不是因為是 SSD 所以系統分割區的資料就不見了
一開機只出現 grub rescue prompt

2016年6月15日 星期三

Archlinux 安裝紀錄

因為一直覺得 ubuntu 系列的軟體有點舊
這幾天把比較不常用的電腦換成 archlinux+KDE 5 看看
發現蠻好用的,速度好像也比較快(不知道為什麼)?

2016年5月24日 星期二

用 vim quickfix 檢視 nLint 的錯誤訊息

vim quickfix 可以用在快速跳到編譯出錯的位置
當我們在 vim 下 :make 命令之後可以透過 :copen 檢視編譯的錯誤
並且在其中移動
就像大部分 IDE 一樣

2016年5月23日 星期一

Systemverilog interface/modport 使用心得

Systemverilog 裡面引入了 interface
試著把最基礎的部份引入正在寫的 code 裡面
並且整理了一些使用心得

2016年4月25日 星期一

北海道四日行(一)

拖了兩個月
終於有時間把二月初去北海道(&東京)紀錄下來了
不過在紀錄景點之前,想先打一些感想

我個人覺得相較於東京、關西
北海道對於新手來說不太適合自助
除非有很高的行動力或是事前有很詳細的規劃

2016年3月19日 星期六

閱讀筆記:GPU的指令運算細節

最近看到了一篇 Nervana 發表的文章
他們宣稱可以讓 CUDA 矩陣乘法運算速度在 Maxwell 上達到理論上限的 90% 以上
裡面除了用到 register blocking(從別的 paper 借來用的技巧)
也講解了很多一般不太可能知道的 NVIDIA GPU 運作細節
讓人不禁懷疑作者是不是從 NVIDIA 的相關部門拿到資料
知道這些細節之後,就可能產生出高效率的矩陣乘法 CUDA kernel

2016年3月14日 星期一

東京四日行(二)

從日本回來已經快一個月了
繼續把剩下的東西補齊
這邊紀錄一下有去的景點
基本上都是東京市區搭地鐵好到的