@@ -18,7 +18,7 @@ _configure_threadblock(nitems) =
18
18
function Topologies. dss_load_perimeter_data! (
19
19
:: ClimaComms.CUDADevice ,
20
20
dss_buffer:: Topologies.DSSBuffer ,
21
- data:: Union{DataLayouts.IJFH , DataLayouts.VIJFH } ,
21
+ data:: Union{DataLayouts.IJHF , DataLayouts.VIJHF } ,
22
22
perimeter:: Topologies.Perimeter2D ,
23
23
)
24
24
(; perimeter_data) = dss_buffer
37
37
38
38
function dss_load_perimeter_data_kernel! (
39
39
perimeter_data:: DataLayouts.AbstractData ,
40
- data:: Union{DataLayouts.IJFH , DataLayouts.VIJFH } ,
40
+ data:: Union{DataLayouts.IJHF , DataLayouts.VIJHF } ,
41
41
perimeter:: Topologies.Perimeter2D{Nq} ,
42
42
) where {Nq}
43
43
gidx = threadIdx (). x + (blockIdx (). x - Int32 (1 )) * blockDim (). x
44
44
(nperimeter, _, _, nlevels, nelems) = size (perimeter_data)
45
45
nfidx = DataLayouts. ncomponents (perimeter_data)
46
- sizep = (nlevels, nperimeter, nfidx, nelems) # assume VIFH order
46
+ sizep = (nlevels, nperimeter, nfidx, nelems) # assume VIHF order
47
47
CI = CartesianFieldIndex
48
48
49
49
if gidx ≤ prod (sizep)
57
57
58
58
function Topologies. dss_unload_perimeter_data! (
59
59
:: ClimaComms.CUDADevice ,
60
- data:: Union{DataLayouts.IJFH , DataLayouts.VIJFH } ,
60
+ data:: Union{DataLayouts.IJHF , DataLayouts.VIJHF } ,
61
61
dss_buffer:: Topologies.DSSBuffer ,
62
62
perimeter,
63
63
)
@@ -76,14 +76,14 @@ function Topologies.dss_unload_perimeter_data!(
76
76
end
77
77
78
78
function dss_unload_perimeter_data_kernel! (
79
- data:: Union{DataLayouts.IJFH , DataLayouts.VIJFH } ,
79
+ data:: Union{DataLayouts.IJHF , DataLayouts.VIJHF } ,
80
80
perimeter_data:: AbstractData ,
81
81
perimeter:: Topologies.Perimeter2D{Nq} ,
82
82
) where {Nq}
83
83
gidx = threadIdx (). x + (blockIdx (). x - Int32 (1 )) * blockDim (). x
84
84
(nperimeter, _, _, nlevels, nelems) = size (perimeter_data)
85
85
nfidx = DataLayouts. ncomponents (perimeter_data)
86
- sizep = (nlevels, nperimeter, nfidx, nelems) # assume VIFH order
86
+ sizep = (nlevels, nperimeter, nfidx, nelems) # assume VIHF order
87
87
CI = CartesianFieldIndex
88
88
89
89
if gidx ≤ prod (sizep)
97
97
98
98
function Topologies. dss_local! (
99
99
:: ClimaComms.CUDADevice ,
100
- perimeter_data:: DataLayouts.VIFH ,
100
+ perimeter_data:: DataLayouts.VIHF ,
101
101
perimeter:: Topologies.Perimeter2D ,
102
102
topology:: Topologies.Topology2D ,
103
103
)
@@ -127,7 +127,7 @@ function Topologies.dss_local!(
127
127
end
128
128
129
129
function dss_local_kernel! (
130
- perimeter_data:: DataLayouts.VIFH ,
130
+ perimeter_data:: DataLayouts.VIHF ,
131
131
local_vertices:: AbstractVector{Tuple{Int, Int}} ,
132
132
local_vertex_offset:: AbstractVector{Int} ,
133
133
interior_faces:: AbstractVector{Tuple{Int, Int, Int, Int, Bool}} ,
@@ -182,11 +182,11 @@ end
182
182
183
183
function Topologies. dss_transform! (
184
184
device:: ClimaComms.CUDADevice ,
185
- perimeter_data:: DataLayouts.VIFH ,
186
- data:: Union{DataLayouts.VIJFH , DataLayouts.IJFH } ,
185
+ perimeter_data:: DataLayouts.VIHF ,
186
+ data:: Union{DataLayouts.VIJHF , DataLayouts.IJHF } ,
187
187
perimeter:: Topologies.Perimeter2D ,
188
- local_geometry:: Union{DataLayouts.IJFH , DataLayouts.VIJFH } ,
189
- weight:: DataLayouts.IJFH ,
188
+ local_geometry:: Union{DataLayouts.IJHF , DataLayouts.VIJHF } ,
189
+ weight:: DataLayouts.IJHF ,
190
190
localelems:: AbstractVector{Int} ,
191
191
)
192
192
nlocalelems = length (localelems)
@@ -217,11 +217,11 @@ function Topologies.dss_transform!(
217
217
end
218
218
219
219
function dss_transform_kernel! (
220
- perimeter_data:: DataLayouts.VIFH ,
221
- data:: Union{DataLayouts.VIJFH , DataLayouts.IJFH } ,
220
+ perimeter_data:: DataLayouts.VIHF ,
221
+ data:: Union{DataLayouts.VIJHF , DataLayouts.IJHF } ,
222
222
perimeter:: Topologies.Perimeter2D ,
223
- local_geometry:: Union{DataLayouts.IJFH , DataLayouts.VIJFH } ,
224
- weight:: DataLayouts.IJFH ,
223
+ local_geometry:: Union{DataLayouts.IJHF , DataLayouts.VIJHF } ,
224
+ weight:: DataLayouts.IJHF ,
225
225
localelems:: AbstractVector{Int} ,
226
226
:: Val{nlocalelems} ,
227
227
) where {nlocalelems}
248
248
249
249
function Topologies. dss_untransform! (
250
250
device:: ClimaComms.CUDADevice ,
251
- perimeter_data:: DataLayouts.VIFH ,
252
- data:: Union{DataLayouts.VIJFH , DataLayouts.IJFH } ,
253
- local_geometry:: Union{DataLayouts.IJFH , DataLayouts.VIJFH } ,
251
+ perimeter_data:: DataLayouts.VIHF ,
252
+ data:: Union{DataLayouts.VIJHF , DataLayouts.IJHF } ,
253
+ local_geometry:: Union{DataLayouts.IJHF , DataLayouts.VIJHF } ,
254
254
perimeter:: Topologies.Perimeter2D ,
255
255
localelems:: AbstractVector{Int} ,
256
256
)
@@ -280,9 +280,9 @@ function Topologies.dss_untransform!(
280
280
end
281
281
282
282
function dss_untransform_kernel! (
283
- perimeter_data:: DataLayouts.VIFH ,
284
- data:: Union{DataLayouts.VIJFH , DataLayouts.IJFH } ,
285
- local_geometry:: Union{DataLayouts.IJFH , DataLayouts.VIJFH } ,
283
+ perimeter_data:: DataLayouts.VIHF ,
284
+ data:: Union{DataLayouts.VIJHF , DataLayouts.IJHF } ,
285
+ local_geometry:: Union{DataLayouts.IJHF , DataLayouts.VIJHF } ,
286
286
perimeter:: Topologies.Perimeter2D ,
287
287
localelems:: AbstractVector{Int} ,
288
288
:: Val{nlocalelems} ,
309
309
# TODO : Function stubs, code to be implemented, needed only for distributed GPU runs
310
310
function Topologies. dss_local_ghost! (
311
311
:: ClimaComms.CUDADevice ,
312
- perimeter_data:: DataLayouts.VIFH ,
312
+ perimeter_data:: DataLayouts.VIHF ,
313
313
perimeter:: Topologies.Perimeter2D ,
314
314
topology:: Topologies.AbstractTopology ,
315
315
)
@@ -337,7 +337,7 @@ function Topologies.dss_local_ghost!(
337
337
end
338
338
339
339
function dss_local_ghost_kernel! (
340
- perimeter_data:: DataLayouts.VIFH ,
340
+ perimeter_data:: DataLayouts.VIHF ,
341
341
ghost_vertices,
342
342
ghost_vertex_offset,
343
343
perimeter:: Topologies.Perimeter2D ,
474
474
475
475
function Topologies. dss_ghost! (
476
476
:: ClimaComms.CUDADevice ,
477
- perimeter_data:: DataLayouts.VIFH ,
477
+ perimeter_data:: DataLayouts.VIHF ,
478
478
perimeter:: Topologies.Perimeter2D ,
479
479
topology:: Topologies.Topology2D ,
480
480
)
0 commit comments