Try   HackMD

A08: software-pipelining

tags: sysprog2016

主講人: jserv / 課程討論區: 2016 年系統軟體課程

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
返回「進階電腦系統理論與實作」課程進度表

預期目標

  • 學習計算機結構並且透過實驗來驗證所學
  • 理解 prefetch 對 cache 的影響,從而設計實驗來釐清相關議題
  • 論文閱讀和思考

作業要求

  • 閱讀 在計算機裡頭實踐演算法 提到的論文: "When Prefetching Works, When It Doesn’t, and Why" (務必事先閱讀論文,否則貿然看程式碼,只是陷入一片茫然!),在 Linux/x86_64 (注意,要用 64-bit 系統,不能透過虛擬機器執行) 上編譯並執行 prefetcher
    • 說明 naive_transposesse_transposesse_prefetch_transpose 之間的效能差異,以及 prefetcher 對 cache 的影響
  • 在 github 上 fork prefetcher,嘗試用 AVX 進一步提昇效能
    • 修改 Makefile,產生新的執行檔,分別對應於 naive_transposesse_transposesse_prefetch_transpose (學習 phonebook 的做法)
    • 用 perf 分析 cache miss/hit
    • 學習 perf stat 的 raw counter 命令
    • 參考 Performance of SSE and AVX Instruction Sets,用 SSE/AVX intrinsic 來改寫程式碼
    • 詳細描述實驗設計,以及你的觀察

參考資料