出于加速计算的目的项目里需要用CUDA实现matlab部分计算然后使用matlab调用

由于计算部分需要的参数太多,往CUDA里一一传送太麻烦,所以先利用Matlab将这些参数存入到mat文件中,在CUDA c++代码中读取mat文件。

最终实现效果是在Matlab 代码中像调用函数一样调用mexw64文件(本质上是dll,linux平台拓展名是mexa64)来使用。

由于使用了CUDA无法直接用mex编译成mexw64,所以首先要使用nvcc将cu文件编译成obj文件以供mex链接。

项目总体结构

Ø  matlabfunction.m——调用CUDA的matlab主程序

Ø  mexmain.cpp——定义mexFunction的C++文件,并在内部读取mat文件,将参数传入CUDA以计算

Ø  kernel.cu——CUDA文件,有kernel函数的定义以及一个C++函数接收参数并调用kernel函数进行计算得到计算结果

代码结构

matlab.m

%matlab进行一些数据的处理

%.........

%调用编译出的mexw64/mexa64文件,将参数传入,得到计算结果

[result1,result2]=MexMain(arg1,arg2)

%计算结果的处理

%............

mexmain.cpp

#include "mat.h"

#include "mex.h"

extern int CUDAFunction(double* arg1,double*arg2);//kernel.cu文件中实现,主要功能是将参数传入CUDA kernel函数中利用GPU进行计算

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])

{//...

}

matlab调用cuda,Matlab 调用CUDA的总结(Windows、Ubuntu)相关推荐

  1. c 使用matlab引擎,[转载]C与MATLAB混合编程之调用MATLAB引擎

    Visual Studio调用MATLAB需要的配置已经在<Visual Studio调用MATLAB的配置>一文中给出了详细的步骤,本文将介绍混合编程的示例. 在C中调用MATLAB,据 ...

  2. Matlab.NET混合编程调用Figure窗体

    原文:[原创]Matlab.NET混合编程调用Figure窗体 1.前言 做Matlab.NET混合编程好几年了,虽然Matlab很多函数忘记得差不多了,但基本的东西还是能熟练使用.特别是在C#调用M ...

  3. quad8是matlab中调用那个,Matlab 数值积分

    MATLAB数值积分与微分 8.1 数值积分 8.1.1 数值积分基本原理 求解定积分的数值方法多种多样,如简单的梯形法.辛普生(Simpson)法.牛顿-柯特斯(Newton-Cotes)法等都是经 ...

  4. matlab常用工具箱的调用指令

    转自:http://blog.sina.com.cn/s/blog_86186c970102va9g.html Matlab常用工具箱的调用命令 1. 优化工具箱​​ 用途:优化问题 调用命令:在Co ...

  5. fortran调用matlab画图,[转载]Matlab与Fortran的交互--基本概念

    如果需要进行Matlab环绕Fortran语言的交互,必须通过Matlab提供的应用编程接口(API)来实现与外部的接口,从而可以在Matlab环境中实现调用Fortran程序.输入或输出数据以及和其 ...

  6. c 与matlab混编,C与MATLAB混合编程之调用MATLAB引擎

    Visual Studio调用MATLAB需要的配置已经在<Visual Studio调用MATLAB的配置>一文中给出了详细的步骤,本文将介绍混合编程的示例. 在C中调用MATLAB,据 ...

  7. C++ 接口 函数导出_Matlab与C/C++混合编程、Visual C++与Matlab封装库互相调用相关要点...

    [版本说明] Visual Studio 2010 Matlab2014a 64bit Windows7 64bit 以下是我安装的 Matlab2014a 支持的 C++混合编译器的SDK版本(为了 ...

  8. MATLAB 提取*.m 文件调用的所有函数

    MATLAB 提取*.m 文件调用的所有函数 clc clear filename = 'processGRDECL.m'; %依赖父文件 dir_colections = [pwd '\collec ...

  9. [C#] 调用MATLAB(Matlab COM接口) (一)调用函数

    目录 说明 一.Visual Studio 程序 1. Vs 新建项目 2. 编写 C# 程序 二.matlab.Execute() 1. MATLAB函数的输入输出 2. MATLAB Comman ...

  10. matlab 定义函数 调用,matlab 定义函数,matlab定义函数并调用

    matlab 定义函数,matlab定义函数并调用,Matlab自定义函数详解 很久以前写的一篇Matlab自定义函数访问量很大,可惜没有点赞的,我感觉是我没讲清楚,这里又写了一篇笔记 Matlab函 ...

最新文章

  1. 禁用TwebBrowser右键
  2. ssm_layui_billmanagersystem账单管理系统(全栈开发)
  3. 好婚姻必定是灵魂佳偶
  4. GDC 2012]Epic Games谈在智能手机上制作和台式游戏机同等级的图形游戏的经验
  5. MySQL 四种链接
  6. ASA 防火墙 工作原理与配置实例
  7. final cut pro x怎样导入3D LUT调色预设?
  8. 手机号码校验、邮箱校验
  9. c语言是高级编程语言吗,C语言是高级编程语言吗?
  10. WPF 矢量字体图标
  11. 自动驾驶汽车传感器融合系统及多传感器数据融合算法浅析
  12. UVa12235: Help Bubu 题解
  13. 【18年北京网络赛】Tomb Raider【递归求所有子序列】
  14. apatch zipoutputstream 进行解压缩时提示:不可预料的压缩文件末端
  15. oracle 本地连接不上,为什么Guardium S-TAP无法抓取Oracle本地连接(Bequeath)流量
  16. 物流学哪方面计算机知识,物流说丨物流专业的毕业生应该具备的6大技能
  17. Codeforces Round #828 (Div. 3) E1. Divisible Numbers (easy version) 解题报告
  18. websocket 并发_1230万个并发WebSocket
  19. set.seed的作用
  20. Hector代码原理推导

热门文章

  1. CentOS7.9下实战安装MySQL5.7
  2. mysql 多级主从_mysql主从复制-二级主从
  3. springcloud eureka集群_SpringCloud入门学习之Eureka
  4. ft232r usb uart驱动_构建基于USB的高精度温度传感器电路
  5. mysql存储过程返回结果集_原来MySQL的存储过程也可以这么玩?
  6. cad直线和圆弧倒角不相切_建议收藏:史上最全CAD快捷键大全
  7. mysql8019zip安装_Eclipse+java+mysql8019实现数据库连接
  8. 技术支持和测试的区别_PlatON测试网升级至0.13.0版本并正式启用全新账户地址格式 | 云图双周报2020.07.0107.15...
  9. Elastic-jobQuartz定时任务
  10. Dart教程(二):基本语法