我有一个关于GPU中分支预测的问题.据我所知,在GPU中,它们通过分支进行预测.
例如,我有一个这样的代码:
if (C)
A
else
B
Run Code Online (Sandbox Code Playgroud)
因此,如果A需要40个周期而B需要50个周期来完成执行,如果假设一个warp,A和B都被执行,那么完成这个分支需要总共90个周期吗?或者它们是否重叠A和B,即,当执行A的某些指令时,等待内存请求,然后执行B的某些指令,然后等待内存,依此类推?谢谢
我的CUDA设置
Visual Studio 2010和2008 SP1(CUDA要求).并行NSight 1.51 CUDA 4.0 RC或3.2和Thrust
基本上,我遵循指南:http: //www.ademiller.com/blogs/tech/2011/03/using-cuda-and-thrust-with-visual-studio-2010/
然后我继续编译成功,没有错误消息.
所以我尝试了更多来自网络的CUDA代码示例.Visual Studios上出现了这些错误.我仍然可以成功编译没有错误消息,但这些错误只是在视觉上突出显示
这是截图.
我应该担心吗?它是Visual Studios错误还是我的设置配置错误?任何帮助表示赞赏.多谢你们!
PS我对Visual Studios和CUDA都很陌生.
// incrementArray.cu
#include "Hello.h"
#include <stdio.h>
#include <assert.h>
#include <cuda.h>
void incrementArrayOnHost(float *a, int N)
{
int i;
for (i=0; i < N; i++) a[i] = a[i]+1.f;
}
__global__ void incrementArrayOnDevice(float *a, int N)
{
int idx = blockIdx.x*blockDim.x + threadIdx.x;
if (idx<N) a[idx] = a[idx]+1.f;
}
int main(void)
{
float *a_h, *b_h; // pointers …Run Code Online (Sandbox Code Playgroud) 我正在尝试在TensorFlow中构建一个大型CNN,并打算在多GPU系统上运行它.我采用了"塔式"系统并为两个GPU分割批次,同时保留CPU上的变量和其他计算.我的系统有32GB的内存,但是当我运行我的代码时,我得到错误:
E tensorflow/stream_executor/cuda/cuda_driver.cc:924] failed to alloc 17179869184 bytes on host: CUDA_ERROR_OUT_OF_MEMORY
W ./tensorflow/core/common_runtime/gpu/pool_allocator.h:195] could not allocate pinned host memory of size: 17179869184
Killed
Run Code Online (Sandbox Code Playgroud)
如果我将CUDA设备隐藏到TensorFlow,我已经看到代码工作(虽然非常慢),因此它不使用cudaMallocHost()......
感谢您的时间.
我在带有nvidia Tesla K20c GPU的计算机上使用带有张量流后端的keras.(CUDA 8)
我正在研究一个相对简单的卷积神经网络,在训练期间我运行终端程序nvidia-smi来检查GPU的使用情况.正如您在以下输出中所看到的,GPU利用率通常显示在7%-13%左右
我的问题是:在CNN培训期间,GPU使用率不应该更高吗?这是keras/tensorflow糟糕的GPU配置或使用情况的标志吗?
我正在尝试从此repo运行代码。我通过更改 main.py 中的第 39/40 行来禁用 cuda
parser.add_argument('--type', default='torch.cuda.FloatTensor', help='type of tensor - e.g torch.cuda.HalfTensor')
Run Code Online (Sandbox Code Playgroud)
到
parser.add_argument('--type', default='torch.FloatTensor', help='type of tensor - e.g torch.HalfTensor')
Run Code Online (Sandbox Code Playgroud)
尽管如此,运行代码给了我以下异常:
Traceback (most recent call last):
File "main.py", line 190, in <module>
main()
File "main.py", line 178, in main
model, train_data, training=True, optimizer=optimizer)
File "main.py", line 135, in forward
for i, (imgs, (captions, lengths)) in enumerate(data):
File "/Users/lakshay/anaconda/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 201, in __next__
return self._process_next_batch(batch)
File "/Users/lakshay/anaconda/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 221, in _process_next_batch
raise batch.exc_type(batch.exc_msg)
AssertionError: Traceback (most …Run Code Online (Sandbox Code Playgroud) 我在 Windows 10 上运行带有 keras-gpu 和 tensorflow-gpu 的 CNN,带有 NVIDIA GeForce RTX 2080 Ti。我的电脑有一个 Intel Xeon e5-2683 v4 CPU (2.1 GHz)。我正在通过 Jupyter(最新的 Anaconda 发行版)运行我的代码。命令终端中的输出显示 GPU 正在被使用,但是我正在运行的脚本花费的时间比我预期的训练/测试数据要长,而且当我打开任务管理器时,GPU 利用率似乎非常低。这是一张图片:
请注意,CPU 没有被利用,任务管理器上的任何其他内容都没有表明任何东西都被充分利用了。我没有以太网连接并且已连接到 Wifi(不认为这会产生任何影响,但我不确定 Jupyter,因为它通过网络浏览器运行)。我正在训练大量数据 (~128GB),这些数据都加载到 RAM (512GB) 中。我正在运行的模型是一个全卷积神经网络(基本上是一个 U-Net 架构),具有 566,290 个可训练参数。到目前为止我尝试过的事情: 1. 将批大小从 20 增加到 10,000(将 GPU 使用率从 ~3-4% 增加到 ~6-7%,按预期大大减少训练时间)。2. 将 use_multiprocessing 设置为 True 并增加 model.fit 中的工作人员数量(无效)。
我按照这个网站上的安装步骤操作:https : //www.pugetsystems.com/labs/hpc/The-Best-Way-to-Install-TensorFlow-with-GPU-Support-on-Windows-10-Without-Installing -CUDA-1187/#look-at-the-job-run-with-tensorboard
请注意,此安装不会专门安装 CuDNN 或 CUDA。过去我在使用 CUDA 运行 tensorflow-gpu 时遇到了麻烦(虽然我已经超过 2 年没有尝试过,所以使用最新版本可能更容易),这就是我使用这种安装方法的原因。
这很可能是 GPU 没有得到充分利用的原因(没有 CuDNN/CUDA)吗?是否与专用 GPU …
由于我是初学者,我提前道歉。我正在尝试使用 xgb 和 XGBclassifier 使用 XGBoost 进行 GPU 与 CPU 测试。结果如下:
passed time with xgb (gpu): 0.390s
passed time with XGBClassifier (gpu): 0.465s
passed time with xgb (cpu): 0.412s
passed time with XGBClassifier (cpu): 0.421s
Run Code Online (Sandbox Code Playgroud)
我想知道为什么 CPU 的性能似乎不比 GPU 好。这是我的设置:
** 还尝试使用通过 pip 从预先构建的二进制轮子安装的 xgboost 版本:同样的问题
这是我正在使用的测试代码(从这里提取):
param = {'max_depth':5, …Run Code Online (Sandbox Code Playgroud) 我使用变压器(BertForSequenceClassification)训练了一个序列分类模型,但出现错误:
\n预计所有张量都在同一设备上,但发现至少有两个设备,cpu 和 cuda:0!(在方法wrapper__index_select中检查参数索引时)
\n我真的不明白问题出在哪里,如果问题出在我的模型上,问题出在我如何标记数据上,或者是什么。
\n这是我的代码:
\n加载预训练模型
\nmodel_state_dict = torch.load("../MODELOS/TRANSFORMERS/TransformersNormal", map_location='cpu') #Doesnt work with map_location='cuda:0' neither\nmodel = BertForSequenceClassification.from_pretrained(pretrained_model_name_or_path="bert-base-uncased", state_dict=model_state_dict, cache_dir='./data')\nRun Code Online (Sandbox Code Playgroud)\n创建数据加载
\ndef crearDataLoad(dfv,tokenizer): \n\n dft=dfv # usamos el del validacion para que nos salga los resultados y no tener que cambiar mucho codigo\n\n #validation=dfv['text'] \n validation=dfv['text'].str.lower() # para modelos uncased # el fichero que hemos llamado test es usado en la red neuronal\n validation_labels=dfv['label']\n \n validation_inputs = crearinputs (validation,tokenizer)\n validation_masks= crearmask (validation_inputs)\n …Run Code Online (Sandbox Code Playgroud) 我一整天都在努力使用 RTX 3080 让火炬在 WSL2 上工作。
我安装了 CUDA 工具包版本 11.3
运行nvcc -V返回此:
nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Sun_Mar_21_19:15:46_PDT_2021
Cuda compilation tools, release 11.3, V11.3.58
Build cuda_11.3.r11.3/compiler.29745058_0
Run Code Online (Sandbox Code Playgroud)
nvidia-smi返回这个
Mon Nov 29 00:38:26 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.00 Driver Version: 510.06 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| …Run Code Online (Sandbox Code Playgroud) 当我运行“torch.rand(10).to(“cuda”)”时,我遇到“错误:Torch 未在启用 CUDA 的情况下编译”
GPU:Nvidia RTX 3080 Ti
$nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.05 Driver Version: 525.85.05 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
Run Code Online (Sandbox Code Playgroud)
$nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85
Run Code Online (Sandbox Code Playgroud)
$conda list
cudatoolkit version : 11.0.221
$conda info
active environment : sw
active env location : /mnt/user2/.conda/envs/sw
shell level : 1
user config file : /mnt/user2/.condarc
populated config files :
conda version : 23.1.0
conda-build version : …Run Code Online (Sandbox Code Playgroud) gpu ×5
pytorch ×4
tensorflow ×3
cuda ×2
keras ×2
python ×2
conda ×1
cpu ×1
gpgpu ×1
nvidia ×1
opencl ×1
python-3.x ×1
visual-c++ ×1
xgboost ×1