小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

使用nvcc從CUDA創(chuàng)建 DLL

 LibraryPKU 2018-03-20

為了從外部C 程序中使用這個(gè)庫,我想從一個(gè)CUDA代碼( kernel.cu ) 創(chuàng)建一個(gè). dll 。 經(jīng)過一些嘗試后,我在. cu 文件中留下了一個(gè)簡單的C 函數(shù)。 代碼如下:

kernel.cu

#include 
#include"kernel.h"
void hello(const char *s) {
 printf("Hello %sn", s);
}/*

kernel.h

#ifndef KERNEL_H
#define KERNEL_H
#include"cuda_runtime.h"
#include"device_launch_parameters.h"
#ifdef __cplusplus
extern"C" {
#endif
void __declspec(dllexport) hello(const char *s);
#ifdef __cplusplus
}
#endif
#endif//KERNEL_H

我嘗試首先使用 nvcc 生成一個(gè) kernel.o 對象,然后使用 g++ 創(chuàng)建 DLL,如下所示:

nvcc -c kernel.cu -o kernel.o
g++ -shared -o kernel.dll kernel.o -L"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv5.0libx64" -lcudart

它工作正常并生成 kernel.dll 。 為了測試DLL文件,我編寫了這個(gè)簡單的程序 main.c:

#include 
#ifdef __cplusplus
extern"C" {
#endif
void __declspec ( dllimport ) hello(const char *s);
#ifdef __cplusplus
}
#endif
int main(void) {
 hello("World");
 return 0;
}

編譯為:

g++ -o app.exe main.c -I"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv5.0include" -L. -lkernel

當(dāng)執(zhí)行開始時(shí)產(chǎn)生內(nèi)存訪問錯(cuò)誤。

但是,如果我在. c ( 因?yàn)樗皇荂 代碼) 中重命名. cu 文件,使用相同的命令,它就。 nvcc的輸出更改,因?yàn)槲抑?,因?yàn)樗褂媚J(rèn)的C 編譯器而不是使用ipqos一個(gè)。

你覺得這跟nvcc有什么關(guān)系? 還是我在犯錯(cuò)誤?

:我忘了一些可能重要的信息。 在 G++ ( 創(chuàng)建dll時(shí)) 第一次調(diào)用時(shí)出現(xiàn)警告,它們不同于. cu. c 或者. cpp.

光標(biāo)

Warning:. drectve `/FAILIFMISMATCH:"_MSC_VER=1600"/FAILIFMISMATCH:"_ITERATOR_DEBUG_LEVEL=0" 
/DEFAULTLIB:"libcpmt"/DEFAULTLIB:"LIBCMT"/DEFAULTLIB:"OLDNAMES"/EXPORT:hello ' unrecognized

而且它不工作。

cpp和。c

Warning:. drectve `/DEFAULTLIB:"LIBCMT"/DEFAULTLIB:"OLDNAMES"/EXPORT:hello ' unrecognized

而且它。

【Note】

已經(jīng)解決。我仍然不知道為什么發(fā)生了( 也許是因?yàn)闆]有使用像羅伯特。com這樣的正式的官方編譯器),但是替換了這兩個(gè)命令作為一個(gè)程序:

nvcc -o kernel.dll --shared kernel.cu

注意雙擊( nvcc以此方式工作),以及直接創(chuàng)建一個(gè) .o 而不是創(chuàng)建第一個(gè),然后從對象創(chuàng)建 DLL 。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多