想用benchmark去测试GDS(GPUDirectStorage)的速度,一般会采用英伟达官方的Gdsio,但FIO在3.26版本中提供了可以使用GDS的引擎,所以笔者选择使用FIO和Gdsio做实验对比。
但苦于GDS关注度太低,非官方资料实在太少,即使是英文搜索也没有解决方案,整个安装过程非常艰难。所以动笔写下了本文,希望能给到后来者一些帮助。
0. 环境
本文的对象是已经装有GDS的开发者,所以不提供GDS相关的安装教程。
系统:ubuntu 18.04
GPU:Quadro p4000
1. 下载FIO
如果是一般用途的话,只需要apt/yum去从仓库去一键安装即可。但由于cufile引擎并非默认功能,我们需要从github或者其他途径去获取源代码安装。
$ git clone https://github.com/axboe/fio.git
2. 配置路径
进入到FIO文件夹中,可以运行
$ ./configure
去测试环境中的库是否完整。
之后我们就要确定在/usr/lib
中有libcudart.so
和libcufile.so
这两个链接,如果没有就在GDS的路径里找到源文件并新建一个链接到/usr/lib
中(此处注意创建链接时要用绝对路径)。
3. 修改配置
在确定好上一节内容无报错之后,我们就可以修改configure
文件来开启libcufile引擎了。
利用文字编辑器打开configure
,利用搜索功能查看# Default CFLAGS
部分,在CFLAGS行添加
I/usr/local/cuda/lib64 -I/usr/local/cuda/include -I/usr/lib
再利用搜索功能搜索compile_prog()
,在这个函数的do_cc
行中末尾添加
-ldl
同样利用搜索功能查找 # default options
部分,将其中的libcufile
和cuda
项都改为yes
。
最后,搜索# libcufile probe
部分,在#include <cufile.h>
后添加
#include <dlfcn.h>
完成后即可保存退出。
4. 应用配置并安装
完成上节内容后再次运行configure文件,配置通过后输入
$ make
进行编译,如果无报错既大功告成! 最后再输入
$ make install
完成最后的安装。
写下这些内容不过半小时的时间,不过解决这些足足用了我一天一夜才完成,小众领域探索不易,欢迎一起探索GDS的朋友们多多指教。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。