Cuda 将cuBLAS子例程(FORTRAN绑定)与FORTRAN子例程链接时出现问题

Cuda 将cuBLAS子例程(FORTRAN绑定)与FORTRAN子例程链接时出现问题,cuda,fortran,intel-fortran,cublas,Cuda,Fortran,Intel Fortran,Cublas,我正在尝试使用GPU优化一些分子模拟代码(完全用fortran编写)。我开发了一个小的子程序,它使用cuBLAS fortran绑定库(Linux上的non-thunking-/usr/local/cuda/src/fortran.c)执行矩阵向量乘法 当我在代码的其余部分之外测试子例程时(即没有任何其他外部子例程调用),一切正常。在编译时,我使用了这些标记-names大写-asked nounderscore。如果没有它们,我将收到未定义的引用错误 当将其移植到分子动力学代码的主函数中时,-a

我正在尝试使用GPU优化一些分子模拟代码(完全用fortran编写)。我开发了一个小的子程序,它使用cuBLAS fortran绑定库(Linux上的non-thunking-/usr/local/cuda/src/fortran.c)执行矩阵向量乘法

当我在代码的其余部分之外测试子例程时(即没有任何其他外部子例程调用),一切正常。在编译时,我使用了这些标记
-names大写-asked nounderscore
。如果没有它们,我将收到未定义的引用错误

当将其移植到分子动力学代码的主函数中时,
-aspection nounderscore-names uppercase
标记会将主程序中的所有其他函数调用都搞乱

有办法解决这个问题吗?请参考我之前的问题,其中建议使用
-假设名词分数-名称大写


提前谢谢

我会尝试Fortran-C互操作。有点像

interface
  function cublas_alloc(argument list) bind(C, name="the_binding_name")
    defs of arguments
  end function
end interface
绑定名称可以是大写或小写,随您需要而定,例如,
bind(C,name=“CUBLAS\u ALLOC”)
。不会在其后面添加下划线

iso_c_绑定
模块可能也会有所帮助