matlab如何使用cu文件,Matlab编译cuda的.cu文件
matlab函数,大体首先是用nvcc命令生成.o文件,然后用mex链接对应库文件,生成动态链接库(.mexw64等)。
测试环境:
1) Windows x64 + matlab + cuda 5.5 + vs2012
2) Ubuntu 12.04 amd64 server + matlab + gcc + cuda 5.5
windows用户需要根据自身编译器更改函数第10行,改为cl.exe所在文件夹。
如果第53行出错,请您在matlab中先mex -setup配置编译器。。。
使用方法e.g.
nvmex('a.cu');
function nvmex(cuFileName)
%NVMEX Compiles and links a CUDA file for MATLAB usage
% NVMEX(FILENAME) will create a MEX-File (also with the name FILENAME) by
% invoking the CUDA compiler, nvcc, and then linking with the MEX
% function in MATLAB.
if ispc % Windows
Host_Compiler_Location = '-ccbin "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64"';
CUDA_INC_Location = ['"' getenv('CUDA_PATH') '\include"'];
CUDA_SAMPLES_Location =['"' getenv('NVCUDASAMPLES5_5_ROOT') '\common\inc"'];
PIC_Option = '';
if ( strcmp(computer('arch'),'win32') ==1)
machine_str = ' --machine 32 ';
CUDA_LIB_Location = ['"' getenv('CUDA_PATH') '\lib\Win32"'];
elseif ( strcmp(computer('arch'),'win64') ==1)
machine_str = ' --machine 64 ';
CUDA_LIB_Location = ['"' getenv('CUDA_PATH') '\lib\x64"'];
end
else % Mac and Linux (assuming gcc is on the path)
CUDA_INC_Location = '/usr/local/cuda/include';
CUDA_SAMPLES_Location = '/usr/local/cuda/samples/common/inc';
Host_Compiler_Location = ' ';
PIC_Option = ' --compiler-options -fPIC ';
machine_str = [];
if ( strcmp(computer('arch'),'win32') ==1)
CUDA_LIB_Location = '/usr/local/cuda/lib';
elseif ( strcmp(computer('arch'),'win64') ==1)
CUDA_LIB_Location = '/usr/local/cuda/lib64';
end
end
% !!! End of things to modify !!!
[~, filename] = fileparts(cuFileName);
nvccCommandLine = [ ...
'nvcc --compile ' Host_Compiler_Location ' ' ...
'-o ' filename '.o ' ...
machine_str PIC_Option ...
' -I' '"' matlabroot '/extern/include "' ...
' -I' CUDA_INC_Location ' -I' CUDA_SAMPLES_Location ...
' "' cuFileName '" '
];
mexCommandLine = ['mex ' filename '.o' ' -L' CUDA_LIB_Location ' -lcudart'];
disp(nvccCommandLine);
warning off;
status = system(nvccCommandLine);
warning on;
if status < 0
error 'Error invoking nvcc';
end
disp(mexCommandLine);
eval(mexCommandLine);
end
matlab如何使用cu文件,Matlab编译cuda的.cu文件相关推荐
- java编译生成哪些文件_java编译后生成什么文件?生成的文件包括什么?
在大家编译完java程序的时候,都是会生成一个文件的,作为java新手不清楚java编译后生成什么文件?那么今天我们就给大家讲解一下这方面的内容,大家可以参考下文哦! java文件编译过后会生成一个c ...
- matlab 如何调用mex文件,matlab调用mex文件报错
尝试matlab调用c语言,已经编译出了.mexw32文件,无错误,调用此函数,matlab就崩溃,请大神帮忙看看吧! 提示错误如下: Stack Trace (from fault): [ 0] ...
- eclipse编译java项目class文件_动态编译 Java 代码以及生成 Jar 文件
导读: 最近在看 Flink 源码的时候发现到一段实用的代码,该代码实现了 java 动态编译以及生成 jar 文件.将其进行改进后可以应用到我们的平台上,实现在平台页面上编写 java 代码语句,提 ...
- 文件生成过程编译过程
目录 文件生成过程 编译整个过程 文件生成过程 文件生成的过程通常包括以下步骤: 1.编写源代码:在本地计算机上使用文本编辑器编写程序源代码文件,文件通常以特定的文件扩展名结尾,如.c..cpp..h ...
- Linux下文件的编译
一.文件的编译 gcc 文件名 c文件类型 .h --头文件 .h.--gch 头文件的编译结果,与头文件同时存在时,会被优先使用 .c --源文件 .i -- ...
- python怎么查找文件-Python寻找路径和查找文件路径的示例
Sys.path 指定用于模块搜索路径的字符串列表 也可以通过sys模块的append方法在Python环境中增加搜索路径. Sys.path.append("/usr/bin/" ...
- matlab怎么跑.cpp程序,MATLAB编译cpp文件
目的:打通MATLAB与VC之间的通道,实现用MATLAB调用VC程序,以及VC调用MATLAB程序. 上篇博客实现了将MATLAB的M文件编译成C/C++文件,exe应用程序.这篇实现MATLAB编 ...
- 【转】matlab与C/C++混合编程——在Windows/Linux上调用Matlab编译的动态库文件
转自:matlab与C/C++混合编程--在Windows/Linux上调用Matlab编译的动态库文件_sinat_18131557的博客-CSDN博客 date version comments ...
- matlab打开F90文件,ifort编译f90程序命令
F90=ifort ./configure --with-device=ch_p4 --prefix=/opt/mpich/intel –rsh=ssh –cc=icc –c++=icpc –fc=i ...
最新文章
- 工业4.0的小小思考
- Golang实践录:开篇
- 【Linux】Linux软件安装和定时任务
- Spring Security的HTTP基本验证示例
- hibernate二级缓存(二)二级缓存实现原理简单剖析
- gcc 源码下载地址
- Java 正则表达式的用法及常用方法
- 国产操作系统环境搭建(内含镜像资源)
- 浅谈FLUKE光缆认证?何为CFP?何为OFP?
- 内核驱动 (二)Linux按键驱动分析
- html制作透明正方形,用css3简单的制作3d半透明立方体图片详解
- Deepin系统应用商店 不可用 解决办法
- COSCon'22@Beijing | 北京分会场等你赴约
- 十万个为什么 —— 古代没有拼音,怎么认字?
- VS番茄插件的常用快捷键(提高工作效率)
- 51单片机模拟音乐详解
- python迭代器什么时候用_如何在python中使用迭代器
- uniapp的判断h5还是app的问题
- sort 函数排序之cmp浅析
- 【前端小项目】基于Vue全家桶的在线音乐播放器(提供在线演示)
热门文章
- linux进程上下文切换,Linux 性能分析总结之 CPU 上下文切换(二)
- 迅捷路由器 服务器无响应,如果路由器重启还是上不了网 几招搞定
- echarty轴自定义显示不全_表格打印不全怎么办?这招超简单!
- 王道408数据结构——第二章 线性表
- foreach循环符合就不往下走了_柴油发电机组冷却液循环故障解决方法
- 豆瓣9分,颠覆世界观的好书,每读一章就感叹一次:原来如此!(免费领)
- 女老师vs男老师的区别...
- 农商银行招聘计算机人员考什么,农商银行招聘考试题都考什么?
- 对象中multipartfile 空报错_Python 为什么会有个奇怪的“...”对象?
- 元胞自动机模型_【ABM仿真模拟】第三章 元胞自动机 B