第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么Skylake比Broadwell-E在單線程內(nèi)存吞吐量方面要好得多?

為什么Skylake比Broadwell-E在單線程內(nèi)存吞吐量方面要好得多?

Smart貓小萌 2019-08-28 15:01:39
為什么Skylake比Broadwell-E在單線程內(nèi)存吞吐量方面要好得多?我們有一個簡單的內(nèi)存吞吐量基準。對于大塊內(nèi)存,它所做的只是重復(fù)記憶。在幾臺不同的機器上查看結(jié)果(針對64位編譯),Skylake機器的性能明顯優(yōu)于Broadwell-E,保持OS(Win10-64),處理器速度和RAM速度(DDR4-2133)相同。我們不是說幾個百分點,而是大約2個因素。Skylake配置為雙通道,Broadwell-E的結(jié)果不會因雙/三/四通道而異。任何想法為什么會這樣?隨后的代碼在VS2015的Release中編譯,并報告完成每個memcpy的平均時間:64位:Skylake為2.2ms,Broadwell-E為4.5ms32位:Skylake為2.2ms,Broadwell-E為3.5ms。通過利用多個線程,我們可以在四通道Broadwell-E構(gòu)建上獲得更大的內(nèi)存吞吐量,這很不錯,但是看到單線程內(nèi)存訪問的這種巨大差異令人沮喪。為什么差異如此顯著的任何想法?我們還使用了各種基準測試軟件,他們驗證了這個簡單示例所展示的內(nèi)容 - 單線程內(nèi)存吞吐量在Skylake上更好。#include <memory>#include <Windows.h>#include <iostream>//Prevent the memcpy from being optimized out of the for loop_declspec(noinline) void MemoryCopy(void *destinationMemoryBlock, void *sourceMemoryBlock, size_t size){     memcpy(destinationMemoryBlock, sourceMemoryBlock, size);}int main(){     const int SIZE_OF_BLOCKS = 25000000;     const int NUMBER_ITERATIONS = 100;     void* sourceMemoryBlock = malloc(SIZE_OF_BLOCKS);     void* destinationMemoryBlock = malloc(SIZE_OF_BLOCKS);     LARGE_INTEGER Frequency;     QueryPerformanceFrequency(&Frequency);     while (true)     {         LONGLONG total = 0;         LONGLONG max = 0;         LARGE_INTEGER StartingTime, EndingTime, ElapsedMicroseconds;         for (int i = 0; i < NUMBER_ITERATIONS; ++i)         {             QueryPerformanceCounter(&StartingTime);             MemoryCopy(destinationMemoryBlock, sourceMemoryBlock, SIZE_OF_BLOCKS);             QueryPerformanceCounter(&EndingTime);             ElapsedMicroseconds.QuadPart = EndingTime.QuadPart - StartingTime.QuadPart;             ElapsedMicroseconds.QuadPart *= 1000000;             ElapsedMicroseconds.QuadPart /= Frequency.QuadPart;             total += ElapsedMicroseconds.QuadPart;             max = max(ElapsedMicroseconds.QuadPart, max);         }         std::cout << "Average is " << total*1.0 / NUMBER_ITERATIONS / 1000.0 << "ms" << std::endl;         std::cout << "Max is " << max / 1000.0 << "ms" << std::endl;     }     getchar();}
查看完整描述

2 回答

?
ibeautiful

TA貢獻1993條經(jīng)驗 獲得超6個贊

我終于得到了VTune(evalutation)并且正在運行。它在Broadwell-E上提供了0.602(0到1之間)的DRAM限制分數(shù),在Skylake上提供了.324,其中Broadwell-E延遲的很大一部分來自內(nèi)存延遲。鑒于記憶棒的速度是相同的(除了Skylake配置的雙通道和Broadwell-E的四通道),我最好的猜測是Skylake中的內(nèi)存控制器的效果要好得多。

這使得購買Broadwell-E架構(gòu)變得更加強硬,并且要求您真正需要額外的內(nèi)核才能考慮它。

我也有L3 / TLB未命中數(shù)。在Broadwell-E上,TLB未命中率大約高出20%,而L3未命中率則高出約36%。

我認為這不是“為什么”的答案,所以我不會這樣做,但是我認為我會暫時接近一個。感謝所有有用的評論。


查看完整回答
反對 回復(fù) 2019-08-28
  • 2 回答
  • 0 關(guān)注
  • 1251 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號