Articles of NVIDIA

在Linux的多个平台上启用OpenCL? 如何处理ICD文件?

细节 为了在多种平台上启用OpenCL,必须安装哪些驱动程序/软件包:CPU(英特尔),集成GPU(英特尔),专用GPU(NVIDIA)? 拥有运行OpenCL 1.2或更高版本的所有平台将是非常好的 我知道这可能是一个简单的修复,也许只是正确的库/ SKDselect,但我有一些麻烦得到更多的一个平台上class。 运行Ubuntu 14.04:我有一个英特尔核心I5与集成的英特尔graphics和专用的NVIDIA GeForce 710m板。 我用过的资源 https://wiki.tiker.net/OpenCLHowTo 这里(在Debian下)它告诉我,我只需要: ICD装载机的包装:(你只需要其中的一个) ICD的软件包 包头 我已经尝试过了 安装的CUDA7.5(是的所有) 有一个黑屏由于司机冲突 解决所有的NVIDIA驱动程序和安装352 还剩下Cuda SDK安装 From: 如何让OpenCL在14.10 + Nvidia 331.89驱动上运行? sudo apt-get install nvidia-331 nvidia-331-uvm nvidia-opencl-dev nvidia-modprobe 这些软件包将我的司机降级到331和340 同样来自: 如何使OpenCL在14.10 + Nvidia 331.89驱动程序上工作? 链接库与: sudo ln -s /usr/include/nvidia-352/GL /usr/local/include sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/local/lib/libOpenCL.so OpenCL 1.1为NVIDIA GPU工作 无法获得OpenCL […]

SLURM:分配所有GPU后,不能再提交cpu作业

我们刚刚开始使用slurm来pipe理我们的GPU(目前只有2个)。 我们使用Ubuntu 14.04和slurm-llnl。 我configuration了gres.conf和srun工程。 问题是,如果我用–gres=gpu:1运行两个作业,那么两个GPU成功分配并且作业开始运行; 现在我希望能够在没有–gres=gpu:1情况下运行更多的作业(除了2个GPU作业之外)(即作业比只使用CPU和RAM),但这是不可能的。 该错误消息说,它不能分配所需的资源(即使有24个CPU核心)。 这是我的gres.conf: Name=gpu Type=titanx File=/dev/nvidia0 Name=gpu Type=titanx File=/dev/nvidia1 NodeName=ubuntu Name=gpu Type=titanx File=/dev/nvidia[0-1] 我感谢任何帮助。 谢谢。

如何在NVidia Desktop上创buildEGL上下文

我正在寻找一个snipet代码来在桌面NVidia上创buildEGL上下文。 我知道,在Windows上,NVidia通过扩展WGL_EXT_create_context_es_profile和WGL_EXT_create_context_es2_profile公开EGL。 在Linux上,NVidia允许通过GLX_EXT_create_context_es_profile和GLX_EXT_create_context_es2_profile扩展来使用EGL。 但是我无法find一个例子或示例代码来运行它。

有两个gpu的时候如何设置Torch使用一个gpu?

我的电脑有两个GPU。 这是我第一次使用两个GPU。 当我有一个GPU时,我只运行Cuda程序,它只在一个GPU上运行。 但是,我不知道如何控制程序使用哪个GPU以及如何在唯一的一个GPU上运行程序。 我search了互联网和post说 导出CUDA_VISIBLE_DEVICES = 0 在运行程序之前必须使用这个。 我有两个程序运行。 一个是火炬脚本,另一个是Cuda脚本。 我打开了两个terminal,在第一个terminal,我使用了上面的命令并运行火炬程序。 之后,在第二个terminal,我也使用了上面的命令,只把数字从0改为1,运行cuda程序。 然而,看到nvidia-smi的图片,它显示了这两个程序分配给了第0个GPU。 我想将火炬程序(PID 19520)分配给第0个,将cuda程序(PID 20351)分配给第1个GPU。 我如何将这两个程序分配给不同的GPU设备? 以下是火炬脚本的设置。 (Ubuntu 14.04,nvidia titan gtx x,cuda-7.5) –[[command line arguments]]– cmd = torch.CmdLine() cmd:text() cmd:text('Train a Recurrent Model for Visual Attention') cmd:text('Example:') cmd:text('$> th rnn-visual-attention.lua > results.txt') cmd:text('Options:') cmd:option('–learningRate', 0.01, 'learning rate at t=0') cmd:option('–minLR', 0.00001, 'minimum learning […]

在Linux(Ubuntu)中编译基本C语言CUDA代码

我花了很多时间在运行Ubuntu Linux(11.04)的机器上设置CUDA工具链。 钻机有两个NVIDIA Tesla GPU,我可以编译并运行NVIDIA GPU计算SDK中的testing程序,例如deviceQuery,deviceQueryDrv和bandwidthTest。 当我尝试从书籍和在线资源中编译基本的示例程序时,出现了一些问题。 我知道你应该用NVCC进行编译,但是每当我使用它的时候都会收到编译错误。 基本上任何涉及CUDA库的include语句都会导致缺less文件/库错误。 一个例子是: #include <cutil.h> 我是否需要某种makefile来将编译器指向这些库,或者在编译NVCC时是否需要设置其他标志? 我遵循这些指南: http://hdfpga.blogspot.com/2011/05/install-cuda-40-on-ubuntu-1104.html http://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc /CUDA_C_Getting_Started_Linux.pdf

链接到libGL添加对NVidia库的引用

我试图把我的程序链接到libGL.so库,但是我的可执行文件也以libnvidia-tls.so.331.62和libnvidia-glcore.so.331.62的引用结束。 即使NVidia驱动程序将被要求执行我的程序(我使用CUDA),我不希望它依赖于特定版本的库(驱动程序)。 这是一个最小的例子。 资源: #include <GL/glew.h> int main(int argc, char** argv) { glBegin(GL_LINES); glEnd(); return 0; } 我用以下方法构build程序: g++ -o main main.cpp -lGL ldd main输出: linux-vdso.so.1 => (0x00007fff6c3fc000) libGL.so.1 => /usr/lib/nvidia-331/libGL.so.1 (0x00007fd4f37c5000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd4f33fd000) libnvidia-tls.so.331.62 => /usr/lib/nvidia-331/tls/libnvidia-tls.so.331.62 (0x00007fd4f31f9000) libnvidia-glcore.so.331.62 => /usr/lib/nvidia-331/libnvidia-glcore.so.331.62 (0x00007fd4f09ea000) libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fd4f06b5000) libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fd4f04a2000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 […]

如何获得连接的显示器的数量在Linux上的GPU?

我需要确定给定的CUDA设备是否连接了显示器。 我不知道这个CUDA函数。 在Windows上,我可以使用NVAPI来获取每个设备的连接显示器数量和PCI总线/插槽ID。 使用后者,我可以find匹配的CUDA设备(通过调用cudaGetDeviceProperties)。 在NVAPI不可用的Linux上,我怎样才能做到这一点? 从技术上讲,我需要的是以下代码的Linux替代scheme: NvAPI_Initialize(); NvPhysicalGpuHandle gpuHandles[64]; NvU32 numOfGPUs; NvAPI_EnumPhysicalGPUs(gpuHandles, &numOfGPUs); for (int i = 0; i < numOfGPUs; i++) { NvU32 connected_displays = 0; NvU32 busId = 0; NvU32 busSlotId = 0; NvAPI_GPU_GetConnectedDisplayIds(gpuHandles[i], NULL, &connected_displays, NULL); NvAPI_GPU_GetBusId(gpuHandles[i], &busId); NvAPI_GPU_GetBusSlotId(gpuHandles[i], &busSlotId); printf("Current device: %d\n", i); printf("Number of connected displays: %u\n", connected_displays); printf("Bus id: […]

Linux – graphics驱动程序和Mesa之间的关系

当我安装NVIDIA专有驱动程序,然后使用Nvidia OpenGL实现(我不需要Mesa)。 哪一个OpenGL实现可以与一个开放源代码的nvidia驱动程序一起使用 – Nouveau? Nouveau还提供OpenGL实现还是必须使用Mesa OpenGL实现? 我可以在Mesa OpenGL实现中使用nvidia驱动吗? 什么是可能性?

如何在Linux中确定显示器/电视机的电源状态

几个月前,我问了同样的问题,但是我遇到了另一个障碍,我希望有人能够有一个洞察。 是上一个线程: 检测显示器是否closures 我试图弄清楚显示器的电源状态,特别是通过HDMI插入的电视机。 我使用nVidia IONvideo卡运行Ubuntu 10.10。 这些电脑将运行一些数字标牌,我需要在工作时间确保电视机已经连接到电视机上。 我有一个工作的Python脚本控制红外发射器closures和打开电视。 最后一块难题是了解电视机的当前状态。 在我之前的线程中,我发现我可以使用ddccontrol从监视器获取信息。 这对于通过HDMI插入的传统Asus显示器非常有效。 但是,Vizio电视说它不支持DDC。 我也尝试过使用get-edid来获得实时的分辨率和颜色信息,但是没有从电视返回任何信息。 我试过udevadm monitor但一个事件只在最初的监视器插件上触发。 我有一种感觉,nVidia的驱动程序阻止了这些呼叫到显示器,但我不能确认。 最终,我所需要的只是显示器closures时单个字节的信息。 编辑:所以,我得出的结论,这可能是不可能的。 至less在video卡和显示器/电视的各种组合中不可能一致。 我有下一个想法是监视电源sockets上的用电量。 我首先看了杀瓦茨,但他们完全孤立。 经过几个小时的search,我遇到了Digi和他们的XBee无线电。 我订购了来自Digi的XBee智能插头以及Spark Fun的XBee收音机和USB适配器。 我目前的计划是使用一个Python脚本轮询智能插头的用电量。 插头和收音机是昂贵的。 有谁知道插入的功率计? 我发现的一切都是无线的。 我希望能够通过USB,以太网或串行连接到它。 编辑2:我永远不能得到XBee插头工作。 除非您购买Digi的其中一个网关,否则configuration插头是非常困难的。 我最终build立了我自己的电stream传感器。 这是Arduino的基础和成本约60元的部分。 我在这里写了: http : //trafficlightads.net/2011/09/06/an-arduino-current-sensor/

X请求失败的错误:BadMatch

我试图执行一些“hello world”的opengl代码: #include <GL/freeglut.h> void displayCall() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST); … Some more code here glutSwapBuffers(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(500, 500); glutInitWindowPosition(300, 200); glutInitContextVersion(4, 2); glutInitContextFlags(GLUT_FORWARD_COMPATIBLE); glutCreateWindow("Hello World!"); glutDisplayFunc(displayCall); glutMainLoop(); return 0; } 结果我得到: X Error of failed request: BadMatch (invalid parameter attributes) […]