def METHOD_NAME():
    @dace.program
    def add(a: dace.float32[10, 10] @ dace.StorageType.GPU_Global,
            b: dace.float32[10, 10] @ dace.StorageType.GPU_Global):
        for i in dace.map[0:10] @ dace.ScheduleType.GPU_Device:
            shared = dace.define_local([10], dace.float32)
            for j in dace.map[0:10]:  # Should be inferred as thread-block
                b[i, j] = a[i, j] + shared[j]
    sdfg = add.to_sdfg()
    set_default_schedule_and_storage_types(sdfg, None)
    for node, state in sdfg.all_nodes_recursive():
        if isinstance(node, dace.nodes.MapEntry):
            if get_parent_map(state, node) is None:
                assert node.schedule == dace.ScheduleType.GPU_Device
            else:
                assert node.schedule == dace.ScheduleType.GPU_ThreadBlock