标签: nvidia

在Linux中没有X.org的OpenGL

我想在Linux中打开没有X的OpenGL上下文.有没有办法做到这一点?

我知道集成英特尔显卡硬件是不可能的,尽管大多数人在他们的系统中都有nvidia卡.我想得到一个适用于nvidia卡的解决方案.

如果除了通过集成的英特尔硬件之外别无他法,我想可以知道它是如何完成的.

X11协议和协议本身太大而复杂.它提供的鼠标/键盘/平板电脑输入多路复用功能对于现代程序来说过于臃肿.我认为这是阻止Linux桌面改进的最糟糕的障碍,这就是我寻找替代方案的原因.

linux x11 opengl nvidia

31
推荐指数
2
解决办法
2万
查看次数

Android Nexus 7 Jelly Bean:s​​tartPreview/takePicture调用getCameraStereoMode记录错误

我刚买了一个Nexus 7我试图将一些代码移植到.以下行在运行Ice Cream的Xoom上没有问题:

mCamera.startPreview();
Run Code Online (Sandbox Code Playgroud)

它也可以在Nexus 7上正常工作,但它会记录错误:

E/NvOmxCamera(  126): OMX_ERRORTYPE android::NvOmxCamera::getCameraStereoMode(NvxComponent*, NvOmxCameraUserStereoMode&): Error: invalid NVX mode 0.
E/NvOmxCamera(  126): OMX_ERRORTYPE android::NvOmxCamera::getCameraStereoModeAndCaptureInfo(NvxComponent*, NvOmxCameraUserStereoMode&, NVX_STEREOCAPTUREINFO&): getCameraStereoMode failed with 0x00000000
Run Code Online (Sandbox Code Playgroud)

这是一个问题,因为当我执行该行时,它还会每帧记录一次这些错误

mCamera.takePicture(null, null, null, pictureCallback);
Run Code Online (Sandbox Code Playgroud)

因为我每秒需要10帧,所以这让我感到不安,所以我想修复错误.我已经浏览了所有的源代码(android sdk和ndk),上述错误的文本没有出现在任何地方.我相信很多谷歌搜索都发生在Nvidia的OpenMax实现中,它似乎与参数"nv-stereo-mode"有关,它具有"左","右"或"立体声"的可能值. (Nexus 7只有一个摄像头,所以我不知道它为什么会关心立体摄像机模式,但无论如何).我尝试将其设置为每个合法值,例如:

mParams = mCamera.getParameters();
mParams.set("nv-stereo-mode", "right");
mCamera.setParameters(mParams);
Run Code Online (Sandbox Code Playgroud)

但是,我的日志说:

E/NvOmxCameraSettingsParser(  126): Skipping non-standard parameter: nv-stereo-mode
Run Code Online (Sandbox Code Playgroud)

这似乎与源文件nvomxcamerasettingsparser.cpp有关,我无法在网络上的任何地方找到它.我真的不知道从哪里开始,我已经用我想到的所有内容进行了搜索和搜索,所以任何帮助都会有很大的帮助.

android nvidia android-ndk android-camera

31
推荐指数
1
解决办法
1613
查看次数

Nvidia图形驱动程序导致明显的框架口吃

好的,我已经研究了这个问题几天了,所以让我回顾一下目前为止我所知道的,这让我相信这可能是NVidia的驱动程序而不是我的代码的问题.

基本上我的游戏在运行几秒后开始出现口吃(随机帧需要70ms而不是16ms,在规则模式上).仅当在Nvidia控制面板中启用了"线程优化"设置(最新驱动程序,Windows 10)时才会发生这种情况.不幸的是,此设置默认启用,我宁愿不必让人们调整他们的设置以获得愉快的体验.

  • 游戏不是CPU或GPU密集型(没有vsync的帧为2ms).它没有调用任何需要同步数据的openGL函数,也没有流式传输任何缓冲区或从GPU或其他任何东西读取数据.关于最简单的渲染器.

  • 问题始终存在,当我在fmod中添加音频时,它才开始变得明显.fmod不是这个的原因(更多在后期)

  • 尝试使用NVidia Nsight调试问题使问题消失."开始收集数据"立即导致口吃消失.这里没有骰子.

  • 在Profiler中,"nvoglv32.dll"花费了大量的cpu时间.如果启用了线程优化,则此过程仅生成.我怀疑这是一个同步问题,因此我使用visual studio Concurrency Viewer进行调试.

  • A-HA! vsyncs

  • 调查nvidia线程上的这些CPU时间块,我可以在其callstack中获得的最早命名函数是" CreateToolhelp32Snapshot ",然后在Thread32Next中花费了大量时间.我在早期查看CPU时间时发现了分析器中的Thread32Next,所以这看起来好像我在正确的轨道上.

  • 因此,看起来nvidia驱动程序会出于某种原因定期抓取整个过程的快照?可能是什么原因,为什么会这样做,我该如何制止呢?

  • 这也解释了为什么一旦我在fmod中添加问题就开始变得明显,因为它抓取了所有进程线程的信息,而fmod产生了很多线程.

  • 有帮助吗?这只是nvidia驱动程序中的一个错误,还是我可以做些什么来修复它,告诉人们禁用线程"优化"?

编辑1:我的笔记本电脑上的当前nvidia驱动程序也出现同样的问题.所以我并不疯狂

编辑2:同样的问题发生在nvidia驱动程序的版本362(以前的主要版本)上

c++ graphics multithreading synchronization nvidia

30
推荐指数
2
解决办法
3506
查看次数

nvidia-smi:GPU 的全名未正确显示

在Linux服务器上,nvidia-smi可以显示GPU名称,以及其他有用的信息。但是,全名无法正确显示。如何知道 GPU 的全名?

在此输入图像描述

linux gpu nvidia

29
推荐指数
1
解决办法
3万
查看次数

CUDA如何为GPU分配设备ID?

当计算机具有多个支持CUDA的GPU时,每个GPU都会分配一个device ID.默认情况下,CUDA内核会执行device ID 0.您可以使用cudaSetDevice(int device)选择其他设备.

假设我的机器中有两个GPU:GTX 480和GTX 670.CUDA 如何确定哪个GPU device ID 0和哪个GPU device ID 1


关于CUDA如何分配设备ID的想法(只是头脑风暴):

  • 计算能力的降序
  • PCI插槽号
  • 将设备添加到系统的日期/时间(刚刚添加到计算机的设备的ID号越高)

动机:我正在研究一些HPC算法,我正在为几个GPU进行基准测试和自动调整.我的处理器有足够的PCIe通道,可以在全带宽下将cudaMemcpys驱动到3个GPU.因此,我不打算不断地将GPU交换进机器,而是计划在计算机中保留3个GPU.我希望能够预测当我在计算机中添加或更换某些GPU时会发生什么.

cuda gpu gpgpu nvidia

27
推荐指数
4
解决办法
2万
查看次数

无法加载动态库“libnvinfer.so.7”

我知道这个问题已经被问了很多次,但这些建议似乎都不起作用,可能是因为我的设置有些不同:

Ubuntu          22.04
python          3.10.8
tensorflow      2.11.0
cudatoolkit     11.2.2
cudnn           8.1.0.77
nvidia-tensorrt 8.4.3.1
nvidia-pyindex  1.0.9
Run Code Online (Sandbox Code Playgroud)

home/dan/anaconda3/envs/tf/lib/python3.10/site-packages/tensorrt在我的目录中创建了一个 conda 环境“tf”

libnvinfer_builder_resource.so.8.4.3
libnvinfer_plugin.so.8
libnvinfer.so.8
libnvonnxparser.so.8
libnvparsers.so.8
tensorrt.so
Run Code Online (Sandbox Code Playgroud)

跑步时python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"我得到

tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7';
dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory;
LD_LIBRARY_PATH: :/home/dan/anaconda3/envs/tf/lib

tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7';
dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory;
LD_LIBRARY_PATH: :/home/dan/anaconda3/envs/tf/lib

tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot …
Run Code Online (Sandbox Code Playgroud)

nvidia tensorflow cudnn tensorrt

27
推荐指数
3
解决办法
5万
查看次数

使用专有的Nvidia驱动程序在Linux上出现多个OpenGLX渲染上下文失败

当我尝试在各个线程上运行超过128个当前OpenGLX渲染上下文时,调用glXMakeCurrent开始失败.

Display *display = XOpenDisplay(":0")
Window root_win = RootWindow(display, screen);
Window win = XCreateWindow (display, root_win, ...)
GLXContext context = glXCreateContext(display, visinfo, 0, True);

glXMakeCurrent(display, win, context); <---- Fails here on 128th
Run Code Online (Sandbox Code Playgroud)

此问题仅发生在专有的Nvidia驱动程序和Nvidia GPU上.我无法使用英特尔GPU重现.

复制代码glx.cpp:

#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glx.h>
#include <GL/glxext.h>
#include <string.h>
#include <unistd.h>
#include <thread>
#include <vector>
#include <mutex>
#include <condition_variable>
#include <chrono>

#define MAX_CONTEXTS 200;

std::mutex mutex;
std::condition_variable cond;
bool will_stop = false;

int numSuccessfulContexts = 0;
#define EXIT_IF(condition, ...) if …
Run Code Online (Sandbox Code Playgroud)

c++ linux opengl nvidia glx

26
推荐指数
1
解决办法
885
查看次数

CUDA是什么样的?它是为了什么?有什么好处?以及如何开始?

我有兴趣在一些新技术下开发,我正在考虑尝试CUDA.现在......他们的文档太技术性,无法提供我正在寻找的答案.另外,我想听听那些已经有过CUDA经验的人的答案.

基本上我的问题是标题中的问题:

什么是CUDA?(它是一个框架吗?还是一个API?什么?)

它是为了什么?(还有什么不仅仅是编程到GPU?)

它是什么样的?

针对CUDA编程而不是编程到CPU有什么好处?

使用CUDA开始编程的好地方是什么?

cuda nvidia gpu-programming

25
推荐指数
1
解决办法
2万
查看次数

在Optimus笔记本电脑中以编程方式强制使用NVIDIA GPU

我正在编写一个DirectX游戏,当我在Optimus笔记本电脑上运行它时会使用英特尔GPU,导致可怕的性能.如果我使用上下文菜单强制NVIDIA GPU或将我的可执行文件重命名为bf3.exe或其他一些着名的游戏可执行文件名称,性能就像预期的那样.
显然,当我必须重新分配我的游戏时,这两种方法都不是可接受的解决方案,那么有没有办法以编程方式强制笔记本电脑使用NVIDIA GPU?

我已经尝试使用DirectX来枚举适配器(IDirect3D9 :: GetAdapterCount,IDirect3D9 :: GetAdapterIdentifier)并且它不起作用:仅报告1个GPU(正在使用的GPU).

c++ directx nvidia optimus

25
推荐指数
2
解决办法
1万
查看次数

我的nvidia驱动程序的CUDA版本是什么?

我正在使用ubuntu 14.04.我想安装CUDA.但我不知道哪个版本对我的笔记本电脑有好处.我跟踪我的驱动器

$cat /proc/driver/nvidia/version

NVRM version: NVIDIA UNIX x86_64 Kernel Module  304.125  Mon Dec  1 19:58:28 PST 2014
GCC version:  gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) 
Run Code Online (Sandbox Code Playgroud)

我尝试安装CUDA,cuda-linux64-rel-7.0.28-19326674但是当我按命令测试时

./deviceQuery
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

cudaGetDeviceCount returned 35
-> CUDA driver version is insufficient for CUDA runtime version
Result = FAIL
Run Code Online (Sandbox Code Playgroud)

你能帮我解决这个问题吗?我很多次重新安装我的ubuntu.非常感谢

ubuntu gcc cuda nvidia

25
推荐指数
1
解决办法
4万
查看次数