/images/avatar.png

GPU 基礎了解

GPU 歷史

請先去看影片 GPU 是怎麼被發明的?

隨者 1960/1970 圖形化應用程式的日益成長使用,第一個最早 2D 圖形控制器晶片出現

  1. uPD7220 在 1981 由日本電氣公司發明,目的為了有效支援漢字
  2. IBM 在 1981 也推出有擴充槽的電腦 IBM 5150,可以讓使用者自己安裝獨立的顯示卡
  3. IBM 8514 1987 年推出,支援 1024 x 768 顯示分辨率的顯示卡
  4. 1991 S3 推出 86C911 2D 圖形顯示卡

3D 圖形控制器也在學校盛行

台灣半導體產業了解

半導體晶片設計流程

晶片的最早買家通常可分為三類:

  • OBM(Original Brand Manufacturer): 有自己的品牌,像是 Apple/ASUS/Dell,他們賣最終產品給消費者,OBM 可能直接跟 IC design 公司買晶片,也可能透過 ODM or OEM,如果自己有設計能力就是找 OEM,沒有就找 ODM 幫忙設計加生產
  • ODM(Original Design Manufacturer): 幫忙設計加上生產
  • OEM(Original Equipment Manufacturer): 代工生產,產品會掛別人的品牌
  • 雲端大廠,Amazon/Microsoft/Google 自己買晶片來組裝伺服器產品,像是直接跟 NV 買 GPU 晶片弄 AI Server
  • 車廠,也會自己買車用相關晶片

Design win 就是客戶決定在產品裡採用你的晶片,例如 ASUS 下一代 router 決定採用 Broadcom Wi-Fi SoC。

LFX 2026 First Stage Key Takeaways in WasmEdge

English Version

In February 2026 I happened to see the LFX program on social media and discovered that WasmEdge was one of the participating projects. After looking into it, I learned that LFX is similar to Google Summer of Code but organized by the Linux Foundation. At the time I was in my second year of graduate school; my thesis was progressing smoothly and I had fewer courses, and because I was interested in open source and the Linux Foundation, I decided to apply. I also wrote a few posts to learn more.

FreeBSD DTrace 基礎了解

背景

可以知道的相關背景知識

歷史

最早在 Sun 裡面使用,後來移植到不同作業統,後來在 illumos 上面也有,在 Windows 也有。OpenDTrace 專案於 2016 年 9 月在GitHub上啟動,專案提供了程式碼和系統內部機制的完整文件。

Debian 系列相關的套件管理工具

dpkg

最底層工具,代表 Debian pkg,只負責安裝單一個檔案,發現沒有相依套件的時候,什麼時候都不會做。

apt

高解管理工具,負責像是把相依套件安裝完成。

apt-get

apt 的前身,事實上,apt合併了apt-get 跟 apt-cache,apt-get 是 command-line utility,跟 apt 使用同樣的 apt library。

DTrace Tail-Call Optimization 問題

正文

我在 DTrace 的時候,有時候會看到以下奇怪的 log,有奇怪的回傳值:

  0  52547 casper_mpo_socket_check_poll_t:return casper_mpo_socket_check_poll_t returned 0
  0  52549 casper_mpo_socket_check_receive_t:return casper_mpo_socket_check_receive_t returned 0
  0  52625 casper_mpo_vnode_check_lookup:return casper_mpo_vnode_check_lookup returned 0
  0  52625 casper_mpo_vnode_check_lookup:return casper_mpo_vnode_check_lookup returned 0
  0  52631 casper_mpo_vnode_check_open:return casper_mpo_vnode_check_open returned -105548670090024
  0  52681 casper_check_allowed_open:return casper_check_allowed_open returned 0
  0  52659 casper_mpo_vnode_check_stat_t:return casper_mpo_vnode_check_stat_t returned 0
  0  52635 casper_mpo_vnode_check_read_t:return casper_mpo_vnode_check_read_t returned 0

這是因為我的程式碼是這樣寫: