Makefile(2)加了一些新东西
2017-06-23 15:00
246 查看
在简单实现编译连接功能的makefile基础上,本节加入一些新的元素,包括两部分改进(makefile符号使用和nvcc命令)。
这次编译的是《GPU高性能编程CUDA实战》第四章的样例代码。
这是要编译的文件:
执行make edit。
这是编译完生成的可执行文件:
这是我这次写的Makefile:
对比上一版Makefile,结构基本没有改动,新添加的内容是:
1.可以定义更多的字符串变量,比如,compiler=nvcc,在调用时对应改成$(compiler)即可。之后,可以在Makefile里添加编译器选择的部分。
2.$<表示依赖文件(或文件列表),如果之前依赖文件有很多的话,在编写执行指令处可以用这个代替,make执行时自动替换。
3.$@表示目标文件(或文件列表),同上。
4.nvcc的指令加入了gpu计算架构版本和sm版本,之后还会继续简化。
5.针对第四章julia集编译不过的情况,给出解决方案是在nvcc指令中加入“ -lGL -lglut”选项,还有在 cuComplex( float a, float b ) : r(a), i(b) {}前加上 __device__。
这次编译的是《GPU高性能编程CUDA实战》第四章的样例代码。
这是要编译的文件:
执行make edit。
这是编译完生成的可执行文件:
这是我这次写的Makefile:
objects=add_loop_cpu add_loop_long add_loop_gpu \ julia_gpu julia_cpu compiler=nvcc edit:$(objects) add_loop_cpu:add_loop_cpu.cu $(compiler) $< -o $@ --gpu-architecture=compute_50 --gpu-code=sm_50,sm_52 add_loop_gpu:add_loop_gpu.cu $(compiler) $< -o $@ --gpu-architecture=compute_50 --gpu-code=sm_50,sm_52 add_loop_long:add_loop_long.cu $(compiler) $< -o $@ --gpu-architecture=compute_50 --gpu-code=sm_50,sm_52 julia_gpu:julia_gpu.cu nvcc $< -lGL -lglut -o $@ --gpu-architecture=compute_50 --gpu-code=sm_50,sm_52 julia_cpu:julia_cpu.cu nvcc $< -lGL -lglut -o $@ --gpu-architecture=compute_50 --gpu-code=sm_50,sm_52 #-lGL -lglut:来自于OpenGL clean:$(objects) rm $(objects) .PHONY:clean
对比上一版Makefile,结构基本没有改动,新添加的内容是:
1.可以定义更多的字符串变量,比如,compiler=nvcc,在调用时对应改成$(compiler)即可。之后,可以在Makefile里添加编译器选择的部分。
2.$<表示依赖文件(或文件列表),如果之前依赖文件有很多的话,在编写执行指令处可以用这个代替,make执行时自动替换。
3.$@表示目标文件(或文件列表),同上。
4.nvcc的指令加入了gpu计算架构版本和sm版本,之后还会继续简化。
5.针对第四章julia集编译不过的情况,给出解决方案是在nvcc指令中加入“ -lGL -lglut”选项,还有在 cuComplex( float a, float b ) : r(a), i(b) {}前加上 __device__。
相关文章推荐
- makefile的一些有用的东西,自己记录下
- 今天看了些JSTL表达式的一些相关东西,整理一下...
- 关于 sql server 数据库权限乱七八糟的一些东西
- 关于位域的一些东西
- 关于升级swif3.0的一些东西
- css样式表最基本的一些东西
- Swing 一些零散东西
- 今天(2007-02-06)收集到一些东西
- 最近学到的一些东西
- 记录一些东西防忘
- Makefile 中经常会用到一些内置的标准变量
- centos 6.5 安装qemu-2.1.3(虽然失败但还是学到了一些东西)
- 有关group by的一些东西
- C#中一些常用到的东西```函数之类的(欢迎跟贴)
- 一些有用的东西集合
- 做百度SEO最好别碰的一些东西
- dpkg一些东西
- shell的一些基础东西(流程控制等。。。)
- 我LR11安装前忽略了一些必要的东西
- 关于RN中FlatList的一些东西,以及FlatList为什么会得到多个只显示几个信息的原因