ncu學習筆記01——合并訪存

全局內存通過緩存實現加載和存儲過程。其中,L1為一級緩存,每個SM都有自己的L1;L2為二級緩存,L2則被所有SM共有。

數據從全局內存到SM的傳輸過程中,會去L1和L2中查詢是否有緩存。對全局內存的訪問將經過L1;如果未命中,則會接著從L2中查找;如果再次未命中,則會從全局內存DRAM中讀取。

CUDA允許通過編譯選項控制是否啟用L1。當L1被禁用時,對全局內存的加載請求將直接進入L2;如果L2未命中,將由DRAM完成請求。

核函數從全局內存DRAM中讀取數據有兩種粒度,使用L1時,每次按照128字節進行緩存;不使用L1時,每次按照32字節進行緩存。

# 禁用一級緩存
-Xptxas -dlcm=cg
# 啟用一級緩存
-Xptxas -dlcm=ca

全局內存的訪問模式,有合并和非合并之分。

合并訪問指的是一個線程束對全局內存的一次訪問請求(讀或者寫)導致最少數量的數據傳輸;否則稱訪問是非合并的。

合并度:線程束請求的字節數 / 由該次請求導致的所有數據傳輸的字節數。

以僅使用L2緩存為例,一次數據傳輸或者一次內存事務是將32字節的數據從全局內存(cache sector)傳輸到SM。考慮一個線程束(32個線程)訪問單精度浮點數(4字節)的全局變量,該線程束請求128字節的數據。

https://zhuanlan.zhihu.com/p/641639133

Memory Workload Analysis

內存圖表以圖形化、邏輯化的方式,展現 GPU 上和 GPU 外內存子單元的性能數據。性能數據包括傳輸大小、命中率、指令或請求數量等。

邏輯單元顯示為綠色(活動)或者灰色(非活動),包括在GPU的SM上執行的CUDA Kernel、全局內存、本地內存、紋理內存、表面內存、共享內存和加載全局存儲共享(指令直接從全局加載到共享內存中,無需中間寄存器文件訪問)。

物理單元顯示為藍色(活動)或者灰色(非活動),包括

(1)L1/TEX Cache:L1緩存和紋理緩存

(2)Shared Memory:共享內存

(3)L2 Cache:L2緩存

(4)L2 Compression:L2 Cache的內存壓縮單元

(5)System Memory:CPU內存

(6)Device Memory:GPU顯存

(7)Peer Memory:其他CUDA設備的GPU顯存

內核與其他邏輯單元之間的鏈接表示針對相應單元執行的指令 (?Inst?) 數量。例如,?內核全局之間的鏈接表示從全局內存空間加載或存儲的指令。

邏輯單元與藍色物理單元之間的鏈接表示其各自指令產生的請求 (?Req?) 數量。例如,從?L1/TEX Cache?到?Global 的鏈接顯示了全局加載指令產生的請求數量。

每條鏈路的顏色代表相應通信路徑的峰值利用率百分比。圖表右側的顏色圖例顯示了從未使用 (0%) 到峰值性能運行 (100%) 所應用的顏色漸變。如果鏈路處于非活動狀態,則顯示為灰色。圖例左側的三角形標記對應于圖表中的鏈路。與單獨的顏色漸變相比,這些標記可以更準確地估算已實現的峰值性能值。

(1)Instructions

對于每種訪問類型,每個 Warp 中實際執行的匯編 (SASS)?指令總數。不包括預測指令。

(2)Requests

每種指令類型生成的所有 L1?請求總數。在 SM 7.0 (Volta) 及更新的架構上,每條指令只會為 LSU 流量(全局、本地等)生成一個請求。對于紋理 (TEX) 流量,可能會生成多個請求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/910296.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/910296.shtml
英文地址,請注明出處:http://en.pswp.cn/news/910296.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2012 - 正方形矩陣

????題目描述 晶晶同學非常喜歡方形,她希望打印出來的字符串也是方形的。老師給了晶晶同學一個字符串"ACM",晶晶同學突發奇想,如果任意給定義一個整數n,能不能打印出由這個字符串組成的正方形字符串呢?…

C++中set的常見用法

在 C 里&#xff0c;std::set屬于標準庫容器的一種&#xff0c;其特性是按照特定順序存儲唯一的元素。下面為你詳細介紹它的常見使用方法&#xff1a; 1. 頭文件引入 要使用std::set&#xff0c;需要在代碼中包含相應的頭文件&#xff1a; #include <set> 2. 集合的定…

stm32移植freemodbus

1、設置串口 開啟串口中斷 2、設置定時器 已知在freemodbus中默認定義&#xff1a;當波特率大于19200時&#xff0c;判斷一幀數據超時時間固定為1750us&#xff0c;當波特率小于19200時&#xff0c;超時時間為3.5個字符時間。這里移植的是115200&#xff0c;所以一幀數據超時…

鴻蒙next 使用canvas實現ecg動態波形繪制

該代碼可在Arkts 與 前端使用&#xff0c;基于canvas 倉庫地址&#xff1a;https://gitee.com/harmony_os_example/harmony-os-ecg-waveform.git 代碼中的list數組為波形數據&#xff0c;該示例需要根據自己業務替換繪制頻率&#xff0c;波形數據&#xff0c;ecg原始數據生成…

基于原生能力的鍵盤控制

基于原生能力的鍵盤控制 前言一、進入頁面TextInput獲焦1、方案2、核心代碼 二、點擊按鈕或其他事件觸發TextInput獲焦1、方案2、核心代碼 三、鍵盤彈出后只上抬特定的輸入組件1、方案2、核心代碼 四、監聽鍵盤高度1、方案2、核心代碼 五、設置窗口在鍵盤抬起時的頁面避讓模式為…

大數據治理域——數據存儲與成本管理

摘要 本文主要探討了數據存儲與成本管理的多種策略。介紹了數據壓縮技術&#xff0c;如MaxCompute的archive壓縮方法&#xff0c;通過RAID file形式存儲數據&#xff0c;可有效節省空間&#xff0c;但恢復時間較長&#xff0c;適用于冷備與日志數據。還詳細闡述了數據生命周期…

國產Linux銀河麒麟操作系統上使用自帶openssh遠程工具SSH方式登陸華為交換機或服務器

在Windows和Linux Debian系統上我一直使用electerm遠程工具訪問服務器或交換機&#xff0c; 一、 electerm簡介 簡介&#xff1a;electerm是一款開源免費的SSH工具&#xff0c;具有良好的跨平臺兼容性&#xff0c;適用于Windows、macOS、Linux以及麒麟操作系統。特點&#xf…

Logback 在java中的使用

Logback 是 Java 應用中廣泛使用的日志框架&#xff0c;以下是其核心使用方法及最佳實踐&#xff1a; 1. 引入依賴 在 Maven 或 Gradle 項目中添加 Logback 及 SLF4J 依賴&#xff1a; <!-- Maven --> <dependency><groupId>ch.qos.logback</groupId>…

Axure應用交互設計:中繼器—整行、條件行、當前行賦值

親愛的小伙伴,如有幫助請訂閱專欄!跟著老師每課一練,系統學習Axure交互設計課程! Axure產品經理精品視頻課https://edu.csdn.net/course/detail/40420 課程主題:對中繼器中:整行、符合某種條件的任意行、當前行的賦值操作 課程視頻:

ToolsSet之:TTS及Morse編解碼

ToolsSet是微軟商店中的一款包含數十種實用工具數百種細分功能的工具集合應用&#xff0c;應用基本功能介紹可以查看以下文章&#xff1a; Windows應用ToolsSet介紹https://blog.csdn.net/BinField/article/details/145898264其中Text菜單中的TTS & Morse可用于將文本轉換…

【C++】編碼傳輸:創建零拷貝幀對象4:shared_ptr轉unique_ptr給到rtp打包

【C++】編碼傳輸:創建零拷貝幀對象3: dll api轉換內部的共享內存根本原因 你想要的是基于 packet 指向的那個已有對象,拷貝(或移動)出一個新的 VideoDataPacket3 實例,因此需要把那個對象本身傳進去——也就是 *packet。copilot的原因分析與gpt一致 The issue is with t…

基于UDP的套接字通信

udp是一個面向無連接的&#xff0c;不安全的&#xff0c;報式傳輸層協議&#xff0c;udp的通信過程默認也是阻塞的。使用UDP進行通信&#xff0c;服務器和客戶端的處理步驟比TCP要簡單很多&#xff0c;并且兩端是對等的 &#xff08;通信的處理流程幾乎是一樣的&#xff09;&am…

華為CE交換機抓包

capture-packet interface 100GE1/0/5 destination file 001.cap packet-len 64 注&#xff1a;早期版本&#xff08;disp device&#xff09;可能在系統視圖下&#xff08;sys&#xff09; 抓完包后可以看到對應文件&#xff08;早期版本在根目錄下&#xff09;&#xff1a;…

Python 數據分析與可視化 Day 3 - Pandas 數據篩選與排序操作

&#x1f3af; 今日目標 掌握 DataFrame 的條件篩選&#xff08;布爾索引&#xff09;學會多條件篩選、邏輯運算熟練使用排序&#xff08;sort_values&#xff09;提升數據組織力結合列選擇進行數據提取分析 &#x1f9ea; 一、列選擇與基本篩選 ? 選擇單列 / 多列 df[&quo…

Vite項目初始化與配置

下面,我們來系統的梳理關于 Vite 項目初始化與配置 的基本知識點: 一、Vite 核心概念與優勢 1.1 什么是 Vite? Vite(法語意為 “快速”)是新一代的前端構建工具,由 Vue.js 作者尤雨溪開發。它解決了傳統構建工具(如 Webpack)在開發環境中的性能瓶頸問題。 1.2 Vite …

Transformer中的核心問題 知識點匯總

Transformer架構圖 transformer整體架構 1. Transformer 的參數配置 Transformer 的Encoder層和Decoder層都使用6個注意力模塊&#xff0c;所有的子網絡的輸出維度均為512維&#xff0c;多頭注意力部分使用了8個注意力頭。 2. 歸一化的方式 歸一化的方式為LayerNorm&#xff0c…

python web開發-Flask數據庫集成

Flask 數據庫集成完全指南&#xff1a;Flask-SQLAlchemy 實踐 1. 引言 數據庫是現代Web應用的核心組件&#xff0c;Flask通過Flask-SQLAlchemy擴展提供了強大的數據庫集成能力。本文將全面介紹如何在Flask應用中使用Flask-SQLAlchemy進行數據庫操作&#xff0c;涵蓋從基礎配置…

一站式用AI編程神奇Cursor/Trae(VScode環境)開發運行Scala應用

平時開發時&#xff0c;我們常用 IDEA 搭配 Scala 來開發 Spark 或 Flink 等大數據應用。但如今像 Cursor 這樣的編程神器層出不窮&#xff0c;它們只支持 VSCode。要是 Scala 應用能在 VSCode 環境下便捷運行&#xff0c;我們就無需在 VSCode 開發、卻在 IDEA 運行&#xff0c…

【Django開發】django美多商城項目完整開發4.0第2篇:項目準備,配置【附代碼文檔】

教程總體簡介&#xff1a;美多商城 商業模式介紹 1.B2B--企業對企業 2.C2C--個人對個人 5.O2O--線上到線下 開發流程 說明&#xff1a; 需求分析 1. 用戶部分 注冊 登錄 個人信息 地址管理 修改密碼 3. 購物車部分 購物車管理 項目架構 創建工程 1. 在git平臺創建工程 2. 添加前…

基于 OpenCV 的圖像亮度、對比度與銳度調節

圖像亮度、對比度和銳度是圖像質量感知的重要參數&#xff0c;調節這些屬性常用于圖像增強、圖像美化或圖像分析的預處理階段。本文將基于 OpenCV 實現這三項基礎圖像處理功能&#xff0c;并提供滑動條交互界面與直方圖可視化分析&#xff0c;方便調試和理解效果。 亮度調整 圖…