问题标签 [vram]

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.

0 投票
1 回答
3179 浏览

memory - 当 VRAM 已满时会发生什么?

我想知道当前处理 VRAM 资源分配的 nvidia/AMD 实现。

我们已经知道操作系统在系统 RAM 已满时使用交换/虚拟内存,那么当涉及到 VRAM 时,交换的等价物是什么?它们是回退到系统 RAM 还是硬盘?

我认为回退到系统 RAM 是合理的,但是根据我的经验,视频游戏在视频内存空间不足时会严重滞后(典型 FPS 的 1/20),这让我怀疑他们正在使用系统 RAM,因为我认为系统RAM 并没有那么慢,使游戏滞后这么多。

简而言之,我想知道当前的实现是什么,以及导致游戏在内存不足的情况下滞后的最大瓶颈是什么。

0 投票
1 回答
1643 浏览

android - 无法获取 opengl OutOfMemory 错误 1285

我只想知道我在 android 设备上有多少视频内存。为此,我创建了很多次 opengl 纹理并检查 glGetError() 但始终没有错误,但我不相信这可能在内存中有这么多纹理。所以这里的代码:

为什么我无法获得 opengl OutOfMemory?或者也许还有另一种方法可以知道我的 Android 设备上有多少 VRAM。

0 投票
0 回答
134 浏览

c# - 在 Unity3D 中编写自定义像素/vram

我一直在考虑这个问题。我知道我们可以使用 setpixels 写入我们自己的纹理,但我也知道这是一种非常慢的方法,它会开始将帧速率降至 30 以下。(由于之后发生的与视频卡的同步。)

所以要么我使用了错误的方法,要么做错了。但是我找不到将自己的 vram 写入纹理或直接写入相机的正确方法。

长话短说,如果我要像一个模拟器一样在 Unity 中构建,我希望这个模拟器可以逐个像素地在相机上运行,​​或者只是在 unity 内部的纹理上运行。在大多数设备上,我如何在不降低帧速率的情况下实现这一点?

着色器是一种选择吗?如果是这样,请指点我一个方向,因为我还没有自己做过这些。

0 投票
0 回答
962 浏览

c# - 如何在 C# 中获取 VRAM 使用情况?

我需要测量 VRAM 使用情况以在我的程序中使用,但我没有找到任何关于此的内容。

它也可以是 GPU 使用率。

如果我可以为 AMD 和 NVIDIA 使用相同的工具/代码/wtv,那就太好了,但我需要 AMD 比 NVIDIA 更多。

谢谢。

0 投票
2 回答
12523 浏览

python - TensorFlow:如何记录 GPU 内存 (VRAM) 利用率?

TensorFlow 总是(预先)在我的显卡上分配所有可用内存(VRAM),这没关系,因为我希望我的模拟在我的工作站上运行得尽可能快。

但是,我想记录 TensorFlow 实际使用了多少内存(总计)。此外,如果我还可以记录单个张量使用了多少内存,那就太好了。

此信息对于测量和比较不同 ML/AI 架构所需的内存大小非常重要。

有小费吗?

0 投票
2 回答
1312 浏览

java - 为 Javafx 程序分配更多 VRAM

我正在开发一个 JavaFX 程序并希望加快我的应用程序。在阅读了关于大图像和与它们相关的问题后我决定遵循那里的建议并分配更多的 VRAM。但是,我不太确定如何执行此操作,尽管我知道如何执行此操作,但我希望获得具体说明。我需要使用的参数是Dprism.maxvram=XX。我正在使用eclipse IDE,想知道在哪里插入参数,导出到jar文件时会携带参数吗?

0 投票
1 回答
418 浏览

c++ - opengl 驱动程序在有限的 VRAM 中处理大型纹理阵列的能力如何

我的游戏引擎尝试分配大型纹理数组,以便能够将大部分(如果不是全部)绘制在一起。这个数组可能变得足够大而无法分配,此时我会(不断地)将纹理数组分成两半。

glGetError:Out of memory突破界限直到收到 a并从那里缩减是不是糟糕的设计?

我的应用程序是不是因为它分配了巨大的 VRAM 块,而这可能需要交换到 GTT 内存中?例如,在处理其他操作系统操作时,图形驱动程序处理一些大型纹理数组而不是许多单独的纹理是否不太理想?

0 投票
0 回答
335 浏览

opengl - 如何从纹理中读取高度图值?

我已经实现了基于 GPU 的剪贴图地形渲染系统,其中高度直接从 VRAM 中的纹理在顶点着色器中进行采样。但显然我想在任何时候查询高度图 CPU 端,这样我就可以将代理保持在地面上并做其他事情,如植被/建筑物放置、雨溅、其他物理。当然,我可以将高度图保留在主内存中并对其执行双线性采样,但是在两个内存中拥有相同的大型数据集似乎太浪费了。我也可以使用 glGetTexImage 或 glReadPixel 在 4 个点对纹理数据进行采样,但我认为它非常慢,我想每帧采样很多点。实现这一目标的最佳方法是什么?这一定是一个普遍的问题。

0 投票
8 回答
41683 浏览

tensorflow - GPU 上的 TensorFlow OOM

我正在 Tensorflow 中的 LSTM-RNN 上训练一些音乐数据,并遇到了一些我不明白的 GPU-Memory-Allocation 问题:当实际上似乎还有足够的 VRAM 可用时,我遇到了 OOM。一些背景知识:我正在开发 Ubuntu Gnome 16.04,使用 GTX1060 6GB、Intel Xeon E3-1231V3 和 8GB RAM。所以现在首先是我可以理解的错误消息部分,我将在最后再次添加整个错误消息,以供任何可能要求它帮助的人:

I tensorflow/core/common_runtime/bfc_allocator.cc:696] 8 个大小为 256 的块,总计 2.0KiB I tensorflow/core/common_runtime/bfc_allocator.cc:696] 1 个大小为 1280 的块,总计 1.2KiB I tensorflow/core/common_runtime/bfc_allocator .cc:696] 5 个大小为 44288 的块,总计 216.2KiB I tensorflow/core/common_runtime/bfc_allocator.cc:696] 5 个大小为 56064 的块,总计 273.8KiB I tensorflow/core/common_runtime/bfc_allocator.cc:696] 4 个块大小 154350080 总计 588.80MiB I tensorflow/core/common_runtime/bfc_allocator.cc:696] 3 个大小为 813400064 的块总计 2.27GiB I tensorflow/core/common_runtime/bfc_allocator.cc:696] 1 个大小为 1612612352 的块总计/1.50 张量core/common_runtime/bfc_allocator.cc:700] 使用中块的总和:4.35GiB I tensorflow/core/common_runtime/bfc_allocator.cc:702]统计:

限额:5484118016

使用中:4670717952

最大使用量:5484118016

NumAllocs:29

最大分配大小:1612612352

W tensorflow/core/common_runtime/bfc_allocator.cc:274] ********************___________*__****************** ******************************************xxxxxxxxxxxxxx W tensorflow/core/common_runtime/bfc_allocator.cc: 275] 尝试分配 775.72MiB 时内存不足。查看日志以了解内存状态。W tensorflow/core/framework/op_kernel.cc:993] 资源耗尽:分配具有形状的张量时出现 OOM [14525,14000]

所以我可以读到最多有 5484118016 字节要分配,4670717952 字节已经在使用中,另外 777.72MB = 775720000 字节要分配。根据我的计算器,5484118016 字节 - 4670717952 字节 - 775720000 字节 = 37680064 字节。因此,在为他想要推入的新张量分配空间后,应该还有 37MB 的空闲 VRAM。这对我来说似乎也很合法,因为 Tensorflow 可能(我猜?)不会尝试分配比仍然可用的更多的 VRAM,而只是将其余数据保留在 RAM 或其他东西中。

现在我想我的想法只是有一些大错误,但如果有人能向我解释这个错误是什么,我将非常感激。我的问题的明显解决策略是让我的批次更小一点,每个批次都在 1.5GB 左右可能太大了。我仍然很想知道那里的实际问题是什么。

编辑:我发现了一些告诉我尝试的东西:

这仍然不起作用,但由于 tensorflow 文档缺乏任何解释

会的,我很想问你们。

为任何感兴趣的人添加错误消息的其余部分:

很抱歉复制/粘贴太长,但也许有人需要/想看它,

非常感谢你,莱昂

0 投票
1 回答
268 浏览

c++ - 如果您已经消耗了所有的视频内存,SDL 纹理会自动使用普通内存吗?

我的问题是:如果您已经消耗了所有可用的视频内存,并尝试创建新纹理 (SDL),是否会自动使用普通内存而不是视频内存?或者,您是否必须尝试使用​​使用普通 ram 的表面 (SDL)?如果您因任何原因无法释放视频 RAM 以供使用。