编译CUDA by example中的Julia Set 分形
来源:互联网 发布:服务器端编程python 编辑:程序博客网 时间:2024/04/28 00:07
1. 首先,编译环境说明:
Centos5.6 X86_64 (64位)
gcc 4.1.2
cuda 4.0
2. 进入路径,编译
[jliu@localhost chapter04]$ cd /media/disk/cuda_me/CUDA by example/chapter04
[jliu@localhost chapter04]$ nvcc julia_gpu.cu
在包含自 ../common/cpu_bitmap.h:20 的文件中,
从 julia_gpu.cu:18:
../common/gl_helper.h:44:21: 错误:GL/glut.h:没有那个文件或目录
[jliu@localhost chapter04]$
3. 查看../common/gl_helper.h:44
glut.h和glext.h在../common目录下,但glx.h是在标准库/usr/include/GL下(可用locate命令查找一下),可见头文件中的GL不是同一个。所以,将#include <GL/glut.h>和#include <GL/glext.h>更改为#include “GL/glut.h”和#include “GL/glext.h”即可。
4. 再次编译
错误提示:
julia_gpu.cu(42): error: calling a host function("cuComplex::cuComplex") from a __device__/__global__ function("julia") is not allowed
据说这个错误官网上有说明(个人还未验证),结构体cuComplex构造函数前需要添加限定符__device__。如下图所示:
5. 再次编译,如下图:
提示错误:
undefined reference to ‘glutInit’
undefined reference to 'glutInitWindowSize'
........
6. 编译时添加flags增加glut库:
nvcc julia_gpu.cu -lglut。
若提示/usr/bin/ld:cannot find -lglut,先检查LD_LIBRARY_PATH,加入/usr/lib64和/usr/lib,编译还是没用,则查找下glut:locate glut。
注意:这里的gult库不是CUDA by example中的,而是系统自带的glut库,所以编译添加这个库目录依旧没有用。
-lglut是为了找到系统库检索路径下的libglut.so文件,通常,libglut.so安装在/usr/lib64 (64-bit) 或 /usr/lib(32-bit)下,显然我的没有。
所以,安装glut库: yum install glut
再 updatedb。
再次查找glut: locate glut,结果如下图:
再次编译,还是一样的错误:/usr/bin/ld:cannot find -lglut
[jliu@localhost ~]$ ls -l /usr/lib64/ | grep glut
lrwxrwxrwx 1 root root 16 08-15 21:50 libglut.so.3 -> libglut.so.3.8.0
-rwxr-xr-x 1 root root 212740 2007-03-17 libglut.so.3.8.0
[jliu@localhost ~]$
可以看出,/usr/lib和/usr/lib64目录下还是没有libglut.so文件,而libglut.so是指向libglut.so.3的,所以可以添加软链接:
[root@localhost lib64]# ln -s libglut.so.3 libglut.so
再次查看:
[jliu@localhost ~]$ ls -l /usr/lib64/ | grep glut
lrwxrwxrwx 1 root root 12 08-16 08:21 libglut.so -> libglut.so.3
lrwxrwxrwx 1 root root 16 08-15 21:50 libglut.so.3 -> libglut.so.3.8.0
-rwxr-xr-x 1 root root 276472 2007-03-17 libglut.so.3.8.0
[jliu@localhost ~]$
7. 再次编译:nvcc julia_gpu.cu -lglut,成功!
运行脚本:./a.out,结果如下图:
还有注意的是,有时候需要添加-lGL库,即:nvcc julia_gpu.cu -lglut -lGL
- 编译CUDA by example中的Julia Set 分形
- Julia set code CUDA by example 常见问题
- cuda by example -julia
- CUDA By Example——Julia实例
- CUDA By Example 第四章Julia集
- CUDA by Example 源代码
- Julia分形
- CUDA By Example CUDA实战学习
- Mandelbrot Set & Julia Set -- 美丽分形 (C++, MFC + BCG + CxImage 实现)
- cuda by example 的代码的问题
- Julia set
- 《GPU高性能编程 CUDA实战》(CUDA By Example)读书笔记
- cuda的julia集运行错误解决办法- 《cuda by examples》第四章例子
- Julia分形算法VC++实现
- cuda julia & ripple
- CUDA Samples: Julia
- 《cuda by example》 book.h 头文件解析
- cuda by example 调试时候的若干问题的解决方案
- Spring 之注解事务 @Transactional
- hadoop 常用命令
- 服务器端以及客户端错误警报
- 点击图片链接不显示虚线边框【源代码】
- LwIP网络接口结构体---netif
- 编译CUDA by example中的Julia Set 分形
- j2ee编码问题
- python中 “按位与,或,异或”与C语言的不同
- ListActivity的应用
- mdev原理
- python之位运算,and , or
- 使用Jakarta Commons Pool处理对象池化
- 分层遍历二叉树,每层输出为一行
- NET面试题:C#中的using语句有什么作用