CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    of2.2.x gpu版在amd平台编译成功后运行一定步数出错

    OpenFOAM
    2
    5
    157
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • X
      Xiaomin 最后由 编辑

      小白一枚,看不懂错误意思,麻烦老师们看看

      编译成功使用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,如下图](error1.jpg .)

      axpby()函数的功能是将两个向量相加,y = αx + βy,我尝试用axpy()函数替代,结果也是在相同位置报错。axpy():y = α*x + y

      1 条回复 最后回复 回复 引用
      • 李东岳
        李东岳 管理员 最后由 编辑

        22x这个太老了。另外GPU版本我这面也没编译过。没啥经验咯.. :xinlei:

        smoothed_aggregation预条件

        这个能不能换一个别的

        CFD高性能服务器 http://dyfluid.com/servers.html

        X 1 条回复 最后回复 回复 引用
        • X
          Xiaomin @李东岳 最后由 李东岳 编辑

          @李东岳 好像是因为最后发散了,所以报错,一开始的time step continuity errors就很大,不知道什么原因,时间步长连续性误差会随步长增长,老师有修改的建议嘛

          李东岳 1 条回复 最后回复 回复 引用
          • 李东岳
            李东岳 管理员 @Xiaomin 最后由 编辑

            一开始的time step continuity errors就很大

            稳态是可能得。瞬态要保证很小。

            时间步长连续性误差会随步长增长,

            这个看起来设置不太对。可以先用CPU跑没问题了之后,再跑GPU

            CFD高性能服务器 http://dyfluid.com/servers.html

            1 条回复 最后回复 回复 引用
            • X
              Xiaomin 最后由 编辑

              此回复已被删除!
              1 条回复 最后回复 回复 引用
              • First post
                Last post