我已经浏览了很多论坛帖子和NVIDIA文档,但我无法理解它是什么__threadfence()以及如何使用它.有人可以解释一下内在的目的是什么吗?
在 colab 中运行 pytorch 深度学习模型时出现以下错误
/usr/local/lib/python3.6/dist-packages/torch/nn/functional.py in linear(input, weight, bias)
1370 ret = torch.addmm(bias, input, weight.t())
1371 else:
-> 1372 output = input.matmul(weight.t())
1373 if bias is not None:
1374 output += bias
RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling `cublasCreate(handle)`
Run Code Online (Sandbox Code Playgroud)
我什至将批量大小从 128 减少到 64,即减少到一半,但仍然出现此错误。早些时候,我以 128 的批量大小运行了相同的代码,但没有收到任何类似的错误。
我正在开发一个对象检测项目,并希望使用我的 GPU 处理该项目。我已经完成了NVIDIA 设置教程,一切正常。我的对象检测代码最初适用于 CPU,但是当我添加这两行代码时:
net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)
Run Code Online (Sandbox Code Playgroud)
显示的输出:
无法找到 zlibwapi.dll。请确保它在您的库路径中!
我已经从cuDNN 网站下载了 zlibwapi.dll zip 文件,解压缩并将整个文件夹添加到我的环境变量路径中。该文件夹名为“zlib123dllx64”,包含“dll_x64”文件夹和“static_x64”文件夹。“zlibwapi.dll”位于“dll_x64”文件夹内。我已在用户和系统路径变量中添加了“zlib123dllx64”文件夹,但它似乎没有解决任何问题。我怎样才能修复这个错误并使GPU与代码一起工作?
我的环境设置:
我有一个C函数声明如下:
void getIndexOfState(long *p, long C, long G, long B, long *state);
Run Code Online (Sandbox Code Playgroud)
现在我的cython包装器代码使用来自numpy数组的缓冲区语法:
cpdef int getIndexOfState(self, np.ndarray[np.int_t, ndim=1, mode="c"] s):
cdef long out
getIndexOfState(&out, self.C, self.G, self.B, <long*> s.data)
return out
Run Code Online (Sandbox Code Playgroud)
我想使用新的memoryview语法,我的问题是,在使用memoryview时如何将指针传递给数据?
我试过了:
cpdef int getIndexOfState(self, long[:] s):
cdef long out
getIndexOfState(&out, self.C, self.G, self.B, s)
return out
Run Code Online (Sandbox Code Playgroud)
当我试图编译模块时,它引发了"无法将类型'long [:]'分配给'long*'"错误.在调用C函数之前,有没有办法传递该指针而不将内存视图强制回到numpy数组?
Tensorflow刚刚发布了Windows支持.我安装了gpu版本和CUDA 8.0以及python 3.5.但是,在导入tensorflow后,我收到以下错误:
>>> import tensorflow
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library cublas64_80.dll locally
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:119] Couldn't open CUDA library cudnn64_5.dll
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:3459] Unable to load cuDNN DSO
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library cufft64_80.dll locally
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library nvcuda.dll locally
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library curand64_80.dll locally
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?谢谢!
我正在使用一个简单的MINST神经网络程序在Windows 10上运行tensorflow-gpu.当它试图运行时,它遇到CUBLAS_STATUS_ALLOC_FAILED错误.谷歌搜索没有发现任何东西.
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:885] Found device 0 with properties:
name: GeForce GTX 970
major: 5 minor: 2 memoryClockRate (GHz) 1.253
pciBusID 0000:0f:00.0
Total memory: 4.00GiB
Free memory: 3.31GiB
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:906] DMA: 0
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:916] 0: Y
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 970, pci bus id: 0000:0f:00.0)
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_blas.cc:372] failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED
W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\stream.cc:1390] attempting to perform BLAS operation using StreamExecutor without BLAS support
Traceback (most recent call last): …Run Code Online (Sandbox Code Playgroud) 我正在使用 torch、gunicorn 和 Flask 创建一个应该使用 CUDA 的推理服务。为了减少资源需求,我使用了gunicorn的预加载选项,因此模型在工作进程之间共享。然而,这会导致 CUDA 出现问题。下面的代码片段显示了一个最小的重现示例:
from flask import Flask, request
import torch
app = Flask('dummy')
model = torch.rand(500)
model = model.to('cuda:0')
@app.route('/', methods=['POST'])
def f():
data = request.get_json()
x = torch.rand((data['number'], 500))
x = x.to('cuda:0')
res = x * model
return {
"result": res.sum().item()
}
Run Code Online (Sandbox Code Playgroud)
使用 启动服务器CUDA_VISIBLE_DEVICES=1 gunicorn -w 3 -b $HOST_IP:8080 --preload run_server:app可以让服务成功启动。然而,一旦执行第一个请求(curl -X POST -d '{"number": 1}'),工作人员就会抛出以下错误:
[2022-06-28 09:42:00,378] ERROR in app: Exception on / [POST]
Traceback (most recent call …Run Code Online (Sandbox Code Playgroud) TensorFlow总是(预)在我的显卡上分配所有空闲内存(VRAM),这是好的,因为我希望我的模拟在我的工作站上尽可能快地运行.
但是,我想记录TensorFlow真正使用的内存(总之).另外,如果我还可以记录单个张量器使用的内存量,那将是非常好的.
此信息对于衡量和比较不同ML/AI架构所需的内存大小非常重要.
有小费吗?
在使用 Apache JMeter 进行性能测试期间,我的初始模型遇到了问题。
错误:分配形状为 [800,1280,3] 的张量并在 /job:localhost/replica:0/task:0/device:GPU:0 上通过分配器 GPU_0_bfc [[Node: Cast = CastDstT=DT_FLOAT, SrcT=DT_UINT8, _device="/job:localhost/replica:0/task:0/device:GPU:0"]] 提示:如果您想在 OOM 发生时查看已分配张量的列表,请将 report_tensor_allocations_upon_oom 添加到 RunOptions for current分配信息。
我正在尝试使用以下命令安装Opencv后编译示例程序:
g++ hello-world.cpp -o hello-world -I /usr/local/include/opencv -L /usr/local/lib -lm -lcv -lhighgui -lcvaux
Run Code Online (Sandbox Code Playgroud)
但是,我收到的错误是:
/usr/bin/ld: cannot find -lcv
/usr/bin/ld: cannot find -lhighgui
/uer/bin/ld: cannot find -lcvaux
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我需要做些什么来纠正这个?我通过下载最新的稳定版本并使用cmake创建构建文件来安装opencv,然后从命令行运行make install.
有什么我可能错过的吗?