簡體   English   中英

為什么printf在CUDA中不起作用?

[英]Why printf is not working in CUDA?

我引用的鏈接說,如果您的設備的計算能力大於2.0,則可以在CUDA內核中使用printf()函數。 當我嘗試相同的操作時,出現錯誤“不允許從全局函數(“ mat_mul”)調用主機函數(“ printf”)” ,但是當我在Eclipse nsight上運行相同的代碼時,我得到了預期的輸出和printf( )函數得到執行。 為什么nsight會有如此不同的行為?

您引用的錯誤:

“不允許從全局函數(“ mat_mul”)調用主機函數(“ printf”)”

源於編譯代碼,而不是運行代碼。

因此,區別在於您如何從“終端中的nvcc”進行編譯,以及如何在nsight中進行編譯。

如果使用附加的體系結構開關在終端中進行編譯:

nvcc -arch=sm_20 ...

錯誤應該消失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM