标签: gpgpu

CUDA应用程序在几秒钟后超时和失败 - 如何解决这个问题?

我注意到CUDA应用程序在失败并退出之前往往有5-15秒的粗略最大运行时间.我意识到没有CUDA应用程序运行那么久是理想的,但假设它是使用CUDA的正确选择,并且由于每个线程的顺序工作量必须运行那么长,有没有办法延长这个时间或者绕过它?

timeout cuda gpgpu gpu-programming

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

选择GeForce或Quadro GPU,通过TensorFlow进行机器学习

如果使用Quadro GPU与GeForce GPU,TensorFlow性能是否有明显差异?

例如,它是否使用双精度操作或其他会导致GeForce卡掉落的东西?

我即将为TensorFlow购买GPU,并想知道GeForce是否可以.谢谢,感谢您的帮助

gpu gpgpu machine-learning tensorflow

31
推荐指数
1
解决办法
4万
查看次数

C++ AMP的当前状态是什么

我正在研究C++中的高性能代码,并且一直在使用CUDA和OpenCL以及最近的C++ AMP,我非常喜欢它.然而,我有点担心它没有被开发和扩展并且将会消亡.

让我想到这个想法的是,即使是MS C++ AMP博客已经沉默了大约一年.看看C++ AMP算法库http://ampalgorithms.codeplex.com/wikipage/history,似乎一年多没发生任何事情.

我看到的唯一开发是现在LLVM类型支持C++ AMP,因此它不仅仅是Windows,但这就是全部,而不是已被广泛讲述的东西.

你知道什么样的工作,如果有的话?

c++ gpgpu c++11 c++-amp

31
推荐指数
1
解决办法
6637
查看次数

神经网络的Python实时图像分类问题

我正在尝试使用caffe和python进行实时图像分类.我在一个过程中使用OpenCV从我的网络摄像头流式传输,并在一个单独的过程中,使用caffe对从网络摄像头拉出的帧执行图像分类.然后我将分类结果传回主线程以标注网络摄像头流.

问题是即使我有一个NVIDIA GPU并且正在执行GPU上的caffe预测,主线程也会变慢.通常没有做任何预测,我的网络摄像头流以30 fps运行; 但是,根据预测,我的网络摄像头流最多可获得15 fps.

我已经验证了caffe在执行预测时确实使用了GPU,而且我的GPU或GPU内存并没有最大化.我还验证了我的CPU内核在程序中的任何时候都没有达到最大限度.我想知道我是做错了什么,或者是否有办法让这两个过程真正分开.任何建议表示赞赏.这是我的代码供参考

class Consumer(multiprocessing.Process):

    def __init__(self, task_queue, result_queue):
        multiprocessing.Process.__init__(self)
        self.task_queue = task_queue
        self.result_queue = result_queue
        #other initialization stuff

    def run(self):
        caffe.set_mode_gpu()
        caffe.set_device(0)
        #Load caffe net -- code omitted 
        while True:
            image = self.task_queue.get()
            #crop image -- code omitted
            text = net.predict(image)
            self.result_queue.put(text)

        return

import cv2
import caffe
import multiprocessing
import Queue 

tasks = multiprocessing.Queue()
results = multiprocessing.Queue()
consumer = Consumer(tasks,results)
consumer.start()

#Creating window and starting video capturer from camera
cv2.namedWindow("preview")
vc = cv2.VideoCapture(0)
#Try to …
Run Code Online (Sandbox Code Playgroud)

python gpgpu multiprocessing deep-learning caffe

30
推荐指数
1
解决办法
2825
查看次数

OpenCL与OpenMP性能

是否有任何研究比较OpenCL和OpenMP性能?具体来说,我感兴趣的是使用OpenCL启动线程的开销,例如,如果要将域分解为大量单个工作项(每个工作项由一个执行小工作的线程运行),而不是OpenMP中的较重权重线程.域被分解为子域,其数量等于核心数.

似乎OpenCL编程模型更多地针对大规模并行芯片(例如GPU),而不是具有更少但更强大的内核的CPU.

OpenCL可以成为OpenMP的有效替代品吗?

gpgpu opencl

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

如何在Android上使用OpenCL?

对于平台独立性(桌面,云,移动......),当速度很重要时,使用OpenCL进行GPGPU开发会很棒.我知道谷歌推动RenderScript作为替代方案,但它似乎只适用于Android,并且不太可能包含在iOS中.

因此,我寻求在Android应用程序中执行OpenCL代码的解决方案.

android gpgpu opengl-es opencl renderscript

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

如何获取OpenCL SDK?

我正在浏览http://www.khronos.org/网站,只找到OpenCL的标题(不是我不关心的OpenGL).我如何获得OpenCL SDK?

sdk gpu gpgpu opencl

27
推荐指数
3
解决办法
4万
查看次数

CUDA如何为GPU分配设备ID?

当计算机具有多个支持CUDA的GPU时,每个GPU都会分配一个device ID.默认情况下,CUDA内核会执行device ID 0.您可以使用cudaSetDevice(int device)选择其他设备.

假设我的机器中有两个GPU:GTX 480和GTX 670.CUDA 如何确定哪个GPU device ID 0和哪个GPU device ID 1


关于CUDA如何分配设备ID的想法(只是头脑风暴):

  • 计算能力的降序
  • PCI插槽号
  • 将设备添加到系统的日期/时间(刚刚添加到计算机的设备的ID号越高)

动机:我正在研究一些HPC算法,我正在为几个GPU进行基准测试和自动调整.我的处理器有足够的PCIe通道,可以在全带宽下将cudaMemcpys驱动到3个GPU.因此,我不打算不断地将GPU交换进机器,而是计划在计算机中保留3个GPU.我希望能够预测当我在计算机中添加或更换某些GPU时会发生什么.

cuda gpu gpgpu nvidia

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

在一个GPU上运行多个CUDA应用程序

CUDA文档没有具体说明有多少CUDA进程可以共享一个GPU.例如,如果同一个用户在系统中只安装了一个GPU卡的情况下启动了多个CUDA程序,效果如何?它会保证执行的正确性吗?在这种情况下,GPU如何安排任务?

cuda gpu gpgpu nvidia

24
推荐指数
1
解决办法
1万
查看次数

What is the point of GLSL when there is OpenCL?

Consider this the complete form of the question in the title: Since OpenCL may be the common standard for serious GPU programming in the future (among other devices programming), why not when programming for OpenGL - in a future-proof way - utilize all GPU operations on OpenCL? That way you get the advantages of GLSL, without its programmatic limitations.

opengl graphics gpgpu glsl opencl

23
推荐指数
1
解决办法
6459
查看次数