[英]C++ - Why do I have to include .cpp file along with/ instead of .h file to acces the value of a global variable in the following case?
[英]How do I include cufft.h file in a fortran code?
我有一個 Fortran 代碼,可以在 CPU 上運行,但我需要使用 GPU 加速它,我選擇使用 OpenACC 來實現。 此代碼在使用 gfortran 編譯時使用 FFTW 庫。 但是,您可能知道,這些庫不能與 nvfortran 一起使用。 所以,我必須 go 與 cufft 圖書館。 因此,我使用了這個轉換giude。 問題是,fftw 允許用戶使用包含文件 fftw.f 的 iso_c_binding 構建一個 Fortran 模塊,而 cufft 沒有這種功能,您需要包含 cufft.h header。
使用 nvfortran 編譯時(我使用 -cpp、-Mfree、-lcufft 和 -l cufftw 標志,檢查了給定 -I 和 -L 標志的 include 和 lib 目錄)我得到很多錯誤:
請幫助我,我不認為正確的方法是手動更改文件......
在此先感謝您的幫助
您不能在 Fortran 源代碼中包含 C 編程語言的標頭。 而是將Fortran 接口用於您需要的任何庫(前提是存在此類接口)。
我們隨編譯器一起提供一個 cuFFT 接口模塊。 您應該能夠添加“使用袖帶”。
完整文檔可在以下位置找到: https://docs.nvidia.com/hpc-sdk/compilers/fortran-cuda-interfaces/index.html#cf-fft-runtime
示例代碼隨 NVHPC SDK 一起提供,可以在“<INSTALL_DIR>/Linux_x86_64/<RELEASE>/examples/CUDA-Libraries/cuFFT/”目錄中找到
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.