Heresy's profile[Heresy' Space]PhotosBlogListsMore Tools Help
    1/15/2008

    nVidia CUDA 相關文章目錄

    這一段時間,從 CUDA 1.0 寫到 1.1,也寫了好幾篇了;如果還要像以前一樣把目錄附加到每一篇文章下,好像會又臭又長的…所以決定,獨立一篇出來當目錄順便簡介吧! 以後如果還有寫新文章,也會持續更新這篇的。

    以下就是 CUDA 系列文章的目錄和簡介:

    1. nVidia CUDA 簡介 (2007/10/31)
      先針對 GPGPU 做簡單的介紹,然後再對 nVidia CUDA 本身軟體架構、程式執行架構、記憶體架構,做最基本的介紹。
       
    2. 版本演進
      1. CUDA 1.1 Release (2007/12/16)
        針對 CUDA 1.1 的更新,做一些基本的比較。
         
      2. CUDA Beta 2.0 for Windows & Vista (2008/04/17)
        CUDA 2.0 Beta for Windows and Linux (2008/04/21)
        CUDA 2.0 Beta 版本的訊息。重點是支援 Vista 和加入了 Texture 3D。
         
      3. CUDA 2.0 Beta 2 (2008/06/19)
        CUDA 2.0 Beta2 變更整理 (2008/06/19)
        Beta2 發布。支援新的 GT200 系列,加入了 double 的支援。
         
      4. 偷偷更新的 CUDA 2.0 (正式版?)?(2008/08/20)
        CUDA 2.0 的更新,後來有在正式公告,這個版本應該就是正式版了。
         
      5. CUDA 2.1 Beta 推出!(2008/11/22)
        CUDA 2.1 Release (2009/01/14)
        新的 Beta 版,加入了對 Direct3D 10 的支援,並可透過 driver API 使用 PTX 程式,也可以使用 Visual Studio 2008 來寫程式了~
        更提供了 32 位元的 Linux debugger。
         
      6. ForceWare 185.66、Graphics Plus Power Pack #3 & nVidia CUDA 2.2 封測? (2009/04/03)
        CUDA 2.2 Release 開放下載! (2009/05/12)
        加入了 Zero-Copy 的 host memory 存取能力,以及一些其他的新功能,並補上不同平台上本來缺少的一些功能。
         
      7. CUDA 2.2.1 小改版 (2009/06/16)
         
      8. nVidia CUDA 2.3 Beta 封測 (2009/6/21)
        nVidia CUDA 2.3 Release (2009/7/22)
        CUFFT 加入 double、對 SLI 的支援加強、64bit 的 Toolkit 可以支援編譯 32/64 的程式。
         
      9. CUDA Roadmap (2008/12/13)
        CUDA 的版本演進計畫時間圖。
         
    3. 環境設定
      1. 使用 Visual Studio 2005 撰寫 CUDA 程式 (2007/11/2)
        介紹用 CUDA 的編譯的流程,並介紹使用 nVidia 提供的範例程式,來用 Visual Studio 2005 撰寫 CUDA 程式的方法。
         
      2. 使用 Visual Studio 2005 建立新 CUDA 專案 (2007/11/26)
        介紹如何不使用 nVidia 的範例程式,建立一個全新的 Visual Studio 2005 的 CUDA 專案程式。
         
    4. nVidia CUDA API
      1. nVidia CUDA API(上) (2007/11/5)
        介紹 CUDA API 中,最基本的 language extension 的部分;包括 Function type qualifiers、Variable type qualifiers、Directive to specify how a kernel is executed、Built-in variables。
         
      2. nVidia CUDA API(下) (2007/11/8)
        大致介紹 CUDA API 的 runtime library。主要以記憶體控制和裝置管理為主。
         
    5. 簡單的 CUDA 程式:VectorAdd (2007/11/8)
      一份簡單的 CUDA 程式範例,用來做向量的加法。
       
    6. 簡單的 CUDA 程式:DeviceInfo (2008/1/9)
      透過 CUDA runtime library 取得 GPU 的裝置資訊,並設定使用的 GPU。
       
    7. CUDA Thread Block:transpose (2008/1/11)
      透過 nVidia 提供的範例 transpose 來大概講一下使用 CUDA 時,要使用多個 thread block 時的處理方法。
       
    8. CUDA Shared Memory:transpose (2008/1/17)
      大致介紹 Shared Memory 的使用方法。
       
    9. CUDA Texture
      1. CUDA Texture Part.1 簡介 (2008/1/25)
        大致介紹 CUDA 中的 texture reference
         
      2. CUDA Texture Part.2 Linear Memory (2008/1/25)
        介紹使用 linear memory 的 texture 的基本方法,並有簡單的範例。
         
      3. CUDA Texture Part.3 CUDA Array (2008/1/29)
        介紹使用 CUDA array 的 2D texture 的基本方法。
         
    10. CUDA Volume Rendering (2008/4/24)
      介紹 CUDA 2.0 的範例程式 VolumeRender。
      1. Part.1 簡介 (2008/4/24)
        大概介紹一下 Volume rendering 的概念,並大致上介紹範例程式 VolumeRender 的架構。
         
      2. Part.2 程式流程 (2008/4/29)
        介紹這個程式在初始化所做的動作;主要是 3D Texture 和 pixel buffer object 的使用。
         
      3. Part.3 Render(CPU part) (2008/5/13)
        介紹 CUDA Volume Render 在 render 的流程,以及 CPU 部分的程式。
         
      4. Part.4 Render(GPU part) (2008/5/13)
        介紹在 kernel 中所進行的 ray-casting 的動作。
         
    11. 效能調整
      1. CUDA 的 Threading:Block 和 Grid 的設定與 Warp (2008/7/9)
        大概講一下 CUDA many thread 在 GPU 實際上運作的方式,藉此分析 block 和 grid 的大小設定。
         
    12. 效能測試
      1. 簡單的 CUDA 效能測試 (2008/1/30)
        用簡單的 blending 演算法,來進行一些簡單的效能測試;主要是在比較 CPU 和 GPU 間的效能差異,同時也比較使用 global memory 和 texture 的效能。
         
      2. 不同顯示卡的 CUDA 效能測試 (2008/2/1)
        用上面的簡單例子,測試手邊一些不同的 Geforce 8000 系列顯示卡的效能。
         
    13. CUDA 目前的一些缺點
      大概列一下 Heresy 所知,目前 CUDA 的缺點。


    其他資料

    • 一些國際研討會的 CUDA 資料 (2007/11/29)
      主要來自 GPGPU 網站。這篇是在整理 SC07 和 Siggraph 2007 時的一些 CUDA 相關資料。
       
    • 其他人寫的中文 CUDA 文章 (2008/01/08)
      Hotball 寫的 CUDA 相關介紹,以一個平方和的程式為例子,一步一步地最佳化。對於要針對 CUDA 最佳化,可以參考。
       
    • 中文的 CUDA 影音課程! (2008/11/10)
      國家高速網路與計算中心在今年六月底時,邀請美國伊利諾州大學香檳分校的胡文美教授所開授的《NVIDIA CUDA 大量平行處理器程式設計訓練課程》的錄影;建議初學者可以參考看看。
       
    • 大陸版 CUDA ZONE (2008/04/07)
      大陸的 CUDA 官方網,有一些簡體中文的資料。
       
    • 一些關於 CUDA 的東西 (2008/12/02)
      一些 CUDA 相關的東西,包括 CUDA-Z、CUDA VS Wizard 2.0 等算相當實用的 CUDA 程式。
       
    • GPGPU 的一些東西 (2009/06/06)
      GPU 模擬器、Matlab 的 toolbox 的一些資料。
       
    • nVidia Performance Primitives (2009/6/11)
      nVidia 官方推出用來加速 CUDA 程式開發的函式庫;它裡面的功能,主要是針對影像和視訊處理的領域。
       
    • 一些 GPGPU 的東西 (2009/6/26)
      基於 CUDA 的 GPU 使用率量測方法、CuPP Framework。

    實際應用:


    參考資料整理

    Comments (19)

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    Kwrote:
    原來如此,了解,謝謝你喔~
    回覆真快,效率第一~呵呵,
    THX
    Aug. 20
    Heresy Kwrote:
    to stephenk
    您好,基本上在用 Visual C 寫 CUDA 的程式的時後,應該是沒辦法用這種方法來監看 device memory 的。VC 的間看功能,只能針對 host memory 的部分(系統記憶體)做監看,不能看顯示卡的記憶體;當你要看顯示卡上的記憶體資料時,其實看到的不會是正確的。
    真的要做確認的話,還是必須要再將記憶體由 device memory 複製回 host memory,才能做比較、間看。
    Aug. 20
    Kwrote:
    hello Heresy ,
    我常看您的CUDA教學文章,從中學到很多觀念,
    也因此省去很多查英文的時間 @@.. THX

    現在有個地方想不通..
    我在Debug程式時發現 cudaMemcpy() 這個函式
    複製過程中看到在GPU和CPU的記憶體所顯示出來的值不同

    如下列網址圖所示
    http://a.imagehost.org/0602/1_34.png

    照理說,複製應該是CPU 和GPU兩個記憶體上的值會是相同的?

    請問這個大該是什麼情況呢?...
    (我是執行SDK中的某一個程式..所以程式碼應該不會有錯?)

    麻煩您幫忙解答囉~ 謝謝
    Aug. 19
    Heresy Kwrote:
    mmm... I am not sure.
    But in the sample project "MersenneTwister", what it does is to generate a random number table "d_Random" by GPU.
    And what you need is to use this random number table.
    Is this right?

    I never use the CUDA 2.3 Beta, so I can't answer your question.. sorry.
    July 14
    I hope after we include the program, then we call the function to get the random number directly~ PS: It sounds that CUDA 2.3 betas doesn't support "random()
    yet.
    July 13
    Heresy Kwrote:
    抱歉,Heresy 沒有研究過 MersenneTwister 這個範例,所以也不太清楚他是在幹嘛的。
    不過,不知道你是希望怎樣和他一起使用?
    July 13
    Hello~ I'm recently confused about the random number generator in CUDA. Although there is a "MersenneTwister" in the CUDA SDK, does there is any simple example about how to incorporate the functions of this program? Thanks a lot for your helps.
    July 12
    Heresy Kwrote:
    所以看來應該是 nvcc.profile 被不知名程式改寫了…
    Heresy 也沒碰過這問題,到是無從判斷了
    Apr. 30
    毅維 劉wrote:
    不過我根本沒修改過內容耶,
    不知道為什麼會突然變這樣。
    Apr. 30
    Heresy Kwrote:
    您好,編譯指令看來應該沒有明顯的錯誤,錯誤的部分應該是 nvcc 的 profile 的部分。
    不知道您是否有修改過 C:\CUDA\bin\nvcc.profile 這個檔案?

    Heresy 這邊這個檔案的內容是:

    TOP = $(_HERE_)/..

    PATH += $(TOP)/extools/bin;$(TOP)/open64/bin;$(TOP)/bin;$(TOP)/lib;

    INCLUDES += "-I$(TOP)/include" "-I$(TOP)/include/cudart" $(_SPACE_)

    LIBRARIES =+ $(_SPACE_) "/LIBPATH:$(TOP)/lib" cudart.lib

    CUDAFE_FLAGS +=
    OPENCC_FLAGS +=
    PTXAS_FLAGS +=
    Apr. 30
    毅維 劉wrote:
    想問個問題:
    我照著 [使用 Visual Studio 2005 建立新 CUDA 專案] 這篇去做修改,
    可是之後卻無法跑CUDA了,原本都還可以跑,不知道是哪邊出了問題?
    1>"C:\CUDA\bin\nvcc.exe" -arch sm_10 -ccbin "C:\Program Files\Microsoft Visual Studio 8\VC\bin" -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MT " -maxrregcount=32 --compile -o Debug\kernel_texture.cu.obj kernel_texture.cu
    1>nvcc fatal : Wrong syntax in file C:\CUDA\bin/nvcc.profile: "version="1.0" encoding="utf-8"?>"
    1>Compiling with CUDA Build Rule...
    1>"C:\CUDA\bin\nvcc.exe" -arch sm_10 -ccbin "C:\Program Files\Microsoft Visual Studio 8\VC\bin" -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MT " -maxrregcount=32 --compile -o Debug\kernel.cu.obj kernel.cu
    1>nvcc fatal : Wrong syntax in file C:\CUDA\bin/nvcc.profile: "version="1.0" encoding="utf-8"?>"
    1>正在連結...
    1>LINK : fatal error LNK1181: 無法開啟輸入檔 '.\Debug\kernel.cu.obj'
    我現在完全不能跑CUDA,希望能幫個忙
    Apr. 30
    Heresy Kwrote:
    只要註明出處,飲用是沒問題的~
    希望你也能有一些中文的原創技術文件了~ :)
    Aug. 31
    Xeon Freemanwrote:
    感謝Heresy大,目前我有些進展了,也在Xeon 's Space發布CUDA筆記,
    以整理進度和強化CUDA國際正體中文的文獻
    若有引用部分文字會事先告知,目前正向您取得引用部分文章的授權許可
    *****************************
    目前引用1次,"Device Info".引用文章在
    http://ayuminisisam.spaces.live.com/blog/cns!E699F8D8746C68BE!2667.entry
    Aug. 31
    Heresy Kwrote:
    應該是。他有的需要的檔案,似乎沒有在那份壓縮檔裡
    Aug. 11
    Locustwrote:
    謝謝你的回答
    我有試過用cudasift在在visual studio下建立一個新的專案
    仍無法執行 但這應該和makefile不完整沒有關係吧? 
    謝謝!!!
     
     
    Aug. 11
    Heresy Kwrote:
    大概看了一下,cudaSIFT 應該算是包好的一份 CUDA 套件吧?不過他應該是只有針對 Linux 平台去寫 makefile,要用 VisualC++ 來編譯應該要建立一個新的專案。
     
    不過如果真的進去看 Makefile 的內容,卻又可以發現其實有缺東西?
    不知道是本來就這樣?還是是有刪減過?
    Aug. 5
    Locustwrote:
    hello!!
    我是最近剛開始學習cuda的新手
    很感謝這個部落格 幫助相當多
    不過我最近遇到些問題
    請問您知不知道如何將以下連結的檔案
    在visual studio下run起來 謝謝
     
     
    Aug. 4
    Heresy Kwrote:
    sure, you can post some code here  :)
    May 5
    Hi. I'm a newbie to CUDA. Thanks for the nice documents.
    However, currently I still cannot make my HelloWorld works :(. If you agree, can I post my code here? (or we can discuss in MSN).
     
    Best regards
    May 4

    Trackbacks

    The trackback URL for this entry is:
    http://heresy.spaces.live.com/blog/cns!E0070FB8ECF9015F!3114.trak
    Weblogs that reference this entry
    • None