自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (22)
  • 收藏
  • 关注

原创 x64 asm汇编记录

在进行分块矩阵的实验时,需要用到asm汇编的内容,做了几天的工作,在此进行一下记录;首先在x64上进行asm编码与x86时不同的,不能直接在C代码中进行嵌入,需要写一个.asm文件,然后在vs中设置成单独编译,这样就可以了;在调试的时候按alt+8打开反汇编窗口,可以将其中的汇编代码拷贝出来,然后就可以进行编译和修改了。

2017-12-12 16:59:34 421

原创 ARM NE10开源库的编译和运行

这两天搞这个ARM NE10开源库的验证工作,前前后后搞了两三天的时间,才把编译和运行搞定,现在形成文档备查。真正的第一手资料,网上关于这个的文章很少,需要帮助的朋友们,你们有福了。现在分享如下。1. 编译前的准备工作在编译前首先要下载NE10了,这个就不讲了,下载解压就行,因为是源代码,所以没有平台选择。NE10的编译工具是cmake,首先我们要安装cmake。NE10可以在

2014-02-22 16:34:55 4750 1

转载 计算机书籍推荐

学计算机也有几年了,眼看明年就要毕业,在这里总结一下我看过的书,并推荐一些我认为好的书,还有一些是我听说好的但没看过的,也写在这里,对于下面的书,如果看过的我会按自己的读后感打一个分和一些评价,评分及供参考。如有问题,欢迎讨论。好的,现在开始:推荐度参考: 6分:可看可不看  7分:值得一读  8分:经典好书, 9分:强烈推荐 ,10分: 神品级

2014-02-18 09:23:25 1261

转载 Big_Endian和Little_Endian

unicode big endian编辑目录1Big Endian解释2Big Endian示例图endian词源“endian”一词来源于乔纳森·斯威夫特的小说格列佛游记。小说中,小人国为水煮蛋该从大的一端(Big-End)剥开还是小的一端(Little-End)剥开而争论,争论的双方

2014-02-17 15:43:42 612

转载 [转]结构体边界对齐问题

结构体边界对齐问题许多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数(alignment modulus)。当一种类型S的对齐模数与另一种类型T的对齐模数的比值是大于1的整数,我们就称类型S的对齐要求比T强(严格),而称T比S弱(宽松)。这种强制的要求一来简

2014-02-14 09:31:42 507

原创 arm_android反汇编工作记录

这几天由于支持ipjone的需要,做了arm平台上的反汇编工作,由于汇编的东西较为复杂,所以需要形成文档,以备查阅。首先,使用的反编译工具是ndk提供的toolchains里的交叉编译工具gcc。我们选取目标平台是arm的arm-linux-androideabi-4.7,工具路径是%ANDROID_NDK%\toolchains\arm-linux-androideabi-4.7\prebu

2013-09-28 10:07:12 1569 1

原创 一定要牢记Debug版本和Release版本的区别

这两天在支持iphone方面的本地引擎集成工作,遇到了效率问题,iphone5上识别一句话要10多秒,经过打log验证时MLP模块矩阵乘法的效率太低,neon效果不好,百思不得其解。苹果不应该这样啊,想不通。没办法,使用汇编语言来实现矩阵乘法,搞了两天,弄出来一个。结果最后发现之前竟然是Debug版本的,因此效率较低。等到换成Release版本的时候,效率问题迎刃而解。擦。

2013-09-27 20:17:51 642 1

原创 吸取教训:做事情一定要要形成文档

这两天在做本地识别引擎往iphone上移植的事情,遇到一些困难。在移植工作基本完成后,遇到效率问题,识别引擎在iphone上识别效率特别低,在iphone5上识别一句话需要10s左右,经过在内核代码中打LOG发现时MLP模块的矩阵乘法耗时较多,大概是安卓设备上的10倍。因此定位到效率问题是因为iphone手机对neon指令的支持不是很好。做了一个实验:使用arm_neon.h中的指令和neon汇编

2013-09-25 11:32:04 591 1

Deep Learning Book (Ian Goodfellow, Yoshua Bengio) 英文版

深度学习大牛Ian Goodfellow, Yoshua Bengio力作,英文原版

2017-04-14

Deep Learning Book (Ian Goodfellow, Yoshua Bengio) 中文版 最新版

深度学习大牛Ian Goodfellow, Yoshua Bengio大作《DeepLearning》中文版,2017年3月15日更新

2017-04-14

基于信息熵和神经网络的语音端点检测算法研究

这篇论文先介绍了语音信号处理的一些背景知识,包括语音信号的特点、数字化和预处理等;然后简要描述了几种较为常见的VAD算法:基于短时能量和过零率的端点检测算法、基于LPC倒谱特征的VAD算法、基于HMM模型的VAD算法和频带方差检测法;然后详细讲述了信息熵的概念,并给出了音频幅度熵和谱熵的计算方法,描述了基于信息熵的音频端点检测算法,并给出了试验结果;最后讲述了神经网络的一些背景知识,并结合信息熵与神经网络(MLP)进行VAD的试验,给出了实验结果。

2016-07-18

支持OpenCL的GPU加速人工神经网络训练

工神经网络训练所包含的运算量随着网络中神经元的数量增多而加大,对于神经元较多的网络训练 很耗时。提高人工神经网络训练速度的一个方法是对训练算法优化以减少计算量。由于人工神经网络训练算法 包含大量的矩阵和向量运算,如果把优化的算法用运行在GPU上的OpenCLC语言实现,则训练速度相比传统 基于CPU计算的实现会提高很多。从硬件的并行计算能力着手,以RPROP算法为例,对其运行在GPU上的 OpenCLC语言实现作一些研究。

2013-06-08

异构(CPU-GPU)计算机系统性能评测与优化技术研究

国民经济和科学技术的快速发展,对高性能计算机的性能提出了更高的要求。 传统的采用通用CPU 研制高性能计算机的方法,在能耗、散热、成本等方面遇到了重大的挑战。异构体系结构结合了通用处理器和加速处理器两者的优势,逐渐成为高性能计算机领域的主流体系结构。GPU以其强大的运算能力、高存储带宽、低功耗以及较好的可编程性,在异构结构的计算机设计中确立了主导地位。CPU -GPU异构系统出现之后,引起国际学术界的广泛关注,并且被认为是未来研制高性能计算机的重要发展方向。与此同时,人们也很关心异构结构的应用情况,特别是典型算法在异构结构上的运行效率。 作为一种构建高性能计算机系统的有效途径,CPU -GPU异构计算机系统获得 高计算能力的同时,其对于各类典型应用的运行情况同样也引起广泛关注。本文首先对CPU -GPU异构计算机系统的进行性能评测,通过对基准测试程序集运行结果的分析总结出制约异构系统性能的因素,然后在此基础上提出了相应的优化方法,最后以一个典型的科学计算类程序——矩阵乘法——的实现对优化方法进行了验证,确实取得了一定的优化效果。

2013-06-08

图形处理器用于通用计算的技术、现状及其挑战

年来计算机图形处理器(GPu)以大大超过摩尔定律的速度高速发展.图形处理器的发展极大地提高了计算机图形处理的速度和图形质量,并促进了与计算机图形相关应用领域的快速发展与此同时,图形处理器绘制流水线的高速度和并行性以及近年来发展起来的可编程功能为图形处理以外的通用计算提供了良好的运行平台,这使得基于GPu的通用计算成为近两三年来人们关注的一个研究热点.从介绍GPu的发展历史及其现代GPu的基本结构开始,阐述GPu用于通用计算的技术原理,以及其用于通用计算的主要领域和最新发展情况,并详细地介绍了GPu在流体模拟和代数计算、数据库应用、频谱分析等领域的应用和技术,包括在流体模拟方面的研究工作.还对GPu应用的软件工具及其最新发展作了较详细的介绍.最后,展望了GPu应用于通用计算的发展前景,并从硬件和软件两方面分析了这一领域未来所面临的挑战.

2013-06-08

面向大规模科学计算的CPU-GPU异构并行技术研究

大规模科学计算对科学研究具有及其重要的意义,是计算机学科面临的重大 任务。近年来,随着GPU硬件及其编程模型的快速发展,使用GPU来加速大规 模科学计算应用己成为必然趋势。GPU擅长进行计算密集型操作,而且具有极高 的性价比,非常适合高性能科学计算。然而,如何有效地把科学计算应用移植到 GPU上运行仍是一个很大的挑战。在由CPU和GPU构建的异构系统中,CPU负 责进行复杂的逻辑运算和事务管理等不适合数据并行的计算,GPU负责进行计算 密集度高、逻辑分支简单的大规模数据计算。本文从两个层面研究了面向大规模 科学计算的CPU.GPU异构并行技术。首先,根据CPU—GPU异构平台的特性,本 文提出了CPU.GPU任务划分和CPU.GPU间通信优化两种优化策略。在讨论任务 划分时,本文给出了比例划分法、曲线拟合法和搜索法三种任务划分模型,各自 适用用于不同的情况;在研究CPU—GPU间数据通信时,本文提出了中间结果复用 和长流分段两种方法,从不同角度优化CPU.GPU的通信过程。其次,针对AMD GPU硬件及其编程模型Brook+的特性,本文提出了四种面向GPU的并行优化策 略,包括平衡线程并行性和局部性、分支消除、开发指令级并行和提高访存带宽 利用率。本文选取了矩阵乘、LU分解和Mgrid三个重要的科学计算程序,把它们 移植到AMDGPU上运行,并使用本文提出的优化策略对各个程序进行了优化。 经测试后发现,这三个程序的性能都得到了很大提升,说明本文提出的异构并行 优化技术是非常有效的。本文的工作对在CPU.GPU异构平台上开发和优化科学计 算应用具有一定的指导意义。

2013-06-08

面向程序访存特征的存储优化技术研究

性能的提高一直是计算机研究人员孜孜不倦追求的目标。随着大规模集成电 路的发展,处理器的计算能力飞速提高。计算机性能提高的瓶颈由计算转变为存 储。存储性能是程序访存特征和特定的存储结构共同作用的结果。程序访存特征 的研究一直伴随着处理器的发展,为存储结构提供发展方向。 针对Cache结构不区分程序数据和主存物理实现一维连续的特征,本文选取 具有典型访存特征的应用程序,通过分析访存特征给出合理的存储优化方案: 1) 在共享Cache存储体系结构中,利用Simics+GEMS体系结构模拟器,分析 基于PostgreSQL数据库在线事务处理不同数据集的访存特征,建立数据分类模型, 将数据集划分为放弃型、保护型和自由竞争型三类;然后提出一种软件协同的半 透明共享Cache结构区分对待三类数据集,实验结果证明Cache失效率最高下降 率为12%。 2) 针对矩阵行列访问二维连续的特征和DRAM存储一维连续的特性,提出一 种针对行列交替访问的优化方案——窗口访问,并证明了最优窗口原理,利用可 重构实验平台实现窗口访问存储控制器,实验证明矩阵行列交替访问的存储性能 提高可达73.6%,一维FFT并行算法性能可提高45.1%。 3) 基于窗口访问原理,指导CPU和GPU上矩阵数据的布局,优化矩阵行列 交替访问程序,实验证明CPU中矩阵行列交替访问的存储性能最大提高58.4%, 并实现窗口访问和FFTW结合的一维FFT并行算法,与FFTW相比计算性能提高 可达7%;分析CUDA编程框架和相应GPU的结构特点,将窗口原理应用到GPU 中以warp为单位的访存过程上,实验表明矩阵行列交替访问的存储性能提高了1 倍。

2013-06-08

面向CPU-GPU异构并行系统的编程模型与编译优化关键技术研究

随着超大规模集成电路技术的不断进步,单芯片上集成了越来越多的晶体管, 目前已达到10亿的量级。然而,受到CMOS工艺特征尺寸的限制,芯片的主频 在达到4GHz之后继续提升的空间有限,多核并行逐渐成为提升处理器计算性能, 同时也是充分利用丰富的片上资源的主要技术途径。4-8核的通用CPU目前已 成为市场主流,而一些专用的处理器如流处理器则包含数十到数百个处理核心。 本文选取目前非常流行也极具发展潜力的一种商用流处理器体系结构——GPU (Graphics Processing Unit)展开相关的研究。 GPU最初仅用于加速图形计算,因此其结构较通用CPU相对简单,不包含 诸如分支预测、乱序执行等耗费芯片资源的复杂逻辑功能,而将晶体管资源更有 效地用于增加并行执行的计算核心,以提升计算性能。GPU的峰值计算性能也因 此远高于同时期的通用CPU。随着GPU指令级功能的逐步完善以及其编程界面 的不断改进,GPU被越来越多地应用到非图形领域的计算,出现了一个全新的 研究领域——GPGPU(General Purpose Computation on GPUs)。利用CPU和GPU 构建异构并行系统,以CPU提供通用的基础计算环境,GPU作为加速阵列提供 强大的峰值计算能力,已成为高性能计算领域一个非常重要的发展趋势。目前, GPU已在高性能计算、桌面计算甚至嵌入式计算等多个领域得到了非常广泛的应 用,因此有关CPU-GPU异构系统以及GPU本身的一系列研究课题也得到广泛关 注,诸如编程模型、编译优化、可靠性优化以及低功耗优化等等。本课题从编程 和编译的角度展开,首先研究了CPU-GPU异构并行系统的编程模型,然后针对 GPU的存储访问展开了深入的分析和优化研究,最后给出了所研究模型的编译实 现和优化。

2013-06-08

基于图形处理器(GPU)的通用计算

伴随着 级微机的崛起和普及,多年来计算机图形的大部分应用发生了从工作站向微机的大转移,这种转移甚至发生在像虚拟现实、计算机仿真这样的实时(中、小规模)应用中这一切的发生从很大程度上源自于图形处理硬件的发展和革新近年来,随着图形处理器( )性能的大幅度提高以及可编程特性的发展,人们首先开始将图形流水线的某些处理阶段以及某些图形算法从 向 转移除了计算机图形学本身的应用,涉及到其他领域的计算,以至于通用计算近 年来成为 的应用之一,并成为研究热点文中从若干图形硬件发展的历史开始,介绍和分析最新 在通用计算方面的应用及其技术原理和发展状况,并结合作者自身的实践讨论和探索其发展前景。

2013-06-08

基于OpenCL的异构系统并行编程

对异构处理器在传统通用计算中利用率低的问题,提出基于开放计算语言OpenCL(opencomputing language)的新的通用计算技术,它提供了统一的编程模型。介绍了OpenCL的特点、架构及实现原理等,并提出OpenCL性能优化 策略。将OpenCL与计算统一设备架构CUDA(computeunified device architecture)及其它通用计算技术进行对比。对比 结果表明,OpenCL能够充分发挥异构处理平台上各种处理器的性能潜力,充分合理地分配任务,为进行大规模并行计算 提供了新的强有力的工具。

2013-06-08

基于OpenCL的频繁项集挖掘研究

随着当今信息技术的高速发展,人们日常生产生活中产生的数据量呈现出爆 发式增长。因此,对于海量数据集的处理已成为数据挖掘技术的主要挑战。而如 何能以高性价比的方式挖掘到有价值的信息是目前数据挖掘研究的新课题。 GPu通用计算技术的R益成熟为数据挖掘技术的发展注入了新的动力。 GPU通过与CPu截然不同的发展路线,由当初的专用图形处理器一步步走进今 天的通用计算领域,并且正在向传统架构的超级计算机发起挑战。很显然,数 据挖掘这类计算密集型应用也必将受益于现代GPU所提供的廉价大规模并行计 算能力。 关联规则是数据挖掘的重要技术之一,而其中的频繁项集计算任务又是整 个算法的核心,研究如何利用GPu通用计算技术来加速频繁项集挖掘具有一定 的理论与实际意义。本文通过分析与总结过去关于频繁项集挖掘的研究成果, 设计了一种基于OpencL的CPU+GPU异构执行的挖掘算法,利用OpenCL创 建大规模并发线程来加速计算Apriori算法中的计算密集部分。实验采用OpenCL 的Java绑定接口来具体实现,并选择了同一级别的CPu与GPu用于改进后算 法与原算法的性能对比测试。实验结果表明,改进算法对于稀疏数据集有更好 的加速性能,并且随着支持度的降低,加速比呈现扩大趋势,最高达到约20倍。 另外,本文初步讨论并实验了利用0penCL的LocalMemory机制来对事务数据 的访问作进一步优化。不过,最后的测试结果表明这种改进仅对稠密数据集产 生了约10%的性能提升。本文在最后还指出了一些未来值得进一步研究与改进 的方向。

2013-06-08

基于GPU通用计算的分析与研究

基于GPU通用计算,从几个方面对其进行了探讨与研究,很不错的期刊论文,推荐学习GPU通用计算的同学们学习。

2013-06-08

基于GPU的并行支持向量机的设计与实现

1.在综述了当前高性能计算领域热门技术的基础上,选择GPU作为并行支持向量 机的实现工具。在GPU编程方法方面,选择了OpenCL作为具体的代码实现技术,并搭 建了GPU计算的实验平台和基于VisualStudio2010的OpenCL的开发环境。 2.介绍了支持向量机理论的基本原理及其数学模型,引出了SMO训练算法并对其 进行了详细的说明。研究了LibSVM的使用方法,并在之前搭建的两个平台上做了实验 仿真,以用来作为参照基准。 3.根据SVM训练和预测算法中的并行点,提出了用于多类分类器的并行支持向量 机算法。通过分别对SVM训练算法、预测算法和涉及的矩阵运算分别采用并行运算, 提高了多核计算机的运算效率,加快了SVM分类器的训练过程。对并行算法的性能进 行了详细分析。 4.利用OpenCL编写了并行支持向量机程序,并对程序实现过程中的一些重要步 骤,如数据预处理、设备初始化、程序初始化和缓存、内存分配和命令列队优化等进行 了详细的介绍。对进一步提高GPU的效率进行了深入的探讨。 5.利用LibSVM处理训练样本,编写了基于CPU Timer的时间测量工具,最后给 出了基于GPU的并行支持向量机的仿真实验结果,并与LibSVM的仿真数据进行了对 比,验证了并行算法的有效性。

2013-06-08

基于GPGPU的高效AES彩色数字图像加密技术的研究与实现

由于人们对信息安全的.逐步重视,加解密技术一直是研究的热点。各种加密算法相继问世,但加解密算法的安全性与复杂性始终是两个不可调和的矛盾体,在加解密速度和安全性上无法做到两全其美。因此目前有很多安全的加密算法,但由于其复杂性受个人计算机有限的计算能力限制,无法做到快速的加解密,从无法得到普片的运用。

2013-06-08

基于CUDA的矩阵乘法和FFT性能测试

对NVIDIA公司的CUDA技术用Geforce8800GT在VisualStudi02008环境下进行测试,从程序运行时间比较判断CUBLAS库、CUDA内核程序、CUDA驱动API、C循环程序与Intel MKL库以及FFFW库与CUFFF库运行响应的差异。测试结果表明,在大规模矩 阵乘法和快速傅里叶变换的应用方面,相对于CPU,利用GPU运算性能可提高25倍以上。

2013-06-08

带随机数MD5破解算法的GPU加速与优化

本文首先分析了传统体系结构上带随机数MD5的破解算法,对算法中任务进行划分以便映射到主机和GPU上;然后使用OpenCL实现了基于GPU的异构平台上的破解算法;最后针对特定的GPU平台对破解程序进行了优化。

2013-06-08

OpenCL语言及编译技术分析

OpenCL(Open Compution Language)是一种全新的针对异构系统进行并行编程的应用程序接口(API),有效利用系统中的所有计算资源。OpenCL采用运行时动态编译的方式来执行程序,灵活高效。

2013-06-08

GPU通用计算:计算领域的一次革命

自从NvIDIA公司在1999年发布GeForce 256图形处理芯片时首先提出GPU(Graphic Processing Unit)的概念,GPU 长期以来一直充当着CPU“助手”的角色,大部分的数据处理由 CPU负责计算,而GPU仅仅是根据API指定的函数对这些数据进 行简单的加工,然后送到显示器上。但是,近年来随着大型游 戏和3D技术在计算机领域的蓬勃发展,GPU的性能越来越强大, 逐渐具备了可编程流水线、高密度并行处理等特性,许多GPU 的浮点运算能力已经超越了CPU,以目前最强的i7 975为例, 其浮点运算能力也远远达不到HD 4850的ITF1ops(等效每秒一 万亿次运算),GPU超强的浮点运算能力为其实现通用计算打下 了基础。

2013-06-08

CPU-GPU系统中基于剖分的全局性能优化方法.pdf

针对将应用移植到CPU-GPU异构并行系统上时优化策略各自分散、没有一个全局的指导思想的问题,提出了一种基于剖分的全局性能优化方法。该方法由优化策略库、剖分工具库和策略配置模块组成.优化策略库将应用移植到异构并行系统上的性能优化过程划分为访存级、内核加速级和数据划分级3级优化;针对3级优化剖分工具库提供了3级剖分机制,通过运行时的剖分技术获取剖分信息;策略配置模块根据所获取的信息指导用户在每级优化中选择合适的优化策略.实验证明,基于剖分的全局性能优化方法可以明确地指导将应用移植到CPU—GPU异构并行系统上的全局优化过程,利用该优化方法后,以矩阵相乘和傅里叶变换为例的应用性能提升明显,最终性能相对于访存级优化最高可提高30%左右.

2013-06-08

HMM及其算法(前向,Viterbi,Baum-Welch)

在PPT中简单介绍了HMM,对其针对的三个主要工作及其算法进行了描述与说明,分别是评估——前向算法,解码——Viterbi算法,训练——Baum-Welch算法,希望可以帮到大家。

2012-11-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除