@@ -1438,6 +1438,13 @@ eval(:(
14381438 end ;
14391439 @static if $ package != $ PKG_KERNELABSTRACTIONS
14401440 @testset " memopt" begin
1441+ fullrange = typemin (Int64): typemax (Int64)
1442+ tie_offsets = Dict (:B => Dict ((0 , 0 ) => Dict (0 => 1 ), (1 , 1 ) => Dict (0 => 1 ), (1 , 2 ) => Dict (0 => 1 )))
1443+ tied_optranges = ParallelStencil. define_optranges (nothing , (:B ,), tie_offsets, Int64, ParallelStencil. PKG_THREADS)
1444+ @test tied_optranges[:B ] == (1 : 1 , 1 : 1 , fullrange)
1445+ symmetric_tie_offsets = Dict (:B => Dict ((0 , 0 ) => Dict (0 => 1 ), (0 , 2 ) => Dict (0 => 1 ), (2 , 0 ) => Dict (0 => 1 ), (2 , 2 ) => Dict (0 => 1 )))
1446+ symmetric_tie_optranges = ParallelStencil. define_optranges (nothing , (:B ,), symmetric_tie_offsets, Int64, ParallelStencil. PKG_THREADS)
1447+ @test symmetric_tie_optranges[:B ] == (0 : 0 , 0 : 0 , fullrange)
14411448 @parallel_indices (ix, iy, iz) memopt= true loopsize= 3 optvars= B optranges= (B= (0 : 0 ,0 : 0 ,0 : 0 ),) function metadata_memopt_probe! (A, B, D)
14421449 A[ix, iy, iz] = 2.0 * B[ix, iy, iz]
14431450 return
@@ -1478,24 +1485,17 @@ eval(:(
14781485 @test metadata_z. shmem_spans == (B = (0 , 0 ),)
14791486 @test metadata_z. stencilranges == (B = (0 : 0 , 0 : 0 , - 1 : 1 ),)
14801487 @test metadata_z. use_any_shmem == false
1481- @parallel_indices (ix, iy, iz) memopt= true loopsize= 3 optvars= B function metadata_memopt_fullstencil_probe! (A, B, D)
1488+ @parallel_indices (ix, iy, iz) memopt= true loopsize= 3 optvars= B optranges = (B = ( typemin (Int64) : typemax (Int64), typemin (Int64) : typemax (Int64), typemin (Int64) : typemax (Int64)),) function metadata_memopt_fullstencil_probe! (A, B, D)
14821489 A[ix, iy, iz] = B[ix- 1 , iy- 1 , iz- 1 ] + B[ix, iy, iz] + B[ix+ 1 , iy+ 1 , iz+ 1 ] + D[ix, iy, iz, 1 ]
14831490 return
14841491 end
14851492 metadata_full = @metadata metadata_memopt_fullstencil_probe! (A, B, D)
1486- @static if @isgpu ($ package)
1487- @test metadata_full. shmem_optvars == (:B ,)
1488- @test metadata_full. shmem_optvars isa NTuple{1 ,Symbol}
1489- @test metadata_full. shmem_spans == (B = (2 , 2 ),)
1490- @test metadata_full. stencilranges == (B = (- 1 : 1 , - 1 : 1 , - 1 : 1 ),)
1491- @test metadata_full. use_any_shmem == true
1492- else
1493- @test metadata_full. shmem_optvars == ()
1494- @test metadata_full. shmem_optvars isa NTuple{0 ,Symbol}
1495- @test metadata_full. shmem_spans == (B = (0 , 0 ),)
1496- @test metadata_full. stencilranges == (B = (0 : 0 , 0 : 0 , 0 : 0 ),)
1497- @test metadata_full. use_any_shmem == false
1498- end
1493+ @test metadata_full. optranges[:B ] == (fullrange, fullrange, fullrange)
1494+ @test metadata_full. shmem_optvars == (:B ,)
1495+ @test metadata_full. shmem_optvars isa NTuple{1 ,Symbol}
1496+ @test metadata_full. shmem_spans == (B = (2 , 2 ),)
1497+ @test metadata_full. stencilranges == (B = (- 1 : 1 , - 1 : 1 , - 1 : 1 ),)
1498+ @test metadata_full. use_any_shmem == true
14991499 @parallel_indices (ix, iy) ndims= 2 memopt= true loopdim= 2 loopsize= 5 optvars= B optranges= (B= (0 : 0 ,- 1 : 1 ,0 : 0 ),) function metadata_memopt_2d_probe! (A, B)
15001500 if (1 < iy < size (A, 2 ))
15011501 A[ix, iy] = B[ix, iy - 1 ] + B[ix, iy] + B[ix, iy + 1 ]
0 commit comments