三层结构
opencv降版本貌似根本不用删除旧版。直接安装新版本即可。
想想应该也是这样,就文件都被覆盖了。
网上那个删除旧版本的方法并不好用。
比较方便的方法是make uninstall
,但是这个并不靠谱,谁他妈还留着以前的安装文件夹和make出来的东西。
还有个rm的查找文件关键字有没有opencv,这他妈更不靠谱了,容易误删文件。
所以,我直接安装旧版。
opencv3.0.0太他妈坑爹了。比2.4版本变化太大。比如ML库中的函数都他妈变了,全是C++版的了。
matlab支持GPU的函数:
matlab中声明parallel.gpu.CUDAKernel('add2.ptx','add2.cu','add2');
其中,add2.ptx由nvcc -ptx add2.cu
生成。add2.cu
为源程序,如果没有源程序,需要声明程序入口('add2.ptx','int * a,int * b','add2')
.add2为add2.cu中的函数。即为其中声明为__global__
的函数。当输入参数中有数组时,数组的尺度是不会传入的。需要使用其他参数传入。
例子:
1 | k1 = parallel.gpu.CUDAKernel('add2.ptx','add2.cu','add2'); |
此时的add2函数为:
1 | __global__ void add2(const int * a ,const int * b, const int N, int * c) |
声明为const为输入量,只有非const为输出。但好像并没有什么鸟用,只是说明了输出的大小,如果输出跟输入某个一样大小,完全可以
1 | __global__ void add2(const int * a ,const int * b, const int N, int * c) |
然后使用ores = feval(k1,ina,inb,inN);
调用。
测试了下性能。计算平方和
__global__
修饰 1 | int c; |
1 | tic; |
时间大概就是:
https://developer.nvidia.com/cuda-downloads
注意 The Local Installer has all of the components embedded into it (toolkit, driver, samples)
说明丫里面有driver
但是,在ubuntu中你要是不安装驱动,新显卡是无法切换到字符终端的,也就是说ctrl alt fn过去是黑屏。
最开始,先切换到黑屏,然后ssh过去,执行1
sudo service lightdm stop
把X干掉
然后在官网上下载了驱动,安装。然后1
sudo service lightdm start
分辨率就正常了,这他妈应该说明驱动好了。
然后装cuda
但是呢,装完不正常,编译样例都过,执行deviceQuery就完了。
最莫名其妙的是当执行1
sudo ./NVIDIA-Linux-x86_64-352.21.run --uninstall
的时候,丫竟然说你没装驱动。
然后1
sudo apt-get --purge remove cuda
再然后,ctrl alt fn切到字符终端安装cuda
莫名其妙的就ok 了
从上面注意中看到,他说里面是有驱动的。
所以只能推断,从ssh过去装的驱动是有问题的。
整1
sudo apt-get install mysql-server mysql-client libmysqlclient-dev