运算速度

FFT算法的一种FPGA实现

感情迁移 提交于 2020-02-16 03:19:54
http://hi.baidu.com/hieda/blog/item/6afab113b8985127dc540179.html 1 引言   OFDM(正交频分复用)是一种多载波数字调制技术,被公认为是一种实现高速双向无线数据通信的良好方法。在OFDM系统中,各子载波上数据的调制和解调是采用FFT(快速傅里叶变换)算法来实现的。因此在OFDM系统中,FFT的实现方案是一个关键因素。其运算精度和速度必须能够达到系统指标。对于一个有512个子载波,子载波带宽20 kHz的OFDM系统中,要求在50 μs内完成512点的FFT运算。   硬件实现FFT算法的主要方案有:DSP(通用数字信号处理器);FFT专用芯片;FPGA(现场可编程门阵列)。DSP具有纯软件实现的灵活性,适合用于流程复杂的算法,例如在通信系统中的信道编、解码,QAM映射等算法。如果在DSP中完成FFT运算,不仅要占用大量D SP的运算时间,使整个系统的数据吞吐率降低,也无法发挥DSP软件实现的灵活性。因此,前端的FFT运算应由ASIC或FPGA完成。采用专用的FFT处理芯片,虽然速度能达到要求,但其可扩展性差。FPGA具有硬件结构可重构的特点。适合于算法结构固定、运算量大的前端数字信号处理。新近推出的FPGA产品都采用多层布线结构,更低的核心电压,更丰富的IO管脚,容量可达到100 k个逻辑单元(LES)

2020人工智能Ai芯片前言解读

一世执手 提交于 2020-02-15 09:51:25
芯片的概念: (半导体元件产品的统称)集成电路, 缩写 作 IC;或称微电路、微芯片、晶片/芯片,在 电子学 中是一种把 电路 (主要包括半导体设备,也包括被动组件等)小型化的方式,并时常制造在半导体 晶圆 表面上。 专业地讲就是: 将电路制造在半导体芯片表面上的集成电路又称 薄膜 (thin-film)集成电路。另有一种 厚膜 (thick-film) 集成电路 (hybrid integrated circuit)是由独立半导体设备和被动组件,集成到衬底或线路板所构成的小型化 电路 。 人工智能(Artificial Intelligence,AI)芯片的定义:从广义上讲只要能够运行人工智能算法的芯片都叫作 AI 芯片。但是通常意义上的 AI 芯片指的是针对人工智能算法做了特殊加速设计的芯片,现阶段,这些人工智能算法一般以深度学习算法为主,也可以包括其它机器学习算法。 AI芯片也被称为AI加速器或计算卡,即专门用于处理人工智能应用中的大量计算任务的模块(其他非计算任务仍由CPU负责)。当前,AI芯片主要分为 GPU 、 FPGA 、 ASIC 。 人工智能芯片四大类(按技术架构分类): 1、通用芯片(GPU)。 GPU是单指令、多数据处理,采用数量众多的计算单元和超长的流水线,主要处理图像领域的运算加速。 GPU是不能单独使用的,它只是处理大数据计算时的能手

有趣的椭圆曲线加密

六眼飞鱼酱① 提交于 2020-02-14 04:11:06
一、概述 椭圆曲线加密算法依赖于椭圆曲线理论,后者理论涵盖的知识比较深广,而且涉及数论中比较深奥的问题。经过数学家几百年的研究积累,已经有很多重要的成果,一些很棘手的数学难题依赖椭圆曲线理论得以解决(比如费马大定理)。 本文涉及的椭圆曲线知识只是抽取与密码学相关的很小的一个角落,涉及到很浅的理论的知识,同时也是一点比较肤浅的总结和认识,重点是利用椭圆曲线结合数学技巧阐述加密算法的过程和原理。 本文特意构造有比较多的实例方便理解其过程和原理。 二、椭圆曲线 椭圆曲线方程来源于椭圆积分,后者来最初来源于计算椭圆周长的问题,有一段时间的历史了,在欧拉时期就开始研究。椭圆周长没有精确的初等函数的公式表示,只有近似的公式表示,精确的椭圆周长可以用不定积分表示。 现在一般将形如如下形式的积分定义为椭圆积分: $f(x)=\int_{c}^{x}R\left [ t,\sqrt{P(t)} \right ]d_{t}$ 其中$R$是其两个参数的有理函数,$P$是一个无重根的3或4阶多项式,而$c$是一个常数。椭圆曲线方程与$P(t)$表现形式比较相像。 数学上的椭圆曲线一般由如下形式给出: $E:y^{2}=x^{3}+ax^{2}+bx+c$,其中判别式$\Delta (E)=-4a^{3}c+a^{2}b^{2}-4b^{3}-27c^{2}+18abc\neq 0$

矩阵快速幂

会有一股神秘感。 提交于 2020-02-07 18:13:49
这周学习了矩阵快速幂,就在这里记录下我的一下理解吧。 要学习矩阵快速幂,首先得先知道“矩阵”和“快速幂”的写法。 先说快速幂 顾名思义,快速幂就是快速算底数的n次幂。其时间复杂度为O(log₂N),与朴素的O(N)相比效率有了极大的提高。 ——百度百科 以NOIP2013的麦森数为例题,讲一下快速幂 从文件中输入P(1000<P<3100000),计算2^P-1的位数和最后500位数字(用十进制高精度数表示) 本题显然要使用高精度运算。对2^P-1位数可以用公式log10(2^P-1)+1来求。因为2^P最后一位不可能为0,所以原式可化简为log10(2^P)+1=P*log10(2)+1。于是就能快速得到麦森数的位数了。 我们主要看求最后500位的运算。这显然要用到高精度。但是使用普通的高精度运算,时间复杂度就为P*500^2=2500P。对于最大的P=3100000,显然超时。那有没有更快的算法呢? 这就要牵扯到二进制了,二进制一直是很神奇的一个东西。 以十进制数5举例子,5的二进制为101,这可以通过取模然后反过来得到。看一下101是怎样表示5的。 二进制逢二进一。所以十位上的数就表示这个数有几个2,这就像十进制的十位表示这个数有几个10一样。所以像十进制一样往上推,百位上的数就表示这个数有几个2^2,千位上的数就表示这个数有几个2^3……那么根据这样,就可以看出,101=1

多么痛的领悟——计算机组成原理第一讲

十年热恋 提交于 2020-02-07 11:01:53
多么痛的领悟——计算机组成原理第一讲 前言 大家好,我是 泰斗贤若如 ,我又开始更新文章了,本次更新的内容是 计算机组成原理 ,是大学计算机相关专业必须学的,我是大三上学期学的,刚开始学的时候感觉很难,get不到重点,直到学了一遍,被期末考试逼了一遍,我才有所领悟,多么痛的领悟啊。我打算自己把整本书中的重点总结一遍,第一是自己过一遍,第二是给新手赠予玫瑰,希望你们学的时候花最少的时间学更多的知识,别再在考试前病急乱投医了(偷笑表情) 一、计算机系统 1、计算机的硬件 计算机系统由“ 硬件 ”和“ 软件 ”两大部分组成。 所谓“ 硬件 ”,是指组成计算机的各种物理装置,我们平时说的“买一台计算机”,购买的其实就是硬件,最主要的硬件有:主板、中央处理器、硬盘、内存等。 主板 是整个计算机的“ 交通枢纽 ”,各种器件都要连接到主板上,才能正常工作。 中央处理器 是计算机的“ 大脑 ”,它是计算机的 运算核心 和 控制核心 。 硬盘 是计算机的“ 笔记本 ”,上面记录了各种数据,需要的时候,就会从这里读取或往这里写入。 内存 是计算机的“ 稿纸 ”,一般来说,同一个处理器能利用的内存越大,运算速度也就越快。 有趣的是, 显示器 虽然是人们关注最多的设备,但它其实并非是一个必须的硬件,对于个人计算机来说,即使没有显示器也可以正常运行,但只要少了上面所说硬件中的任何一个,计算机就不能正常运行了

百度PaddlePaddle入门-5

夙愿已清 提交于 2020-02-06 18:38:11
Numpy是 Numerical Python 的简称,是Python中高性能科学计算和数据分析的基础包。Numpy提供了一个多维数组类型ndarray,它具有矢量算术运算和复杂广播的能力,可以实现快速的计算并且能节省存储空间。在使用Python调用飞桨API完成深度学习任务的过程中, 通常会使用Numpy实现数据预处理和一些模型指标的计算 ,飞桨中的Tensor数据可以很方便的和ndarray数组进行相互转换。 在这一节将介绍以下内容: 基础数据结构ndarray数组 随机数numpy.random 线性代数numpy.linalg Numpy保存和导入文件 应用举例 基础数据结构ndarray数组 ndarray数组是Numpy中的基础数据结构式,这一小节将从以下几个方面展开进行介绍: 为什么引入ndarray数组 如何创建ndarray数组 ndarray数组的基本运算 ndarray数组的切片和索引 ndarray数组的统计运算 为什么引入ndarray数组 在Python中使用list列表可以非常灵活的处理多个元素的操作,但是其效率却比较低。ndarray数组相比于Python中的list列表具有以下特点: ndarray数组中所有元素的数据类型是相同的,数据地址是连续的,批量操作数组元素时速度更快;list列表中元素的数据类型可以不同,需要通过寻址方式找到下一个元素

python核心编程:七分钟全面了解位运算

醉酒当歌 提交于 2020-02-03 04:05:44
位运算是我们在编程中常会遇到的操作,但仍然有很多开发者并不了解位运算,这就导致在遇到位运算时会“打退堂鼓”。实际上,位运算并没有那么复杂,只要我们了解其运算基础和运算符的运算规则,就能够掌握位运算的知识。接下来,我们一起学习位运算的相关知识 文章目录 位运算的基础 二进制 补码 按位与 按位取反 左移运算 右移运算 位运算的应用 判断数字奇偶 变量交换 取 x 的第 k 位 代替地板除 程序中的数在计算机内存中都是以二进制的形式存在的,位运算就是直接对整数在内存中对应的二进制位进行操作。 位运算的基础 我们常用的 3, 5 等数字是十进制表示,而位运算的基础是二进制。即人类采用十进制,机器采用的是二进制,要深入了解位运算,就需要了解十进制和二进制的转换方法和对应关系。 二进制 十进制转二进制时,采用“除 2 取余,逆序排列”法: 用 2 整除十进制数,得到商和余数; 再用 2 整除商,得到新的商和余数; 重复第 1 和第 2 步,直到商为 0; 将先得到的余数作为二进制数的高位,后得到的余数作为二进制数的低位,依次排序; 排序结果就是该十进制数的二进制表示。例如十进制数 101 转换为二进制数的计算过程如下: 逆序排列即二进制中的从高位到低位排序,得到 7 位二进制数为 1100101,如果要转换为 8 位二进制数,就需要在最高位补 0。即十进制数的 8 位二进制数为

数字图像处理及应用(期末复习整理)

社会主义新天地 提交于 2020-02-01 17:08:32
一、图像及其类型 图像(image)的定义是: 在一般意义下,一幅图像是一个物体或对象(object)的另一种表示。亦即图像是其所表示物体或对象信息的一个直接描述和浓缩表示。简而言之,即图像是物体在平面坐标上的直观再现。一幅图像包含了所表示物体的描述信息和特征信息,或者说图像是与之对应的物体或抽象的一个真实表示,这个表示可以通过某些技术手段实现。 数字图像处理(digital image processing): 又称为计算机图像处理,它是通过计算机对图像进行去除噪声、增强、变换、复原、分割、特征提取、识别等运算与处理。 图像的分类: 可见图像(visible image): 是指视觉系统可以直接看见的图像,这也是大多数人在日常生活中所见到的和所理解的图像,这一类图像一般通过照像、手工绘制等传统方法获得,通常计算机不能直接处理,但是经过数字化处理后可变为数字图像。 物理图像(physical image): 所反映的是物体的电磁波辐射能,包括可见光和不可见光图像。 数字图像(maths image) :指由连续函数或离散函数生成的抽象图像,其中离散函数所生成的图像就是计算机可以处理的数字图像。 其他相关概念: 计算机图形学(computer graphic): 是指利用计算机技术将概念或数学描述所表示的物体(非实物)图像进行处理和显示的过程。 计算机视觉(computer

HGAME2020 Week2 Writeup

强颜欢笑 提交于 2020-02-01 00:15:43
我太南了.jpg Crypto - Verification_code 题目: 本周的签到题 XP nc 47.98.192.231 25678 还有一段服务端的脚本 #!/usr/bin/env python3 # -*- coding: utf-8 -*- import socketserver import os, sys, signal import string, random from hashlib import sha256 from secret import FLAG class Task(socketserver.BaseRequestHandler): def _recvall(self): BUFF_SIZE = 2048 data = b'' while True: part = self.request.recv(BUFF_SIZE) data += part if len(part) < BUFF_SIZE: break return data.strip() def send(self, msg, newline=True): try: if newline: msg += b'\n' self.request.sendall(msg) except: pass def recv(self, prompt=b'> '): self.send

深度学习(三)——卷积神经网络

寵の児 提交于 2020-01-27 22:29:23
深度学习(三)——卷积神经网络 文章目录 深度学习(三)——卷积神经网络 概述 CNN的神经网络层 卷积层 卷积核和卷积操作 零填充和填充卷积 感受野与扩张卷积 池化层 全连接层 转置卷积层 感兴趣区域(RoI)池化层 概述 这篇博文主要讨论 卷积神经网络 (Convolutional Neural Networks,CNN)。CNN是目前最流行的神经网络类型之一,特别是对于图像或是视频这种高维数据。与 多层感知器 不同,CNN层中的每层单元是一个二维(或高维)滤波器,这样的滤波器又被称为 卷积核 ,它能够对输入数据进行卷积运算,这是最关键的区别。 CNN的产生也同样来源于人类对自我认知过程的思考。考虑人类辨识一头大象的过程,人类往往是在看到大象的一部分,才能够辨识出这是大象的。例如看到大象的大耳朵、长鼻子、粗壮的腿等。但在计算机中,图像的每一个像素点都是三个数字。人类辨识图像的过程启示我们在辨识过程中, 单一的像素点是没有意义 的,只有将像素点放在一块区域中,才能显示出它的作用。 因此,利用卷积核,可以将一块区域中的像素值进行一些运算得到一个值,就实现了上面的过程。也因为这个,CNN在计算机视觉领域得到了非常广泛的应用。接下来就依次介绍CNN的各个组成部分和一些模型上的细节。 CNN的神经网络层 CNN是由几个基本构建块组成的,称为 CNN层 。最基本的CNN具备的层次有: