@@ -1505,13 +1505,14 @@ empty_kernel_stats() = empty_kernel_stats(ClimaComms.device())
1505
1505
# Helpers
1506
1506
# ==================
1507
1507
1508
- get_Nij (:: IJKFVH{S, Nij} ) where {S, Nij} = Nij
1509
- get_Nij (:: IJFH{S, Nij} ) where {S, Nij} = Nij
1510
- get_Nij (:: VIJFH{S, Nv, Nij} ) where {S, Nv, Nij} = Nij
1511
- get_Nij (:: VIFH{S, Nv, Nij} ) where {S, Nv, Nij} = Nij
1512
- get_Nij (:: IFH{S, Nij} ) where {S, Nij} = Nij
1513
- get_Nij (:: IJF{S, Nij} ) where {S, Nij} = Nij
1514
- get_Nij (:: IF{S, Nij} ) where {S, Nij} = Nij
1508
+ # ! format: off
1509
+ @inline get_Nij (:: IJKFVH{S, Nij} ) where {S, Nij} = Nij
1510
+ @inline get_Nij (:: IJFH{S, Nij} ) where {S, Nij} = Nij
1511
+ @inline get_Nij (:: VIJFH{S, Nv, Nij} ) where {S, Nv, Nij} = Nij
1512
+ @inline get_Nij (:: VIFH{S, Nv, Nij} ) where {S, Nv, Nij} = Nij
1513
+ @inline get_Nij (:: IFH{S, Nij} ) where {S, Nij} = Nij
1514
+ @inline get_Nij (:: IJF{S, Nij} ) where {S, Nij} = Nij
1515
+ @inline get_Nij (:: IF{S, Nij} ) where {S, Nij} = Nij
1515
1516
1516
1517
@inline field_dim (:: IJKFVH ) = 4
1517
1518
@inline field_dim (:: IJFH ) = 3
@@ -1523,7 +1524,27 @@ get_Nij(::IF{S, Nij}) where {S, Nij} = Nij
1523
1524
@inline field_dim (:: VIJFH ) = 4
1524
1525
@inline field_dim (:: VIFH ) = 3
1525
1526
1526
- # ! format: off
1527
+ # Returns the size of the backing array.
1528
+ @inline array_size (:: IJKFVH{S, Nij, Nk, Nv, Nh} ) where {S, Nij, Nk, Nv, Nh} = (Nij, Nij, Nk, 1 , Nv, Nh)
1529
+ @inline array_size (:: IJFH{S, Nij, Nh} ) where {S, Nij, Nh} = (Nij, Nij, 1 , Nh)
1530
+ @inline array_size (:: IFH{S, Ni, Nh} ) where {S, Ni, Nh} = (Ni, 1 , Nh)
1531
+ @inline array_size (:: DataF{S} ) where {S} = (1 ,)
1532
+ @inline array_size (:: IJF{S, Nij} ) where {S, Nij} = (Nij, Nij, 1 )
1533
+ @inline array_size (:: IF{S, Ni} ) where {S, Ni} = (Ni, 1 )
1534
+ @inline array_size (:: VF{S, Nv} ) where {S, Nv} = (Nv, 1 )
1535
+ @inline array_size (:: VIJFH{S, Nv, Nij, Nh} ) where {S, Nv, Nij, Nh} = (Nv, Nij, Nij, 1 , Nh)
1536
+ @inline array_size (:: VIFH{S, Nv, Ni, Nh} ) where {S, Nv, Ni, Nh} = (Nv, Ni, 1 , Nh)
1537
+
1538
+ @inline farray_size (data:: IJKFVH{S, Nij, Nk, Nv, Nh} ) where {S, Nij, Nk, Nv, Nh} = (Nij, Nij, Nk, ncomponents (data), Nv, Nh)
1539
+ @inline farray_size (data:: IJFH{S, Nij, Nh} ) where {S, Nij, Nh} = (Nij, Nij, ncomponents (data), Nh)
1540
+ @inline farray_size (data:: IFH{S, Ni, Nh} ) where {S, Ni, Nh} = (Ni, ncomponents (data), Nh)
1541
+ @inline farray_size (data:: DataF{S} ) where {S} = (ncomponents (data),)
1542
+ @inline farray_size (data:: IJF{S, Nij} ) where {S, Nij} = (Nij, Nij, ncomponents (data))
1543
+ @inline farray_size (data:: IF{S, Ni} ) where {S, Ni} = (Ni, ncomponents (data))
1544
+ @inline farray_size (data:: VF{S, Nv} ) where {S, Nv} = (Nv, ncomponents (data))
1545
+ @inline farray_size (data:: VIJFH{S, Nv, Nij, Nh} ) where {S, Nv, Nij, Nh} = (Nv, Nij, Nij, ncomponents (data), Nh)
1546
+ @inline farray_size (data:: VIFH{S, Nv, Ni, Nh} ) where {S, Nv, Ni, Nh} = (Nv, Ni, ncomponents (data), Nh)
1547
+
1527
1548
@inline to_data_specific (:: IJFH , I:: CartesianIndex ) = CartesianIndex (I. I[1 ], I. I[2 ], 1 , I. I[5 ])
1528
1549
@inline to_data_specific (:: IFH , I:: CartesianIndex ) = CartesianIndex (I. I[1 ], 1 , I. I[5 ])
1529
1550
@inline to_data_specific (:: VIJFH , I:: CartesianIndex ) = CartesianIndex (I. I[4 ], I. I[1 ], I. I[2 ], 1 , I. I[5 ])
@@ -1600,10 +1621,12 @@ _device_dispatch(x::AbstractData) = _device_dispatch(parent(x))
1600
1621
_device_dispatch (x:: SArray ) = ToCPU ()
1601
1622
_device_dispatch (x:: MArray ) = ToCPU ()
1602
1623
1624
+ include (" non_extruded_broadcasted.jl" )
1603
1625
include (" copyto.jl" )
1604
1626
include (" fused_copyto.jl" )
1605
1627
include (" fill.jl" )
1606
1628
include (" mapreduce.jl" )
1629
+ include (" has_uniform_datalayouts.jl" )
1607
1630
1608
1631
slab_index (i, j) = CartesianIndex (i, j, 1 , 1 , 1 )
1609
1632
slab_index (i) = CartesianIndex (i, 1 , 1 , 1 , 1 )
0 commit comments