編譯器

編譯器的自動向量化所使用的指令種類,下列何者正確?

  1. A引發中斷的指令
  2. B同時處理多筆資料的SIMD指令
  3. C一次清除快取全部內容的指令
查看答案與解析

正確答案:B. 同時處理多筆資料的SIMD指令

自動向量化是一種最佳化,會找出對陣列的每個元素進行相同計算的迴圈,並替換為一次處理多個元素的SIMD指令。例如若是128位元的SIMD暫存器,可以同時將4個32位元的數相加,順利的話迴圈的運算次數可減為四分之一。其條件包括重複之間沒有相依、資料排列連續等,若可能有指標重疊,也會放棄向量化。這與中斷或快取操作的指令無關。

  • A. 不會使用引發中斷的指令。
  • B. 正確。以SIMD指令一次處理多個元素。
  • C. 與清除快取的指令無關。
練習這個領域 前往領域頁面

編譯器的其他題目

  1. 編譯器的最佳化必須遵守的基本條件,下列何者正確?
  2. 關於程式碼產生階段之一的指令選擇(instruction selection)的說明,下列何者正確?
  3. 關於交叉編譯器(cross compiler)的說明,下列何者正確?
  4. 以偵錯器檢視施加了最佳化而編譯的程式時,有時部分變數的值會顯示為「無法顯示」。主要原因為何?
  5. 對上方函式充分進行常數傳播、常數摺疊與無用程式碼刪除後,函式所回傳的值與剩餘的程式碼,下列何者正確?

這個領域的比較