吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

解析Arm Neoverse N2 PMU事件L2D_CACHE_WR

Arm社區 ? 來源:Arm社區 ? 作者:Arm社區 ? 2024-09-03 11:42 ? 次閱讀

作者:安謀科技 (Arm China) 主任工程師 Ker Liu;安謀科技 (Arm China) 主任軟件工程師 蔡亦波

有客戶希望我們幫忙分析 Eigen gemm 基準測試的一些執行情況。具體來說是為什么 L1D_CACHE_WR 的值會低于 L2D_CACHE_WR,這種情況令人費解。

wKgaombWhaWAAQMZAABcOJk8riw523.jpg

通常,我們期望寫操作發生在 L1 數據緩存中。來自 L1 數據緩存的一些回寫可能會引發 L2 緩存寫操作。一般來說,L1 數據緩存寫操作的數量應該高于 L2 緩存寫操作的數量。對于一些常用的工作負載(例如 Redis 和 Nginx),如果我們對 PMU 進行監控,就會發現 L1 數據緩存寫操作的數量會高于 L2 緩存寫操作的 PMU 值。但對于某些工作負載而言,L1 數據緩存寫操作的 PMU 值要低于 L2 緩存寫操作的 PMU 值。

本文中,我們將分析 L2D_CACHE_WR 的計數,以及在何種情況下,L1D_CACHE_WR 的 PMU 值會低于 L2D_CACHE_WR。

驗證平臺

本文中的測試都是基于 Arm Neoverse N2 平臺的服務器。下表顯示了該服務器的硬件和軟件版本信息

wKgaombWhbOAEjL2AABBtrmDepA763.jpg

調查

對于大多數工作負載而言,L1D_CACHE_WR 的 PMU 值要高于 L2D_CACHE_WR。例如,對于 Redis 來說,一個 Redis 進程在Core 1 上運行。使用 Memtier 客戶端來生成讀寫混合請求。

wKgZombWhcKAU9TVAABMGsBW1cQ604.jpg

以下是 Neoverse N2 PMU 指南[1]中 L1D_CACHE_WR 和 L2D_CACHE_WR 的定義。

L1D_CACHE_WR:此事件將統計在 L1 數據緩存中查找的任何內存寫入操作。此事件還將統計由數據緩存按虛擬地址清零 (DC ZVA) 指令所引發的訪問操作。

L2D_CACHE_WR:此事件將統計由 CPU 發出并在統一 L2 緩存中查找的任何內存寫入操作。無論 L2 緩存是否命中,該事件都將計數。此事件還將統計從 L1 數據緩存分配到 L2 緩存的任何回寫。此事件將 DC ZVA 操作視為存儲指令并統計這些訪問。來自 CPU 外部的監聽不計算在內。

從 Neoverse N2 技術參考手冊[2]中我們知道,L1 緩存和 L2 緩存之間具有嚴格的包含關系。存在于 L1 緩存中的任何緩存行也同樣存在于 L2 緩存中。

經過分析研究,我們發現如下規律:

L2D_CACHE_WR 的 PMU 值約等于“L1 數據緩存重填”、“L1 指令緩存重填”和“L1 預取重填”的 PMU 值之和。

為什么我們要從這三個事件開始分析?

因為這三個事件都會引起 L1 數據緩存和 L1 指令緩存的替換行為,包括干凈替換 (clean evictions) 和臟替換 (dirty evictions)。如果仔細看 L2D_CACHE_WR 的定義,您會發現它將統計從 L1 數據緩存分配到 L2 緩存的任何回寫。L1 數據緩存回寫則統計從 L1 數據緩存到 L2 緩存的任何臟數據回寫,該值通常非常小,與 L2D_CACHE_WR 的值并不匹配,且沒有專門針對干凈替換的 PMU 計數器。因此,我們綜合考慮了所有可能導致緩存替換的事件(包括干凈替換和臟替換),從不同的角度進行分析,找到了這個規律。

wKgaombWhc6AbAEGAABLPedFu4M230.jpg

我們已在幾個典型場景中驗證了這一發現。大多數測試用例確實遵循這種規律。

對于 Redis 的情況

我們使用 Memtier 客戶端作為負載生成器,為 Redis 進程生成混合讀寫請求,結果發現 PMU 值遵循相應規律。

wKgaombWhdqAT66TAABodPvgx80915.jpg

對于“Telemetry: ustress: l1d_cache_workload”[3]的情況

此基準測試僅讀取數據,旨在對 L1 數據緩存的未命中情況進行壓力測試,結果發現 PMU 值遵循相應規律。

wKgaombWhfaAR1LIAABfDAOeRrc273.jpg

對于“Telemetry: ustress: l1i_cache_workload”[4]的情況

此基準測試將重復調用那些與頁面邊界對齊的函數,旨在對 CPU L1 指令緩存的未命中情況進行壓力測試,結果發現 PMU 值遵循相應規律。

wKgaombWhgWAGzrLAABhpC78Us0471.jpg

對于 Eigen gemm 的情況

此基準測試包含許多讀取操作。L1D_CACHE_WR 的 PMU 值比較小,但 L1 緩存的預取操作導致 L2D 的 PMU 值很大。因此,我們得到的結果是 L1D_CACHE_WR 的 PMU 值要低于 L2D_CACHE_WR。PMU 值也遵循這種規律。

wKgaombWhhCAMhY3AABvTojHREU782.jpg

但是,流寫入是一個例外。我們使用“Telemetry: ustress: memcpy_workload”[5]基準測試,對加載-存儲 (load-store) 管線中完全處于 L1D 緩存內的 memcpy 進行壓力測試。memcpy 觸發流寫入,跳過 L1 并直接寫入 L2。此時,PMU 值并不遵循這種規律。

wKgZombWhiWAVsvQAABdaHpXAyo077.jpg

以下是 Neoverse N2 技術參考手冊中關于寫入流模式的描述。

Neoverse N2 核心支持寫入流模式(有時也稱為讀取分配模式),這一點同時適用于 L1 和 L2 緩存。

當發生讀取未命中或寫入未命中時,會向 L1 和 L2 緩存分配緩存行。但是,寫入大塊數據可能會導致不必要的數據浪費緩存空間。這也可能會浪費功率和性能,因為在執行行填充后,如果 memset() 隨后寫入了整行數據,行填充數據將被丟棄。有些情況下,不需要在寫入時分配緩存行,例如在執行 C 標準庫 memset() 函數以將一大塊內存清除為某個已知值時。

為了防止不必要的緩存行分配,內存系統可以在行填充完成之前檢測核心何時寫入完整的緩存行。如果在可配置數量的連續行填充中檢測到這種情況,系統就會切換到寫入流模式。

在寫入流模式下,讀取操作會正常執行,仍可能引發行填充。寫入操作還是會先查找緩存,但如果未命中,它們就會寫入 L2 或系統,而不是開始行填充。

總結

在基于 Neoverse N2 的服務器上,L2D_CACHE_WR 會統計來自 L1 緩存的所有緩存替換(包括干凈替換和臟替換)以及流寫入。

對于讀取大量數據的工作負載,我們會看到,L1D_CACHE_WR 的 PMU 值要低于 L2D_CACHE_WR。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9169

    瀏覽量

    369222
  • 服務器
    +關注

    關注

    12

    文章

    9306

    瀏覽量

    86069
  • 數據緩存
    +關注

    關注

    0

    文章

    23

    瀏覽量

    7156
  • PMU
    PMU
    +關注

    關注

    1

    文章

    109

    瀏覽量

    21697

原文標題:深入研究 Arm Neoverse N2 PMU 事件 L2D_CACHE_WR

文章出處:【微信號:Arm社區,微信公眾號:Arm社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Arm Neoverse家族新增V1和N2兩大平臺,突破高性能計算瓶頸

    Arm 近日公開了Arm? Neoverse V1 和 N2 平臺的產品細節,兩者滿足了基礎設施應用的各種需求。這兩個平臺的設計旨在解決當前正在運行的各種工作負載和應用問題,與上一代
    的頭像 發表于 04-30 16:20 ?9325次閱讀

    ARM Neoverse N2 PMU指南

    發生時。 2.1 范圍 本文件提供N2 PMU事件的高水平描述。 提到建筑行為和N2微性造影行為,以澄清這些事件的描述。 關于更完整的武器結構描述,請參考Armú 建筑參考手冊。 關于
    發表于 08-09 06:07

    Arm Neoverse V1 PMU指南

    事件之一時計數發生。 2.1范圍 本文檔提供了Neoverse V1 PMU事件的高級描述。有參考資料體系結構行為和Neoverse V1微觀體系結構行為事件描述。有關Arm架構的更完
    發表于 08-09 07:30

    Arm Neoverse N2汽車硬件技術概述

    算子系統。RD-N2-Automotive是在RD-N2的基礎上逐步開發的。 本文件必須與Arm NeoverseTM N2參考設計(RD-N2
    發表于 08-10 06:25

    ARM Neoverse?N2軟件優化指南

    新宇宙? N2是一款高性能、低功耗的產品,采用Arm?v9.0-a架構。此實現支持Arm?v8.6?A之前的所有Armv8-A體系結構實現。
    發表于 08-11 06:47

    Arm Neoverse? N1 PMU指南

    本文檔提供了Neoverse N1 PMU事件的高級描述。 對體系結構行為和Neoverse N1微體系結構行為的引用闡明了這些事件描述。
    發表于 08-12 07:10

    Arm Neoverse? N2核心加密擴展技術參考手冊

    Neoverse?N2核心支持可選的ARM?v8.0-A和ARM?v8.2-A加密擴展。 ARM?v8.0-A加密擴展為Advanced S
    發表于 08-17 07:08

    ARM Neoverse?N1核心技術參考手冊

    (推測存儲旁路安全)位,以及ARM?v8.5-A擴展中引入的推測屏障(CSDB、SSBB、PSSBB)指令。 Neoverse?N1內核具有1級(L1)內存系統和專用的集成
    發表于 08-29 08:05

    ARM Neoverse?N2核心技術參考手冊

    Neoverse?N2內核是一款高性能、低功耗的產品,采用ARM?v9.0-A架構。 此實施支持所有以前的ARMv8-A架構實施,包括ARM?v8.5-A。 Neoversedsu
    發表于 08-29 08:12

    A_D-2WR2

    A_D-2WR2數據手冊,又需要的下來看看。
    發表于 01-13 17:53 ?8次下載

    互聯網巨頭紛紛啟用Arm CPU架構,Arm最新Neoverse V1和N2平臺加速云服務器芯片自研

    電子發燒友網報道(文/黃晶晶)Arm在2018年10月宣布了Neoverse的路線圖,繼2019年Neoverse N1平臺發布后,今年9月發布Ne
    發表于 09-30 14:46 ?1262次閱讀

    Arm推出新一代平臺 Neoverse V2 平臺

    目前,Arm Neoverse家族包括:V系列、N系列以及E系列。就在今年9月,Arm Neoverse迎來新的進展,推出新一代平臺
    的頭像 發表于 09-26 09:22 ?1491次閱讀

    Neoverse N2和CMN-700系統的PoC點在哪里?

    DC IVAC/ DC CIVAC指令用于將一個虛擬地址對應的cache line從data cache或是unified cache失效或清除失效到PoC點。N2 core硬件默認會
    的頭像 發表于 06-09 16:45 ?3025次閱讀
    <b class='flag-5'>Neoverse</b> <b class='flag-5'>N2</b>和CMN-700系統的PoC點在哪里?

    Arm 更新 Neoverse 產品路線圖,實現基于 Arm 平臺的人工智能基礎設施

    Neoverse CSS 產品;與 CSS N2 相比,其單芯片性能可提高 50% Arm Neoverse CSS N3 拓展了
    發表于 02-22 11:41 ?439次閱讀

    ArmArm Neoverse計算子系統(CSS):Arm Neoverse CSS V3和Arm Neoverse CSS N3

    Neoverse CSS N3代表了Arm計算子系統產品組合的最新進展。 Neoverse CSS V3是高性能V系列產品組合的首款產品,相比其前身
    的頭像 發表于 04-24 17:53 ?1190次閱讀
    <b class='flag-5'>Arm</b>新<b class='flag-5'>Arm</b> <b class='flag-5'>Neoverse</b>計算子系統(CSS):<b class='flag-5'>Arm</b> <b class='flag-5'>Neoverse</b> CSS V3和<b class='flag-5'>Arm</b> <b class='flag-5'>Neoverse</b> CSS <b class='flag-5'>N</b>3
    百家乐官网推饼| 大发888体育博彩| 百家乐官网太阳城怎么样| 百家乐赌的是心态吗| 百家乐官网最好的玩法| 网络百家乐证据| 百家乐官网连跳规律| 百家乐开庄几率| 百家乐官网游戏规则玩法| 百家乐有诈吗| 视频百家乐官网代理| 大发888娱乐官方网站| 百合百家乐官网的玩法技巧和规则 | 百家乐官网下路教学| 永利高足球网| 百家乐官网骗局视频| 蒙特卡罗娱乐| 百家乐庄闲预测| 澳门百家乐官网赌客| 大发888冲值| 百家乐官网庄闲必胜打| 皇冠足球| 不夜城百家乐的玩法技巧和规则 | 大发888 casino组件下载| 百家乐官网和怎么算输赢| 新葡京官网| 百家乐明灯| 百家乐官网必赢外挂软件| 博彩排名| 澳门百家乐心| 自贡百家乐官网赌场娱乐网规则| 时时博娱乐城| 电子百家乐假在线哪| 喜达百家乐官网的玩法技巧和规则| 天门市| 百家乐14克粘土筹码| 免费百家乐官网追号软件| 百家乐官网长路投注法| 大发888免费软件下载| 百家乐投注网址| 单机百家乐官网破解方法|