我正在研究CUDA编程.
我可以选购单一的NVidia Tesla或购买4-5 NVidia 480吗?
您有什么推荐的吗?
valgrind --leak-check=full ./CH02_HelloTriangle
==11404== Memcheck, a memory error detector
==11404== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==11404== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==11404== Command: ./CH02_HelloTriangle
==11404==
==11404== Jump to the invalid address stated on the next line
==11404== at 0x0: ???
==11404== by 0x6F9271A: ??? (in /usr/lib/fglrx/dri/fglrx_dri.so)
==11404== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==11404==
==11404==
==11404== Process terminating with default action of signal 11 (SIGSEGV)
==11404== …Run Code Online (Sandbox Code Playgroud) 我已经阅读了Mark Harris的文章"优化并行缩减CUDA",我发现它非常有用,但我仍然无法理解1或2个概念.它写在第18页:
//First add during load
// each thread loads one element from global to shared mem
unsigned int tid = threadIdx.x;
unsigned int i = blockIdx.x*blockDim.x + threadIdx.x;
sdata[tid] = g_idata[i];
__syncthreads();
Run Code Online (Sandbox Code Playgroud)
优化代码:有2个负载和第一个减少的添加:
// perform first level of reduction,
// reading from global memory, writing to shared memory
unsigned int tid = threadIdx.x; ...1
unsigned int i = blockIdx.x*(blockDim.x*2) + threadIdx.x; ...2
sdata[tid] = g_idata[i] + g_idata[i+blockDim.x]; ...3
__syncthreads(); ...4
Run Code Online (Sandbox Code Playgroud)
我无法理解第2行; 如果我有256个元素,如果我选择128作为我的块大小,那么为什么我将它乘以2?请解释如何确定块大小?
我正在尝试安装 Tensorflow GPU 版本,但我被困在这里。我已经通过运行安装了 nvidia-cuda-toolkit
sudo apt install nvidia-cuda-toolkit
Run Code Online (Sandbox Code Playgroud)
它下载得很好。但是我找不到这个 libcudart.so
Please specify which gcc nvcc should use as the host compiler. [Default is /usr/bin/gcc]: /usr/bin/gcc
Please specify the Cuda SDK version you want to use, e.g. 7.0. [Leave empty to use system default]:
Please specify the location where CUDA toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]: /usr/local/cuda
Invalid path to CUDA toolkit. /usr/local/cuda/lib64/libcudart.so cannot be found
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
如果这个问题看起来很基本,我会事先道歉,但我是Tensorflow的新手并感谢任何帮助.
我发现我必须经常重新启动计算机才能从keras.applications加载VGG16等模型.我有一台相当高端的机器,配备4个GeForce GTX 1080 Ti GPU和Intel®Core™i7-6850K CPU @ 3.60GHz×12,用于我的CPU,仅用于Tensorflow(通过Keras).
一旦我重新启动,我将能够成功加载模型(例如VGG16)并训练大型训练数据集.但是,如果我让我的计算机闲置一段时间并重新运行相同的程序,我将获得资源耗尽消息(OOM),可以通过重新启动我的计算机来修复.每隔几个小时不停地重新启动计算机是非常令人沮丧的.有谁知道发生了什么以及如何解决这个问题?
我有一个未解决的问题,因为我认为我的 cuda 代码没有在我的 GPU 中运行(这里)。我认为这是因为当我使用 nvidia-smi 时,我在我的进程的类型字段中得到了一个 C,但是我看到当我运行我的代码时我的 GPU-Util 增长,所以现在我不知道它是否在 cpu 中运行或GPU。有人可以向我解释一下 C 或 G 类型是什么意思吗?我发现了这一点:“计算进程显示为“C”,图形进程显示为“G”,同时具有计算和图形上下文的进程显示为“C+G”。但我不明白这是否意味着C代表CPU和G代表GPU,因为我不知道“计算过程”和“图形过程”是什么,或者它们之间有什么区别。
我看过很多针对特定案例特定问题的特定帖子,但没有基本的动机解释。这是什么错误:
RuntimeError: CUDA error: device-side assert triggered
Run Code Online (Sandbox Code Playgroud)
意思?具体来说,正在触发的断言是什么,为什么断言在那里,我们如何向后工作以调试问题?
按原样,此错误消息在诊断任何问题时几乎无用,因为它似乎是在说“某处触及 GPU 的某些代码”有问题。Cuda 的文档在这方面似乎也没有帮助,尽管我可能是错的。 https://docs.nvidia.com/cuda/cuda-gdb/index.html
我正在尝试在一个 NVIDIA Tesla V100 GPU 上运行 Tensorflow 作为服务。作为服务器,我的程序需要同时接受多个请求。所以,我的问题如下:
当多个请求同时到达时,假设我们没有使用批处理,这些请求是在 GPU 上顺序运行还是并行运行?我了解独立进程具有单独的 CUDA 上下文,它们在 GPU 上按顺序运行。但这些请求实际上是同一进程中的不同线程,应该共享一个 CUDA 上下文。所以根据文档,GPU 可以同时运行多个内核。如果这是真的,是否意味着如果我有大量请求同时到达,GPU 利用率可以达到 100%?但这在我的实验中从未发生过。
在不同线程中运行一个会话与在不同线程中运行不同会话有什么区别?哪个是实现 Tensorflow 服务器的正确方法?Tensorflow Serving 使用哪一种?
任何建议将被认真考虑。谢谢!
我正在尝试在 Windows 10 中 使用NVIDIA-SMI: 445.75安装CUDA 9.0。
我的Cuda 9.0安装成功,如图Command-prompt
*(DL) C:\Users\User>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:32_Central_Daylight_Time_2017
**Cuda compilation tools, release **9.0**, V9.0.176***
Run Code Online (Sandbox Code Playgroud)
(1) 我下载了cudnn-9.0-windows10-x64-v7.zip,解压了它,然后将它移到了安装 Cuda 时创建的文件夹中。
(2) 在Anaconda的terminal提示下,
我输入. conda install pytorch=1.1.0 torchvision=0.3.0 cudatoolkit=9.0 –c pytorch
但是,Anaconda 提示给出以下错误
**Error messages**
*Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving …Run Code Online (Sandbox Code Playgroud) 今天我开始使用 CUDA 和 GPU 处理。我找到了这个教程:https : //www.geeksforgeeks.org/running-python-script-on-gpu/
不幸的是,我第一次尝试运行 GPU 代码失败了:
from numba import jit, cuda
import numpy as np
# to measure exec time
from timeit import default_timer as timer
# normal function to run on cpu
def func(a):
for i in range(10000000):
a[i]+= 1
# function optimized to run on gpu
@jit(target ="cuda")
def func2(a):
for i in range(10000000):
a[i]+= 1
if __name__=="__main__":
n = 10000000
a = np.ones(n, dtype = np.float64)
b = np.ones(n, dtype = np.float32) …Run Code Online (Sandbox Code Playgroud)