仓库地址: https://github.com/qhgz2013/shared_matrix
Bug该修的修好了,内存泄漏,多次free啥的操作基本上是没有了,跑小的数据集已经有挺好的效果的了:
RTX ON 共享内存 ON:
独立内存使用情况:
共享内存使用情况(在/dev/shm
中):
共享内存 OFF:
如果要跑大点的数据集,单用matlab自带的parallel.pool.Constant
,就算是128G的内存也out of memory了,现在把15G的数据直接扔共享内存里,还算跑得动:
代码改动也不大,以前是:
1 | x_const = parallel.pool.Constant(x); |
现在则是:
1 | x_host = shared_matrix_host(x); |
好像是繁琐了一点,但是后面优化一下加个直接套个struct一次性创建多个变量的话应该简单很多,比如:
1 | shared_memory_host = create_shmat_host(x, a, b, c); |
这个就留给以后再说了。