我在写的程序中加入了cusparseScsrsv_analysis函数,具体参数设置如下:
cusparseScsrsv_analysis(handle,CUSPARSE_OPERATION_NON_TRANSPOSE,n_rows,n_vals,descr,d_csrVals,d_csrRows,d_csrCols,Info);
在程序中加入了这个函数,导致了程序消耗内存暴增,这是什么原因呢?
答:其实原因很简单, CUSPARSE API 手册上说明了该函数要消耗额外的内存,而且该函数只调用一次就可以。我在循环中调用了,所致导致内存暴涨。希望大家引以为鉴,不要再出这样的问题。
附API手册的部分描述:
It is expected that this function will be executed only once for a given matrix and a particular operation type.
This function requires a significant amount of extra storage that is proportional to the matrix size. It is executed
asynchronously with respect to the host and may return control to the application on the host before the result is ready.