alanhc

@alanhc

https://www.linkedin.com/in/alanhc316/

Joined on Jan 19, 2018

Hello World!

  • vm index Alan Tseng 關於我 wiw index edit programing c++
     Like  Bookmark
  • mac, window, linux 之間同步筆記 之前一直使用 iCloud 來同步 macos 及 windows 的 obsidian 筆記,最近在Linux也想同步筆記因此寫了這份筆記: image syncing anything 把兩邊操作 > 設定 > 連線 本機探索、全域探索、啟用中繼全部關掉 兩邊在首頁設定>新增遠端裝置 按照對方的 右上操作 > 顯示識別碼 新增遠端裝置 > 進階 > 位址輸入 新增對方的 p2p port
     Like  Bookmark
  • A: ubuntu B: windows 步驟 確保兩台電腦都有開啟 tailscale 在 B 下 tailscale ip 會有 100 $tailscale ip 100.xx.xx.xx 在 A 下載 Remmina選擇 RDP ,IP 填寫剛剛寫的
     Like  Bookmark
  • macbook air 灌 Linux 背景 我有一台 2019 年的 macbook air ,這台具備 T2 安全晶片,但 macos 跑在這台很卡,不適合做開發。 步驟 準備 ubuntu install usd 解鎖 T2 晶片及設定可使用外部開機 安裝 ubuntu :::info 剛開始可能鍵盤、WIFI 會無法運作,所以要自備鍵盤滑鼠
     Like  Bookmark
  • 演講 OpenBMC Debugging
     Like  Bookmark
  • pmbus 最主要是 module_i2c_driver(mpc42013_driver); ,其 struct 定義: static struct i2c_driver mpc42013_driver.driver .probe_new .remove .id_table 欄位名稱 類型
     Like  Bookmark
  • 在韌體(Firmware) 開發中,Bring up 指的是將新硬體或新系統啟動、初始化並使其能夠正常運行的過程。這通常是硬體或嵌入式系統開發中的一個重要階段,尤其是在新設備或平台剛開始運行時。Bring up 涉及許多低層級的系統設置和測試,目的是確認硬體、韌體和操作系統能夠協同工作。 Bring up 的典型步驟 電源和硬體初始化:確保設備的電源系統和硬體元件能正常工作,並進行初步測試。 韌體加載:將基本的韌體加載到設備中,通常是從引導加載程序(Bootloader)開始。 引導加載程序(Bootloader)啟動:引導加載程序負責初始化一些基本硬體設置,並為操作系統或主韌體的加載做準備。 硬體驅動測試:測試各種驅動程式(如 CPU、內存、I/O、網卡等),確保硬體模組能正常運作。 作業系統啟動:在順利完成硬體和驅動的測試後,操作系統會開始加載,並接管設備的控制。 功能驗證:確認系統的關鍵功能正常運行,並進行必要的調整和故障排除。
     Like  Bookmark
  • 優化方向 memoryNUMA mmap (llama.cpp 原本使用) Huge PageTHP I/O io_uring scheduler
     Like  Bookmark
  • 單字 MemoryTLB 一種 硬體快取 ,用來暫存虛擬位址 ➝ 實體位址的映射關係(Page Table Entry)。 Cache CPU L1/L2/L3 Cache 是從主記憶體中預取資料以加速 CPU 的存取速度。 AddressVirtual memory 每個進程看到的「獨立記憶體空間」,透過 Page Table 對映到實體記憶體。 Physical memory 實際 RAM 中的記憶體,供 OS 調度與分配。 address translation 將虛擬位址轉換為實體位址,透過 page table + TLB。 Page cache OS 用來快取磁碟上的檔案頁面(例如你用 cat 開啟檔案,會讀到 page cache)。 Paging 將虛擬記憶體分成固定大小的頁面(通常 4KB),再映射到物理頁框。
     Like  Bookmark
  • Single Linked list 首先我們要使用 main.c 來實作一個簡單的 linked list。這個 linked list 會包含以下功能: 插入節點到 linked list 的尾端。 列印 linked list 的內容。 釋放 linked list 的記憶體。 其中,所有 linked list 的實作會位於 list.c 和 list.h 中。 我們將使用 C 語言來實作這個 linked list。這個 linked list 將會包含一個 dummy node,這樣可以簡化插入和刪除節點的操作。 先建立以下檔案:
     Like  Bookmark
  • 📌 建議補充:學習順序建議(基礎 → 進階) 優先 分類 主題概述 ⭐️ 1 OS 核心原理(OS Basics) user/kernel mode、system calls、POSIX、CPU scheduling ⭐️ 2
     Like  Bookmark
  • 取自:Brendan Gregg image 先概覽一下,右側有顏色的方塊代表在 Linux 的硬體或軟體 Component ,黑字分別是可以用的 tool 去 trace 相關的效能議題。 有哪些 tool ?perf ... page faults major
     Like  Bookmark
  • T-MAC 論文筆記 paper: T-MAC: CPU Renaissance via Table Lookup for Low-Bit LLM Deployment on Edge 研究背景與問題核心在不依賴 GPU 的情況下高效推理 e.g. 手機晶片 過去:權重量化 e.g. 4-bit、2-bit、甚至 1-bit問題:推理時需反量化(dequantization)低位元權重轉回高精度格式(如 int8、float16)以進行矩陣乘法,會抵銷原本低位元帶來的加速與節能效果。 硬體不支援混合精度運算 硬體多為固定對稱精度,無法直接處理這類「低權重、高激活」的不對稱計算。 T-MAC 的核心創新與貢獻
     Like  Bookmark
  • How does llama.cpp works ? #4531 Understanding how LLM inference works with llama.cpp BitNet 使用的 llama.cpphttps://deepwiki.com/Eddie-Wang1120/llama.cpp/ https://deepwiki.com/ggml-org/llama.cpp 現行 llama.cpp 的 mmap 載入機制 llama.cpp 啟動時,載入模型 mmap() 呼叫的完整 call stack 函式 / 呼叫位置
     Like  Bookmark
  • 電子電路 電學基礎電壓 / 電流 / 歐姆定律 被動元件 電阻 / 電容 / 電感 / RC電路 主動元件 二極體 / 電晶體 / 運算放大器
     Like  Bookmark
  • Systemd 如何 trace Device Tree Bootup Device drtiver ioctl select/poll procfs
     Like  Bookmark
  • contributed by < alanhc > :::danger 修正存取權限 ::: 收到,已經更改權限 從前 6 週的測驗題選出 3 題改進觀摩其他學員並參照授課教師進行的作業檢討和回顧 目前我的Lab作業2025q1 Homework1 (lab0)
     Like  Bookmark
  • 什麼是 SoL? Serial over LAN 是一種技術,允許使用者透過網路(通常是 Ethernet)來遠端存取主機的序列埠(Serial Port),也就是說SoL是將傳統串列埠資料轉封包,經網路傳送,再還原為串列資料的過程。 爲什麼需要 SoL? 傳統串列埠(如 RS-232)需直接接線,非常不方便遠端操作。 BMC(Baseboard Management Controller)透過 SoL:在作業系統開機前也能觀察主機輸出(BIOS/UEFI/Post)。 可搭配 IPMI 或 Redfish 管理介面啟用/停止 SoL。 達到「無人值守的伺服器管理」。 Components
     Like  Bookmark
  • DS ALG Concept Linked List BFS Bit Manipulation Stacks, Queues DFS
     Like  Bookmark
  • 🧠 Why Performance Analysis Matters Every program consumes CPU cycles, memory, and sometimes I/O bandwidth. But which part of your program is slow? Why is it slow? That’s what performance profiling helps you discover. From startups to hyperscale infrastructure, knowing where your code wastes time is the first step to making it faster, cheaper, and more reliable. In this article series, we’ll start from basic Linux command-line tools and move step-by-step toward advanced techniques like perf, uftrace, and flamegraphs. 🚀 What You'll Learn How to think about performance from first principles Basic performance metrics: wall time, CPU time, IPC, cache misses
     Like  Bookmark