cuda 初學 04 基本概述

2021-07-02 11:36:15 字數 763 閱讀 8343

cuda c呈現給程式設計師的介面主要由兩大類api構成,它們分別是cuda runtime api和cuda driver api,runtime api實際上是對於driver api的封裝。driver api為使用者提供了更細一層的控制手段,通過它可以控制諸如cuda contexts(一種類似主機程序的概念)以及cuda modules(類似主機動態載入庫的概念)等更加底層的cuda模組。

nvcc編譯器:一方面,它需要將源**中執行在gpu端的**編譯得到能在cuda裝置上執行的二進位制程式。另一方面,它也需要將源**中執行在cpu端的程式編譯得到能在主機cpu上執行的二進位制程式。最後,它需要把這兩部分有機地結合起來,使得兩部分**能夠協調執行。

在cuda源**中,既包含在gpu裝置上執行的**,也包括在主機cpu上執行的**。因此,nvcc的第一步工作便是將二者分離開來,這一過程結束之後:

1. 執行於裝置端的**將被nvcc工具編譯為ptx**(gpu的彙編**)或者cubin物件(二進位制gpu**);

2. 執行於主機端的**將被nvcc工具改寫,將其中的核心啟動語法(如<<<...>>>)改寫為一系列的cuda runtime函式,並利用外部編譯工具(gcc for linux,或者vc compiler for windows)來編譯這部分**,以得到執行於cpu上的可執行程式。

完事之後,nvcc將自動把輸出的兩個二進位制檔案鏈結起來,得到異構程式的二進位制**。

初學RCE(ping eval函式)概述

rce remote command code execute 遠端連線命令 執行漏洞,簡稱rce漏洞。其中就包括ping遠端連線命令執行ping和遠端 執行evel命令木馬。if eval post txt 一句話木馬結合ping eval變數可以去除引號執行裡面的 簡單 示例 print eva...

CUDA 程式的優化 1 概述

cuda程式優化的最終目的,是以最短的時間,在允許的誤差範圍內完成給定的計算任務。在這裡,最短的時間 是指整個程式的執行時間,更側重於計算的吞吐量,而不是單個資料的延遲。在開始考慮使用gpu和cpu協同計算之前,應該先粗略地評估使用cuda是否能達到預想的效果,包括以下幾個方面 1.精度 目前,gp...

Linux初學 (一)Linux概述

linux系統以目錄的方式來組織和管理系統中的所有檔案。linux系統通過目錄將系統中的所有的檔案分級 分層組織在一起,形成了linux檔案系統的樹形結構層次。以根目錄 為起點,所有其他的目錄都是有根目錄派生而來的。linux系統有六種執行級別 命令init n 能夠切換不同的級別,n為級別號 0 ...