【发布时间】:2012-10-11 12:11:27
【问题描述】:
我分析了我的 matlab 代码以识别最耗时的函数,它们主要是 gradient、Kron matlab 函数 in this file,以便将它们写入 cuda 内核,然后 PTX 并从 matlab 调用它们。任何想法或文章会很好。m 和 b 的计算似乎是可分离的,使它们成为分配给不同块的好候选者,这是代码的快照@ 987654324@
i2w=g0*aff(i2,a0);
[ix,iy]=grad(i2w);
ix=ix.*region;iy=iy.*region;
ix2=ix.^2;iy2=iy.^2;ixiy=ix.*iy;
it=i1-i2w;
m1=sum(sum(kron(ones(1,limy)',(1-centx:limx-centx).^2).*ix2));
m2=sum(sum(kron((1-centy:limy-centy)',(1-centx:limx-centx)).*ix2));
ps:我最近读到了关于NVMEX 的信息,对于前面提到的此类代码上的此选项的一些帮助,将不胜感激。
【问题讨论】:
-
我想你可能已经知道了,但是如果你想在 matlab 中调用一个 cuda 函数,you don't have to use the mex interface anymore。可以直接从 matlab 函数调用 cuda C/C+(或 PTX)函数。
-
tnx 发表评论,但我说问题可能是 kron 的实现,cuda 内核中的梯度......我认为整个函数可以在 cuda 中重写,因为 m &b 的计算是可分离
标签: image matlab cuda gpu gaussian