Questions tagged «nvidia»

一家总部位于加利福尼亚州圣克拉拉的美国全球技术公司,以其图形处理器(GPU)而闻名。

14
NVIDIA NVML驱动程序/库版本不匹配
运行时,nvidia-smi我收到以下消息: Failed to initialize NVML: Driver/library version mismatch 一个小时前,我收到了同样的消息,并卸载了cuda库,并且能够运行nvidia-smi,得到以下结果: 之后,我cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb从NVIDIA官方页面下载了文件,然后简单地: sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb sudo apt-get update sudo apt-get install cuda export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} 现在,我已经安装了cuda,但是出现了提到的不匹配错误。 一些可能有用的信息: 运行cat /proc/driver/nvidia/version我得到: NVRM version: NVIDIA UNIX x86_64 Kernel Module 378.13 Tue Feb 7 20:10:06 PST 2017 GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 我正在运行Ubuntu …
223 cuda  driver  gpu  nvidia 



2
CUDA块/线程/线程如何映射到CUDA内核?
我已经使用CUDA几周了,但是我对块/线程/线程的分配有一些疑问。 我正在从教学角度(大学项目)研究体系结构,因此达到最佳性能不是我的关注。 首先,我想了解一下我是否明白这些事实: 程序员编写内核,并在线程块网格中组织其执行。 每个块都分配给一个流多处理器(SM)。分配后,便无法迁移到另一个SM。 每个SM将自己的块拆分为Warp(当前最大为32个线程)。扭曲中的所有线程均在SM的资源上同时执行。 线程的实际执行由SM中包含的CUDA核心执行。线程和核心之间没有特定的映射。 如果warp包含20个线程,但是当前只有16个内核可用,则warp将无法运行。 另一方面,如果一个块包含48个线程,则它将拆分为2个扭曲,并在有足够内存可用的情况下并行执行。 如果线程在内核上启动,则由于内存访问或长时间浮点操作而被暂停,则其执行可以在其他内核上恢复。 他们正确吗? 现在,我有一个GeForce 560 Ti,因此根据规格它配备了8个SM,每个包含48个CUDA内核(总共384个内核)。 我的目标是确保体系结构的每个核心都执行SAME指令。假设我的代码不需要比每个SM中可用的更多的寄存器,我想到了不同的方法: 我创建了8个块,每个块有48个线程,因此每个SM都有1个块要执行。在这种情况下,这48个线程是否将在SM中并行执行(利用所有48个可用的内核)? 如果我启动64个6线程块,会有什么区别?(假设它们将在SM之间平均映射) 如果我将GPU“淹没”在计划的工作中(例如,创建1024个线程块,每个线程有1024个线程),则可以合理地假设所有内核将在某个时刻使用,并且将执行相同的计算(假设线程永不停止)? 有什么方法可以使用探查器检查这些情况吗? 这个东西有参考吗?我阅读了《 CUDA编程指南》以及“对大型并行处理器进行编程”和“ CUDA应用程序设计与开发”中有关硬件体系结构的章节;但是我找不到确切的答案。

3
如何为CUDA内核选择网格和块尺寸?
这是关于如何确定CUDA网格,块和线程大小的问题。这是在此处发布的问题的另一个问题。 在此链接之后,来自爪子的答案包含一个代码段(请参见下文)。我不理解“通常是通过调整和硬件限制选择的值”的注释。 我在CUDA文档中找不到很好的解释或说明来解释这一点。总而言之,我的问题是blocksize给定以下代码,如何确定最佳(线程数): const int n = 128 * 1024; int blocksize = 512; // value usually chosen by tuning and hardware constraints int nblocks = n / nthreads; // value determine by block size and total work madd<<<nblocks,blocksize>>>mAdd(A,B,C,n);

10
NVIDIA vs AMD:GPGPU性能
我想听听有编码经验的人。我自己,我只有NVIDIA的经验。 NVIDIA CUDA似乎比竞争对手更受欢迎。(仅在此论坛上计算问题标记,“ cuda”优于“ opencl” 3:1,“ nvidia”优于“ ati” 15:1,根本没有“ ati-stream”标记)。 另一方面,根据Wikipedia所述,ATI / AMD卡应具有更大的潜力,尤其是每美元。迄今为止,市场上最快的NVIDIA卡GeForce 580(500美元)的额定单精度TFlops为1.6。AMD Radeon 6970的价格为370美元,额定值为2.7TFlops。580在772 MHz下具有512个执行单元。6970在880 MHz下具有1536个执行单元。 AMD相对于NVIDIA的纸面优势有多现实,并且可能会在大多数GPGPU任务中实现?整数任务会怎样?
105 cuda  opencl  gpgpu  nvidia  ati 

5
什么是银行冲突?(执行Cuda / OpenCL编程)
我一直在阅读CUDA和OpenCL的编程指南,但无法弄清什么是银行冲突。他们只是在不详细说明主题本身的情况下潜入了如何解决问题的方法。有人可以帮我理解吗?如果帮助是在CUDA / OpenCL的背景下进行的,或者计算机科学中的一般银行冲突,我都没有选择。

9
在两个屏幕之一上,DataGridView的可怕的重绘性能
我实际上已经解决了这个问题,但我将其发布以供后代参考。 我的双显示器系统上的DataGridView遇到了一个非常奇怪的问题。该问题表现为控件的极慢重绘(例如,完整重绘需要30秒),但仅当它在我的一个屏幕上时才显示。另一方面,重绘速度很好。 我有Nvidia 8800 GT,带有最新的非beta驱动程序(175。)。是驱动程序错误吗?我将把它悬而未决,因为我必须忍受这种特殊的配置。(不过,这在ATI卡上不会发生...) 绘制速度与单元格内容无关,并且自定义绘制根本无法提高性能-即使仅绘制实心矩形也是如此。 后来我发现,将ElementHost(来自System.Windows.Forms.Integration命名空间)放在窗体上可以解决此问题。它不一定要弄乱;它只是需要DataGridView形式的子对象。只要Visible属性为true ,就可以将其调整为(0,0)。 我不想将.NET 3 / 3.5依赖项显式添加到我的应用程序中。我创建了一种在运行时使用反射创建此控件的方法。它可以正常工作,并且至少在没有所需库的计算机上正常运行-只是恢复缓慢。 此方法还使我可以在应用程序运行时申请修复,从而可以更轻松地查看表单上WPF库的更改(使用Spy ++)。 经过大量的试验和错误之后,我注意到在控件本身(而不是仅表单)上启用双重缓冲可以解决此问题! 因此,您只需要基于DataGridView创建自定义类,即可启用其DoubleBuffering。而已! class CustomDataGridView: DataGridView { public CustomDataGridView() { DoubleBuffered = true; } } 只要我所有的网格实例都使用此自定义版本,一切都很好。如果遇到这种情况导致我无法使用子类解决方案(如果我没有代码),我想我可以尝试将该控件注入表格中:)(尽管我更有可能尝试使用反射从外部强制启用DoubleBuffered属性,以再次避免该依赖关系。 可惜如此琐碎的事情占用了我很多时间...

4
流式多处理器,块和线程(CUDA)
CUDA内核,流式多处理器与块和线程的CUDA模型之间是什么关系? 什么映射到什么,什么并行化以及如何并行化?还有什么效率更高的方法,那就是最大化块数或线程数? 我目前的理解是每个多处理器有8个cuda内核。并且每个cuda核心将能够一次执行一个cuda块。并且该块中的所有线程都在该特定内核中按顺序执行。 它是否正确?
77 cuda  nvidia 

6
是否可以在AMD GPU上运行CUDA?
我想将自己的技能扩展到GPU计算中。我熟悉光线跟踪和实时图形(OpenGL),但是下一代图形和高性能计算似乎是在GPU计算或类似的技术中。 我目前在家用计算机上使用AMD HD 7870显卡。我可以为此编写CUDA代码吗?(我的直觉不是,但是自从Nvidia发布编译器二进制文件以来,我可能是错的)。 第二个更普遍的问题是,我从哪里开始进行GPU计算?我敢肯定这是一个经常被问到的问题,但是我所看到的最好的是从08'开始的,我认为从那以后该领域已经发生了很大变化。
76 cuda  gpu  gpgpu  nvidia  amd 

5
nVidia Quadro和Geforce卡之间的区别?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 5年前关闭。 改善这个问题 我不是3D或HPC专家,但我的任务是对可能的HPC应用程序的那些领域进行一些研究。阅读nVidia Quadro和Geforce卡之间的基准,比较和规格,似乎对于类似的一代卡: Quadro是Geforce的价格的2到3倍 在硬件方面,差异不是很大 在基准测试(3ds Max,Maya和其他一些基准)中,Quadro卡的性能要比Geforce卡好得多 有谁知道会导致这种更好性能的确切和精确的技术差异?由于硬件的规格相似,我的猜测(以及通常可以在网上阅读的内容)是全部在驱动程序中。如果是这样的话,Quadro驱动程序提供了3ds Max等的程序员利用的哪些功能? 当然,我对市场营销语言不感兴趣:更高的商业价值,以专业为导向,更好的支持,更好的质量保证等。
73 hardware  nvidia  hpc 

1
nvidia-smi易失性GPU使用说明?
我知道这nvidia-smi -l 1将使GPU每秒使用一次(类似于以下内容)。但是,我希望您能解释一下Volatile GPU-Util真正的含义。那是使用的SM数量超过SM总数,占用率还是其他? +-----------------------------------------------------------------------------+ | NVIDIA-SMI 367.48 Driver Version: 367.48 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla K20c Off | 0000:03:00.0 Off | 0 | | 30% 41C …

4
如何选择要在哪个GPU上运行作业?
在多GPU计算机中,如何指定CUDA作业应在哪个GPU上运行? 例如,在安装CUDA时,我选择安装,NVIDIA_CUDA-<#.#>_Samples然后运行了几个nbody模拟实例,但是它们都在一个GPU 0上运行;GPU 1完全处于空闲状态(使用监控watch -n 1 nvidia-dmi)。检查CUDA_VISIBLE_DEVICES使用 echo $CUDA_VISIBLE_DEVICES 我发现没有设置。我尝试使用设置 CUDA_VISIBLE_DEVICES=1 然后nbody再次运行,但它也进入了GPU 0。 我看着相关的问题,如何选择指定的GPU运行CUDA程序?,但deviceQuery命令不在CUDA 8.0 bin目录中。除之外$CUDA_VISIBLE_DEVICES$,我还看到其他文章引用了环境变量,$CUDA_DEVICES但是这些文章没有设置,也没有找到有关如何使用它的信息。 虽然与我的问题没有直接关系,nbody -device=1但是使用可以使应用程序在GPU 1上运行,但是使用nbody -numdevices=2不能在GPU 0和GPU 1上运行。 我正在使用bash shell,CentOS 6.8,CUDA 8.0、2个GTX 1080 GPU和NVIDIA驱动程序367.44在运行bash shell的系统上对此进行测试。 我知道在使用CUDA进行编写时,您可以管理和控制要使用的CUDA资源,但是在运行已编译的CUDA可执行文件时如何从命令行管理此资源?
71 cuda  nvidia 

1
不能在Docker上运行JavaFX应用超过几分钟
我开发了一个用作单独Web应用程序的通信服务的应用程序。我有0个问题“正在使Web应用程序码头化”,但事实证明该服务是一场噩梦。它基于JavaFX,并且可以由用户在配置文件中设置一个属性,该属性使该属性不会使应用程序初始化任何窗口,菜单,容器等。这种“无头”模式(不确定是否真正无头...)有效地将服务应用程序变为后台服务。让我也以此开头作为开头,说该应用程序在Windows 10机器上运行时绝对可以完美运行,并且我已经将其部署在其他几台机器(所有未经过dockerized)上,没有任何问题。 这是我想出的dockerfile: FROM openjdk:13.0.1-slim RUN apt-get update && apt-get install libgtk-3-0 libglu1-mesa -y && apt-get update VOLUME /tmp ADD Some_Service-0.0.1-SNAPSHOT.jar Some_Service-0.0.1-SNAPSHOT.jar ADD lib lib ADD config.properties config.properties ENTRYPOINT ["java", "--module-path", "lib/javafx-sdk-13", "-jar", "Some_Service-0.0.1-SNAPSHOT.jar"] 然后,我使用此命令来构建容器: docker run -t --name Some_Service -e DISPLAY=192.168.1.71:0.0 -e SERVICE_HOME= --link mySQLMD:mysql some_service 假设VcXsrv在我的PC上运行,则该应用程序可以正确启动,尽管在首次启动时确实会给出以下警告: libGL error: …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.