0

提供了當代硬件,我想知道什麼是我可以有效地(例如在1個CPU週期)perfrom按位操作的位陣列的最大尺寸。例如,對於64位處理器,我假設答案只是64.這是真的嗎?我還能在GPU上獲得多少資金?如果我想構建一個簡單的ASIC,或者我能得到多少?最多可以有多少位有效地執行按位操作?

回答

1

1325 MHz的RX550可以以893千兆整數/秒的速率對整數進行按位運算。這意味着每秒28.5 tera bits。將其劃分爲時鐘頻率,

每個週期21581位(該GPU中只有512個內核,每個執行32位整數計算均值每個週期32 * 512 = 16384位,但也有浮點單位,已被用來模擬整數運算達到每個週期21.6 kbit,也許還有一些其他未知單位也可以工作(例如64位內核幫助任何按位操作))

但是當然總會有比CPU更高的延遲,如果數據需要通過pci-e橋接,則會降至4GB/s,這意味着每秒32千兆比特。這比1核心CPU慢。它的重要性是每位完成多少計算。如果僅僅是1次操作,那麼發送到GPU也無濟於事。如果每位有超過50個操作,則應將其發送到GPU或FPGA。

測試內核(OpenCL的):

__kernel void bitwise(__global int16 * data) 
{ 
    int16 pData=data[get_global_id(0)]; 
    int16 pData2=pData&&1234123; 
    for(int i=0;i<25;i++) 
    {  
     pData|=(pData^55 && pData^120); 
     pData2|=(pData2^55 && pData2^120); 
    } 
    data[get_global_id(0)]=pData&pData2; 
} 

測試緩衝液是128M整數數組。