fix GPU driver open and close for Huawei NDS file sytem (#3)
Copyright (c) 2025 MetaX Integrated Circuits (Shanghai) Co., Ltd. All Rights Reserved.
fio(Flexible I/O Tester)是一款功能强大且灵活的开源磁盘 I/O 性能测试工具。它可以对块设备(比如磁盘、固态硬盘等)以及文件系统进行多种类型的 I/O 性能测试,在存储系统的性能评估、优化等方面有着广泛应用。
fio支持多种I/O引擎,其中包括libcufile和psync。我们将fio移植到MACA软件栈并命名为mxfio(可执行文件仍名为fio),使用libcufile引擎测试MACA MAS特性。 在使用libcufile I/O引擎时,通过cuda_io指定往显存中读写使用的I/O引擎。
通过灵活使用不同的I/O引擎,可以对比Storage <-> CPU,Storage <-> GPU, Storage <– CPU –> GPU 三种不同数据通路下的各种IO的性能。
mxfio编译安装请参考build.sh
首先设置环境变量如下:
export MACA_PATH=/opt/maca export LD_LIBRARY_PATH=/opt/maca/lib:/opt/mxdriver/lib
build.sh内容如下:
../configure --enable-cuda --enable-libcufile # 执行编译前的配置,自定义一部分功能是否开启并且检测当前平台是否有其余功能的对应支持,结果打印到终端并存储到同一目录下的config-host.h # 如需启用Huawei NDS file system,将nds_api.h(其中需注释掉enum nds_file_op_err_s定义,因其在cudatocann.h中重新封装)和nds_file.h拷贝至mxFIO目录,并将libndsfs.so拷贝至/opt/maca/lib, 执行../configure --enable-cuda --enable-libcufile --enable-nds make -j 12 sudo make install
如果需要完整执行预期的所有UT case,请在编译前安装aio以及CUnit
sudo apt install libaio1 libaio-dev libcunit1 libcuit1-dev
一般情况下我们使用*.fio文件指定mxfio的各项运行参数
fio example.fio
以下配置参数可供参考:
[test] ioengine=libcufile bs=1M size=4G direct=1 gpu_dev_ids=0 cuda_io=cufile readwrite=write ramp_time=4 numjobs=1 end_fsync=1 group_reporting
mxfio支持的其他参数配置,参考HOWTO.rst或者 Welcome to FIO’s documentation!。
mxfio 测试完成后会输出详细的测试结果报告,常见的指标有:
当前移植的mxfio基于开源fio-3.40版本axboe/fio,依赖glibc 2.30及其以上。Ubuntu18.04 OS中默认安装的glibc 版本低于V2.30, 无法运行当前移植的mxfio。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
Copyright (c) 2025 MetaX Integrated Circuits (Shanghai) Co., Ltd. All Rights Reserved.
mxfio
fio(Flexible I/O Tester)是一款功能强大且灵活的开源磁盘 I/O 性能测试工具。它可以对块设备(比如磁盘、固态硬盘等)以及文件系统进行多种类型的 I/O 性能测试,在存储系统的性能评估、优化等方面有着广泛应用。
fio支持多种I/O引擎,其中包括libcufile和psync。我们将fio移植到MACA软件栈并命名为mxfio(可执行文件仍名为fio),使用libcufile引擎测试MACA MAS特性。 在使用libcufile I/O引擎时,通过cuda_io指定往显存中读写使用的I/O引擎。
通过灵活使用不同的I/O引擎,可以对比Storage <-> CPU,Storage <-> GPU, Storage <– CPU –> GPU 三种不同数据通路下的各种IO的性能。
编译
mxfio编译安装请参考build.sh
首先设置环境变量如下:
build.sh内容如下:
如果需要完整执行预期的所有UT case,请在编译前安装aio以及CUnit
运行
一般情况下我们使用*.fio文件指定mxfio的各项运行参数
以下配置参数可供参考:
mxfio支持的其他参数配置,参考HOWTO.rst或者 Welcome to FIO’s documentation!。
mxfio 测试完成后会输出详细的测试结果报告,常见的指标有:
当前移植的mxfio基于开源fio-3.40版本axboe/fio,依赖glibc 2.30及其以上。Ubuntu18.04 OS中默认安装的glibc 版本低于V2.30, 无法运行当前移植的mxfio。