oneMKL介绍
oneMKL是英特尔(Intel)为加速数学库开发的一个跨平台的程序库。它是英特尔数学核心函数库(Intel Math Kernel Library,简称MKL)的一部分。oneMKL旨在提供高效的数学函数和算法,以帮助开发者在各种硬件架构上实现更高的性能。
oneMKL涵盖了多个数学领域,包括线性代数、傅里叶变换、随机数生成等。它提供了丰富的函数接口,方便开发者在应用程序中使用这些数学函数,从而加速计算过程。oneMKL支持多种编程语言,如C/C++、Fortran和Python,可以在各种操作系统和硬件平台上使用。
通过使用oneMKL,开发者可以充分利用英特尔处理器的优势,如向量化指令集和多核并行处理能力,从而提高应用程序的性能和效率。它可以在科学计算、机器学习、深度学习等领域中发挥重要作用,帮助开发者快速实现高性能的数值计算任务。
总之,oneMKL是一个用于加速数学库的跨平台程序库,它为开发者提供了高效的数学函数和算法,以帮助他们在各种硬件平台上实现更高的性能和效率。
题目要求
1.调用 oneMKL 相应 API 函数, 产生 2048 * 2048 个 随机单精度实数();
2. 根据 2 产生的随机数据作为输入,实现两维 Real to complex FFT 参考代码;
3. 根据 2 产生的随机数据作为输入, 调用 oneMKL API 计算两维 Real to complex FFT;
4. 结果正确性验证,对 3 和 4 计算的两维 FFT 输出数据进行全数据比对(允许适当精度误
差), 输出 “结果正确”或“结果不正确”信息;
5. 平均性能数据比对(比如运行 1000 次),输出 FFT 参考代码平均运行时间和 oneMKL
FFT 平均运行时间。
实验环境
环境要求:(vwmare17下ubuntu18)成功安装gcc、icx等基础编译环境和静态库
编译方法:icx 2dfft.c -o 2dfft -qmkl
执行方法:./2df