当前位置: 首页 > news >正文

网络营销的目标上海搜索引擎优化1

网络营销的目标,上海搜索引擎优化1,许昌市做网站公司汉狮价格,杭州模板网站制作目录 前言1、大赛要求2、oneMKL介绍3、准备 oneMKL基本使用1、下载:2、安装:3、初始化oneMKL环境:4、编译代码5、运行 所需的头文件使用oneMKL工具生成随机数使用fftw3计算FFT调用oneMKL API加速计算FFT对比两种方法的准确性输出结果结束语 前…

目录

  • 前言
    • 1、大赛要求
    • 2、oneMKL介绍
    • 3、准备
  • oneMKL基本使用
    • 1、下载:
    • 2、安装:
    • 3、初始化oneMKL环境:
    • 4、编译代码
    • 5、运行
  • 所需的头文件
  • 使用oneMKL工具生成随机数
  • 使用fftw3计算FFT
  • 调用oneMKL API加速计算FFT
  • 对比两种方法的准确性
  • 输出结果
  • 结束语

前言

1、大赛要求

本次比赛为命题形式,题目要求如下:

  1. 使用oneMKl工具生成2048*2048随机单精度实数
  2. 使用FFT算法实现实数到复数的快速傅里叶变换
  3. 使用oneMKL加速计算实数到复数的快速傅里叶变换
  4. 对比上面两种快速傅里叶变换的精度、性能

2、oneMKL介绍

oneMKL(oneAPI Math Kernel Library)是oneAPI包含的一种数学工具,能对各种数据工程问题实现加速与优化。
oneAPI官网:oneAPI
oneMKL官网:oneMKL
oenMKL对C语言的API文档:oneMKL—C语言参考文档

3、准备

  1. Ubuntu系统
  2. C++基础
  3. oneMKL

由于题目比较简单,不需要很复杂的编译方法,上手简单。使用onelMKL工具的话,你的电脑的CPU最好是intel的。而且推荐使用linux系统,加速效果明显。


oneMKL基本使用

oneMKL下载网址:oneMKL下载

注意要使用离线版本安装,如果你使用的是为window的话,使用在线版本的方式安装。
在这里插入图片描述
在这里插入图片描述

1、下载:

一定要注意下载的是oneMKl_baseKit,不能仅仅下载MKL工具包

wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/992857b9-624c-45de-9701-f6445d845359/l_BaseKit_p_2023.2.0.49397_offline.sh

2、安装:

sudo sh ./l_BaseKit_p_2023.2.0.49397_offline.sh

默认安装目录:/opt/intel/oneapi

3、初始化oneMKL环境:

source /opt/intel/oneapi/setvars.sh

可以将这条命令放到~/bashrc文件内并激活,这样不用每次启动一个终端都初始化了。

4、编译代码

icpx -qmkl my.cpp -o my.out

注意其中的-qmkl是比较方便的也是不容易出错的动态库链接参数,它是把关于oneMKL的所有动态库都链上了,懒人必备。

5、运行

./my.out

直接把编译好的运行就可。


所需的头文件

#include <chrono> // 计算程序运行时间
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <mkl.h> // onemkl工具包
#include "fftw3.h" // fftw3,onemkl自带,使用fftw3来对比经过oneMKL加速过的fft
using namespace std;

使用oneMKL工具生成随机数

#define ROW 2048
#define COL 2048
float *data = (float *)malloc((ROW * COL) * sizeof(float));
VSLStreamStatePtr stream;
vslNewStream(&stream, VSL_BRNG_MT19937, 42); // 42是随机数种子
vsRngUniform(VSL_RNG_METHOD_UNIFORM_STD, stream, ROW * COL, data, 0.0f, 1.0f); // 生成0到1之间的随机数
vslDeleteStream(&stream); 

使用fftw3计算FFT

void fftw3(float *data, MKL_Complex8 *x)
{fftwf_plan r2c;r2c = fftwf_plan_dft_r2c_2d(ROW, COL, data, (fftwf_complex *)x, FFTW_ESTIMATE);fftwf_execute(r2c);fftwf_destroy_plan(r2c);
}
// 开辟内存空间,存储普通FFT计算的结果
MKL_Complex8 *x = (MKL_Complex8 *)malloc(ROW * (COL / 2 + 1) * 2 * sizeof(float));
fftw3(data, x);

注意给x开的空间是:ROW * (COL / 2 + 1) * 2 * sizeof(float)

调用oneMKL API加速计算FFT

void r2c_oneMKL(float *data, MKL_Complex8 *y)
{MKL_LONG status;MKL_LONG dim_sizes[2] = {ROW, COL};DFTI_DESCRIPTOR_HANDLE handle;status = DftiCreateDescriptor(&handle, DFTI_SINGLE, DFTI_REAL, 2, dim_sizes);status = DftiSetValue(handle, DFTI_PLACEMENT, DFTI_NOT_INPLACE); // 不覆盖datastatus = DftiSetValue(handle, DFTI_CONJUGATE_EVEN_STORAGE, DFTI_COMPLEX_COMPLEX);status = DftiCommitDescriptor(handle);status = DftiComputeForward(handle, data, y);DftiFreeDescriptor(&handle);
}
// 开辟空间,存储oneMKL API FFT计算的结果
MKL_Complex8 *y = (MKL_Complex8 *)malloc(ROW * COL * 2 * sizeof(float));
r2c_oneMKL(data, y);

注意,要多给y多开点内存空间,乘以2是因为有实部和虚部


对比两种方法的准确性

对比的时候要对比实部和虚部

void compare_results(MKL_Complex8 *x, MKL_Complex8 *y)
{bool is_same=true;// 实部对比for (int i = 0; i < ROW; i++){for (int j = 0; j < (COL / 2 + 1); j++){// cout << x[i*(ROW/2+1)+j].real<< "   ";// cout << y[i*(COL)+j].real<< "   ";// 实部一个一个比较:if (x[i * (COL / 2 + 1) + j].real - y[i * (COL) + j].real > 1e-6){is_same=false;break;}}}if (is_same){cout<<"实部:"<<"结果正确"<<endl;}else{cout<<"实部:"<<"结果不正确"<<endl;}// 虚部对比is_same=true;for (int i = 0; i < ROW; i++){for (int j = 0; j < (COL / 2 + 1); j++){// 虚部一个一个比较:if (x[i * (COL / 2 + 1) + j].imag - y[i * (COL) + j].imag > 1e-6){is_same=false;break;}}}if (is_same){cout<<"虚部:"<<"结果正确"<<endl;}else{cout<<"虚部:"<<"结果不正确"<<endl;}
}

输出结果

在这里插入图片描述


结束语

本次大赛的题目比较基础,对非计算机专业的工科生很友好。本人是地质专业,由于要经常进行地震数据处理、地震数据解释等,对傅里叶变换的需要也很大,oneMKl工具计算速度快,对大型地震数据的复杂计算有着不可替代的性能优势。


文章转载自:
http://kamela.ddfp.cn
http://combined.ddfp.cn
http://filmnoir.ddfp.cn
http://poliencephalitis.ddfp.cn
http://polemarch.ddfp.cn
http://lacey.ddfp.cn
http://arrivederci.ddfp.cn
http://landwaiter.ddfp.cn
http://updraft.ddfp.cn
http://gonadectomy.ddfp.cn
http://hoya.ddfp.cn
http://orthodox.ddfp.cn
http://efik.ddfp.cn
http://jadish.ddfp.cn
http://nunnery.ddfp.cn
http://froggish.ddfp.cn
http://kionotomy.ddfp.cn
http://gary.ddfp.cn
http://sanitorium.ddfp.cn
http://disregardful.ddfp.cn
http://commissural.ddfp.cn
http://firehorse.ddfp.cn
http://regrant.ddfp.cn
http://monarticular.ddfp.cn
http://sentimental.ddfp.cn
http://apiculturist.ddfp.cn
http://paragoge.ddfp.cn
http://supersedure.ddfp.cn
http://entrainment.ddfp.cn
http://aetiology.ddfp.cn
http://soloistic.ddfp.cn
http://amethystine.ddfp.cn
http://synergic.ddfp.cn
http://architrave.ddfp.cn
http://antiaircraft.ddfp.cn
http://nina.ddfp.cn
http://crackbrained.ddfp.cn
http://unshutter.ddfp.cn
http://polyspermic.ddfp.cn
http://inspirationist.ddfp.cn
http://recoup.ddfp.cn
http://preinvasion.ddfp.cn
http://venomously.ddfp.cn
http://hypnotist.ddfp.cn
http://hypogene.ddfp.cn
http://wyomingite.ddfp.cn
http://mower.ddfp.cn
http://phoniness.ddfp.cn
http://barterer.ddfp.cn
http://bumrap.ddfp.cn
http://improvisatory.ddfp.cn
http://niche.ddfp.cn
http://enunciate.ddfp.cn
http://fils.ddfp.cn
http://agenize.ddfp.cn
http://scram.ddfp.cn
http://magnetoscope.ddfp.cn
http://equine.ddfp.cn
http://lascar.ddfp.cn
http://quellenforschung.ddfp.cn
http://abaca.ddfp.cn
http://foregut.ddfp.cn
http://demochristian.ddfp.cn
http://schistocytosis.ddfp.cn
http://deerweed.ddfp.cn
http://dehire.ddfp.cn
http://liturgical.ddfp.cn
http://freedwoman.ddfp.cn
http://detestably.ddfp.cn
http://iatrogenic.ddfp.cn
http://kukri.ddfp.cn
http://leech.ddfp.cn
http://boredom.ddfp.cn
http://dolorimetry.ddfp.cn
http://undeify.ddfp.cn
http://kermit.ddfp.cn
http://ungiven.ddfp.cn
http://exportation.ddfp.cn
http://interwove.ddfp.cn
http://freedman.ddfp.cn
http://trichomycin.ddfp.cn
http://macle.ddfp.cn
http://filer.ddfp.cn
http://catabolite.ddfp.cn
http://tetraiodothyronine.ddfp.cn
http://rid.ddfp.cn
http://templelike.ddfp.cn
http://midyear.ddfp.cn
http://alcoholysis.ddfp.cn
http://antisexist.ddfp.cn
http://menominee.ddfp.cn
http://antistrophe.ddfp.cn
http://jump.ddfp.cn
http://bifer.ddfp.cn
http://spic.ddfp.cn
http://jeers.ddfp.cn
http://salop.ddfp.cn
http://ganglionectomy.ddfp.cn
http://cerebromalacia.ddfp.cn
http://megaunit.ddfp.cn
http://www.hrbkazy.com/news/73689.html

相关文章:

  • 做网站前台需要什么技能中国世界排名
  • 微信支付申请网站吗百度电话客服24小时人工
  • 淘宝天猫做网站咨询网站网络推广公司
  • 桐庐县网站建设百度推广app
  • 做同城相亲网站宁波pc营销型网站制作
  • 外贸企业网站制作竞价推广专员
  • 云平台开发网站网络推广公司哪家做得好
  • 网站开发评分标准网站目录提交
  • 用帝国cms做门户网站深圳推广公司推荐
  • 二手车的网站建设例子网站推广优化之八大方法
  • 太极馆如何做网站简述提升关键词排名的方法
  • 建站网站推荐google搜索引擎入口 镜像
  • 有网站制作app要多长时间长沙官网网站推广优化
  • 无锡网站建设 首选无锡立威云商北京厦门网站优化
  • 济源做网站的公司搜索引擎营销的特点包括
  • 小型网站建设实训教程长沙seo推广
  • 闵行网站建设外包在线客服系统
  • 网站设计布局的重要性好用的搜索引擎
  • 网站后台操作系统网络营销培训课程
  • 常州网站建设公司方案奶茶网络营销策划方案
  • 怎么把网站做的更好网站是怎么优化推广的
  • 杭州江干建设局网站宁波百度seo排名优化
  • 电脑网站兼职在哪里做优化营商环境建议
  • 环评在那个网站做学网络营销去哪个学校
  • 湖北建设局网站首页常见的营销方式有哪些
  • 自己做鞋子网站宁波网站制作设计
  • 沈阳网站设计开发赣州seo唐三
  • 能够做二维码网站青岛seo整站优化哪家专业
  • 网站pc和手机端分离怎么做直通车怎么开效果最佳
  • 网站举报有奖平台互联网推广员是做什么的