Skip to content

Commit d474d47

Browse files
committed
update
1 parent bc41f47 commit d474d47

File tree

3 files changed

+1
-85
lines changed

3 files changed

+1
-85
lines changed

README.md

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,8 @@ If you use this code, please cite the following work:
5959
## Reference performance
6060

6161
Performance (NS only)
62-
* 128 x 128 x 128 | 2 x RTX5000@milton | 14 ms/timestep
63-
* 256 x 256 x 256 | 2 x RTX5000@milton | 129 ms/timestep
64-
* 128 x 128 x 128 | 4 x A100@Leonardo | 7 ms/timestep
6562
* 256 x 256 x 256 | 4 x A100@Leonardo | 44 ms/timestep
66-
* 512 x 512 x 512 | 4 x A100@Leonardo | 470 ms/timestep
67-
* 512 x 512 x 512 | 8 x A100@Leonardo | 200 ms/timestep
63+
* 512 x 512 x 512 | 4 x A100@Leonardo | 270 ms/timestep
6864
* 1024 x 1024 x 1024 | 512 x A100@Leonardo | 35 ms/timestep
6965
* 2048 x 2048 x 2048 | 256 x A100@Leonardo | 740 ms/timestep
7066
* 128 x 128 x 128 | 4 x H100@MN5-ACC | 7 ms/timestep
@@ -74,11 +70,6 @@ Performance (NS only)
7470
* 1024 x 1024 x 1024 | 512 x H100@MN5-ACC | 32 ms/timestep
7571
* 2048 x 2048 x 2048 | 512 x H100@MN5-ACC | 259 ms/timestep
7672

77-
Max resolution tested (Poisson only):
78-
* 768 x 768 x 768 | 2 x RTX5000@milton - 16 GB VRAM
79-
* 2048 x 2048 x 2048 | 32 x A100@Leonardo - 64 GB VRAm (also tested on 256/512 GPUs)
80-
* 2048 x 2048 x 2048 | 32 x H100@MN5-ACC - 64 GB VRAm (also tested on 256/512 GPUs)
81-
8273
Phase-field introduces about 15% of overhead compared to NS only.
8374

8475
## Scaling

multi/main.f90

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ program main
1010
use param
1111
use mpivar
1212
use cudecompvar
13-
use nvtx
1413

1514

1615
implicit none
@@ -331,7 +330,6 @@ program main
331330
if (rank.eq.0) write(*,*) "Time step",t,"of",tfin
332331
call cpu_time(times)
333332

334-
call nvtxStartRange("Phase-field",1)
335333
!########################################################################################################################################
336334
! START STEP 4: PHASE-FIELD SOLVER (EXPLICIT)
337335
!########################################################################################################################################
@@ -488,9 +486,6 @@ program main
488486
!########################################################################################################################################
489487
! END STEP 4: PHASE-FIELD SOLVER
490488
!########################################################################################################################################
491-
call nvtxEndRange
492-
493-
494489

495490

496491

multi/module.f90

Lines changed: 0 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -58,75 +58,5 @@ module phase
5858
end module phase
5959

6060

61-
! added NVTX for profiing from maxcuda/NVTX_example
62-
module nvtx
63-
use iso_c_binding
64-
implicit none
65-
integer,private :: col(7) = [ int(Z'0000ff00'), int(Z'000000ff'), int(Z'00ffff00'), int(Z'00ff00ff'), int(Z'0000ffff'), int(Z'00ff0000'), int(Z'00ffffff')]
66-
character,private,target :: tempName(256)
6761

68-
type, bind(C):: nvtxEventAttributes
69-
integer(C_INT16_T):: version=1
70-
integer(C_INT16_T):: size=48 !
71-
integer(C_INT):: category=0
72-
integer(C_INT):: colorType=1 ! NVTX_COLOR_ARGB = 1
73-
integer(C_INT):: color
74-
integer(C_INT):: payloadType=0 ! NVTX_PAYLOAD_UNKNOWN = 0
75-
integer(C_INT):: reserved0
76-
integer(C_INT64_T):: payload ! union uint,int,double
77-
integer(C_INT):: messageType=1 ! NVTX_MESSAGE_TYPE_ASCII = 1
78-
type(C_PTR):: message ! ascii char
79-
end type
80-
81-
interface nvtxRangePush
82-
! push range with custom label and standard color
83-
subroutine nvtxRangePushA(name) bind(C, name='nvtxRangePushA')
84-
use iso_c_binding
85-
character(kind=C_CHAR) :: name(256)
86-
end subroutine
87-
88-
! push range with custom label and custom color
89-
subroutine nvtxRangePushEx(event) bind(C, name='nvtxRangePushEx')
90-
use iso_c_binding
91-
import:: nvtxEventAttributes
92-
type(nvtxEventAttributes):: event
93-
end subroutine
94-
end interface
95-
96-
interface nvtxRangePop
97-
subroutine nvtxRangePop() bind(C, name='nvtxRangePop')
98-
end subroutine
99-
end interface
100-
101-
contains
102-
103-
subroutine nvtxStartRange(name,id)
104-
character(kind=c_char,len=*) :: name
105-
integer, optional:: id
106-
type(nvtxEventAttributes):: event
107-
character(kind=c_char,len=256) :: trimmed_name
108-
integer:: i
109-
110-
trimmed_name=trim(name)//c_null_char
111-
112-
! move scalar trimmed_name into character array tempName
113-
do i=1,LEN(trim(name)) + 1
114-
tempName(i) = trimmed_name(i:i)
115-
enddo
116-
117-
118-
if ( .not. present(id)) then
119-
call nvtxRangePush(tempName)
120-
else
121-
event%color=col(mod(id,7)+1)
122-
event%message=c_loc(tempName)
123-
call nvtxRangePushEx(event)
124-
end if
125-
end subroutine
126-
127-
subroutine nvtxEndRange
128-
call nvtxRangePop
129-
end subroutine
130-
131-
end module nvtx
13262

0 commit comments

Comments
 (0)