[petsc-dev] Kokkos/Crusher perforance

Jacob Faibussowitsch jacob.fai at gmail.com
Sat Jan 22 13:34:44 CST 2022


> I suggested years ago that -log_view automatically print useful information about the GPU setup (when GPUs are used) but everyone seemed comfortable with the lack of information so no one improved it.

FWIW, PetscDeviceView() does a bit of what you want (it just dumps all of cuda/hipDeviceProp)

Best regards,

Jacob Faibussowitsch
(Jacob Fai - booss - oh - vitch)

> On Jan 22, 2022, at 12:55, Barry Smith <bsmith at petsc.dev> wrote:
> 
> 
>  I suggested years ago that -log_view automatically print useful information about the GPU setup (when GPUs are used) but everyone seemed comfortable with the lack of information so no one improved it. I think for a small number of GPUs -log_view should just print details and for a larger number print some statistics (how many physical ones etc). Currently, it does not even print how many are used. I think requiring another option to get this basic information is a mistake, we already print a ton of background with -log_view it is just sad no background on the GPU usage.
> 
> 
> 
> 
> 
>> On Jan 22, 2022, at 1:06 PM, Jed Brown <jed at jedbrown.org> wrote:
>> 
>> Mark Adams <mfadams at lbl.gov> writes:
>> 
>>> On Sat, Jan 22, 2022 at 12:29 PM Jed Brown <jed at jedbrown.org> wrote:
>>> 
>>>> Mark Adams <mfadams at lbl.gov> writes:
>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> VecPointwiseMult     402 1.0 2.9605e-01 3.6 1.05e+08 1.0 0.0e+00
>>>> 0.0e+00
>>>>>> 0.0e+00  0  0  0  0  0   5  1  0  0  0 22515   70608      0 0.00e+00
>>>> 0
>>>>>> 0.00e+00 100
>>>>>>> VecScatterBegin      400 1.0 1.6791e-01 6.0 0.00e+00 0.0 3.7e+05
>>>> 1.6e+04
>>>>>> 0.0e+00  0  0 62 54  0   2  0100100  0     0       0      0 0.00e+00
>>>> 0
>>>>>> 0.00e+00  0
>>>>>>> VecScatterEnd        400 1.0 1.0057e+00 7.0 0.00e+00 0.0 0.0e+00
>>>> 0.0e+00
>>>>>> 0.0e+00  0  0  0  0  0   5  0  0  0  0     0       0      0 0.00e+00
>>>> 0
>>>>>> 0.00e+00  0
>>>>>>> PCApply              402 1.0 2.9638e-01 3.6 1.05e+08 1.0 0.0e+00
>>>> 0.0e+00
>>>>>> 0.0e+00  0  0  0  0  0   5  1  0  0  0 22490   70608      0 0.00e+00
>>>> 0
>>>>>> 0.00e+00 100
>>>>>> 
>>>>>> Most of the MatMult time is attributed to VecScatterEnd here. Can you
>>>>>> share a run of the same total problem size on 8 ranks (one rank per
>>>> GPU)?
>>>>>> 
>>>>>> 
>>>>> attached. I ran out of memory with the same size problem so this is the
>>>>> 262K / GPU version.
>>>> 
>>>> How was this launched? Is it possible all 8 ranks were using the same GPU?
>>>> (Perf is that bad.)
>>>> 
>>> 
>>> srun -n8 -N1 *--ntasks-per-gpu=1* --gpu-bind=closest ../ex13
>>> -dm_plex_box_faces 2,2,2 -petscpartitioner_simple_process_grid 2,2,2
>>> -dm_plex_box_upper 1,1,1 -petscpartitioner_simple_node_grid 1,1,1
>>> -dm_refine 6 -dm_view -dm_mat_type aijkokkos -dm_vec_type kokkos -pc_type
>>> jacobi -log_view -ksp_view -use_gpu_aware_mpi true
>> 
>> I'm still worried because the results are so unreasonable. We should add an option like -view_gpu_busid that prints this information per rank.
>> 
>> https://code.ornl.gov/olcf/hello_jobstep/-/blob/master/hello_jobstep.cpp
>> 
>> A single-process/single-GPU comparison would also be a useful point of comparison.
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20220122/e30d6889/attachment.html>


More information about the petsc-dev mailing list