大家都知道,不同的编译器有不同的-L和-I,而在编译过程中要实现两种编译器的混合使用,利用Makefile是一个很好地解决方案,比如之前在mpi与cuda混合编程中讨论的那样,基于图形界面的GTK编程也只是在gcc 编译的基础之上加上gtk的库函数(`pkg-config --cflags --libs gtk -2.0`)而已,所以通过本人的实际操作,用Makefile解决也是可以的。这里需要注意的是:GTK与GPU kernels传递过程中,不要传递浮点型,否则会报错。

首先你需要编好一个图形界面的GTK程序,在这个程序中你会输入cuda代码需要的一些参数变量信息。
我的GTK程序名为:4_model_gtk_gpu.c

我的gpu程序名为:GPU.cu

那么,Makefile文件如下:

CUDA_INSTALL_PATH = /usr/local/cuda-7.5
MPI_INSTALL_PATH = /usrNVCC = $(CUDA_INSTALL_PATH)/bin/nvcc
GCC = $(MPI_INSTALL_PATH)/bin/gccLDFLAGS = -L$(CUDA_INSTALL_PATH)/lib64
LIB = -lcudart -lcurand
LGTK = `pkg-config --cflags --libs gtk -2.0`CFILES = 4_model_gtk_gpu.c
CUFILES = GPU.cu
OBJECTS = 4_model_gtk_gpu.o GPU.o
EXECNAME = aall:$(GCC) -c $(CFILES)  $(LGTK)$(NVCC) -c $(CUFILES)$(GCC) -o $(EXECNAME) $(LDFLAGS) $(LIB) $(LGTK) $(OBJECTS)clean:rm -f *.o $(EXECNAME)

整体上就是先生成.o的文件,再用这个文件作为库进行接下来的编译。最后用./运行。VTI介质的的代码我就不贴了,而GTK的代码在本人博客的GTK里面也已经给了详细的代码,这里也不再贴了,就给出几个图形界面的结果图吧。
下面是图形界面的主界面,目前我只完成了第一个模块的编程,RTM部分还没做。

点击模块按钮后,会跳出模块的具体参数填写窗口,同样的,你可以自己选择文件。

在终端会显示如下信息:

希望接下来在完成RTM的部分时不会遇到太多麻烦!!!!!!!!!!!!

Gtk与Cuda混合编程相关推荐

  1. C与CUDA混合编程的配置问题

    C与CUDA混合编程的配置问题 2015-10-05 19:58 526人阅读 评论(2) 收藏 举报 分类: CUDA(6) 目录(?)[+] 原文: http://blog.csdn.net/u0 ...

  2. c++和cuda混合编程记录(一)

    最近在用cuda将RT并行化. 很多人都说,最好使用c来写cuda,不要用类,尽量用struct代替.因为在cuda里面使用oo来套现在会有很多问题. 我也试过,确实很多问题,之前用cpp写的光线追踪 ...

  3. Java与Cuda混合编程

    基本上和Java与C语言混合编程(链接)相同,就是在生成动态库的编译过程不同. 首先编写一个名为Main.java的文件,内容如下: class NativeMethod{public native ...

  4. Mpi与Cuda混合编程(Makefile)

    需要建立一个.c的MPI程序和一个.cu的CUDA程序,MPI程序中调用CUDA中的函数来完成并行与GPU的混合编程,我查询了很多资料和博客,最终得出结论,还是Google比较强大,百度什么的还是搜不 ...

  5. CUDA、SU、MPI和Madagascar混合编程的Makefile文件配置

    本人从事地震勘探的科研工作,在Ubuntu系统中用CUDA.SU.MPI和Madagascar做C语言的混合编程.多语言混合编程,关键之处在于Makefile文件的配置.在此给出一个简单的示例,供大家 ...

  6. CUDA C编程接口技术分析

    CUDA C编程接口技术分析 编程接口 CUDA C为熟悉C编程语言的用户提供了一个简单的路径,可以方便地编写程序供设备执行. 它由C语言的最小扩展集和运行库组成. 核心语言扩展已经引入:cuda c ...

  7. CUDA C++编程接口:编译

    CUDA C++编程接口:编译 一.概述 CUDA C++为熟悉C++编程语言的用户提供了一个简单的路径,以方便地编写程序以执行该设备. 它由一组最小的扩展到C++语言和运行库. 在编程模型中引入了核 ...

  8. matlab两个多项式相除,C++和MATLAB混合编程求解多项式系数(矩阵相除)

    摘要:MATLAB对于矩阵处理是非常高效的,而C++对于矩阵操作是非常麻烦的,因而可以采用C++与MATLAB混合编程求解矩阵问题. 主要思路就是,在MATLAB中编写函数脚本并使用C++编译为dll ...

  9. matlab求解多项式系数,C++和MATLAB混合编程求解多项式系数(矩阵相除)

    摘要:MATLAB对于矩阵处理是非常高效的,而C++对于矩阵操作是非常麻烦的,因而可以采用C++与MATLAB混合编程求解矩阵问题. 主要思路就是,在MATLAB中编写函数脚本并使用C++编译为dll ...

最新文章

  1. Nginx基本配置、性能优化指南
  2. Scrapy+Scrapy-redis+Scrapyd+Gerapy 分布式爬虫框架整合
  3. maya导入abc动画_三维文件格式知多少 | abc、glTF、fbx、obj、dae、stl、3ds...
  4. 指针的引用做函数的参数
  5. python网络爬虫系列(十)——chrome在爬虫中的使用
  6. 对当今社会的某些现象的感想
  7. What is DevOps?
  8. ASP.NET教程4
  9. AJAX初始化combox 并取值
  10. 前端数据/文件提交的三种方式
  11. 一分钟内搞定!熊猫杀毒软件研发提升扫描速度的技术
  12. dataworks 生成表血缘依赖
  13. ajax请求参数为数组解决方案
  14. 课程能力建设:提高五年制高职教学有效性的重要途径
  15. 龙腾世纪:起源–最后的古代墓碑和剑圣盔甲
  16. 漏洞建议:实施 TLS_FALLBACK_SCSV。此外,要么完全禁用 SSLv3,要么禁用以通过 SSLv3 的 CBC 模式操作的所有密码套件
  17. 基于VC++6.0开发俄罗斯方块(五)
  18. 【洛谷 P7299】 【并查集】 Dance Mooves S
  19. TcaplusDB君 · 行业新闻汇编(11月08号)
  20. 世界危机四伏 难道2012真的存在

热门文章

  1. 2019.08.27BOM的六个子对象(2)
  2. linux查看log软件
  3. 深入理解 sudo 与 su 之间的区别【转】
  4. python 发包爬取中国移动充值页面---可判断手机号是否异常
  5. C语言学习 数独游戏
  6. 【操作系统】笔记6 java基本类型及运算
  7. mysql备份恢复数据库据/表
  8. jQuery框架总体分析
  9. 百度地图利用位置提供服务器,利用百度地图API获取当前位置信息的实例
  10. python直方图教程_python如何画直方图