摘要:從這部分開始 結合蟲子的demo程序給大家分析下cuda的性能與可行性。一。先概述下實現流程。 CUDA在執行的時候是讓host里面的一個一個的kernel按照線程網格(Grid)的概念在顯卡硬件(GPU)上執行。每一個線程網格又可以包含多個線程塊(block),每一個線程塊中又可以包含多個線程(thread)。每一個kernel交給每一個Grid來完成。當要執行這些任務的時候,每一個Grid又把任務分成一部分一部分的block,block再分線程來完成。每個Grid中的任務是一定的。二維線程塊的索引關系為如下:unsigned int xIndex = blockDim.x * block. 閱讀全文
CUDA并行計算框架(一)概念相關、內容比較抽象。
2011-10-10 11:21 by 熬夜的蟲子, 2936 閱讀, 0 推薦, 收藏,
摘要:一. 概念。1. 相關關鍵字。CUDA(Compute Unified Device Architecture)。GPU英文全稱Graphic Processing Unit,中文翻譯為“圖形處理器”。2. CUDA是一種由NVIDIA推出的通用并行計算架構,該架構使GPU能夠解決復雜的計算問題。它包含了CUDA指令集架構(ISA)以及GPU內部的并行計算引擎。。3. 從CUDA體系結構的組成來說,包含了三個部分:開發庫、運行期環境和驅動。開發庫是基于CUDA技術所提供的應用開發庫。運行期環境提供了應用開發接口和運行期組件,包括基本數據類型的定義和各類計算、類型轉換、內存管理、設備訪問和執行調 閱讀全文
趣談.net大型電子商務 親~ 走過路過不要錯過~
2011-10-08 15:45 by 熬夜的蟲子, 673 閱讀, 0 推薦, 收藏,
摘要:老衲才不比子建 貌不似潘安 富不及范蠡 ----摘自蟲子語錄 2011十月刊 既然是趣談,那就放開傳統的邏輯隨便扯了。對于電子商務的概念,蟲子其實不感興趣,就當是個履歷吧,關于電商的一些瑣碎的經驗結合.net平臺和大家一起分享了。 什么是電子商務?內事問度娘、外事問谷姐。略過! 既然是園子內的文章,那就先把羊頭掛上,先簡單扯扯一般大型電子商務網站的相關話題。一 先看業務模型: 第一層,貨源:招商采購,商品錄入,目錄發放 第二層,渠道:電話、主站、微博、手機、社區訂購 第三層,交易:客戶服務,賬戶交易,退換貨處理 第四層,進銷存:物流配送,倉庫管理,分倉,快遞管理 第五層,其他:工作... 閱讀全文
結合項目實例 回顧傳統設計模式(十一)代理模式
2011-10-07 17:58 by 熬夜的蟲子, 593 閱讀, 0 推薦, 收藏,
摘要:所謂的代理,就是代表某個真實的對象。在這個設計模式中,代理可以假裝自己是遠程對象,但其實只是一個中間角色。客戶對象所作的就像是在做遠程方法調用,但其實只是調用本地資源中得“代理”對象上得方法,再由代理處理所有網絡通信的底層細節。其實其實項目實例神馬的 根本就沒必要了 看一下Web Service的調用方式大家也許就明白了,它會在客戶端生成一個代理類 - - 已經很完美的詮釋了代理模式這個概念 蟲子放下水 直接拿以前監控項目中客戶端采集的代理方法了 --_____--服務器端 [WebMethod]publicvoidMem_handleforM(stringvalue,intmonitorid 閱讀全文
結合項目實例 回顧傳統設計模式(十)狀態模式
2011-10-07 09:34 by 熬夜的蟲子, 651 閱讀, 0 推薦, 收藏,
摘要:談到狀態模式我們在這里所談論的是一個通用的技巧:如何對對象內的狀態建模----通過創建一個實例變量來持有狀態值,并在方法內書寫條件代碼來處理不同狀態。我們要把一個狀態的所有行為放在一個類中。這么一來我們將行為局部化了,并使得事情更容易改變和理解。蟲子還是拿訂單系統來說事了///<summary>///狀態接口///</summary>publicinterfaceSimpleState{//檢查購物車voidCheckCart();//檢查賬號voidCheckAcount();//提交訂單voidOrderSumbit();}publicclassOrder{//初始 閱讀全文
結合項目實例 回顧傳統設計模式(九)迭代器模式
2011-10-06 23:17 by 熬夜的蟲子, 511 閱讀, 0 推薦, 收藏,
摘要:關于迭代器模式,我們所需要知道的第一件事情就是它依賴于一個名為迭代器的接口。一旦我們有了這個接口,就可以為各種那個對象集合實現迭代器:數組、列表、散列表。項目實例我們就拿用戶角色模塊來舉例背景1.某用戶作為應用管理員獲取一組關于管理角色的arraylist權限組2.該用戶作為應用開發者獲取一組關于開發角色的數組形式的權限組...///<summary>///迭代器接口///</summary>publicinterfaceRoleIterator{//返回一個布爾值,讓客戶知道是否還有更多的元素boolhasnext();//返回下一個元素Objectnext();}/ 閱讀全文
結合項目實例 回顧傳統設計模式(八)模板方法模式
2011-10-06 15:32 by 熬夜的蟲子, 639 閱讀, 0 推薦, 收藏,
摘要:模板方法定義了一個算法的步驟,并允許子類為一個或多個步驟提供實現。普通的設計算法由實現類直接控制,在很多功能類似的對象中存在重復。并且由于類的組織方式不具有彈性,所以往往新加入新的相似模塊時需要作大量冗余的步驟。我們還是那電商的訂單提交來說事 ~ ~///<summary>///模板類///</summary>publicabstractclassOrderSubmit{publicOrderSubmit(){//檢查購物車CheckCart();//檢查支付方式CheckPaytype();//檢查用戶地址CheckAddress();//提交訂單SubmitOrde 閱讀全文
結合項目實例 回顧傳統設計模式(七)適配器模式(附外觀模式)
2011-10-06 09:38 by 熬夜的蟲子, 732 閱讀, 1 推薦, 收藏,
摘要:記得以前章節談過的裝飾者模式,我們將對象包裝起來,賦予他們新的職責。而現在則是以不同目的,包裝某些對象:讓他們的接口看起來不像自己而像是別的東西。這樣就可以在設計中,將類的接口轉換成想要的接口,以便實現不同的接口。在項目中,適配器模式一般扮演者協調者的作用。1.客戶通過目標接口調用適配器的方法對適配器發出請求2.適配器使用被適配者接口把請求轉換成被適配者的一個或多個調用接口3.客戶接受到調用的結果,但并未察覺這一切是適配器在起轉換作用另外還有一種特殊情況,萬一系統新舊并存,舊的部分期望舊的廠商接口,但我們卻已經使用新廠商的接口編寫了這一部分,這個時候該怎么辦?這里使用適配器,那里卻使用未包裝的 閱讀全文
結合項目實例 回顧傳統設計模式(六)命令模式
2011-10-05 14:56 by 熬夜的蟲子, 581 閱讀, 0 推薦, 收藏,
摘要:命令模式將請求封裝成對象,以便使用不同的請求、隊列或者日志來參數化其他對象。命令模式也支持可撤銷的操作。用戶程序在使用的時候,只與該命令對象打交道,而不用與一類對象打交道,降低了耦合性,提高了程序設計的靈活性。我們還是那數據庫操作為例publicclassDBInstance{publicvoidExecuteNonQuery(){}publicvoidExecuteDataset(){}}publicclassSqlInstance:DBInstance{publicvoidExecuteNonQuery(){Console.WriteLine("thisisaSqlInstanc 閱讀全文
結合項目實例 回顧傳統設計模式(五)單例模式
2011-10-04 14:05 by 熬夜的蟲子, 545 閱讀, 0 推薦, 收藏,
摘要:這個...... 大家應該熟的不能再熟了 蟲子就不班門弄斧了 privatestaticobjectLockKey=newobject();privatestaticT_Instance;publicstaticTGetInstance(){returnGetInstance(null);}publicstaticTGetInstance(Func<T>onCreateInstance){if(_Instance==null){lock(LockKey){if(_Instance==null){try{if(onCreateInstance==null)_Instance=newT 閱讀全文
結合項目實例 回顧傳統設計模式(四)工廠模式(簡單工廠、普通工廠、抽象工廠)
2011-10-04 13:19 by 熬夜的蟲子, 886 閱讀, 2 推薦, 收藏,
摘要:關于工廠模式和單例模式 大部分項目這2種模式都很常見例如在orm框架中 工廠模式常用來封裝數據庫的創建 我們分3種case來看 簡單工廠模式 普通工廠模式 抽象工廠模式抽象一點的說 工廠模式提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。直接看實例一般慣性思維 我們遇到分支判斷時會這樣publicclassNormalCase{privateDBInstancedbInstance;publicNormalCase(stringtype){if(type.Equals("SQL")){dbInstance=newSqlInstance();}elseif 閱讀全文
結合項目實例 回顧傳統設計模式(三)裝飾者模式
2011-10-02 15:09 by 熬夜的蟲子, 757 閱讀, 1 推薦, 收藏,
摘要:說到這個模式的項目實例 蟲子也滿頭疼的 所謂裝飾者模式說白了動態將職責附加到對象上。如果你在項目某個場景中需要功能擴展根據基類衍生出非常多的子類,那么裝飾者模式無疑是很好的。不過其實在實際的項目中,往往大家不直接衍生子類,而是通過組合的方式,根據邏輯講各種擴展疊加來,對外公布的只是一個標簽一個殼而已。所以這個章節,蟲子就虛構一個實例了。還拿電商來說、點券贈品系統。背景:1.所有點券、優惠券、贈品券、積分繼承同一個基類 基類券2.不用種類的券可以混合搭配 3.積分根據不同的場景可以配置不同的規則4.升級禮券在上層禮券基礎上添加一般情況下 大家可以就這樣設計了///<summary>/ 閱讀全文
結合項目實例 回顧傳統設計模式(二)觀察者模式
2011-10-02 13:43 by 熬夜的蟲子, 711 閱讀, 0 推薦, 收藏,
摘要:觀察者模式現在用的不是很多重點看下它的設計思想OK 下面繼續消息中心的那點事///<summary>///數據中心///</summary>publicclassMessageData{publicvoidmessageSend(){stringtitle=observer.getTitle();stringcontent=observer.getContent();//針對具體實現編程,會導致我們以后再增加或者刪除消息平臺時必須要重新維護Platformlist有時甚至還要重構代碼foreach(Platformpinobserver.Platformlist){p. 閱讀全文
回頭再學Asp.net系列--基礎篇(三)
2011-09-14 16:20 by 熬夜的蟲子, 279 閱讀, 0 推薦, 收藏,
摘要:值類型與引用類型小demo當我們使用引用類型時,我們實際是在處理該類型的指針,而非該類型本身。當我們使用值類型時,我們是在使用值類型本身。聽起來很迷糊吧?同樣,例子是最好的描述。假如我們執行以下的方法: public int ReturnValue() { int x = new int(); x = 3; int y = new int(); y = x; y = 4; return x; }我們將得到值3,很簡單,對吧?假如我們首先使用MyInt類 public class MyInt { public int MyValue; }接著執行以下的方法: public int Retur.. 閱讀全文
回頭再學Asp.net系列--基礎篇(二)
2011-09-14 16:17 by 熬夜的蟲子, 332 閱讀, 2 推薦, 收藏,
摘要:棧(Stack)和堆(Heap)。 棧是在程序運行過程中用于保存指令,值類型變量的內存區域(一個線程對應一個棧),棧的結構和數據結構中“棧”的結構是一樣的,“先進后出”。堆也就是托管堆(managed heap),進程初始化的時候,CLR要保留一塊連續的地址空間,這個地址空間最初并沒有對應的物理存儲空間。這個地址空間就是托管堆。* 棧vs堆:有什么不同?棧負責保存我們的代碼執行(或調用)路徑,而堆則負責保存對象(或者說數據,接下來將談到很多關于堆的問題)的路徑。可以將棧想象成一堆從頂向下堆疊的盒子。當每調用一次方法時,我們將應用程序中所要發生的事情記錄在棧頂的一個盒子中,而我們每次只能夠使用. 閱讀全文
浙公網安備 33010602011771號