2017Q1 Homework1 (clz)

contributed by < stanleytazi >

tags: stanleytazi

作業要求

作業目標

  • 重新理解數值
  • 比較不同 clz 演算法的效能
  • 看作業要求 => 改寫?!
  • 練習 C11 _Generic

實驗開始

先觀察 Makefile :

  • $ make PROFILE=1
    • 可以使得在preprocess時多define一個correct,這在程式裡主要是會去檢查 32 bits 所可以表示的每一個數值所得到的 clz 是否正確,檢查方式主要是用 gcc 內建函式 __bultiin_clz(x) 當作是正確答案
    • 亮谷的實驗紀錄有另外追求極致,想讓測試的時間更為準確,所以另外是使用了rdtscp(Read Time-Stamp Counter and Processor ID),可以直接讀取 CPU 在紀錄time-stamp 的 register,每個 cpu cycle都會去增加time-stamp
    • 為了觀察實驗數據的變化,所以原始在計算時間內有多了printf這個I/O,可能也會影響實驗的準確性
Select a repo