CN110162469B - 一种基于cuda的fft软件库性能测试方法及装置 - Google Patents

一种基于cuda的fft软件库性能测试方法及装置 Download PDF

Info

Publication number
CN110162469B
CN110162469B CN201910344917.6A CN201910344917A CN110162469B CN 110162469 B CN110162469 B CN 110162469B CN 201910344917 A CN201910344917 A CN 201910344917A CN 110162469 B CN110162469 B CN 110162469B
Authority
CN
China
Prior art keywords
fft
fft software
fourier transform
performance
fast fourier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910344917.6A
Other languages
English (en)
Other versions
CN110162469A (zh
Inventor
赵志诚
赵亚群
黄良韬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Information Engineering University of PLA Strategic Support Force
Original Assignee
Information Engineering University of PLA Strategic Support Force
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Information Engineering University of PLA Strategic Support Force filed Critical Information Engineering University of PLA Strategic Support Force
Priority to CN201910344917.6A priority Critical patent/CN110162469B/zh
Publication of CN110162469A publication Critical patent/CN110162469A/zh
Application granted granted Critical
Publication of CN110162469B publication Critical patent/CN110162469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及测试技术领域,公开一种基于CUDA的FFT软件库性能测试方法,包括以下步骤:步骤1:构建多个测试平台,所述测试平台性能参数一致;步骤2:在各测试平台上搭建不同FFT软件库;步骤3:分别将测试数据输入不同FFT软件库,进行不同FFT软件库单双精度下的快速傅里叶变换;步骤4:基于步骤3中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件FFT算法的浮点运算性能进行比较;步骤5:基于步骤3中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件库FFT算法的运行时间进行比较。本发明还公开一种基于CUDA的FFT软件库性能测试装置。本发明可以对基于CUDA的FFT软件库进行性能测试。

Description

一种基于CUDA的FFT软件库性能测试方法及装置
技术领域
本发明涉及测试技术领域,特别涉及一种基于CUDA的FFT软件库性能测试方法及装置。
背景技术
傅里叶变换在物理学、数论、组合数学、信号处理、概率论、统计学、密码学、声学、光学、海洋学、结构力学等领域都已经有着广泛的应用。大型射电天文望远镜所收集的大量信号在处理时,通常需要大量用到FFT算法,对数据处理算法提出了较高的要求。
SKA(平方公里阵列射电望远镜)是国际上即将建造的最大综合孔径射电望远镜,由数量多达3000个的碟形天线构成。整个阵列中大约50%的望远镜天线位于中央核心区的5公里半径内,另外的25%将外延至200公里范围,最后的25%将延伸超过3000公里,最终所有望远镜被等效为一个反射面积高达1平方公里的超大望远镜。SKA建造的目的是为了解答目前困扰科学界的众多问题,如关于第一代天体如何形成、星系演化、宇宙磁场、引力的本质、地外生命与地外文明、暗物质和暗能量等。SKA建成后,将比目前最大厘米波综合孔径望远镜JVLA灵敏度提高50倍,搜寻速度提高10000倍。按计划望远镜阵列将安装于南非和澳大利亚沙漠中,并分别在开普敦和珀斯建立数据中心,以接收处理SKA产生的海量数据。
SKA的研究极度依赖于超级计算技术的支撑。随着工程的推进,数量庞大的望远镜阵列每天将接受大量数据,据估计每秒采集的数据量将大于12Tb,相当于2013年底中国互联网国际出口带宽的3.5倍,相当于谷歌每年数据量的30倍。这需要百亿次级别的超级计算机才能完成科学数据处理,相当于目前全球最快超级计算机天河2号性能的52倍。按现有的计算架构设计,这样的超级计算机不仅投资巨大,单是每年的电费支出就将是一笔天文数字。作为射电天文学数据成像过程中用到的基础数据处理算法,FFT算法在SKA的数据处理中占据重要地位。分析现有各种FFT软件库的数据处理性能,据此改进SKA数据处理流程中的相应部分,将有助于优化提高SKA数据处理能力。
发明内容
本发明提供一种基于CUDA的FFT软件库性能测试方法及装置,可以对基于CUDA的FFT软件库进行性能测试,从而根据测试结果得出FFT算法的优化方向。
为了实现上述目的,本发明采用以下技术方案:
一种基于CUDA的FFT软件库性能测试方法,包括:
步骤1:构建多个测试平台,所述测试平台性能参数一致;
步骤2:在各测试平台上搭建不同FFT软件库;
步骤3:分别将测试数据输入不同FFT软件库,进行不同FFT软件库单双精度下的快速傅里叶变换;
步骤4:基于步骤3中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件FFT算法的浮点运算性能进行比较;
步骤5:基于步骤3中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件库FFT算法的运行时间进行比较。
进一步地,所述性能参数包括CPU、GPU、内存、存储、操作系统及软件。
进一步地,所述FFT软件库包括:CLFFT、FFTW、CUFFT及SFFT。
一种基于CUDA的FFT软件库性能测试装置,包括:
构建模块,用于构建多个测试平台,所述测试平台性能参数一致;
搭建模块,用于在各测试平台上搭建不同FFT软件库;
快速傅里叶变换模块,用于分别将测试数据输入不同FFT软件库,进行不同FFT软件库单双精度下的快速傅里叶变换;
第一比较模块,用于基于快速傅里叶变换模块中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件FFT算法的浮点运算性能进行比较;
第二比较模块,用于基于快速傅里叶变换模块中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件库FFT算法的运行时间进行比较。
与现有技术相比,本发明具有的有益效果:
本发明的一种基于CUDA的FFT软件库性能测试方法及装置,首先通过构建多个测试平台,并在各测试平台上搭建不同FFT软件库;然后分别将测试数据输入不同FFT软件库,进行不同FFT软件库单双精度下的快速傅里叶变换;最后对单精度及双精度下不同FFT软件库FFT算法的浮点运算性能进行比较,对单精度及双精度下不同FFT软件库FFT算法的运行时间进行比较。通过上述方法实现了对基于CUDA的FFT软件库性能测试,可以会后续SKA数据处理流程中的相应部分的改进提供依据。本发明对CUFFT与FFTW两种FFT算法库的运算性能开展了评测,实验结果表明基于GPU加速的CUFFT库在浮点运算性能上要优于FFTW,在运行时间上,CUFFT也具有更好的稳定性。
附图说明
图1为本发明实施例的一种基于CUDA的FFT软件库性能测试方法的基本流程图;
图2为本发明实施例的一种基于CUDA的FFT软件库性能测试方法的单精度下CUFFT与FFTW中FFT算法的浮点运算性能比较曲线图;
图3为本发明实施例的一种基于CUDA的FFT软件库性能测试方法的双精度下CUFFT与FFTW中FFT算法的浮点运算性能比较曲线图;
图4为本发明实施例的一种基于CUDA的FFT软件库性能测试方法的单精度下CUFFT与FFTW中FFT算法的运行时间比较曲线图;
图5为本发明实施例的一种基于CUDA的FFT软件库性能测试方法的双精度下CUFFT与FFTW中FFT算法的运行时间比较曲线图;
图6为本发明实施例的一种基于CUDA的FFT软件库性能测试装置的结构示意图。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
实施例一:
如图1所示,一种基于CUDA的FFT软件库性能测试方法,包括以下步骤:
步骤S101:构建多个测试平台,所述测试平台性能参数一致;
具体地,所述性能参数包括CPU、GPU、内存、存储、操作系统及软件。作为一种可实施方式,本实施例中性能参数如表1、表2所示。
表1测试平台性能参数
Figure BDA0002041980960000031
Figure BDA0002041980960000041
所使用的Tesla K80GPU加速器性能参数如下:
表2GPU加速卡性能参数
Figure BDA0002041980960000042
步骤S102:在各测试平台上搭建不同FFT软件库;
具体地,所述FFT软件库包括:CLFFT、FFTW、CUFFT及SFFT。作为一种可实施方式,本实施例中基于CUDA对FFTW和CUFFT进行性能测试。
CLFFT基于OpenCL的一个包含FFT的软件库。除了支持GPU设备之外,还支持CPU设备来加速程序运行。
FFTW(Faster Fourier Transform in the West)是由麻省理工学院计算机科学实验室超级计算技术组的Matteo Frigo博士和Steven G.Johnson博士开发的一套离散傅里叶变换(DFT)计算库。
CUFFT是的全称是CUDAFast Fourier Transform,它提供了一系列的函数帮助开发者进行快速傅里叶变换的运算。
稀疏傅里叶变换(SFFT)是由麻省理工学院计算机科学和人工智能实验室研究出的,它被用来计算在频率域上稀疏的时域信号的离散傅里叶变换(DFT)。
步骤S103:分别将测试数据输入不同FFT软件库,进行不同FFT软件库单双精度下的快速傅里叶变换;具体地,测试数据为不同大小(M*N像素)的2维图像数据,各FFT软件库在单精度和双精度下的快速傅里叶变换后测试结果分别如表3、表4所示,其中Elapsedtime为运行时间,单位为毫秒,Gflps(GigaFloating-point Operations Per Second)为每秒10亿次的浮点运算数。表3.CUFFT单双精度下的快速傅里叶变换测试结果表
Figure BDA0002041980960000051
表4.FFTW单双精度下的快速傅里叶变换测试结果表
Figure BDA0002041980960000052
Figure BDA0002041980960000061
步骤S104:基于步骤S103中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件FFT算法的浮点运算性能进行比较;具体地,对单精度及双精度下FFTW和CUFFT的FFT算法的Gflps(每秒10亿次的浮点运算数)进行比较,结果如图2、图3所示。
步骤S105:基于步骤S103中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件库FFT算法的运行时间进行比较;具体地,对单精度及双精度下FFTW和CUFFT的FFT算法的Elapsed time(运行时间)进行比较,结果如图4、图5所示。
根据图2-5可以发现,FFTW在较小规模数据下,其浮点运算性能要高于CUFFT,随着数据量增大,CUFFT的并行运算性能得到发挥,相对于FFTW,其在浮点运算性能上的优势逐渐扩大。总体来看,FFTW在运行时其浮点运算性能保持在比较稳定的水平,CUFFT的浮点运算性能在不同数据输入下呈现出较大的波动性。由于CUFFT是并行算法库,因此在数据利于其并行分配任务时,算法性能就会提升,反之亦然。在程序运行时间上,两种软件库均存在较大的波动性,但是CUFFT波动的幅度要小于FFTW。在相同输入的实验数据下,本发明对CUFFT与FFTW两种FFT算法库的运算性能开展了评测,实验结果表明基于GPU加速的CUFFT库在浮点运算性能上要优于FFTW,在运行时间上,CUFFT也具有更好的稳定性。
本发明的一种基于CUDA的FFT软件库性能测试方法及装置,首先通过构建多个测试平台,并在各测试平台上搭建不同FFT软件库;然后分别将测试数据输入不同FFT软件库,进行不同FFT软件库单双精度下的快速傅里叶变换;最后对单精度及双精度下不同FFT软件库FFT算法的浮点运算性能进行比较,对单精度及双精度下不同FFT软件库FFT算法的运行时间进行比较。通过上述方法实现了对基于CUDA的FFT软件库性能测试,可以会后续SKA数据处理流程中的相应部分的改进提供依据。本发明对CUFFT与FFTW两种FFT算法库的运算性能开展了评测,实验结果表明基于GPU加速的CUFFT库在浮点运算性能上要优于FFTW,在运行时间上,CUFFT也具有更好的稳定性。
实施例二:
如图6所示,一种基于CUDA的FFT软件库性能测试装置,包括:
构建模块201,用于构建多个测试平台,所述测试平台性能参数一致;
搭建模块202,用于在各测试平台上搭建不同FFT软件库;
快速傅里叶变换模块203,用于分别将测试数据输入不同FFT软件库,进行不同FFT软件库单双精度下的快速傅里叶变换;
第一比较模块204,用于基于快速傅里叶变换模块203中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件FFT算法的浮点运算性能进行比较;
第二比较模块205,用于基于快速傅里叶变换模块203中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件库FFT算法的运行时间进行比较。
本发明的一种基于CUDA的FFT软件库性能测试方法及装置,首先通过构建多个测试平台,并在各测试平台上搭建不同FFT软件库;然后分别将测试数据输入不同FFT软件库,进行不同FFT软件库单双精度下的快速傅里叶变换;最后对单精度及双精度下不同FFT软件库FFT算法的浮点运算性能进行比较,对单精度及双精度下不同FFT软件库FFT算法的运行时间进行比较。通过上述方法实现了对基于CUDA的FFT软件库性能测试,可以会后续SKA数据处理流程中的相应部分的改进提供依据。本发明对CUFFT与FFTW两种FFT算法库的运算性能开展了评测,实验结果表明基于GPU加速的CUFFT库在浮点运算性能上要优于FFTW,在运行时间上,CUFFT也具有更好的稳定性。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (4)

1.一种基于CUDA的FFT软件库性能测试方法,其特征在于,包括:
步骤1:构建多个测试平台,所述测试平台性能参数一致;
步骤2:在各测试平台上搭建不同FFT软件库;
步骤3:分别将测试数据输入不同FFT软件库,进行不同FFT软件库单双精度下的快速傅里叶变换;
步骤4:基于步骤3中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件FFT算法的浮点运算性能进行比较;
步骤5:基于步骤3中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件库FFT算法的运行时间进行比较。
2.根据权利要求1所述的一种基于CUDA的FFT软件库性能测试方法,其特征在于,所述性能参数包括CPU、GPU、内存、存储、操作系统及软件;
具体包括:
CPU:2颗Intel Xeon E5-2620 V3处理器;
GPU:2块NVIDIA Tesla K80 GPU;
内存:8根16GB DDR4内存,共128GB,最大支持768GB;
存储:512GB SSD硬盘,1TB SAS高速硬盘;
操作系统:CentOS7;
软件:CUDA8.0,Python3.6。
3.根据权利要求1所述的一种基于CUDA的FFT软件库性能测试方法,其特征在于,所述FFT软件库包括:CLFFT、FFTW、CUFFT及SFFT。
4.一种基于CUDA的FFT软件库性能测试装置,其特征在于,包括:
构建模块,用于构建多个测试平台,所述测试平台性能参数一致;
搭建模块,用于在各测试平台上搭建不同FFT软件库;
快速傅里叶变换模块,用于分别将测试数据输入不同FFT软件库,进行不同FFT软件库单双精度下的快速傅里叶变换;
第一比较模块,用于基于快速傅里叶变换模块中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件FFT算法的浮点运算性能进行比较;
第二比较模块,用于基于快速傅里叶变换模块中不同FFT软件库快速傅里叶变换的结果,对单精度及双精度下不同FFT软件库FFT算法的运行时间进行比较。
CN201910344917.6A 2019-04-26 2019-04-26 一种基于cuda的fft软件库性能测试方法及装置 Active CN110162469B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910344917.6A CN110162469B (zh) 2019-04-26 2019-04-26 一种基于cuda的fft软件库性能测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910344917.6A CN110162469B (zh) 2019-04-26 2019-04-26 一种基于cuda的fft软件库性能测试方法及装置

Publications (2)

Publication Number Publication Date
CN110162469A CN110162469A (zh) 2019-08-23
CN110162469B true CN110162469B (zh) 2023-01-24

Family

ID=67640210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910344917.6A Active CN110162469B (zh) 2019-04-26 2019-04-26 一种基于cuda的fft软件库性能测试方法及装置

Country Status (1)

Country Link
CN (1) CN110162469B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103853648A (zh) * 2014-02-21 2014-06-11 北京神舟航天软件技术有限公司 嵌入式软件性能评测硬件辅助测试装置和方法
CN106951309A (zh) * 2017-04-25 2017-07-14 郑州云海信息技术有限公司 一种虚拟化平台虚拟机计算性能测试的方法及系统
CN107544943A (zh) * 2017-08-28 2018-01-05 湖南时变通讯科技有限公司 一种基于fft库函数的部分频点的计算方法及装置
CN109375606A (zh) * 2018-09-21 2019-02-22 北京广利核系统工程有限公司 一种算法库测试方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407275B2 (en) * 2008-10-22 2013-03-26 International Business Machines Corporation Fast floating point compare with slower backup for corner cases

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103853648A (zh) * 2014-02-21 2014-06-11 北京神舟航天软件技术有限公司 嵌入式软件性能评测硬件辅助测试装置和方法
CN106951309A (zh) * 2017-04-25 2017-07-14 郑州云海信息技术有限公司 一种虚拟化平台虚拟机计算性能测试的方法及系统
CN107544943A (zh) * 2017-08-28 2018-01-05 湖南时变通讯科技有限公司 一种基于fft库函数的部分频点的计算方法及装置
CN109375606A (zh) * 2018-09-21 2019-02-22 北京广利核系统工程有限公司 一种算法库测试方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FFT used for fabric defect detection based on CUDA;Zhonglun Pan .et;《2017 IEEE 2nd Advanced Information Technology, Electronic and Automation Control Conference》;20170326;全文 *
硬件模拟器对仿真加速的测试平台研究;曹立勇等;《西昌学院学报》;20160630;第30卷(第2期);全文 *

Also Published As

Publication number Publication date
CN110162469A (zh) 2019-08-23

Similar Documents

Publication Publication Date Title
Satish et al. Designing efficient sorting algorithms for manycore GPUs
Ren et al. Sparse LU factorization for parallel circuit simulation on GPU
Rocki et al. Accelerating 2-opt and 3-opt local search using GPU in the travelling salesman problem
US20170060811A1 (en) Matrix operands for linear algebra operations
Hou et al. Auto-tuning strategies for parallelizing sparse matrix-vector (spmv) multiplication on multi-and many-core processors
Cao et al. Implementing sparse matrix-vector multiplication using CUDA based on a hybrid sparse matrix format
US20190042926A1 (en) Deep compressed network
Byun et al. Benchmarking data analysis and machine learning applications on the Intel KNL many-core processor
Waidyasooriya et al. FPGA-based deep-pipelined architecture for FDTD acceleration using OpenCL
Hupca et al. Spherical harmonic transform with GPUs
CN110162469B (zh) 一种基于cuda的fft软件库性能测试方法及装置
Li et al. Enabling high performance deep learning networks on embedded systems
Zhang et al. CUDA-based Jacobi's iterative method
Zhao et al. The optimization of FFT algorithm based with parallel computing on GPU
Zhang et al. HLC2: a highly efficient cross-matching framework for large astronomical catalogues on heterogeneous computing environments
Sun et al. Cuda based fast implementation of very large matrix computation
Sun et al. Crsd: application specific auto-tuning of spmv for diagonal sparse matrices
Reza et al. CUDA-enabled Hadoop cluster for sparse matrix vector multiplication
Maringanti et al. Acceleration of conjugate gradient method for circuit simulation using CUDA
Wu et al. Two-stage column block parallel LU factorization algorithm
Hidayetoğlu et al. MLFMA memory reduction techniques for solving large-scale problems
Chen et al. Bit-graphblas: Bit-level optimizations of matrix-centric graph processing on gpu
Eliuk et al. dMath: A scalable linear algebra and math library for heterogeneous GP-GPU architectures
WO2022241725A1 (zh) 卷积运算的处理方法、电子设备、移动终端及存储介质
Tao et al. Atomic reduction based sparse matrix-transpose vector multiplication on GPUs

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant