情况
我有一个2 gpu服务器(Ubuntu 12.04),我用一台GTX 670切换了特斯拉C1060.比我在4.2上安装了CUDA 5.0.然后我编译了所有execpt for simpleMPI的例子而没有错误.但是当我运行时,./devicequery我收到以下错误消息:
foo@bar-serv2:~/NVIDIA_CUDA-5.0_Samples/bin/linux/release$ ./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Run Code Online (Sandbox Code Playgroud)
我试过了什么
为了解决这个问题,我尝试了所有CUDA功能设备推荐的思路,但无济于事:
/dev/nvidia* 是,并且权限是666(crw-rw-rw-)和所有者root:root
foo@bar-serv2:/dev$ ls -l nvidia*
crw-rw-rw- 1 root root 195, 0 Oct 24 18:51 nvidia0
crw-rw-rw- 1 root root 195, 1 Oct 24 18:51 nvidia1
crw-rw-rw- 1 root root 195, 255 Oct 24 18:50 nvidiactl
Run Code Online (Sandbox Code Playgroud)我尝试用sudo执行代码
CUDA 5.0同时安装驱动程序和库
PS这里是lspci | grep -i …
现在,我正在写硕士论文,需要在 GCP 上训练一个巨大的 Transformer 模型。而训练深度学习模型最快的方法就是使用 GPU。所以,我想知道我应该使用 GCP 提供的 GPU 中的哪一个?目前可用的有:
\n我们可以用:
with torch.cuda.amp.autocast():
loss = model(data)
Run Code Online (Sandbox Code Playgroud)
为了将操作转换为混合精度。
另一件事是我们可以用来 model.half()将所有模型权重转换为半精度。
FP16(为了创建更大的模型和更短的训练时间),我需要什么?我需要使用 model.half()还是正在使用torch.cuda.amp(根据上面的链接)?我需要一些澄清.我正在我的笔记本电脑上运行OpenCL,运行一个小型的nvidia GPU(310M).当我查询设备时CL_DEVICE_MAX_COMPUTE_UNITS,结果是2.我读取运行内核的工作组数量应该与计算单元的数量相对应(使用OpenCL进行异构计算,第9章,第186页),否则会浪费全球记忆力很强.
此外,芯片被指定具有16个cuda核心(对应于我认为的PE).这在理论上是否意味着,对于全局内存带宽,此gpu的最高性能设置是有两个工作组,每个工作项有16个工作项?
什么时候要求
nvidia-smi
Run Code Online (Sandbox Code Playgroud)
它给出了这个错误:
Failed to initialize NVML: GPU access blocked by the operating system
Run Code Online (Sandbox Code Playgroud)
其他信息:
$ nvcc --verion
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Mon_Feb_16_22:59:02_CST_2015
Cuda compilation tools, release 7.0, V7.0.27
Run Code Online (Sandbox Code Playgroud)
并且:
$ lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation GF108M [GeForce GT 425M] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GF108 High Definition Audio Controller (rev a1)
Run Code Online (Sandbox Code Playgroud)
在互联网上搜索了很多,我找不到解决这个问题的方法.当我使用ipython笔记本并想运行Caffe框架时,它会出现以下错误:
Check failed: error == cudaSuccess (38 vs. 0) no CUDA-capable …Run Code Online (Sandbox Code Playgroud) 我在使用 Pytorch 和 CUDA 时遇到问题。有时它工作正常,有时它告诉我RuntimeError: CUDA out of memory.但是,我很困惑,因为检查nvidia-smi显示我的卡的已用内存为563MiB / 6144 MiB,理论上应该留下超过 5GiB 的可用空间。\n
但是,在运行我的程序时,我收到以下消息:\nRuntimeError: CUDA out of memory. Tried to allocate 578.00 MiB (GPU 0; 5.81 GiB total capacity; 670.69 MiB already allocated; 624.31 MiB free; 898.00 MiB reserved in total by PyTorch)
看起来 Pytorch 正在保留 1GiB,知道分配了 ~700MiB,并尝试将 ~600MiB 分配给程序\xe2\x80\x94,但声称 GPU 内存不足。怎么会这样?考虑到这些数字,应该还有足够的 GPU 内存。
\n我遇到有趣而奇怪的问题。
当我使用 GPU 启动 docker 容器时,它工作正常,并且我看到 docker 中的所有 GPU。然而,几个小时或几天后,我无法在docker中使用GPU。
当我nvidia-smi在 docker 机器上做的时候。我看到这条消息
“无法初始化 NVML:未知错误”
但是,在主机中,我看到所有 GPU 都带有 nvidia-smi。另外,当我重新启动 docker 机器时。它完全工作正常并显示所有 GPU。
我的推理 Docker 机器应该一直打开,并根据服务器请求进行推理。有人有同样的问题或该问题的解决方案吗?
是否可以在Nvidia 3D Vision硬件上运行Java3D应用程序?
我有一个可以在立体3D中运行的现有Java3D应用程序.在过去,我总是使用OpenGL渲染器和四缓冲立体声在Quadro卡上运行应用程序.
我现在可以使用nVidia 3D Vision系统(带有GeForce GTX 460M)的笔记本电脑.从文档中可以看出,如果我使用DirectX绑定并让nVidia驱动程序处理立体声,应该可以在立体声中运行我的应用程序,但是,似乎并非如此.
如果我使用j3d.rend = d3d运行Java3D应用程序,则nVidia 3D Vision API似乎不会将其识别为DirectX应用程序.
如何让nVidia 3D Vision驱动程序检测Java3D应用程序并以立体3D渲染?
美好的一天,我正在尝试使用nvidia 3DVision和两个IP摄像头显示实时立体视频.我对DirectX完全不熟悉,但已尝试在此网站和其他网站上完成一些教程和其他问题.现在,我正在为左眼和右眼显示两个静态位图.一旦我的程序部分工作,这些将被我的相机中的位图取代.这个问题NV_STEREO_IMAGE_SIGNATURE和DirectX 10/11(nVidia 3D Vision)给了我很多帮助,但我仍然在努力让我的程序正常工作.我发现我的快门眼镜开始正常工作,但只有右眼图像显示,而左眼仍然是空白(鼠标光标除外).
这是我生成立体图像的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using SlimDX;
using SlimDX.Direct3D11;
using SlimDX.Windows;
using SlimDX.DXGI;
using Device = SlimDX.Direct3D11.Device; // Make sure we use DX11
using Resource = SlimDX.Direct3D11.Resource;
namespace SlimDxTest2
{
static class Program
{
private static Device device; // DirectX11 Device
private static int Count; // Just to make sure things are being updated
// The NVSTEREO header.
static byte[] stereo_data = new …Run Code Online (Sandbox Code Playgroud) 我已经提供了一个较旧的NVIDIA显卡(GeForce 8400 GS)来开始探索一些GPU计算.我已经尝试成功完成安装,但偶然发现了一个问题.这是我的步骤(在Ubuntu 14.04上)
sudo apt-get install nvidia-current (在我的情况下安装nvidia-304)
重新启动后,快速查询显示我的内核确实成功使用了nvidia
lspci -vnn | grep -i VGA -A 12
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GT218 [GeForce 8400 GS Rev. 3] [10de:10c3] (rev a2) (prog-if 00 [VGA controller])
...
Kernel driver in use: nvidia
Run Code Online (Sandbox Code Playgroud)
当然,我以为我可以安装cuda:
sudo apt-get install cuda
Run Code Online (Sandbox Code Playgroud)
但是这会尝试在我的系统上安装nvidia-346,导致我的系统不再显示我的桌面并且安装不正确.我已经nvidia-346通过专门安装它来验证这是问题而不是nvidia-current.在Linux入门手册说我应该只需要使用apt-get安装CUDA,但我需要为我的显卡的旧驱动程序.
如何安装CUDA以使用我的旧版nvidia驱动程序正常工作,以便进行一些GPU计算?是否有一个列表列出了每个NVIDIA驱动程序的CUDA工具包?我怀疑我需要一个较旧的工具包,我只是不知道哪一个.