如果您能给我一个简短的教程而不是几句话,那就太好了。
我的 CUDA 应用程序正在按照我的意愿运行。现在,问题是如何将 CUDA 代码导出到 C#,因为我想用 C# 来制作前端和其他所有内容。
从这个链接:
http://www.codeproject.com/Articles/9826/How-to-create-a-DLL-library-in-C-and-then-use-it-w
我知道如何用 C 语言制作一个库,可以将其作为 Win32 dll 导入到 C# 应用程序中。
但我的问题是,如何制作可以传送到 C# 并从 C# 应用程序使用的 CUDA 应用程序 dll(或其他扩展)? 如果有 CUDA 的教程,例如 C 库到 C# 应用程序的教程(上面的链接),那就太好了。
我使用的是 Win7 64 位、Visual Studio 2010 Ultimate、Cuda Toolikt 5.0 和 NSight 2.2.012313
clock()CUDA中的时钟测量是什么clock64()?
根据CUDA 文档,时钟是“每多处理器计数器”。根据我的理解,这是指主 GPU 时钟(而不是着色器时钟)。
但是,当我测量时钟计数并使用主 GPU 时钟频率将其转换为时间值时,我得到的结果是实际值的两倍(我使用 cuda 事件使用主机代码的内核执行时间来测量实际值)。这表明clock()返回着色器时钟频率而不是主 GPU 时钟。
我该如何解决这个困惑?
编辑:我通过将从 cudaGetDeviceProperties 获得的时钟速率除以 2 来计算主 GPU 时钟频率。据我了解cudaGetDeviceProperties给出的值是着色器时钟频率。
这是一个关于独立 GPU 的问题,主要是最近的 GPU(NVIDIA Kepler、Maxwell;以及 AMD Kaveri 和 R290 中的任何东西)。
将一个未缓存的元素从...加载到寄存器中需要花费多少时间
某个地方的表格链接会很棒,解释一下就可以了......
我正在寻找一个代码片段来在桌面 NVidia 上创建 EGL 上下文。
我知道在 Windows 上,NVidia 通过扩展WGL_EXT_create_context_es_profile和WGL_EXT_create_context_es2_profile公开 EGL 。
在 Linux 上,NVidia 允许通过GLX_EXT_create_context_es_profile和 GLX_EXT_create_context_es2_profile扩展进行 EGL。
但我无法找到示例或示例代码来让它运行。
我正在尝试训练一个网络,但我得到了,我将批量大小设置为 300,并且收到此错误,但即使我将其减少到 100,我仍然收到此错误,更令人沮丧的是,在 ~1200 个图像上运行 10 epoch大约需要 40 分钟,请提出问题所在以及如何加快该过程!任何提示都会非常有帮助,提前致谢。
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-31-3b43ff4eea72> in <module>()
5 labels = Variable(labels).cuda()
6
----> 7 optimizer.zero_grad()
8 outputs = cnn(images)
9 loss = criterion(outputs, labels)
/usr/local/lib/python3.5/dist-packages/torch/optim/optimizer.py in zero_grad(self)
114 if p.grad is not None:
115 if p.grad.volatile:
--> 116 p.grad.data.zero_()
117 else:
118 data = p.grad.data
RuntimeError: cuda runtime error (2) : out of memory at /pytorch /torch/lib/THC/generic/THCTensorMath.cu:35`
Run Code Online (Sandbox Code Playgroud)
即使我的 GPU 是免费的
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.111 Driver Version: 384.111 | …Run Code Online (Sandbox Code Playgroud) 我已经能够让 kubernetes 识别我的节点上的 GPU:
$ kubectl get node MY_NODE -o yaml
...
allocatable:
cpu: "48"
ephemeral-storage: "15098429006"
hugepages-1Gi: "0"
hugepages-2Mi: "0"
memory: 263756344Ki
nvidia.com/gpu: "8"
pods: "110"
capacity:
cpu: "48"
ephemeral-storage: 16382844Ki
hugepages-1Gi: "0"
hugepages-2Mi: "0"
memory: 263858744Ki
nvidia.com/gpu: "8"
pods: "110"
...
Run Code Online (Sandbox Code Playgroud)
我旋转一个吊舱
Limits:
cpu: 2
memory: 2147483648
nvidia.com/gpu: 1
Requests:
cpu: 500m
memory: 536870912
nvidia.com/gpu: 1
Run Code Online (Sandbox Code Playgroud)
但是,pod 仍处于 PENDING 状态:
Insufficient nvidia.com/gpu.
Run Code Online (Sandbox Code Playgroud)
我正确指定了资源吗?
我使用 nvidia-docker 在 docker 容器内安装了Nvidia Video Codec SDK 8.2 + ffmpeg但当我运行此命令时
ffmpeg -f rawvideo -s:v 1920x1080 -r 30 -pix_fmt yuv420p -i HeavyHand_1080p.yuv -c:v h264_nvenc -preset slow -cq 10 -bf 2 -g 150 output.mp4
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
无法加载 libnvidia-encode.so.1
nvenc 所需的最低 Nvidia 驱动程序为 390.25 或更高版本初始化输出流 0:0 时出错 - 打开输出流 #0:0 的编码器时出错 - 可能参数不正确,例如比特率、速率、宽度或高度
否则nvidia-smi显示此信息
使用的GPU是GeForce 1050 Ti,cuda版本是9.0
我一直在尝试使用自定义数据集训练 style-gan2 网络。不幸的是,我当前运行计算的服务器有点不稳定,导致它在训练三天后崩溃。有什么方法可以让我使用网络崩溃前的最后一个快照继续训练网络吗?我看到了一些关于继续训练网络的参考,但 style-gan 或 style-gan2 github 页面都没有提到它。
我想将我的 Ubuntu 从 19.04 升级到 20.04,但在更新所有软件包之前这是不可能的。
\n\n\xe2\x9d\xaf sudo do-release-upgrade\nChecking for a new Ubuntu release\nYour Ubuntu release is not supported anymore.\nFor upgrade information, please visit:\nhttp://www.ubuntu.com/releaseendoflife\n\nPlease install all available updates for your release before upgrading.\nRun Code Online (Sandbox Code Playgroud)\n\n所以,我正在尝试更新我的软件包:
\n\n\xe2\x9d\xaf sudo apt update\nGet:1 file:/var/cuda-repo-10-0-local-10.0.130-410.48 InRelease\nIgn:1 file:/var/cuda-repo-10-0-local-10.0.130-410.48 InRelease\nGet:2 file:/var/cuda-repo-10-0-local-10.0.130-410.48 Release [574 B]\nGet:2 file:/var/cuda-repo-10-0-local-10.0.130-410.48 Release [574 B]\nHit:3 http://repo.yandex.ru/yandex-disk/deb stable InRelease \nHit:5 http://linux.teamviewer.com/deb stable InRelease \nHit:6 http://old-releases.ubuntu.com/ubuntu disco InRelease \nHit:7 http://ppa.launchpad.net/gophers/archive/ubuntu disco InRelease \nHit:8 http://old-releases.ubuntu.com/ubuntu disco-updates InRelease \nHit:9 http://dl.google.com/linux/chrome/deb stable InRelease \nHit:10 https://dl.yarnpkg.com/debian stable InRelease …Run Code Online (Sandbox Code Playgroud) 你好~我对这种情况很困惑。
首先,我的 tf 和 pytorch 都可以检测到我的 GPU(使用 torch.cuda,is_available()),但是我的模型几天前在 GPU 上运行得很好,今天只能在 cpu 上运行。似乎 pytorch 和 tf 跳过直接将模型传递给 GPU。
其次,我在 python 交互模式下进行了测试:
import torch
x = torch.randn(10000,1000).cuda()
Run Code Online (Sandbox Code Playgroud)
这条线工作正常,当我输入时
x.device
Run Code Online (Sandbox Code Playgroud)
python 向我显示 x 位于 GPU 设备索引 0 上,但同时。nvidia-smi 中没有使用 GPU 内存
第三,当我监控我的 GPU 状态时
watch -n 1 nvidia-smi
Run Code Online (Sandbox Code Playgroud)
我发现我的 GPU 的温度或功率在很长一段时间内没有变化。
任何帮助将不胜感激!!