cc chen

@david96514

Joined on Sep 24, 2023

  • 影片講解 (請看文件比較好) TODO: 重現 回顧 bitops 並改進 實驗,針對 Linux v6.8+ (Ubuntu Linux 24.04 搭配的 Linux 核心版本) 任務簡述 Linux 核心的 include/asm-generic/bitops 存在若干實作不一致的狀況,本任務嘗試追蹤 git log 和 LKML,以理解發展脈絡,並嘗試用精簡有效的方式改寫,最後嘗試貢獻程式碼到 Linux 核心。 先備知識: 自 shiritai 的文件內提到 ffs 及 __ffs 加雙底線與否的不同
     Like  Bookmark
  • contribute by < david965154 > 第 1 周測驗題 測驗 1 while (p) { node_t *n = p; p = CCCC; list_add(n->value > value ? &right : &left, n); } 在問題代號 CCCC 迴圈中,目的為:走過每一節點,若其成員 value 大於 pivot 成員的 value ,則分配置鏈結串列 right ,否則為 left ,因此若要走過每一節點,則需以 p = p->next 達成。
     Like 1 Bookmark
  • image $b_{i-1,0} \cdot p = b_{i,0} \rightarrow b_{i,0} = p^ib_{0,0}$ $\space \space \space \space 0<i<m$ $b_{m-1,0} \cdot p = (1-p)b_{m,0} \rightarrow b_{m,0} = \frac {p^m}{1-p}b_{0,0}$前面第一項透過論文圖 4 可知道 $b_{i-1,0} \cdot p = b_{i,0}$ ,而第二項透過圖可以知道 $b_{m,0}$ 可由 $p\cdot (b_{m,0} + b_{m-1,0})$ 得到,因此寫成 $b_{m,0} = p\cdot (b_{m,0} + b_{m-1,0})$ ,移項過後 $(1-p) \cdot b_{m,0} = p\cdot b_{m-1,0}$ $p = 1 - (1-\tau)^{n-1}$p 為碰撞機率,而碰撞是因為多個 statation 同一時間要送,因此 p 可設為 1 減去其他 n-1 個 station 皆沒要送: $(1-\tau)^{n-1}$,而 $\tau$ 就代表 station 要送,而送的時機是 backoff time counter 為 0 ,寫成如下: \begin{equation} p = 1 - (1-\tau)^{n-1} \end{equation} $\tau = \displaystyle\sum_{i=0}^{m}b_{i,0} = \frac {b_{0,0}}{1-p} = \frac {2(1-2p)}{(1-2p)(W+1)+pW(1-(2p)^m)}$現在我們想要的是 $\tau$ ,代表 station 要送的時機,而送的時機是 backoff time counter 為 0,總和 $i = 0$ ~ $m$ 個也就是 $\displaystyle\sum_{i=0}^{m}b_{i,0}$透過第一題得出的 close from 的去使用等比級數和公式 \begin{equation}
     Like  Bookmark
  • fns 函式 函式定義: find N'th set bit in a word ,即在一 word 長度中的記憶體尋找第 n 個 set bits 函式作法: 利用 __ffs 尋找低位開始第一個 set bit 之位置 若此時的 n 不為 0 ,則利用 __clear_bit 清除該位 (設為 0) ,再回到 1. 原程式碼:
     Like  Bookmark
  • 作業 5 浪費的時間 其實這裡都是我誤解了 n-th set bit,他與陣列位置的概念一樣。第 0 個位置在現實生活中其實是第一個。因此第 0-th set bit 是指 first set bit。不過都花了 2 天在寫和找問題,刪掉也可惜,因此把這裡當作警惕和紀錄。 第 2 周測驗 3 考慮 find_nth_bit 可在指定的記憶體空間找出第 N 個設定的位元 (即 1) 在改進過程中,我發現測試函式會檢查到輸出位置錯誤的問題,如下: ... idx wrong: must in 799669-th bit, but you find in 799670-th bit Time taken to find 400000-th bit: 0.000455 seconds
     Like  Bookmark
  • contributed by < david965154 > 前 4 週的測驗題選出 3 題改進 1. 第 2 周測驗 3 考慮 find_nth_bit 可在指定的記憶體空間找出第 N 個設定的位元 (即 1) fns 函式改進 改進程式碼,並做實驗比較 static inline void __clear_bit(unsigned long nr, volatile unsigned long *addr)
     Like  Bookmark
  • 論文 : NeurIPS2023 原文 : Segment Anything Model (SAM) Enhances PseudoLabels for Weakly Supervised Semantic Segmentation 類別: Weakly Supervised Semantic Segmentation Segment Anything Model (SAM) 目的:
     Like  Bookmark
  • contributed by < david965154 > 實體電腦運作 GNU/Linux 在執行$ sudo sh performance.sh 時遇到以下問題 performance.sh: 3: cannot create /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor: Directory nonexistent 搜尋了許久 參考了之前修課的同學的筆記,裡面說
     Like  Bookmark
  • contributed by < david965154 > :::danger 注意作業規範。留意各式細節,唯有重視小處並步步為營,方可挑戰原始程式碼規模超越三千七百萬行的 Linux 核心。 ::: 開發環境 環境設置: 裝置:Macbook air m1 虛擬機器:lima
     Like  Bookmark
  • 論文 : NeurIPS2023 原文 : Switching Temporary Teachers for Semi-Supervised Semantic Segmentation 類別: Semi-Supervised Semantic Segmentation teacher-student 目的:
     Like  Bookmark
  • contributed by < david965154 > 第 3 周測驗題 測驗 1 int i_sqrt(int N) { int msb = (int) log2(N); int a = 1 << (msb >> 1); int result = 0; while (a != 0) {
     Like  Bookmark
  • 1. 第 1 週所有教材及作業描述,啟發和疑惑 :::warning 教材內容皆以引用符號表示,如下 引用內容 ::: 一、 解讀計算機編碼 模除和溢位
     Like  Bookmark
  • contributed by 陳金諄 倪英智 Here is whole source Introduction FemtoRV32 is a collection of minimalistic RISC-V RV32 cores that is easy to read and understand. It is offered in variants processors such as quark (RV32I), electron (RV32IM), intermissum (RV32IM + irq), gracilis (RV32IMC + irq). In our project, we will use quark as our core. Modify the femtorv32_quark.v to fit RV32IM Here is the original femtorv32_quark.v.
     Like  Bookmark
  • contributed by david965154 Hello World in Chisel class Hello extends Module { val io = IO(new Bundle { val led = Output(UInt(1.W)) }) val CNT_MAX = (50000000 / 2 - 1).U; val cntReg = RegInit(0.U(32.W)) val blkReg = RegInit(0.U(1.W))
     Like  Bookmark
  • contributed by david965154 Rewrite:Implement priority encoder using CLZ by 倪英智 Original Code [ ] Assembly code .data: nextline: .string "\n" input_size: .word 4
     Like  Bookmark
  • contributed by david965154 In some numerical dataset, the head of number will fill with the 0's to make them look neater. For example: NO. PRICE VALUE 01
     Like  Bookmark