本人研究地震勘探的全波形反演,最近在用CUDA+MPI加速反演过程。
写代码过程中最关键的是Makefile文件的编写,也是最难的。下面给出基于SU(Seismic Unix)的CUDA+MPI开发过程的Makefile文件:

# Makefile for GPU program based on SU (CUDA+MPI+SU)# Home path
SU_HOME = /home/xx/su
SU_HOME1 = /home/xx/su/src/Complex
MPI_HOME = /home/xx/openmpi
CUDA_HOME = /home/xx/cuda9# Which compiler
NVCC=nvcc# Include path
CFLAGS = -I$(SU_HOME)/include -I$(SU_HOME1)/include \-I$(CUDA_HOME)/include -I$(CUDA_HOME)/samples/common/inc \
         -I$(MPI_HOME)/include

# Lib path
LFLAGS = -L$(SU_HOME)/lib -L$(SU_HOME1)/lib \-L$(MPI_HOME)/lib \
         -L$(CUDA_HOME)/lib64

LD = -lsu -lpar -lcwp -lm \-lcublas -lcurand -lcufft -lcusparse -llapack \
     **-lgomp -Xcompiler -fopenmp -lmpi**CU_APPS=fdm2d_gpu_mpiall: ${CU_APPS}

%: %.cu-$(NVCC) -O2 -arch=sm_60 $(@F).cu -o $@ $(LD) $(LFLAGS) $(CFLAGS)

clean:rm -f ${CU_APPS}

希望对大家有用。有什么问题,欢迎留言。

CUDA、MPI和SU混编,MakeFile文件的编写相关推荐

  1. Linux平台Makefile文件的编写基础篇和GCC参数详解

    问:gcc中的-I.是什么意思....看到了有的是gcc -I. -I/usr/xxxxx..那个-I.是什么意思呢 最佳答案 答:-Ixxx 的意思是除了默认的头文件搜索路径(比如/usr/incl ...

  2. Makefile文件的编写

    文章目录 前言 第一个最简单的 Makefile 文件举例 第二个Makefile示例 第三个Makefile示例 第四个Makefile示例 第五个Makefile示例 总结 前言 Makefile ...

  3. Makefile文件的编写(实例详解)

    1.什么是Makefile? 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,Makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译 ...

  4. Makefile文件的编写规则

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 Makefile文件编写规则 文章目录: 1 makefile文件介绍 2 makefile文件编写 1 makefile文件介绍 makefile是 ...

  5. Makefile 文件的编写

    学习前的准备 需要准备的工程目录结构如下: . ├── add │ ├── add_float.c │ ├── add.h │ └── add_int.c ├── main.c └── sub├── ...

  6. Linux系统中编译大型C语言项目必备技能之:Makefile文件的编写

    文章目录 Makefile的介绍 Makefile的编写规范--简单举例 Makefile的编写规范--复杂举例 项目描述 编译需求 编译思路 Makefile的介绍 我们在阅读一些大型的C语言项目时 ...

  7. Linux下makefile文件的编写

    在学习如何编写makefile文件之前,我们首先需要了解什么是makefile文件: makefile描述了整个工程的编译和链接等规则.它指明了哪些文件需要先编译,哪写文件需要后编译,哪些文件需要重新 ...

  8. Linux编程——入门级Makefile文件编写

    前言 1.在Linux开发环境中,编写Makefile文件是一个必须的技能,虽然现在有好多IDE可以自动生成所需要的Makefile文件,但有时能看懂Makefile文件也是更好的了解项目的编译过程. ...

  9. 一步一步的写出你自己的makefile文件

    main:main.o add.o sub.ogcc -g main.o add.o sub.o -o main main.o:main.cgcc -g -c main.c -o main.o add ...

最新文章

  1. 饿了么交易系统5年演化史
  2. Bitmap的一个简单实现
  3. 县分计算机维修报废流程图,实验9 氨基甲酸铵分解反应标准平衡常数的测定.doc...
  4. 内核对象用于线程同步
  5. ​电赛 | 19年全国一等奖,北航学子回忆录(上)
  6. 据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?
  7. 蓝桥杯 2017年C语言混搭 C/C++
  8. height100%不能生效问题解决
  9. Python 2.6 升级到 2.7
  10. 使用Ahk2Exe工具将AutoHotKey脚本打包到Windows可执行文件
  11. [Hadoop]Sqoop 1.4.2中文文档(二)之数据导出
  12. 计算机网络实验三思考题,计算机网络实验思考题答案
  13. 零基础Python爬虫实现(百度贴吧)
  14. Python地理做图——学习笔记
  15. 【Python网络爬虫实战篇】使用selenium+requests爬取下载高清源视频:关于爬取m3u8文件链接解析为ts视频合并成mp4视频的分析实战
  16. Neuroimage | 孤独症与功能近红外光谱(fNIRS)综述
  17. Thunderbird配置Exchange邮箱
  18. Cannot find module 'xxx' 错误的解决方案
  19. [极客大挑战 2019]FinalSQL
  20. 猎豹移动卖资产救业绩:通过裁员降成本,海外失利转移至国内市场

热门文章

  1. spring整合应用安全框架Shiro
  2. 数学差学计算机和编程难吗,数学很差能学计算机吗
  3. oracle jinitiator版本太旧,Windows7系统运行java软件提示Oracle JInitiator版本太旧怎么办...
  4. 【2019.08.23】2019CCPC网络赛
  5. PhpStorm 中切换PHP版本
  6. Tesseract-OCR的简单使用与训练
  7. Javascript的websocket的使用方法
  8. 如何将shapefile进行拆分
  9. BOM配置与产品构造器
  10. Javascript 判断 object 的特定类