回覆列表
  • 1 # 使用者6628549695317

    CPU多工顧名思義就是同時執行多個任務,對於CPU來說一個任務起碼就是一個程序,你開啟一個程式至少有一個程序,但是有可能你開啟一個程式,比如登入了幾個QQ,這時QQ在你電腦裡起碼有你登入的QQ的數量個程序,而一個程序下可能有好幾個執行緒,這些執行緒可以說是最小的執行單元,比如你登著QQ,這個程序內有處理你傳送聊天文字的執行緒,有實時接收訊息的執行緒,有收發圖片的執行緒,好了,CPU的多工幹啥呢?

    1,多個程序的多工,CPU同時處理這些程序的執行內容,程序內的執行緒任務還是序列執行,但從程序的角度來說做到了並行

    2,多個執行緒的多工,CPU同時處理每個這些執行緒來實現多工,比如你播放電影,這個播放器的程式的音訊播放,影片顯示,影片解碼的執行緒都實現了並行,這就提高了單個程式的執行速度

    3,自然是多個程序+多個執行緒的多工了,既有多個程序之間的並行,也有多個執行緒的並行

    那你真要做到完全的多工,從CPU角度肯定要有多執行緒的CPU了,不然CPU也沒法同時執行多個執行緒的平行計算,但是有時有個問題,比如執行算數浮點計算的單元,需要超過20000個時鐘週期做不同執行緒的切換,而透過同步超執行緒技術可以在單個週期的基礎上決定要執行哪個執行緒,這使得CPU能更好地利用他整個核心的計算資源,假設一個執行緒必須等到某些資料裝入快取,那CPU就可以繼續執行另一個執行緒,當然i7這種CPU是可以讓每個核這樣執行兩個執行緒,還有可以執行更多的執行緒,這種也叫作執行緒級併發,也便是提高了CPU的利用率,多工一般到這就行了

    還有指令級並行,指令級並行更是為了單個程式的執行速度了,比如流水線結構,超標量,都能儘可能讓處理器實現一個週期一條甚至多條指令的執行

    再下來就是SIMD了,這也是近年CPU提升最快的點,MMX-SSE-AVX-AVX512,一條指令可以產生多個並行的操作,AVX512擁有512位ZMM暫存器,一次打包8個64位浮點或16個32位浮點數,一次完成16次32位浮點計算,配上FMA浮點融合乘加指令集,一次完成32次單精度浮點計算,再加上SKL-X最多兩條AVX512 FMA流水線,最高峰值高達每核心64flops/每週期單精度浮點計算峰值,這便是SIMD並行

  • 中秋節和大豐收的關聯?
  • 單身上班族想養一隻狗狗,柯基,阿拉,金毛哪個比較合適?回老家狗狗一般咋處理?