标签: gpu

简单的CUBLAS矩阵乘法示例?

我正在为CUBLAS寻找一个非常简单的骨骼矩阵乘法示例,它可以将M乘以N并将结果放在P中,用于以下代码,使用高性能GPU操作:

float M[500][500], N[500][500], P[500][500];
for(int i = 0; i < Width; i++){
    for(int j = 0; j < Width; j++)
    {
        M[i][j] = 500;
        N[i][j] = 500;
        P[i][j] = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我发现使用CUBLAS进行任何类型的矩阵乘法的大多数代码(看似?)过于复杂.

我正在尝试设计一个基础实验室,学生可以在其中比较GPU上的矩阵乘法与CPU上的矩阵乘法的性能,可能是GPU上的性能提升.

cuda gpu matrix-multiplication cublas

10
推荐指数
2
解决办法
2万
查看次数

GPU如何支持OpenGL和DirectX API执行?

我试图了解OpenGL和DirectX如何使用图形卡.

如果我在OpenGL中编写一个执行三角形的程序,而在DirectX中编写另一个执行相同操作的程序,那么GPU端究竟会发生什么?

当我们运行程序时,每次调用OpenGL库以及每次调用DirectX库都会产生GPU代码,并且从两个程序生成的GPU机器代码是相同的吗?(就像DirectX和OpenGL就像Java Bytecode一样,预编译,然后当它实际运行时,它产生相同的东西)

或者GPU有两个不同的指令集,每个指令集一个.我的意思是,对于GPU来说,什么是exaclty OpenGL和DirectX,它如何区分2 API?

这只是程序员的观点吗?

opengl directx gpu

10
推荐指数
1
解决办法
2968
查看次数

使用CUDA以非线性最小二乘方式求解方程组

使用CUDA,我想用非线性最小二乘求解器求解一个方程组.这些方法在一本优秀的小册子中讨论,可以在这里下载.

我的问题中的雅可比矩阵是稀疏的,下三角形.是否有可以使用这些方法的CUDA库,或者我是否必须自己从小册子中编写这些方法?

高斯 - 牛顿非线性最小二乘求解器,Levenberg-Marquardt或Powell的方法求解器是否可用于CUDA库(免费或非免费)?

cuda gpu linear-algebra mathematical-optimization hessian-matrix

10
推荐指数
1
解决办法
6625
查看次数

C#本身是否使用GPU进行图形处理?

我想以最快的方式绘制大量使用图形.如果我使用标准的C#图形回调(es.graphics.drawline),我做得对吗?还是我要使用不同的库?

c# graphics gpu

10
推荐指数
1
解决办法
4685
查看次数

有没有办法迫使Bazel连续运行测试

默认情况下,Bazel以并行方式运行测试以加快速度.但是,由于GPU内存限制,我有一个无法处理并行作业的资源(GPU).有没有办法强制Bazel以串行方式运行测试,即非并行方式?

谢谢.

gpu bazel tensorflow

10
推荐指数
2
解决办法
1891
查看次数

用于机器学习的外部GPU

我拥有MacBook Pro 15'2014年中期,我正在考虑购买Titan X GPU来加速我的神经网络的训练.Titan将通过Thunderbolt 2作为外部GPU连接.

我可以从这种设置中获得什么样的性能 - 它是否与连接到主板相同?霹雳是否会限制GPU的速度?

macos gpu

10
推荐指数
2
解决办法
5127
查看次数

在哪里可以找到从gpusGenerateCrashLog调用堆栈创建的日志?

在我的OpenGL渲染引擎中,当我按下一个开始发出一些新的OpenGL调用的键后,我正在崩溃1帧.

以下是崩溃的调用堆栈,它是一个CVDisplayLink线程.

0   libsystem_kernel.dylib          0x00007fff94d89f06 __pthread_kill + 10
1   libsystem_pthread.dylib         0x00007fff88d3e4ec pthread_kill + 90
2   libsystem_c.dylib               0x00007fff980246e7 abort + 129
3   libGPUSupportMercury.dylib      0x00007fff983a3e5c gpusGenerateCrashLog + 158
4   com.apple.driver.AppleIntelHD5000GraphicsGLDriver   0x000000010f750d4b gpusKillClientExt + 9
5   libGPUSupportMercury.dylib      0x00007fff983a5204 gpusSubmitDataBuffers + 162
6   com.apple.driver.AppleIntelHD5000GraphicsGLDriver   0x000000010f2ac3f2 IntelCommandBuffer::getNew(GLDContextRec*) + 48
7   com.apple.driver.AppleIntelHD5000GraphicsGLDriver   0x000000010f399849 intelSubmitCommands + 171
8   com.apple.driver.AppleIntelHD5000GraphicsGLDriver   0x000000010f3996c2 gldPresentFramebufferData + 142
9   GLEngine                        0x000000010f0ddc81 glSwap_Exec + 97
10  com.apple.GLEngineProfiler      0x000000010d759265 0x10d60b000 + 1368677
11  com.apple.opengl                0x00007fff8ed15ffe CGLFlushDrawable + 66
12  com.apple.AppKit                0x00007fff8846509f -[NSOpenGLContext flushBuffer] + …
Run Code Online (Sandbox Code Playgroud)

opengl macos gpu driver osx-elcapitan

10
推荐指数
1
解决办法
395
查看次数

使用Ubuntu在AWS GPU实例上运行OpenGL

我正在尝试使用Ubuntu Ubuntu Server 16.04让opengl在亚马逊p2实例上进行无头屏幕渲染.

实例创建后,我根据这篇亚马逊文章安装了相应的nvidia驱动程序,它们似乎按预期工作:

$ lsmod | grep nvidia
nvidia_drm             53248  0
nvidia_modeset        790528  1 nvidia_drm
nvidia              11911168  1 nvidia_modeset
drm_kms_helper        155648  3 cirrus,nouveau,nvidia_drm
drm                   364544  7 ttm,drm_kms_helper,cirrus,nouveau,nvidia_drm

$ nvidia-smi -q | head
==============NVSMI LOG==============

Timestamp                           : Thu Jan 19 11:22:38 2017
Driver Version                      : 375.20

Attached GPUs                       : 1
GPU 0000:00:1E.0
Product Name                    : Tesla K80
Product Brand                   : Tesla
Run Code Online (Sandbox Code Playgroud)

我正在尝试这个相关问题的步骤:

sudo apt-get install xserver-xorg libglu1-mesa-dev freeglut3-dev mesa-common-dev libxmu-dev libxi-dev
sudo nvidia-xconfig -a --use-display-device=None …
Run Code Online (Sandbox Code Playgroud)

opengl ubuntu gpu headless amazon-ec2

10
推荐指数
2
解决办法
2156
查看次数

如何释放所有内存pytorch来自gpu内存

我有某种高级代码,因此模型训练等由pipeline_network课程来包装。我的主要目标是每折一次训练新模型。

for train_idx, valid_idx in cv.split(meta_train[DEPTH_COLUMN].values.reshape(-1)):

        meta_train_split, meta_valid_split = meta_train.iloc[train_idx], meta_train.iloc[valid_idx]

        pipeline_network = unet(config=CONFIG, suffix = 'fold' + str(fold), train_mode=True)
Run Code Online (Sandbox Code Playgroud)

但是然后我继续进行第二次折叠,所有故障都出自gpu内存:

RuntimeError: cuda runtime error (2) : out of memory at /pytorch/torch/lib/THC/generic/THCStorage.cu:58
Run Code Online (Sandbox Code Playgroud)

在纪元结束时,我尝试手动删除该管道,但没有运气:

 def clean_object_from_memory(obj): #definition
    del obj
    gc.collect()
    torch.cuda.empty_cache()

clean_object_from_memory( clean_object_from_memory) # calling
Run Code Online (Sandbox Code Playgroud)

调用它也没有帮助:

def dump_tensors(gpu_only=True):
        torch.cuda.empty_cache()
        total_size = 0
        for obj in gc.get_objects():
            try:
                if torch.is_tensor(obj):
                    if not gpu_only or obj.is_cuda:
                        del obj
                        gc.collect()
                elif hasattr(obj, "data") and torch.is_tensor(obj.data):
                    if not gpu_only or obj.is_cuda:
                        del obj …
Run Code Online (Sandbox Code Playgroud)

python gpu out-of-memory python-3.x pytorch

10
推荐指数
1
解决办法
2563
查看次数

直接从TensorFlow访问PyTorch GPU矩阵

我有一个用PyTorch编写的神经网络,它a在GPU上输出一些Tensor .我想继续a使用高效的TensorFlow层进行处理.

据我所知,唯一的方法是a从GPU内存转移到CPU内存,转换为numpy,然后将其输入TensorFlow.一个简化的例子:

import torch
import tensorflow as tf

# output of some neural network written in PyTorch
a = torch.ones((10, 10), dtype=torch.float32).cuda()

# move to CPU / pinned memory
c = a.to('cpu', non_blocking=True)

# setup TensorFlow stuff (only needs to happen once)
sess = tf.Session()
c_ph = tf.placeholder(tf.float32, shape=c.shape)
c_mean = tf.reduce_mean(c_ph)

# run TensorFlow
print(sess.run(c_mean, feed_dict={c_ph: c.numpy()}))
Run Code Online (Sandbox Code Playgroud)

这可能有点牵强,但有没有一种方法可以做到这一点

  1. a 永远不会留下GPU内存,或者
  2. a 从GPU内存到固定内存到GPU内存.

我尝试2.在上面使用的代码中使用,non_blocking=True但我不确定它是否符合我的预期(即将其移至固定内存).

理想情况下,我的TensorFlow图将直接在PyTorch张量占用的内存上运行,但我认为这是不可能的?

gpu gpu-programming tensorflow pytorch

10
推荐指数
1
解决办法
374
查看次数