问题标签 [ati]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 如何修复屏幕('OpenMovie'.. 导致 Matlab 崩溃
设置:Matlab Student 2014、Psychtoolbox 3.0.12、GStreamer 1.4.3、ATI Radeon 69xx,全部在 Windows 7 上,全部为 64 位。
屏幕使用不同的参数,仅在Screen('OpenMovie'
整个程序(Matlab)崩溃时 - 有时出现错误(无法同步帧速率),有时根本没有错误。
我知道它非常具体,并且我认为它在我的配置中(代码将在不同的系统(实验室)上运行)。
到目前为止我已经尝试过:
- Psychtoolbox 3.0.11、GStreamer SDK、GStreamer 1.4.1
- 更新的 ATI 驱动程序(完整的催化剂控制中心,..)
- 删除了多显示器设置(使调试变得更加困难......)
- Matlab 本身可以工作,GStreamer 也可以(尝试用 playbin 播放电影)
- 任何 SyncTrouble 状态:等待垂直同步,三重缓冲关闭
- 覆盖同步测试或完全跳过(也崩溃)
- 寻找丢失的 dll(对于 Screen.mexw64)
- VBLSyncTest 和 PerceptualVBLSyncTest 看起来不错并且有结果(对我来说)
它必须要么非常简单,要么非常具体——我不知何故没有想法。我的猜测是 Radeon 垂直同步设置不起作用 - 出于什么原因。
任何猜测,提示都是赞赏的。(甚至在 Matlab/Psychtoolbox 中测试屏幕或垂直同步的其他方法)
opencl - 我是否重载了我的 opencl 内核?运行代码时我的屏幕变黑
我的内核函数必须存储一个包含 7500 个值的中间私有数组。在运行代码时,我的屏幕会出现一秒钟的空白,并且当它恢复时不会显示结果。假设没有足够的私有内存,我稍微更改了代码。现在它将每个新数组值与迄今为止计算的最大值进行比较。这样我就不需要创建一个包含 7000 个值的数组。相反,我只存储最大的价值。但我仍然遇到同样的问题。那么我的屏幕变黑的原因可能是什么?这是我的内核:
存储在private static String programSource;
. 这是代码:
c++ - 在计算着色器中使用两个 SSBO 时 imageStore 不写入
当我尝试在我的 ATI HD 5770 上运行它时,我注意到我的一个计算着色器出现错误。我发现当我在着色器中访问多个 SSB 时问题就开始了,尽管 GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 为 8。
经过一番摆弄后,我将有问题的着色器简化为这个 MWE:
当我按原样运行此着色器时,我看不到imageStore
. 删除时,我在图像中b.length();
得到所需的输出。-2
的值在这两种情况下a[0]
都更改为-2
,因此着色器肯定正在运行。
在这两种情况下,着色器都没有编译/链接器错误,glGetError
也不会返回错误。
我在这里做错了吗?
这是(驱动程序)错误吗?毕竟,这不会发生在我的其他 (NVidia) 卡上。
为了完整起见,我使用了这个“最小的”C++ 文件来运行着色器:
更新
似乎有一个类似的问题imageLoad
,它总是在使用超过 2 个 SSBO 时返回 0,在使用 2 个 SSBO 时返回 3,对于少于 2 个 SSBO 的正确值。即使在最新的驱动程序(15.7,之前是 15.5)上也会出现这两个问题。
graphics - D3D11CreateDevice 导致读取访问冲突
代码与问题
我正在尝试 Microsoft 的应用程序验证程序并在下面的简单代码中遇到读取访问冲突。这是我的错吗?如果不是,我应该向谁报告?
应用程序验证器输出
WinDBG 调用栈
我的电脑信息
- Windows 8.1 专业版 64 位(6.3,内部版本 9600)
- AMD Radeon (TM) R9 200 系列
- AMD Catalyst 驱动程序 (15.7.1) 最新(上次检查时间为 2015 年 10 月 15 日晚上 10:16:39)
linux - Geth 无法识别 Debian 上的 GPU 驱动程序
我已经安装了来自http://support.amd.com/en-us/download/desktop?os=Linux+x86_64的专有 AMD 驱动程序和来自http://developer.amd.com/tools-的用于 OpenCL 的 AMD APP SDK和-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/。我还使用 OpenCL 标志从源代码构建了 go-ethereum。但是,当我尝试在 geth 中设置 GPU 时,我得到:
有人可以给我指点如何解决驱动程序配置问题,或者如何测试 OpenCL 驱动程序是否安装正确?
opengl - Why is my AMD card consuming vast amounts of CPU memory when I use sparse textures?
I've been investigating a performance difference in my application between AMD and nVidia cards related to sparse textures. I've recently discovered that when using an AMD GPU, creating sparse textures appears to have some kind of massive cost in terms of CPU memory.
On a windows 10 machine with an R9 390 with 8 GB of GPU memory and 16 GB of CPU memory, I'm running the following code attached to a timer set to fire 10 times a second
Where...
This should, as far as I know, create a texture, allocate virtual memory and then commit that memory. It should consume GPU memory at a rate of about 10 MB per second. On an nVidia card, this code behaves as expected. On an AMD card, however, this code starts consuming CPU physical memory at a rate of about 1 GB per second.
This can be seen in process explorer here, where both the system commit size and physical memory size immediately start to skyrocket as soon as I start the application.
Why is the AMD driver suddenly consuming massive amounts of CPU memory whenever I create a sparse texture?
performance - OpenCL 内核上的 GPU 性能缓慢
我对在 AMD GPU(夏威夷核心或 Radeon R9 390)上使用 OpenCL 的一些性能感到有点不知所措。
操作如下:
- 将内存对象 #1 发送到 GPU
- 执行内核#1
- 将内存对象 #2 发送到 GPU
- 执行内核#2
- 将内存对象 #3 发送到 GPU
- 执行内核#3
依赖是:
- 内存对象 #1 上的内核 #1
- 内存对象 #2 上的内核 #2 以及内核 #1 的输出内存
- 内存对象 #3 上的内核 #3 以及内核 #1 和 #2 的输出内存
内存传输和内核执行在两个独立的命令队列中执行。命令依赖由 OpenCL 中定义的 GPU 事件完成。
整个操作现在循环,只是为了使用相同的输入数据进行性能分析。
正如您在时间线中看到的,主机在 GPU 上等待很长时间才能完成 clWaitForEvents(),而 GPU 大部分时间都处于空闲状态。您还可以看到重复的操作。为方便起见,我还提供了所有已发布 OpenCL 命令的列表。
我现在的问题是:
为什么GPU闲置这么多?在我的脑海中,我可以轻松地将所有“蓝色”项目组合在一起并立即开始操作。内存传输为 6 GB/s,这是预期的速率。
为什么内核执行得这么晚?为什么内核 #2 和内核 #3 执行之间存在差距?
为什么内存传输和内核不并行执行?我使用 2 个命令队列,只有 1 个队列,性能更差。
只需将所有命令放在我的脑海中(当然要保持依赖关系,所以第一个绿色必须在第一个蓝色之后开始),我可以将性能提高三倍。我不知道为什么GPU如此缓慢。有没有人有一些见识?
一些数字运算
- 内存传输 #1 为 253 µs
- 内存传输 #2 为 120 µs
内存传输#3 为 143 µs - 由于未知原因,它总是太高,它应该是 #2 的 1/2 或在 70-80 µs 范围内
内核 #1 为 74 µs
- 内核 #2 为 95 µs
- 内核 #3 为 107 µs
因为内核 #1 比内存传输 #2 快,内核 #2 比内存传输 #3 快,所以总时间应该是:
- 253 µs + 120 µs + 143 µs + 107 µs = 623 µs
但 clWaitForEvents 是
- 1758 µs - 或大约 3 倍
是的,有一些损失,我可以接受 10% (60 µs),但 300% 太多了。
c++ - nVidia和ATI之间的OpenGL渲染差异
最近我将 ATI 驱动程序(我正在使用 HD7970)更新到最新的驱动程序,并且我的一些 OpenGL 项目的 objetcs 停止工作。更重要的是,他们在 nVidia 最新驱动程序上工作(在 960m 上测试)。我应该知道 ATI 和 nVidia 渲染管道之间有什么区别吗?
附加信息:
- glGetError() 没有错误,
- 着色器正确编译和链接,
- 其他渲染对象工作正常,但 VBO 填充和绘图命令不同。工作一个从 *.obj 文件加载并由 glDrawArrays() 绘制。Broken one 的 VBO 由多边形化器(计算着色器)填充,它从用于存储的 image2D 中获取顶点,并由 glDrawElements() 绘制,
- 使用我最简单的 gpu 调试器,我检查了顶点和片段着色器是否正在启动。
当我尝试用三角形绘制时,我什么也看不到,但是当我切换到 GL_POINTS 时,我看到绿点(片段着色器的输出是纯绿色通道)正在按应有的方式移动。这可能表明顶点着色器正在启动,因为 MVP 倍增正在发生。这些是具有一个大 VBO 的行星 LOD 对象,因此我使用一个函数来绑定所有缓冲区和其他函数来绘制必要的高度图。VBO 大小为 128MB
初始化:
通过多边形化器(计算着色器)填充 VBO:
捆绑:
绘画:
顶点着色器:
linux - 如何在 ubuntu 上安装 AMD ADL 库
最新的 ATI 区块链驱动程序不包括 ADL。ADL 版本中的安装说明参考了包含的 adlutil,但我如何安装该库以便 3rd 方软件(如 Claymore)可以使用它?
任何帮助将不胜感激。