小编Fra*_*ter的帖子

nvidia gpus上的内核真的超时吗?

为什么我的内核产生奇怪的错误消息或"0"只搜索结果我在SO上发现这个答案,提到在nvidia gpus上运行内核的超时为5秒?我用谷歌搜索结果,但我找不到确认来源或更多信息.

你怎么知道的?

对于运行时间长的内核,timout会导致奇怪的行为吗?

谢谢!

nvidia opencl gpu-programming

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

PyCUDA:设备代码中的Pow试图使用std :: pow,失败

问题或多或少都说明了一切.

calling a host function("std::pow<int, int> ") from a __device__/__global__ function("_calc_psd") is not allowed
Run Code Online (Sandbox Code Playgroud)

从我的理解,这应该是使用cuda pow功能,但事实并非如此.

python cuda pow pycuda

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

PyCUDA将值传递给内核

应该够简单; 我真的想把一个int发送到一个SourceModule内核声明,其中有C函数

__global__......(int value,.....)
Run Code Online (Sandbox Code Playgroud)

声明并调用值...

value = 256
...
...
func(value,...)
Run Code Online (Sandbox Code Playgroud)

但我从pycuda得到了各种各样的错误,我使用了错误的类型.

python cuda gpgpu pycuda

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

如何在pyopencl中创建可变大小的__local内存?

在我的C OpenCL代码中,我clSetKernelArg用来创建'可变大小' __local内存以供在我的内核中使用,这在OpenCL本身并不可用.看我的例子:

clSetKernelArg(clKernel, ArgCounter++, sizeof(cl_mem), (void *)&d_B);
...
clSetKernelArg(clKernel, ArgCounter++, sizeof(float)*block_size*block_size, NULL);
...
kernel="    
    matrixMul(__global float* C,
                   ...
              __local float* A_temp,
                  ...
             )"
{...
Run Code Online (Sandbox Code Playgroud)

我的问题是现在,如何在pyopencl中做同样的事情?

我查看了pyopencl附带的示例,但我唯一能找到的是使用模板的方法,这对我来说就像我所理解的那样是一种矫枉过正.见例子.

kernel = """
        __kernel void matrixMul(__global float* C,...){
                     ... 
            __local float A_temp[ %(mem_size) ];
                     ...
        }
Run Code Online (Sandbox Code Playgroud)

您有什么推荐的吗?

python opencl pyopencl

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

Pycuda搞乱numpy矩阵转置

当转换为pycuda.gpuarray?时,为什么转置矩阵看起来不同?

你能复制一下吗?什么可能导致这个?我使用了错误的方法吗?

示例代码

from pycuda import gpuarray
import pycuda.autoinit
import numpy

data = numpy.random.randn(2,4).astype(numpy.float32)
data_gpu = gpuarray.to_gpu(data.T)
print "data\n",data
print "data_gpu.get()\n",data_gpu.get()
print "data.T\n",data.T
Run Code Online (Sandbox Code Playgroud)

产量

data
[[ 0.70442784  0.08845157 -0.84840715 -1.81618035]
 [ 0.55292499  0.54911566  0.54672164  0.05098847]]
data_gpu.get()
[[ 0.70442784  0.08845157]
 [-0.84840715 -1.81618035]
 [ 0.55292499  0.54911566]
 [ 0.54672164  0.05098847]]
data.T
[[ 0.70442784  0.55292499]
 [ 0.08845157  0.54911566]
 [-0.84840715  0.54672164]
 [-1.81618035  0.05098847]]
Run Code Online (Sandbox Code Playgroud)

numpy pycuda

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

在循环展开时出现"资源不足"错误

当我在内核中将展开从8个循环增加到9个循环时,会出现out of resources错误.

我读了如何诊断由于资源不足导致的CUDA启动失败?参数不匹配和寄存器过度使用可能是一个问题,但这似乎不是这种情况.

我的内核计算n点和m质心之间的距离,并为每个点选择最接近的质心.它适用于8个维度,但不适用于9.当我dimensions=9为距离计算设置和取消注释这两行时,我得到了一个pycuda._driver.LaunchError: cuLaunchGrid failed: launch out of resources.

您怎么看,可能会导致这种行为?还有什么其他的可以导致out of resources*?

我使用的是Quadro FX580.这是最小(ish)的例子.为了展开真正的代码我使用模板.

import numpy as np
from pycuda import driver, compiler, gpuarray, tools
import pycuda.autoinit


## preference
np.random.seed(20)
points = 512
dimensions = 8
nclusters = 1

## init data
data = np.random.randn(points,dimensions).astype(np.float32)
clusters = data[:nclusters]

## init cuda
kernel_code = """

      // the kernel definition 
    __device__ __constant__ float centroids[16384];

    __global__ void …
Run Code Online (Sandbox Code Playgroud)

cuda loop-unrolling pycuda

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

如何保存包含指针的ctypes对象

我使用第三方库,经过大量计算后返回一个包含指针的ctypes对象.

如何保存ctypes对象以及指针指向以供以后使用?我试过了

  • scipy.io.savemat => TypeError:无法将对象转换为数组
  • cPickle =>包含指针的ctypes对象无法进行pickle

python ctypes pickle

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

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

LibSVM和scikit-learn的准确度不同

对于相同的数据集和参数,我得到不同的准确性LibSVMscikit-learn的SVM实现,尽管scikit-learn也使用LibSVM在内部.

我忽略了什么?

LibSVM命令行版本:

me@my-compyter:~/Libraries/libsvm-3.16$ ./svm-train -c 1 -g 0.07 heart_scale heart_scale.model
optimization finished, #iter = 134
nu = 0.433785
obj = -101.855060, rho = 0.426412
nSV = 130, nBSV = 107
Total nSV = 130
me@my-compyter:~/Libraries/libsvm-3.16$ ./svm-predict heart_scale heart_scale.model heart_scale.result
Accuracy = 86.6667% (234/270) (classification)
Run Code Online (Sandbox Code Playgroud)

Scikit-learn NuSVC版本:

In [1]: from sklearn.datasets import load_svmlight_file    
In [2]: X_train, y_train = load_svmlight_file('heart_scale')    
In [3]: from sklearn import svm    
In [4]: clf = svm.NuSVC(gamma=0.07,verbose=True)   
In …
Run Code Online (Sandbox Code Playgroud)

libsvm scikit-learn

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

Flask在上传文件或等待其他服务器时没有响应

我的Flask在上传文件或通过GET从其他服务器收集数据时停止响应.我假设,问题是,Flask只在一个线程上运行.

如何更改此权限,以便多个用户可以使用该网站?

python flask

3
推荐指数
1
解决办法
576
查看次数