小编Rob*_*lla的帖子

无法在 Pycharm 终端中安装 Pytorch,Python 3.10 .win 10

我去 pytorch 网站并拿这个

pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio===0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
Run Code Online (Sandbox Code Playgroud)

我有Windows 10,Python版本是3.10,CUDA版本是11.5

我收到这个错误

错误:找不到满足 torch==1.10.0+cu113 要求的版本(来自版本:0.1.2、0.1.2.post1、0.1.2.post2)错误:找不到 torch==1.10 的匹配发行版.0+cu113

我真的很挣扎并试图解决它,请帮忙。

pip pycharm pytorch

7
推荐指数
1
解决办法
8894
查看次数

我在 Julia 中预编译 Flux 包时遇到问题

我正在尝试将 Flux 添加到 Julia 中的包存储库中,但出现错误。

我输入了 pkg> add Flux 但 Julia REPL 返回“5 个依赖项错误”。

他们是:

  1. LLVM
  2. GPU编译器
  3. CUDA
  4. 神经网络库CUDA
  5. 通量

要查看完整的报告,请运行import Pkg; Pkg.precompile()或加载包,我运行了命令预编译,这就是我得到的。

ERROR: The following 1 direct dependency failed to precompile:
Flux [587475ba-b771-5e3f-ad9e-33799f191a9c]
Failed to precompile Flux [587475ba-b771-5e3f-ad9e-33799f191a9c] to 
C:\Users\Kostas\.julia\compiled\v1.6\Flux\jl_3C4D.tmp.
ERROR: LoadError: could not load library "C:\Users\Kostas\.julia\juliaup\julia- 
1.6.4+0~x64\bin\LLVM.dll"
The specified module could not be found.
Stacktrace:
[1] dlopen
  @ .\libdl.jl:114 [inlined]
[2] #dlopen#2
  @ .\libdl.jl:110 [inlined]
[3] dlopen (repeats 2 times)
  @ .\libdl.jl:110 [inlined]
[4] loaded_llvm()
  @ …
Run Code Online (Sandbox Code Playgroud)

julia flux.jl

7
推荐指数
0
解决办法
587
查看次数

将数据复制到"cufftComplex"数据结构?

我将数据存储为浮点数组(单精度).我有一个数组用于我的实际数据,一个数组用于我的复杂数据,我用它作为FFT的输入.cufftComplex如果我想使用CUDA cufft库,我需要将这些数据复制到数据类型中.来自nVidia:" cufftComplex是一种单精度,浮点复数数据类型,由交错的实部和虚部组成." 袖带操作的数据存储在数组中cufftComplex.

如何快速将数据从普通C数组复制到数组中cufftComplex?我不想使用for循环,因为它可能是最慢的选项.我不知道如何使用memcpy这种类型的数组数据,因为我不知道它是如何存储在内存中的.谢谢!

cuda memcpy

6
推荐指数
1
解决办法
4559
查看次数

同时使用2个GPU调用cudaMalloc时性能不佳

我有一个应用程序,我在用户系统上的GPU之间分配处理负载.基本上,每个GPU都有CPU线程,当主应用程序线程定期触发时,它会启动GPU处理间隔.

考虑以下图像(使用NVIDIA的CUDA探查器工具生成)作为GPU处理间隔的示例- 此处应用程序使用单个GPU.

在此输入图像描述

正如您所看到的,两个排序操作消耗了大部分GPU处理时间,而我正在使用Thrust库(thrust :: sort_by_key).此外,看起来push :: sort_by_key会在启动实际排序之前调用几个cudaMallocs.

现在考虑应用程序在两个GPU上分散处理负载的相同处理间隔:

在此输入图像描述

在完美的世界中,您可以预期2 GPU处理间隔恰好是单GPU的一半(因为每个GPU的工作量只有一半).正如你所看到的,部分原因并非如此,因为cudaMallocs由于某种争用问题而被同时调用(有时长2-3倍)时似乎需要更长的时间.我不明白为什么会出现这种情况,因为2个GPU的内存分配空间是完全独立的,因此cudaMalloc上不应该有系统范围的锁定 - 每GPU锁定会更合理.

为了证明我的假设问题是同时使用cudaMalloc调用,我创建了一个非常简单的程序,它有两个CPU线程(每个GPU),每个线程多次调用cudaMalloc.我首先运行此程序,以便单独的线程不会同时调用cudaMalloc:

在此输入图像描述

你看,每次分配需要大约175微秒.接下来,我用同时调用cudaMalloc的线程运行程序:

在此输入图像描述

在这里,每个呼叫比前一个案例花了大约538微秒或3倍!毋庸置疑,这极大地减慢了我的应用程序,并且理所当然,只有2个以上的GPU才会使问题变得更糟.

我在Linux和Windows上注意到了这种行为.在Linux上,我使用的是Nvidia驱动程序版本319.60,而在Windows上我使用的是327.23版本.我正在使用CUDA工具包5.5.

可能的原因: 我在这些测试中使用的是GTX 690.这张卡基本上是2 680个GPU,安装在同一个单元中.这是我运行的唯一"多GPU"设置,所以cudaMalloc问题可能与690的2 GPU之间的硬件依赖性有关吗?

parallel-processing cuda gpu-programming multi-gpu thrust

6
推荐指数
2
解决办法
1514
查看次数

我能否以某种方式在我的 optimus 笔记本电脑的 Intel 集成显卡上运行 X11 并在 NVIDIA GPU 上调试 CUDA 代码?

我知道我可以在没有 GUI 的情况下使用 cuda-gdb 在 Linux 上调试 CUDA,但这并不是很方便。我还知道,如果 X 服务器运行在其他 GPU 上,则可以使用 Nsight Eclipse 版本调试 CUDA。所以我有双 GPU 笔记本电脑(GeForce 525m 和 Intel 3000),我想知道我是否可以在 Intel 卡上运行 X 服务器,而我的 CUDA 代码在我的 nvidia 卡上运行?

ubuntu cuda nsight

6
推荐指数
1
解决办法
4446
查看次数

对于各种b,稀疏带状Ax = b的批量CUDA解决方案

我有一个稀疏的带状矩阵A,我想(直接)解决Ax = b.我有大约500个向量b,所以我想解决相应的500 x.我是CUDA的新手,所以我对我有哪些选择感到困惑.

cuSOLVER有一个批量直接求解器cuSolverSP,用于在这里使用QR的稀疏A_i x_i = b_i .(由于A的条件很好,我对LU也没问题.)但是,据我所知,我无法利用我所有的A_i都是一样的事实.

另一种选择是首先确定CPU或GPU上的稀疏LU(QR)因子分解,然后并行执行GPU上的后置替换(分别为backsub和matrix mult)吗?如果cusolverSp <t> csrlsvlu()用于一个b_i,是否有一种标准方法可以为多个b_i批量执行此操作?

最后,由于我对此没有直觉,考虑到必要的开销,我是否应该期望在这些选项中的GPU加速?x的长度约为10000-100000.谢谢.

c++ cuda sparse-matrix matrix-factorization cusolver

6
推荐指数
1
解决办法
708
查看次数

CUDA 7.0编译样本时出错

我正在尝试在Ubuntu 14.04上安装CUDA 7.0.我按照此处列出的安装说明进行操作.具体来说,我按照第3.6节和第6章中的步骤进行操作.在使用时编译示例(第6.2.2.2节)时make,我收到以下错误:

make[1]: Entering directory `/usr/local/cuda-7.0/samples/3_Imaging/cudaDecodeGL'
/usr/local/cuda-7.0/bin/nvcc -ccbin g++   -m64      -gencode arch=compute_20,
code=compute_20 -o cudaDecodeGL FrameQueue.o ImageGL.o VideoDecoder.o
VideoParser.o VideoSource.o cudaModuleMgr.o cudaProcessFrame.o 
videoDecodeGL.o  -L../../common/lib/linux/x86_64 -L/usr/lib/"nvidia-346"
-lGL -lGLU -lX11 -lXi -lXmu -lglut -lGLEW -lcuda -lcudart -lnvcuvid
/usr/bin/ld: cannot find -lnvcuvid
collect2: error: ld returned 1 exit status
make[1]: *** [cudaDecodeGL] Error 1
make[1]: Leaving directory `/usr/local/cuda-7.0/samples/3_Imaging/cudaDecodeGL'
make: *** [3_Imaging/cudaDecodeGL/Makefile.ph_build] Error 2
Run Code Online (Sandbox Code Playgroud)

cuda ubuntu-14.04

6
推荐指数
1
解决办法
5639
查看次数

CUDA:类似于 __device__ 代码的 sprintf 函数

我在互联网上找不到任何东西。由于可以printf__device__函数中使用这一事实,我想知道是否存在sprintf类似的函数,因为它printf“使用”了sprintf要在stdout.

printf cuda

6
推荐指数
1
解决办法
1330
查看次数

我如何知道 GPU 可以并行执行多少个矩阵运算?

我正在使用一个名为GPU.js的 JS 库。像这样使用:

const gpu = new GPU();
const multiplyMatrix = gpu.createKernel(function(a, b) {
    let sum = 0;
    for (let i = 0; i < 512; i++) {
        sum += a[this.thread.y][i] * b[i][this.thread.x];
    }
    return sum;
}).setOutput([512, 512]);
Run Code Online (Sandbox Code Playgroud)

但是因为我不是通过像 CUDA 或 OpenGL 这样的低级协议来使用 GPU,而是通过几个抽象层,即 WebGL 之上的 GPU.js,我真的没有必要学习底层的基础知识到底如何矩阵运算在硬件上组装。

但是我注意到对于 GPU.js,每个 GPU 对我可以操作的矩阵的大小都有限制,通常限于 GPU 支持的最大屏幕分辨率。因此,如果我不得不猜测,我会认为我可以在 GPU 上一次并行执行的矩阵运算的最大数量是 7680 x 4320 x 3(宽 x 高 x 3 个颜色通道),例如 RTX 3080:

在此处输入图片说明

所以我猜我对那张卡的限制是:

.setOutput([7680, 4320, 3]);
Run Code Online (Sandbox Code Playgroud)

编辑:

这不可能是正确的,因为每一代 Nvidia GPU 的最大分辨率规格:1000、2000、3000 系列都保持不变,时钟速度也几乎保持不变,增加了 CUDA …

javascript gpu gpu.js

6
推荐指数
1
解决办法
197
查看次数

在哪种特定场景下,只读数据缓存的性能会优于全局内存访问?

好吧,我的问题可能是一般性的,因为我现在没有具体的问题。

然而,根据我过去的经验,我从未见过CUDA的只读数据缓存优于其他类型的内存访问,例如全局内存或常量内存,在最好的情况下,只读数据缓存将与直接非合并全局一样快内存访问,这让我觉得我可能做错了什么。

所以我的问题是在什么情况下只读数据缓存会比其他类型的内存访问更快?

caching cuda

5
推荐指数
1
解决办法
2288
查看次数