Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencl OS X上的ViennaCL:Can';t将数据复制到GPU_Opencl_Viennacl - Fatal编程技术网

Opencl OS X上的ViennaCL:Can';t将数据复制到GPU

Opencl OS X上的ViennaCL:Can';t将数据复制到GPU,opencl,viennacl,Opencl,Viennacl,我只是在学习与维也纳合作。在CPU上的第一次尝试运行良好,现在我正在尝试使用OpenCL。但是,我无法在GPU上获取数据-虽然矩阵似乎已创建,但它们没有获取任何内容: #define VIENNACL_WITH_OPENCL #define VIENNACL_WITH_UBLAS #include <boost/numeric/ublas/matrix.hpp> #include "viennacl/matrix.hpp" int main() { boost::nume

我只是在学习与维也纳合作。在CPU上的第一次尝试运行良好,现在我正在尝试使用OpenCL。但是,我无法在GPU上获取数据-虽然矩阵似乎已创建,但它们没有获取任何内容:

#define VIENNACL_WITH_OPENCL
#define VIENNACL_WITH_UBLAS 
#include <boost/numeric/ublas/matrix.hpp>
#include "viennacl/matrix.hpp"

int main() {
    boost::numeric::ublas::matrix<float> data_cpu(1,1);
    data_cpu(0,0) = 1;

    viennacl::matrix<float> data_gpu(1,1);
    viennacl::copy(data_cpu, data_gpu);

    assert(data_cpu(0,0) == data_gpu(0,0));
}
#用OPENCL定义维也纳
#用UBLAS定义VIENNACL_
#包括
#包括“viennacl/matrix.hpp”
int main(){
boost::numeric::ublas::矩阵数据\u cpu(1,1);
数据_cpu(0,0)=1;
viennacl::矩阵数据_gpu(1,1);
viennacl::复制(数据\u cpu、数据\u gpu);
断言(data_cpu(0,0)=data_gpu(0,0));
}
在这之后,
data\u gpu(0,0)
0
,但我认为应该是
1

我是用
g++nocopy.cpp-frameworkopencl
编译的。我正在使用OSX和提供的OpenCL驱动程序

我做错了什么

编辑:用OPENCL删除VIENNACL可以解决问题,但这不是我想要的。

看起来OPENCL的(我的?)OS X安装不知怎么被破坏了。其他简单的OpenCL示例也失败了:

noname:histogram Markus$ ./histogram 
OpenCL Device Vendor = NVIDIA,  OpenCL Device Name = GeForce GT 650M,  OpenCL Device Version = OpenCL 1.1 
Image Histogram for image type = CL_RGBA, CL_UNORM_INT8: verify_histogram_results failed for indx = 0, gpu result = 0, expected result = 8204
Image dimensions: 1920 x 1080 pixels, Image type = CL_RGBA, CL_UNORM_INT8
Time to compute histogram = 0 ms
Image Histogram for image type = CL_RGBA, CL_FLOAT: verify_histogram_results failed for indx = 0, gpu result = 0, expected result = 8049
Image dimensions: 1920 x 1080 pixels, Image type = CL_RGBA, CL_FLOAT
Time to compute histogram = 0 ms
noname:histogram Markus$ pwd
/Users/Markus/Desktop/tmp/opencl-book-samples-read-only/src/Chapter_14/histogram

更新:这似乎是OSX的一个问题-在另一台(SLES)机器上,它可以工作。有什么想法吗?