POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: tomsmith123
打印 上一主题 下一主题

CUDA 和DX11 Compute Shader 的差异,

[复制链接]
61#
发表于 2008-8-26 23:37 | 只看该作者
不知道谁说的对了:funk:
回复 支持 反对

使用道具 举报

62#
发表于 2008-8-26 23:45 | 只看该作者
根据M$的定位,compute shader与CUDA是处于同一层级, 两者存在竞争关系。而所有的DX11显卡必须强制支持compute shader, CUDA无法让所有的DX11显卡都支持它。  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

63#
 楼主| 发表于 2008-8-27 00:07 | 只看该作者
原帖由 gaiban 于 2008-8-26 23:28 发表
你们越说越离谱了。
根据理解compute shader应该是pixel shader的二级处理器,是为了图像处理。以前GPU是图形处理,而没有图像处理, 通过compute shader,可以实现图像处理应用了。

从实际角度看,
 ...

不难理解,在pipeline 时代,GPU 就可以做一些密集计算了,US 时代的GPU 计算能力更强,而编程方式更加灵活。
回复 支持 反对

使用道具 举报

64#
发表于 2008-8-27 01:10 | 只看该作者
除非GPU变成CPU,很难高效跑AI与游戏物理。

一般而言,为了降低难度, AI都给CPU跑,游戏物理也给CPU跑, 而特效物理可以交给开源通用的物理引擎。 5年后的通用的物理引擎有可能会调用compute shader计算特效物理, 这要看物理引擎厂商的支持了。
回复 支持 反对

使用道具 举报

65#
发表于 2008-8-27 08:06 | 只看该作者
原帖由 gaiban 于 2008-8-26 23:28 发表
你们越说越离谱了。
根据理解compute shader应该是pixel shader的二级处理器,是为了图像处理。以前GPU是图形处理,而没有图像处理, 通过compute shader,可以实现图像处理应用了。

从实际角度看,
 ...


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

jackpeng33 该用户已被删除
66#
发表于 2008-8-27 08:18 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
67#
发表于 2008-8-27 09:43 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

68#
发表于 2008-8-27 10:08 | 只看该作者
原帖由 darkangel308 于 2008-8-27 08:06 发表

912852
912853

DX模式下并没有。  可能是写了玩的。
回复 支持 反对

使用道具 举报

69#
发表于 2008-8-27 10:10 | 只看该作者
原帖由 gaiban 于 2008-8-27 10:08 发表

DX模式下并没有。  可能是写了玩的。

什么DX模式下没有?
回复 支持 反对

使用道具 举报

70#
发表于 2008-8-27 10:11 | 只看该作者
考虑后台老板的关系,Havok都用CPU,要么就用larrabee native。 Physx也会类似。
回复 支持 反对

使用道具 举报

71#
 楼主| 发表于 2008-8-27 10:22 | 只看该作者
原帖由 RacingPHT 于 2008-8-27 09:43 发表


我想你可能根本没有游戏开发经验,所以说出来的东西总感觉不靠谱。
1:物理引擎本身就是跨平台的,不论Havok, 还是Physx。在所有的硬件层面上,调用习惯是几乎一致的,根本不需要理会底层究竟是什么硬件。
2: ...

我想你有想错了,我恰恰做过一段游戏的PM,后来才转架构。
你反复强调的就是可以直接调用,而忽视了开发过程中需要的灵活性,很简单的例子是,我需要的特效,物理引擎没有,怎么处理?另一个问题是,除了物理引擎外,事实上做相关游戏的厂商,手头都有一些自己的模型,代码,游戏公司和软件公司一样,积累最多的就是各种模块,当模块足够丰富的时候,会组合成为一套引擎,进一步开发,可能会对公司长久的发展很有帮助。当游戏公司有一定实力和前瞻性的时候,自己做引擎都是很自然的事情,之所以用Havok Physx 一方面是比较简单省事,硬件配合上是标准化的,另一方面是物理引擎公司的推广,当有另外的选择的时候,比如GPU 软件加速,可以在自身引擎中加入适合自己的特效,很多游戏公司都会自己做的,同时还有专门的游戏引擎公司也来做,对于通过硬件完成市场初步布局的Havok Physx ,这都不是好消息,你还是无法理解?
回复 支持 反对

使用道具 举报

72#
 楼主| 发表于 2008-8-27 10:26 | 只看该作者
换言之,在CS 和CUDA 之前,游戏公司自己开发一套物理引擎,或者基于Havok Physx 扩展,有很多技术壁垒,而现在,相对要容易很多,有了CS,对于任何显卡都支持,那么在DX 下开发需要的物理特效,完全可以不考虑硬件支持的情况,而保持较高的运行效率。
回复 支持 反对

使用道具 举报

73#
发表于 2008-8-27 10:36 | 只看该作者
微软在DirectX8中,首次引入了Pixel Shader和完善了Vertex Shader,在DX9中又发展了PS和VS,到DX10中PS和VS就和在一起了,现在DX11中引入Computer Shader,说不定在DX12或DX13中,CS也最终会和PS VS合一起了。
回复 支持 反对

使用道具 举报

jackpeng33 该用户已被删除
74#
发表于 2008-8-27 10:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
75#
发表于 2008-8-27 11:13 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

76#
 楼主| 发表于 2008-8-27 11:25 | 只看该作者
原帖由 RacingPHT 于 2008-8-27 11:13 发表


既然你觉得,CS有助于“增加特效”,那么我想问问究竟是什么CS特效呢?
至于扩展问题,我觉得大公司授权的时候,很多都要求源代码或者技术支持。至少我手上,就有一份Physx早期的源代码。
而CS,会让物理引擎的 ...

有些事情,是不方便到处说的。
CS 的计算能力,我的理解和CUDA 是一致的,也就是说CUDA 可以做的,CS 也一般可以做,我目前手头的项目就包括CUDA 做石油地质和药物分子对接的移植优化,效果是非常好的,DX11发布后,任何显卡都可以有类似的接口,只会更方便。
CS 或者CUDA 释放的GPGPU 能力,对于物理计算或者AI 都会很方便,只要游戏设计中适当考虑负载均衡,这不是个问题吧?
可以通过商业授权拿到源代码,但是如果需要进一步的开发扩展,恐怕源代码授权也是不够的,更何况每个公司有自己的开发风格,基于自身代码扩展和他人代码扩展,不是一个复杂度。从游戏开发的角度,往往做引擎的人完成功能和接口设计,做游戏代码的人就已经准备好用这个引擎了,这也是现成商业引擎很难提供的便利性。
CS 相对于物理引擎,好象是路和车的关系,路修宽了,修平了,就没必要等公共汽车了,自己买车开多好?
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
77#
发表于 2008-8-27 11:30 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

78#
 楼主| 发表于 2008-8-27 11:38 | 只看该作者
原帖由 RacingPHT 于 2008-8-27 11:30 发表
呵呵,我的经验可以告诉你,用CS做物理引擎的技术门槛比C++只高不低。

我考你几点:
1: CS/CUDA如何有效构造Hash table?
2: CS和CPU使用什么方法进行有效同步,或者说lock-step式的合作?
3: CS上怎样使用物理 ...

你想说DHT 在CUDA 上如何用?或者数据一致性如何保证?这些都是并行计算的经典问题。
C++ 其实没什么门槛的,描述性语言而已,CUDA 的TLP 和MPI OPENMP 当然不好比,不过和CELL BE 比,复杂性基本是一个数量级的,甚至还要低一点。
我想你恐怕还没有CELL BE 或者CUDA 的编程经验,所以你有这样的经验模式,对于CFD 类似的计算,在CUDA 和CELL BE 上效果都不错,不过某些强DD 的计算,在GPU 或者CELL 都有问题,这也是我为什么更倾向软件物理引擎,因为可以吧不同的计算合理分配到不同的计算部件上。
回复 支持 反对

使用道具 举报

79#
 楼主| 发表于 2008-8-27 11:43 | 只看该作者
原帖由 RacingPHT 于 2008-8-27 11:30 发表
呵呵,我的经验可以告诉你,用CS做物理引擎的技术门槛比C++只高不低。

我考你几点:
1: CS/CUDA如何有效构造Hash table?
2: CS和CPU使用什么方法进行有效同步,或者说lock-step式的合作?
3: CS上怎样使用物理 ...

顺便说一下,你还没有表现出你对GPGPU 计算的任何了解或者经验。
我可以给你出个题目,你用CUDA 试一下,你会发现CUDA 做线程同步,没有那么可怕。
模拟一个闭系统的分子运动,每个分子有其质量,相互引力,初速度随机产生,空间位置随机,基本均匀分布,取离散时间间隔为1us,其他条件可以自己设定。
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
80#
发表于 2008-8-27 11:55 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-9-14 00:39

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表