目录
前言
1、题目描述
本次比赛为命题形式,题目要求如下:
(1)、使用oneMKl工具生成2048*2048随机单精度实数;
(2)、根据产生的随机数据作为输入,实现两维 Real to complex FFT 参考代码;
(3)、根据产生的随机数据作为输入, 调用 oneMKL API 计算两维 Real to complex FFT;
(4)、 结果正确性验证;
(5)、平均性能数据比对;
2、oneMKL介绍
oneMKL(oneAPI Math Kernel Library)是英特尔(Intel)为加速数学库开发的一个子项目。它是英特尔数学核心库(Intel Math Kernel Library,简称MKL)的一个组成部分
oneMKL是针对特定领域的优化版本的MKL,旨在提供针对机器学习、深度学习等应用的高性能数学函数。它包含了一系列在机器学习任务中常用的数学函数,如矩阵运算、向量操作、卷积、池化等。这些函数可以被广泛应用于机器学习框架、深度学习模型等的计算中,加速计算过程,提高计算效率。
3、准备
本次比赛是在Windows系统下完成的,主要进行了如下方面准备
观看培训视频并对英特尔® 数学核心函数库进行简要了解
C++基础
Windows下Visual Studio软件
在Visual Studio上进行OneMKL环境配置
相关数学库介绍:Accelerate Fast Math with Intel® oneAPI Math Kernel Library
oneAPI基本配置
实现过程
1、头文件及相关参数定义
2、生成相关随机矩阵
3、记录运行时间
4、相关计算过程
5、正确性验证
最终结果对比
总结
本次大赛的题目对我们日常研究有重要的帮助,非常贴近我们的需求。在进行各种数据的转换,处理以及解释时,都需要傅里叶变换参与其中。oneMKl工具计算速度快,对各种大型数据的复杂计算有着巨大优势,值得我们在此方面继续努力。