使用图形芯片加速电子自动化设计应用程序

 

以往EDA应用性能瓶颈主要受两方面因素制约,首先大多数应用都是单线程的,而CPU和GPU架构拥有几十到数千的并行内核,其次是应用程序内存延迟问题。目前EDA应用已经部署到传统的常规处理器上。最重要的是这些应用促使人们设计出并行或向量处理器。为了能够充分利用多核架构的优势,甚至有必要完全重写软件,面对并行核心必须重新思考相关的算法。

GPU(Graphic Processing Units) 在高性能计算领域拥有巨大的潜力。在商业化的硬件平台之中,GPU强大的计算能力和高效的内存带宽被展现的淋漓尽致。如今GPU已经在石油、天然气、金融 等需要庞大计算量的场景发挥着作用。而EDA(Electronic Design Automation)应用与以上这些高性能计算应用在计算和内存等操作上拥有很多共同点。

GPU最早出现在上世纪90年代后期,起初GPU主要职责是最为CPU的协处理器,并处理自定义硬件之上的图形算法。GPU在处理图形时将任务分到不同的处理管线(如顶点、纹理、阴影处理等),每个管线负责特定阶段的算法流程。但事实证明,这种架构没有最大限度地被利用。为了更好的处理这种不平衡的状况,迁移到新架构是有意义的。

相对于串行计算,并行计算可以划分成时间并行和空间并行。时间并行即流水线技 术,空间并行使用多个处理器执行并发计算,当前研究的主要是空间的并行问题。以程序和算法设计人员的角度看,并行计算又可分为数据并行和任务并行。数据并 行把大的任务化解成若干个相同的子任务,处理起来比任务并行简单。

空间上的并行导致两类并行机的产生,按照Michael Flynn的说法分为单指令流多数据流(SIMD)和多指令流多数据流(MIMD),而常用的串行机也称为单指令流单数据流(SISD)。MIMD类的 机器又可分为常见的五类:并行向量处理机(PVP)、对称多处理机(SMP)、大规模并行处理机(MPP)、工作站机群(COW)、分布式共享存储处理机 (DSM)。

新一代GPU由“general-purpose” SIMD((Single Instruction Multiple Data)核心组成。自2007年以来,NVIDIA CUDA和OpenCL使我们能用使用C++在流处理器上进行编程,而不是模拟像素或三角形。

GPU非常适合巨大的数据集的并行数据算法,最新的GPU拥有数千处理核心。这些GPU非常适合EDA应用,GPU架构是并行数据处理的理想之选。如果人们部署正确的代码,其吞吐量将令人难以置信。然而最重要的不仅是软件,而是底层算法。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】Linux中常用操作命令

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 常用指令 ls   显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录&#xff0…

大数据应用时代来袭 SaaS走向没落?

随着大量的信息涌入互联网——90%的互联网是过去两年建立起来的——互联网公司正在想方设法去熟悉并利用大数据来推动他们的业务。正如SaaS和云技术一样完全变革了企业的运作方式一样,大数据应用(BDA)也同样可以。 BDA是基于网络的应用&#…

Java程序员必知的10个调试技巧

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序。但这里介绍的调试方法基本都是通用的,也适…

【GPS】GPS的C_GNSS_RF_ELNA_GPIO_NUM_DEFAULT配置,Linux系统中GPIO的设置

GPS的GPIO配置文件 客户需要更改此变量C_GNSS_RF_ELNA_GPIO_NUM_DEFAULT才能覆盖NAVRF驱动程序ELNA设置。   modem_proc/gps/gnss/mgp/me/gen8/src/cgps_ext.c /* Customer needs to change this variable in order to override NAVRF driver ELNA setting */ gnss_ExternalG…

性能测试的重要意义(一)

♦我是一下下面几个方面来理解的: 1.秒的性能对于顾客的意义? 2.性能测试的重要意义 3.什么是软件的性能? 4.软件的性能测试是什么? 5.功能测试和性能测试对比? 6.项目组不同角色眼中的软件性能? 7.性能测试…

ContextLoaderListener介绍

在给新同事培训Spring MVC时&#xff0c;有人问&#xff1a;可以不配置ContextLoaderListener吗 所谓ContextLoaderListener&#xff0c;就是在web部署描述符即web.xml里面经常配置的一个监听器&#xff0c;如下 [html] view plaincopy <listener> <listener-cl…

移动开发(C#、VB.NET)Smobiler开发平台——GifView控件的使用方式

2019独角兽企业重金招聘Python工程师标准>>> 一、 样式一 我们要实现上图中的效果&#xff0c;需要如下的操作&#xff1a; 从工具栏上的“Smobiler Components”拖动一个GifView控件到窗体界面上修改GifView的属性 AutoPlay属性获得和设置是否自动播放Gif…

常用数据结构--线性结构

数据结构是计算机存储、组织数据的方式。常见的数据结构分类方式如下图&#xff1a; 常用的线性结构有&#xff1a;线性表&#xff0c;栈&#xff0c;队列&#xff0c;循环队列&#xff0c;数组。线性表中包括顺序表、链表等&#xff0c;其中&#xff0c;栈和队列只是属于逻辑上…

依赖注入简介(一)

依赖注入(Injecting dependencies)经常听起来会让人感觉到很难以理解&#xff0c;会让大家感觉这是很复杂的编程技术&#xff0c;但是事实上并不是这样&#xff0c;依赖注入非常方便使用&#xff0c;它会让你的程序非常便于理解&#xff0c;同时也更容易进行测试。 依赖注入的…

Jmeter笔记(Ⅱ)使用Jmeter实现轻量级的接口自动化测试

接口测试虽然作为版本的一环&#xff0c;但是也是有一套完整的体系&#xff0c;有接口的功能测试、性能测试、安全测试&#xff1b;同时&#xff0c;由于接口的特性&#xff0c;接口的自动化低成本高收益的&#xff0c;使用一些开源工具或一些轻量级的方法&#xff0c;在测试用…

依赖注入简介(二)

在上一篇中&#xff0c;我们已经介绍过了最基本的依赖注入&#xff0c;接下来我们来看如何对需要使用的类进行装配。通常应用程序的组件之间的关联是通过wiring&#xff0c;在Spring中同样有很多方式来装配。但是一个最通常我们使用的方法是利用XML。接下来我们来展示一个简单的…

eclipse启动tomcat 访问http://localhost:8080 报404错误

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 eclipse正常启动tomcat&#xff0c;但是 访问http://localhost:8080 却报404错误 修改下配置 就好操作如下图 打开eclipse的server视图&a…

手把手JDK环境变量配置

分为下载&#xff0c;配置&#xff0c;验证三个步骤解释如何进行JDK环境变量配置。 步骤一&#xff1a; 首先查看配置成功后的效果&#xff1a; tip:点击win——>运行&#xff08;或者使用winr,或者shift鼠标右键打开powershell&#xff09;——>输入cmd回车——>控制…

myeclipse进入Myeclipse configuration center 如何关闭

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 找到这个图标&#xff0c;放上去显示return即可关闭&#xff0c;隐藏很深有木有

[No0000166]CPU的组成结构及其原理

中央处理器(Central Processing Unit, CPU)CPU的基本架构和工作原理其实百科上讲得已经相当清楚了&#xff0c;不过我觉得有些事情呢还是给个例子出来比较方便学习。本文会先从内存地址&#xff0c;计算机的一般架构之类的基础知识出发&#xff0c;然后逐步为读者"拼装&qu…

Java 时间总结

转载请标明出处&#xff1a;http://blog.csdn.net/zhaoyanjun6/article/details/80613024 本文出自【赵彦军的博客】 时区 整个地球分为二十四时区&#xff0c;每个时区都有自己的本地时间。为了统一起见&#xff0c;使用一个统一的时间&#xff0c;称为通用协调时(UTC, Univer…

4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例

2019独角兽企业重金招聘Python工程师标准>>> 准备磁盘分区 fdisk /dev/sdb n 创建三个新分区&#xff0c;分别1G t 改变分区类型为8e 准备物理卷 pvcreate /dev/sdb1 pvcreate /dev/sdb2 pvcreate /dev/sdb3 pvdisplay/pvs 列出当前的物理卷 pvremove /dev/sdb3 删除…

外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6

外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6本连载讲解作为嵌入式系统开发技术人员所必需具备的单片机的基础知识。 在《单片机入门&#xff08;1&#xff09;&#xff5e;&#xff08;3&#xff09;》中&#xff0c;我们一起学习了单片机的硬件和编程语言以及开发环境…

如何防止代码腐烂

很多团队都有这个问题&#xff0c;一个项目的代码本来开始设计得好好的&#xff0c;一段时间以后&#xff0c;代码就会变得难以理解&#xff0c;难以维护&#xff0c;难以修改。为什么&#xff1f;我一直在思考这个问题。 让我们先看一个人的情况。 1. 程序员的成长 新手的代码…

git branch 分支

Git自学之路&#xff08;四&#xff09;- git branch 分支 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来&#xff0c;以免影响开发主线。 在很多版本控制系统中&#xff0c;这是一个略微低效的过程——常常需要完全创建一…