of2.2.x gpu版在amd平台编译成功后运行一定步数出错
-
小白一枚,看不懂错误意思,麻烦老师们看看
编译成功使用smoothed_aggregation预条件后运行17个循环以后报如下错误:
#0 Foam::error::printStack(Foam::Ostream&) at ??:? #1 Foam::sigFpe::sigHandler(int) at ??:? #2 in "/lib64/libpthread.so.0" #3 void cusp::krylov::cg<cusp::ell_matrix<int, float, thrust::hip_rocprim::tag>, cusp::array1d<float, thrust::hip_rocprim::tag>, ofgpu::SolverTelemetry, cusp::precond::aggregation::smoothed_aggregation<int, float, thrust::hip_rocprim::tag, thrust::use_default, thrust::use_default, thrust::use_default> >(cusp::ell_matrix<int, float, thrust::hip_rocprim::tag>&, cusp::array1d<float, thrust::hip_rocprim::tag>&, cusp::array1d<float, thrust::hip_rocprim::tag>&, ofgpu::SolverTelemetry&, cusp::precond::aggregation::smoothed_aggregation<int, float, thrust::hip_rocprim::tag, thrust::use_default, thrust::use_default, thrust::use_default>&) at ??:? #4 void ofgpu::SparseMatrixSystem::solve<ofgpu::PCGSolver>(ofgpu::SparseMatrixArgs const&) at ??:? #5 Foam::PCGgpu::solve(Foam::Field<float>&, Foam::Field<float> const&, unsigned char) const at ??:? #6 Foam::fvMatrix<float>::solveSegregated(Foam::dictionary const&) at ??:? #7 Foam::fvMatrix<float>::solve(Foam::dictionary const&) at ??:? #8 Foam::fvMatrix<float>::solve() at ??:? #9 in "/public/home/xxx/OpenFOAM/OpenFOAM-2.2.x/platforms/linux64GccSPDebug/bin/simpleFoam" #10 __libc_start_main in "/lib64/libc.so.6" #11 in "/public/home/xxx/OpenFOAM/OpenFOAM-2.2.x/platforms/linux64GccSPDebug/bin/simpleFoam" /opt/gridview/slurm/spool_slurmd/job5380749/slurm_script: line 22: 83076 Floating point exception~/OpenFOAM/OpenFOAM-2.2.x/platforms/linux64GccSPDebug/bin/simpleFoam
[定位到代码中是blas文件中的函数axpby,如下图](
.)
axpby()函数的功能是将两个向量相加,y = αx + βy,我尝试用axpy()函数替代,结果也是在相同位置报错。axpy():y = α*x + y
-
22x这个太老了。另外GPU版本我这面也没编译过。没啥经验咯..
smoothed_aggregation预条件
这个能不能换一个别的
-
@李东岳 好像是因为最后发散了,所以报错,一开始的time step continuity errors就很大,不知道什么原因,时间步长连续性误差会随步长增长,老师有修改的建议嘛
-
一开始的time step continuity errors就很大
稳态是可能得。瞬态要保证很小。
时间步长连续性误差会随步长增长,
这个看起来设置不太对。可以先用CPU跑没问题了之后,再跑GPU
-
此回复已被删除!