gpgpu

    0热度

    2回答

    我正在处理一个代码,我必须对一块数据执行向量 - 矩阵乘法,将结果复制回CPU,然后开始乘其他块。我使用cublas库执行向量到矩阵乘法(以下代码)。 clock_t a,b; a = clock(); for(int i=0;i<n;i++) { cublasSgemv(handle,CUBLAS_OP_T,m,k,&alpha, dev_b1+((i+1)*m)

    2热度

    1回答

    作为this answer的后续问题。我试图用Metal中的内核函数替换运行在CPU上的for-loop来并行化计算并提高性能。 我的功能基本上是一个卷积。由于我反复接收到我输入数组值的新数据(数据源自AVCaptureSession),因此似乎使用newBufferWithBytesNoCopy:length:options:deallocator:是创建MTLBuffer对象的明智选择。下面是

    2热度

    1回答

    所以我在GeForce GT 610上运行我的OpenCL程序。我知道CUDA会是一个更好的选择,并且稍后我可以编写我的代码的CUDA版本,但是为了知道我在OpenCL中编写,能够在AMD显卡上运行。 初始化期间,我挑出一个设备运行。这是我的程序在这个阶段打印出来的结果: OpenCL Platform 0: NVIDIA CUDA ----- OpenCL Device # 0: GeForc

    0热度

    1回答

    我想写一个使用cuBLAS函数cublasSgemm的矩阵乘法的简单例子。我的代码如下所示: int m =100, n = 100; float * bold1 = new float [m*n]; float * bold2 = new float [m*n]; float * bold3 = new float [m*n]; for (int i = 0; i< m; i++)

    0热度

    1回答

    在下面的代码中,我使用函数cublasSetMatrix来处理大小为200x200的3个随机矩阵。我测得在代码中的该功能的时候: clock_t t1,t2,t3,t4; int m =200,n = 200; float * bold1 = new float [m*n]; float * bold2 = new float [m*n]; float * bold3 = new f

    0热度

    1回答

    如果可以应用GPGPU中使用持久线程vs使用device-side-enqueue/nested-parallelism仍然有优势吗? 我已经阅读了一些旧的论文,其中旧硬件需要持久线程才能获得最佳性能,我不确定使用device-side-enqueue/nested-parallelism是否使该技术无关紧要? 我想在孩子的任务完全独立后,他们的父母启动持续线程仍然值得吗?

    0热度

    1回答

    我想运行一个调用cublassgemm函数的非常简单的内核。我的代码是: __global__ void cor (float * dev_mat,float * dev_cor,int n,cublasHandle_t handle) { const float alpha = 1.0; const float beta = 0; cublasStatus_

    0热度

    1回答

    我已经经历了几个资源:OpenCL Khronos书,GATech教程,纽约大学教程和我可以经历更多。但我还是不完全明白。 内核和程序对象有什么区别? 到目前为止,最好的解释是这样的我,但这是不够的,我完全理解: 程序对象:程序对象封装了一些源代码(有可能几个内核函数)和最近一次成功的构建。 KERNEL:内核对象封装内核执行时使用的内核参数值的参数值 。 也许程序对象是代码?内核是编译的可执行文

    0热度

    2回答

    我想加速我的算法,因为我需要在数百个图像上运行它,所以我试图使用未矢量化的GPU代码,在GPU上运行相同的代码,我有nvidia Geforce在我的PC上装有2 GB的GT 650M,但是它比CPU版本要慢。搜索后,我确信使用批处理过程(pagefun,bsxfun)传递给矢量化的GPU代码,我试图解决这个问题而没有解决方案。有人可以帮我关于这个代码: Q=100; for i=3:

    1热度

    1回答

    According to Wikipedia, the Iris Graphics 6100 has 48 execution units (EU) with each having a pair of 128 bit FPUs.因此,每个EU应该支持8个浮点类型的矢量。当设备轮询GPU的首选向量宽度时,除double之外,每种类型都会显示为1。结果是0.这是预期的行为,因为双打不被支持。 CPU