我注意到,将数据传输到最近的高端GPU比将其收集回CPU更快.以下是使用由旧版Nvidia K20和最近使用PCIE的Nvidia P100运行的mathworks技术支持提供给我的基准测试功能的结果:
Using a Tesla P100-PCIE-12GB GPU.
Achieved peak send speed of 11.042 GB/s
Achieved peak gather speed of 4.20609 GB/s
Using a Tesla K20m GPU.
Achieved peak send speed of 2.5269 GB/s
Achieved peak gather speed of 2.52399 GB/s
Run Code Online (Sandbox Code Playgroud)
我已经在下面附上了基准功能以供参考.P100不对称的原因是什么?这个系统是依赖还是近期高端GPU的标准?可以提高聚集速度吗?
gpu = gpuDevice();
fprintf('Using a %s GPU.\n', gpu.Name)
sizeOfDouble = 8; % Each double-precision number needs 8 bytes of storage
sizes = power(2, 14:28);
sendTimes = inf(size(sizes));
gatherTimes = inf(size(sizes));
for ii=1:numel(sizes)
numElements = sizes(ii)/sizeOfDouble;
hostData = randi([0 …
Run Code Online (Sandbox Code Playgroud) 我正在研究CUDA编程.
我可以选购单一的NVidia Tesla或购买4-5 NVidia 480吗?
您有什么推荐的吗?
我在 GPU 中运行 tensorflow 代码。下图显示了 nvidia-smi 信息::
我想问一下 nvidia-smi 输出中的“关闭”是什么意思?还有“C”类型在这里是什么意思??
在这种情况下,我的代码在 GPU 或 CPU 中运行???
我打算购买一个严肃的GPU来运行并行算法(预算2k-4k).现在我看到所有超级计算机都采用了nVidia Tesla GPU卡"专为GPGPU制造".
虽然这看起来非常好看,但更好的阅读让我对此有了认真的思考:与Radeon HD 7970相比,它的性能(以触发器而言)显着降低,其成本价格显着提高,而且似乎无法找到特斯拉和普通游戏GPU之间的任何基准比较.
我发现特斯拉具有ECC内存功能.这是唯一的区别吗?或者我错过了两者之间更深层次的架构差异?也许相关信息:我将使用OpenCL,而不是Cuda.
我已经阅读了一些我可以通过互联网找到的关于这两个系列卡之间的差异的信息,但我不禁感觉它们是某种广告.虽然最强大的GeForce售价大约为700美元,但特斯拉的起价价格大约在2500美元左右,这是相当不同的.
虽然ECC内存之间列出的最大优势很有意思,但我怀疑它是否存在这种差异.第二个最突出的是双精度数字的性能要好得多,但我将主要关注整数运算,所以它并不重要.顶级GeForce卡也有很多内存.虽然两个系列都使用GDDR5,但GeForce内存带宽甚至高于特斯拉.
有没有人有客观比较这两个系列的个人经验?因为我认为特斯拉的大部分成本与高级工具和支持相关,而与性能无关.
最近,一位同事需要使用NVML查询设备信息,因此我下载了Tesla开发工具包3.304.5,并将文件nvml.h复制到了/ usr / include。为了进行测试,我在tdk_3.304.5 / nvml / example中编译了示例代码,并且工作正常。
整个周末,系统中发生了某些更改(我无法确定更改的内容,而且我不是唯一有权访问计算机的更改),现在使用nvml.h的任何代码(例如示例代码)都会失败,并出现以下错误:
Failed to initialize NVML:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
WARNING:
You should always run with libnvidia-ml.so that is installed with your NVIDIA Display Driver. By default it's installed in /usr/lib and /usr/lib64. libnvidia-ml.so in TDK package is a stub library that is attached only for build purposes (e.g. machine that you build your application doesn't have to have Display Driver installed).
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Run Code Online (Sandbox Code Playgroud)
但是,我仍然可以运行nvidia-smi并读取有关我的K20m状态的信息,据我所知,nvidia-smi只是对nvml.h的一组调用。我收到的错误消息有些含糊,但我相信它告诉我nvidia-ml.so文件需要与我在系统上安装的Tesla驱动程序匹配。为了确保一切正确,我重新下载了CUDA 5.0并安装了驱动程序,CUDA运行时和测试文件。我确定nvidia-ml.so文件与驱动程序匹配(均为304.54),所以对于可能出了什么问题我感到很困惑。我可以使用nvcc编译和运行测试代码,也可以运行自己的CUDA代码,只要它不包含nvml.h。
有没有人遇到此错误或对纠正此问题有任何想法?
$ ls -la /usr/lib/libnvidia-ml*
lrwxrwxrwx. 1 root root 17 Jul …
Run Code Online (Sandbox Code Playgroud) 在我们的实验室中,我们具有具有以下特征的NVIDIA Tesla K80 GPU加速器计算:Intel(R) Xeon(R) CPU E5-2670 v3 @2.30GHz, 48 CPU processors, 128GB RAM, 12 CPU cores
在Linux 64位下运行。
我正在运行以下代码,该代码GridSearchCV
在将不同的数据帧集垂直追加到单个RandomForestRegressor
模型系列中之后执行。我正在考虑的两个样本数据集可在此链接中找到
import sys
import imp
import glob
import os
import pandas as pd
import math
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
import matplotlib
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
import numpy as np
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection …
Run Code Online (Sandbox Code Playgroud) 我有兴趣测试我的神经网络(一个自动编码器,用作发生器+ CNN作为鉴别器),它使用3dconv/deconv层和新的Volta架构,并受益于混合精度训练.我使用CUDA 9和CudNN 7.0编译了Tensorflow 1.4的最新源代码,并将我的conv/deconv层使用的所有可训练变量转换为tf.float16.此外,我的所有输入和输出张量的大小都是8的倍数.
不幸的是,我没有看到这种配置有任何实质性的速度改进,训练时间与使用tf.float32大致相似.我的理解是,使用Volta架构和cuDNN 7.0,混合精度应该由TF自动检测,因此可以使用Tensor Core数学.我错了,或者我应该做些什么来启用它?我也尝试了TF1.5 nighlty版本,它似乎比我的自定义1.4更慢.
如果任何涉及Tensorflow的开发人员可以回答这个问题,我将不胜感激.
编辑:在与NVIDIA技术支持人员交谈之后,似乎在支持float16时,TF为简单的2D转换操作集成了混合精度加速,但现在不支持3D转换操作.
我正在使用 TESLA T10 设备,它有 2 个 cuda 设备,一个块中的最大线程数为 512,每个维度上的最大线程数为 (512,512,64),最大网格大小为 (65535,65535,1),它有 30每个 cuda 设备上的多处理器。
现在我想知道我可以并行运行多少个线程。我阅读了以前的解决方案,但没有一个解决了我的疑问。从以前的读取 =(30)*512 个线程我可以并行运行(maxNoOfMultiprocessor * maxThreadBlockSize)
但是当我启动 32 个 512 个线程块时,它仍然在工作,这怎么可能???我不了解每个维度中的这些最大线程数以及最大网格尺寸部分,请举例说明....... 在此先感谢
我刚刚在带有 2 个 GPU(Nvidia Tesla K80)的 Google Compute Engine 上启动了一个实例。并且在启动后立即,我可以看到nvidia-smi
其中一个已经被充分利用。
我检查了正在运行的进程列表,但根本没有任何运行。这是否意味着 Google 已将相同的 GPU 出租给其他人?
这一切都在这台机器上运行:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release: 16.04
Codename: xenial
Run Code Online (Sandbox Code Playgroud)