http://www.opengpu.org/forum.php?mod=viewthread&tid=40&highlight=Attila

查看: 7488|回复: 26
  

[Attila GPU] ATTILA GPU Streamer Unit (D3D Input Assambler)
结构分析
 [复制链接]

   

注冊时间
2007-6-9
积分
408
电梯直达

1#

 发表于
2007-8-9 01:00:41 |仅仅看该作者 |倒序浏览
先上几张 ATTILA GPU Streamer Unit 的图(持续更新,呵呵。。。)



[ 本帖最后由 octane3d 于 2007-8-10 01:38 编辑 ]

streamer.gif (33.65
KB, 下载次数: 38)

Streamer Unit Schematic

streamer_fsm.gif (14.94
KB, 下载次数: 26)

Streamer Unit FSM

streamer_fetch.gif (27.87
KB, 下载次数: 33)

Streamer Fetch Unit Schematic

 
   

注冊时间
2007-6-11
积分
22866
2#

 发表于
2007-8-9 16:55:51 |仅仅看该作者
强!太好了!对我等新手理解帮助太大了!
 
 
   

注冊时间
2007-8-3
积分
2
3#

 发表于
2007-8-10 22:36:36 |仅仅看该作者

回复 #1 octane3d 的帖子

能不能弄几份图形硬件的经典论文发上来?
 
 
   

注冊时间
2007-6-9
积分
408
4#

 发表于
2007-8-13 22:51:27 |仅仅看该作者
一般的论文用google都能找到,推荐

ATTILA 论文參考文献部分的论文 和

http://www.cs.lth.se/EDA075/notes/mgh_bib.pdf

列出的參考文献。 http://www.cs.lth.se/EDA075/ 这个站点本身也非常不错。

http://www.ece.ucdavis.edu/courses/W07/EEC277/

http://graphics.stanford.edu/cs448-07-spring/
 
 
   

注冊时间
2007-7-11
积分
32646
5#

 发表于
2007-8-17 10:28:11 |仅仅看该作者
最终有点步入c++ style轨道了,近期烦死了~
 
 
   

注冊时间
2008-12-22
积分
1139
6#

 发表于
2008-12-22 23:33:33 |仅仅看该作者
ATTILA GPU Streamer Unit 结构分析, 哥们,你这个资料我在他们站点上怎么没有下下来,是否能共享下面
 
 
   

注冊时间
2007-9-10
积分
26
7#

 发表于
2009-2-24 18:35:50 |仅仅看该作者
请问您的图是用什么软件画出来的,我就viso画的太丑了
 
 
   

注冊时间
2007-7-11
积分
32646
8#

 发表于
2009-2-24 21:08:28 |仅仅看该作者
楼上07年9月注冊老用户了,欢迎欢迎:〉
 
 
   

注冊时间
2009-10-26
积分
1902
9#

 发表于
2009-11-22 21:43:54 |仅仅看该作者
正在看Attila的论文,遗憾的是他们的学位论文都是Spanish
公开促进交流;交流促进提高;上传资料坚持0阅读权限
 
   

注冊时间
2007-7-11
积分
32646
10#

 发表于
2009-11-23 05:17:52 |仅仅看该作者
这个simulator的模块划分我不苟同,太不硬件了。只是优点就是他们写的架构比較灵活,能够轻松加一些硬件算法在上面,假设要是非常硬件的simualtor是非常难做到这一点的:〉
 
 
   

注冊时间
2009-11-15
积分
156
11#

 发表于
2009-11-25 21:53:39 |仅仅看该作者
闲聊一句,诚如IC.expert老大说,这东西距硬件太远了,可是我越来越认为它的设计思想有非常多能够借鉴的地方,模块的划分对于软件开发有非常好的參考价值(尤其对于model的设计),模块的内聚性非常高,对外的接口统一,利用signal的抽象巧妙的实现了非常多硬件的特性,比方bandwidth,latency,pipe机制.....自己去实现这样一套东西,是非常难的,在这一套框架的基础上,能够自由实现多种算法,是一个非常好的平台。
1

查看所有评分

 
 
   

注冊时间
2007-7-11
积分
32646
12#

 发表于
2009-11-26 10:33:18 |仅仅看该作者

闲聊一句,诚如IC.expert老大说,这东西距硬件太远了,可是我越来越认为它的设计思想有非常多能够借鉴的地方,模块的划分对于软件开发有非常好的參考价值(尤其对于model的设计),模块的内聚性非常高,对外的接口统一,利用 ...

perfectboy 发表于 2009-11-25 21:53 

大牛说的是从软件角度理解么?

我从硬件角度来说的话。这东西写的Pipeline Stage之间的耦合还是非常高的。并且文档的图太少,刚開始看上去有点费劲。

 
 
   

注冊时间
2009-11-15
积分
156
13#

 发表于
2009-11-26 20:59:36 |仅仅看该作者
IC老大,硬件,我一点不懂了,我的理解主要是基于软件的角度。当时是想了解下图形chip内部的运作流程,又苦于找不到资料,才粗略地看了看attila,你说的pipeline stage之间的耦合,是指什么,是否能详细讲讲,给俺们新手也普及下。呵呵
1

查看所有评分

 
 
   

注冊时间
2007-7-11
积分
32646
14#

 发表于
2009-11-26 21:10:53 |仅仅看该作者

IC老大,硬件,我一点不懂了,我的理解主要是基于软件的角度。当时是想了解下图形chip内部的运作流程,又苦于找不到资料,才粗略地看了看attila,你说的pipeline stage之间的耦合,是指什么,是否能详细讲讲,给俺们 ...

perfectboy 发表于 2009-11-26 20:59 

pipeline stage之间的耦合就是说从一个模块到另外一个模块之间数据的传输是否具有非常高的模块化的特性。显然 Stream Unit内部的各个模块之间不具有非常强的独立性。一般我们写硬件代码的时候不会这么写。只是Attila这么些有优点,就是效率高
,仅仅要一堆指针送来送去就好了,不用传值:〉



嗯,我水平有限,希望C Model高手指正 

 
 
   

注冊时间
2009-11-15
积分
156
15#

 发表于
2009-11-26 22:05:01 |仅仅看该作者
多谢老大这么高速的回帖,明确了你的说意思了。老大是说一个单元(比方streamer unit)内部各个模块(streamer fetch, Loader, commit.....)之间的独立性不强。

attila在我看来定位应该是一个cmodel,而不是RTL model, 也就是说不是面向硬件实现的。我个人认为假设要设计一个Graphic pipeline,首先要从功能上进行划分,划分成各个unit,就像attila一样,有streamer unit , clipper , Memory controller, PrimitiveAssebly, Rasterizer , Shader.....) ,Unit的内聚性要好(高内聚必定导致独立性不强),Unit之间的耦合降到最低.Attila 用signal的抽象机制实现了unit之间的低耦合(相当于Unit与Unit之间引入了一层抽象),Unit的行为变得更加模式化,状态推断-->接收read
signal--->做对应处理--->Write Signal 这样既统一了unit之间的接口,也减少了unit之间的相关性,缺点是每一个cycle都有一堆一堆的signal,也就是老大说的一堆指针送来送去。

从程序的结构来分析,Simproject那部分仅仅是个壳,真正的详细实现分离到emul那个project中,软件设计上达到了功能和实现的分离。所以说attila的构架设计,从软件上看,我认为还是有非常多可取之处的。接触时间短,理解不深,还请老大和各位高手批评指正错误之处,谢谢。

另外,也想知道要做到硬件实现上的高效性,详细怎样做,构架怎么设计?再次谢谢!:)
1

查看所有评分

 
 
   

注冊时间
2007-7-11
积分
32646
16#

 发表于
2009-11-26 22:53:06 |仅仅看该作者

多谢老大这么高速的回帖,明确了你的说意思了。老大是说一个单元(比方streamer unit)内部各个模块(streamer fetch, Loader, commit.....)之间的独立性不强。

attila在我看来定位应该是一个cmodel,而不是RTL model,  ...

perfectboy 发表于 2009-11-26 22:05 

大牛说得很对,我很认同!之前我描写叙述有错误,的确一个好的C Model就是该这个写。我之前说的不过反映了某些硬件RTLproject师对C Model的不满!嗬嗬,事实上那些都不大正确~~这样的才是真正的Architecture Research





这样的方法能够借鉴到软件project中?大牛能说一说关于“功能和实现的分离”有什么优点么?比方在Attila其中,功能和实现分别指什么?





:〉

 
 
   

注冊时间
2009-11-15
积分
156
17#

 发表于
2009-11-26 23:36:58 |仅仅看该作者
个人看法,仅供參考啊。如有不正确请批评指正。

软件project中,当我们设计软件之初,要进行框架设计,为了我们的设计灵活,更具有弹性,我们常常思考的是将变化的部分和不会变化的部分分开。这样能够让软件开发更规范,更易于扩展,更easy维护,设计模式的非常多思想都源于此。

那么,对于一个graphic pipeline的设计,从软件的角度来说,什么是不变的,什么是常常变化的?

针对attila来说,pipeline的功能,数据的传输和逻辑的控制是不变的,详细来说,就是unit 的功能(比方PrimitiveAssembly是图元装配,但详细怎么装配呢?),unit与unit之间signal的连接建立,数据经由signal的传输,unit状态的控制,read signal and wirte signal .....这些是框架上的东西,是不变的。 变化的是功能的实现,也就是算法,attila的rasterizer就是由两种不同的算法来实现相同的功能。因此,要将功能和不同的算法实现相分离,而不是纠结在一起。这也是Simproject(功能)和emul(不同算法)project的由来。

attila的这样的思想,源自于一种叫strategy的策略模式,策略模式定义了一组算法簇,分别封装起来,让它们之间能够互相替换,此模式让算法的变化独立于算法使用的客户,也就是功能和实现的分离。
1

查看所有评分

 
 
   

注冊时间
2007-7-11
积分
32646
18#

 发表于
2009-11-27 12:49:33 |仅仅看该作者
嗯,大牛说的对 :〉



我们在硬件设计上也倡导类似的方法,尤其在SystemC中,要实现接口和功能的分离。接口写在h文件中面,然后由低级的project师去完毕cpp函数的编写。



只是软件更加灵活一些。而硬件定下来了就不能改了,所以结构相对简单,软件抽象层次比硬件更加复杂。
 
 
   

注冊时间
2009-9-18
积分
67
19#

 发表于
2010-10-28 16:31:27 |仅仅看该作者
想问各位大牛:Attila的架构和如今的主流GPU的架构一致吗?
 
 
   

注冊时间
2007-7-11
积分
32646
20#

 发表于
2010-10-30 17:25:17 |仅仅看该作者

想问各位大牛:Attila的架构和如今的主流GPU的架构一致吗?

cxp2760 发表于 2010-10-28 16:31 

Attila仅仅是一个模拟器,既然是模拟器呢,那主要是给架构师做分析用的,模拟器的架构和硬件架构区别还是比較大的。

 
 
   

注冊时间
2011-11-16
积分
120
21#

 发表于
2012-4-24 20:04:20 |仅仅看该作者

ic.expert 发表于 2010-10-30 17:25 

Attila仅仅是一个模拟器,既然是模拟器呢,那主要是给架构师做分析用的,模拟器的架构和硬件架构区别还是 ...

论文和code哪里找的到?

 
 
   

注冊时间
2009-5-15
积分
429
22#

 发表于
2012-4-24 20:39:35 |仅仅看该作者

ic.expert 发表于 2010-10-30 17:25 

Attila仅仅是一个模拟器,既然是模拟器呢,那主要是给架构师做分析用的,模拟器的架构和硬件架构区别还是 ...

ic大能不能举个样例,说说架构师做的分析是怎样利用模拟器的,模拟器和硬件的区别主要是在哪些方面,是什么原因造成了这些区别

 
 
   

注冊时间
2011-2-19
积分
1020
23#

 发表于
2012-6-1 16:03:27 |仅仅看该作者
怎么作者没有新作了呢?
 
 
   

注冊时间
2011-2-19
积分
1020
24#

 发表于
2012-6-1 16:04:43 |仅仅看该作者

cxp2760 发表于 2010-10-28 16:31 

想问各位大牛:Attila的架构和如今的主流GPU的架构一致吗?

应该比較过时了吧。似乎仅仅是 DX9 level的东西

 
 
   

注冊时间
2011-12-29
积分
196
25#

 发表于
2012-7-17 16:20:36 |仅仅看该作者
学习,学习
 
 
   

注冊时间
2012-7-20
积分
73
26#

 发表于
2012-7-20 19:41:43 |仅仅看该作者
学习学习
 
 
   

注冊时间
2011-12-23
积分
1882
27#

 发表于
2012-7-22 05:19:02 |仅仅看该作者
不错,学习了
 
 
   

[Attila GPU] ATTILA GPU Streamer Unit (D3D Input Assambler) 结构分析的更多相关文章

  1. GPU keylogger && GPU Based rootkit(Jellyfish rootkit)

    catalog . OpenCL . Linux DMA(Direct Memory Access) . GPU rootkit PoC by Team Jellyfish . GPU keylogg ...

  2. 『TensorFlow』分布式训练_其二_单机多GPU并行&GPU模式设定

    建议比对『MXNet』第七弹_多GPU并行程序设计 一.tensorflow GPU设置 GPU指定占用 gpu_options = tf.GPUOptions(per_process_gpu_mem ...

  3. GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态

    GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态 一个Python模块,用于在Python中使用nvidia-smi以编程方式从NVIDA GPU获取GP ...

  4. Android studio GPU Monitor :GPU Profiling needs to be enabled in the device's developer options

    Android studio GPU Monitor 在真机上不能使用,提示:GPU Profiling needs to be enabled in the device's developer o ...

  5. tensorflow中使用指定的GPU及GPU显存 CUDA_VISIBLE_DEVICES

    参考: https://blog.csdn.net/jyli2_11/article/details/73331126 https://blog.csdn.net/cfarmerreally/arti ...

  6. (原)tensorflow中使用指定的GPU及GPU显存

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6591923.html 参考网址: http://stackoverflow.com/questions ...

  7. Unity Profiler GPU Usage(GPU使用情况)

    一般情况下性能瓶颈都在CPU上,这儿也列举下几个常见的GPU耗时函数吧. 1 Render.Mesh 绘制网格面(没批处理的面) 2 Batch.DrawStatic 静态批处理 3 Batch.Dr ...

  8. tensorflow中使用指定的GPU及GPU显存

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本文目录 1 终端执行程序时设置使用的GPU 2 python代码中设置使用的GPU 3 设置tensorflow使用的显 ...

  9. CUDA直方图实例=CPU+GPU(global)+GPU(shared)

    项目打包下载链接 顺便批判下CSDN上传坑爹现象,好多次都是到了95%或者99%就不动了.我……

随机推荐

  1. NGUI 3.5教程(四)Atlas和Sprite(制作图片button)

    Atlas是NGUI的图集.我的理解是:Atlas把你的一些零散的图片,合并成一张图.这样做的优点是,能够减少Draw Call.我不了解它的底层运作机制,我猜应该也是再行进DXT之类的纹理压缩,所以 ...

  2. Tomcat通过配置一个虚拟路径管理web工程

    关于虚拟路径.学问javaweb训练课程,如今,鉴于这种情况下老师. 当我们的项目,当在不同的文件夹项目.我们如何使用tomcat去管理web工程. 教师提出的解决方案是 使用虚拟路径方式,并按照实施 ...

  3. NBA球员 ESPN前20排名:詹姆斯再居榜首

    2014年 ESPN球员实力最后排名 没想到 保罗-乔治没有上榜.之前预測的火箭两大明星排名落后了,杜兰特排到第8有点出乎意料. 戴维斯升得那么快有点出乎意料,一个球队拥有两位排前十位的球队:骑士,快 ...

  4. UWP开发的一些思考

    UWP开发的一些思考 领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中 ...

  5. nodejs http静态服务器

    使用nodejs写的很简单的静态服务器,没有做cluster处理,没有做缓存处理,不支持访问文件夹,功能只有一个,就是获取到文件后再返回文件内容. var fs = require('fs'); va ...

  6. 使用EasyUI实现加入和删除功能

    增删该查是不论什么一个项目都少不了的功能操作.这篇博文主要简单介绍一下怎样使用EasyUI实现加入和删除功能. 首先.导入EasyUI的js代码: <link href="~/Easy ...

  7. andriod 在windows配置环境

    andriod开发环境配置 个人信息:就读于燕大本科软件project专业 眼下大四; 本人博客:google搜索"cqs_2012"就可以; 个人爱好:酷爱数据结构和算法,希望将 ...

  8. 网络语音视频技术浅议 Visual Studio 2010(转)

    我们在开发实践中常常会涉及到网络语音视频技术.诸如即时通讯.视频会议.远程医疗.远程教育.网络监控等等,这些网络多媒体应用系统都离不开网络语音视频技术.本人才疏学浅,对于网络语音视频技术也仅仅是略知皮 ...

  9. [ACM] HDU 2295 Radar (二分法+DLX 重复覆盖)

    Radar Problem Description N cities of the Java Kingdom need to be covered by radars for being in a s ...

  10. jQuery地图热点效应-后在弹出的提示鼠标层信息

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...