XMan_Liu 2015-06-22 13:21
浏览 1171
已结题

VS2013+Intel Fortran+Cublas

您好,在下fortran新手一枚.很冒昧的想向您请教一个fortran的问题。
概括来说是从fortran中调用c函数的问题。我的开发环境是VS2013+Intel fortran。我想在fortran中调用cublas库(Nvidia的一个使用GPU进行矩阵运算的c语言库)。

一般来说我们可以在fortran中定义如下的interface来调用c函数:

 Interface
integer function c_test( m ) BIND (C, NAME="Test")
        use iso_c_binding
        integer :: m
end function
end interface

而cublas官方提供了interface来给fortran调用c函数,但是interface被定义在c文件中,例如fortran.c。如下:

 typedef size_t devptr_t;

#if defined(__cplusplus)
extern "C" {
#endif /* __cplusplus */
int CUBLAS_INIT (void);
int CUBLAS_SHUTDOWN (void);
int CUBLAS_ALLOC (const int *n, const int *elemSize, devptr_t *devicePtr);
int CUBLAS_FREE (const devptr_t *devicePtr);
....
....
....
#if defined(__cplusplus)
}
#endif /* __cplusplus */

我在网上没有找到相关的知识,我想问的是
(1)是否从fortran调用c函数的时候,interface可以使用iso_c_binding的方法定义在 .f90文件中,也可以被定义在 .c文件中?
(2)像cublas这样把interface定义在 .c文件中,在vs2013中该如何实现呢,( Linux下生成.o文件,混合编译很简单,但是boss说必须要用windows)。我比较困惑该如何进行下去,您能告诉我该用什么方法么, 是vs下混合编译么

Thanks in advance

祝您工作顺利!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
    • ¥50 成都蓉城足球俱乐部小程序抢票
    • ¥15 yolov7训练自己的数据集
    • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
    • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
    • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)