CUDA-全域性記憶體讀取-實驗(快取+非快取-Fermi架構-sm2.1)
特別宣告: 裝置GT540M, 計算能力2.1.程式碼附在後面;
快取載入:
(1)Fermi架構,預設情況是啟用L1快取,即採用128位元組記憶體事務。
採用不同的偏移量,以實現非對齊訪問。命令列為:“nvprof --metircs gld_efficiency test.exe N” (N為偏移量)。採用批處理,計算0-255的偏移量的全域性記憶體載入效率,統計結果如下:偏移量每隔32,跳變一次。
非快取載入(L2快取)
(1)Fermi架構,編譯命令:-Xptxas -dlcm=cg 禁用L1快取,即採用32位元組記憶體事務。偏移量每隔8,跳變一次。程式碼如下:
#include"iostream" #include"cuda_runtime.h" #include"device_launch_parameters.h" using namespace std; __global__ void fun1(float* datain,float* dataout,int n,int offset) { int idx=threadIdx.x+blockIdx.x*blockDim.x; int k=idx+offset; if(k<n) datain[idx]=datain[k]+dataout[k]; } int main(int argc,char* argv[]) { int offset = atoi(argv[1]); cout << offset << endl; const int N=512*15000; float* h_out,*h_in,*d_in,*d_out; cudaMallocHost((void**)&h_in,N*sizeof(float)); cudaMallocHost((void**)&h_out,N*sizeof(float)); cudaMalloc((void**)&d_in,N*sizeof(float)); cudaMalloc((void**)&d_out,N*sizeof(float)); for(int i=0;i<N;i++) { h_in[i]=i; } cudaMemcpy(d_in,h_in,N*sizeof(float),cudaMemcpyHostToDevice); fun1<<<15000,512>>>(d_in,d_out,N,offset); cudaMemcpy(d_out,h_out,N*sizeof(float),cudaMemcpyDeviceToHost); cudaDeviceSynchronize(); return 0; }
相關推薦
CUDA-全域性記憶體讀取-實驗(快取+非快取-Fermi架構-sm2.1)
特別宣告: 裝置GT540M, 計算能力2.1.程式碼附在後面; 快取載入: (1)Fermi架構,預設情況是啟用L1快取,即採用128位元組記憶體事務。 採用不同的偏移量,以實現非對齊訪問。命令列為:“nvprof --metircs gld_efficiency t
CUDA全域性記憶體讀取
正如前文所述,CUDA全域性記憶體的訪問是通過”記憶體事務“實現的,其分類128位元組(L1/L2快取均參與)和32位元組(L2快取參與)兩種。本文則主要介紹全域性讀取的載入示例,分為”快取載入(L1+L2)“和”非快取載入(L2)“,程式碼會貼在後面。 一.快取載入(L1
軟件體系結構的第二次實驗(解釋器風格與管道過濾器風格)
硬件 hal 例如 .cn analyze boolean ole private 實現 一、實驗目的 1.熟悉體系結構的風格的概念 2.理解和應用管道過濾器型的風格。 3、理解解釋器的原理 4、理解編譯器模型 二、實驗環境 硬件: 軟件:Python或任何一種自己喜歡的
DNS服務子域委派,授權解析,負載均衡等功能原理解析實驗(歡迎各位朋友蒞臨指教、討論)
子域委派授權負載均衡一、DNS服務器簡易架構圖二、實驗操作步驟~~~~~~~~~~~~~~~~1、設置客戶端域名解析,使之指向緩存服務器~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[root@DNS131 ~]# cat /etc/resolv.conf ; generated
C 按行讀取檔案(但是最後一行會多輸出一行)
#include <stdio.h> int main() { char filename[] = "E:\\data_test\\commands.txt"; //檔名 &nb
C語言全域性變數那些事兒(深入C中最隱祕的地帶)
【雖然自認為對C的角角落落都有所瞭解,但直到看到這篇文章,才知道C中的一些隱祕的坑,是自己之前不知道的。 關於全域性變數的連結問題,之前在我部落格的某文章中有介紹過,一般對C有些瞭解的程式設計師都知道這個問題,但本文最後所提到的使用動態連結庫所出現的問題,著實讓我震驚。
170720 混淆矩陣繪製+pandas讀取資料(有點亂,後面抽空再整理)
E:\Backup\validation confusion matrix_final2 # -*- coding: utf-8 -*- """ Created on Fri May 19 11:17:12 2017 @author: Bruce
iOS獲取裝置全域性資訊方法總結(如訊號,電量,裝置標示)
iOS獲取裝置全域性資訊方法總結 為系統建立一個隨機的標示符 (NSString*) createUUID { NSString *id = [[NSUserDefaults standardUserDefaults] objectFor
R語言讀取資料(Practical Data Science with R 第二章)
1、用R語言讀取檔案中的資料 1.1、用R語言讀取結構化資料 以University of California Irvine Machine Learning Repository (http://archive.ics.uci.edu/ml/)的car資料為例: u
計算機作業系統 ----記憶體空間回收(首次適應演算法和最佳適應演算法)
#include<iostream.h> #include<stdlib.h> #define Free 0 //空閒狀態 #define Busy 1 //已用狀態 #define OK 1 //完成 #define ERROR 0
從resource中的raw資料夾中獲取檔案並讀取資料(資原始檔只能讀不能寫)
轉載:http://blog.sina.com.cn/s/blog_4d25c9870100qpax.html 一、 從resource中的raw資料夾中獲取檔案並讀取資料(資原始檔只能讀不能寫) String res = ""; try{ InputStre
MyEclipse記憶體溢位問題(an internal error occurred during building workspace)
今天MyEclipse匯入了一個比較大的專案,出現了an internal error occurred during building workspace錯誤。 網上搜了一下,據說是記憶體溢位問題。可以通過修改myeclipse.ini檔案解決,一例如下。 優化之後的in
記憶體分配演算法-(首次分配法和最佳分配法)
/* implement a memory allocation scheme by using algorithms first-fit, next-fit, and best-fit * freelist為空閒區連結串列的頭,它的下一個節點才指向空閒緩衝區 * fr
Xcode出現( linker command failed with exit code 1)錯誤總結
name 找不到文件 解決方法 錯誤 依賴 刪掉 導入 base replace 這種問題,通常出現在添加第三方庫文件或者多人開發時。一般是找不到文件而導致的鏈接錯誤。 我們可以從如下幾個方面著手排查。 提一點,我覺得一下方法中90%以上能解決你遇到的這個錯誤
windows下安裝mysql(mysql-installer-community-5.6.10.1)
自動 選擇 devel 界面 mysql-in for 選項 需要 acc 轉載 2015年06月07日 18:22:57 轉載自:http://blog.sina.com.cn/s/blog_7cecec9501017cmk.html 一、安裝前的準備
出現( linker command failed with exit code 1)錯誤總結
這種問題,通常出現在新增第三方庫檔案或者多人開發時。 這種問題一般是找不到檔案而導致的連結錯誤。 我們可以從如下幾個方面著手排查。 1.以如下錯誤為例,如果是多人開發,你同步完成後發現出現如下的錯誤。 Undefined symbols for archit
第四周(預設建構函式 無參為1)
/* *copyright(c) 2014,煙臺大學計算機學院 *All rights reserved。 *檔名稱:第四周(三角形) *作者:王忠 *完成日期:2015.4.1 *版本號:v1.0 * *問題描述:輸入三角形三條邊長,求出面積 周長 *輸入描述:輸入三角形
水波紋進度條(自定義View——進階篇1)
自定義控制元件——ProgressCircleView(水波紋進度條) 最近在很多群都有提到水波紋進度條,看起來蠻唬人的,但是我們要相信毛爺爺的話,一切看起來唬人的都是紙老唬,一言不合,還是先貼效果圖
分散式架構學習之:013--基於Dubbo的分散式系統架構介紹(以第三方支付系統架構為例)
基於Dubbo的分散式應用架構規劃(以第三方支付系統為例) 結合業務場景,對系統的應用型別進行劃分: (1) 服務子系統 ------ 賬戶、交易、對賬、結算、打款、風控…… (2) 內部管理應用
異或運算(相同為0,不同為1)
轉進位制計算器 先輸入一個十進位制數,再輸入要轉換的進位制······ #include<cstdio> #include<cstring> us