def block_local(*args): if ti.current_cfg().dynamic_index: raise InvalidOperationError( 'dynamic_index is not allowed when block_local is turned on.') for a in args: for v in a.get_field_members(): _ti_core.insert_snode_access_flag( _ti_core.SNodeAccessFlag.block_local, v.ptr)
def block_local(*args): """Hints Taichi to cache the fields and to enable the BLS optimization. Please visit https://docs.taichi.graphics/lang/articles/advanced/performance for how BLS is used. Args: *args (List[Field]): A list of sparse Taichi fields. """ for a in args: for v in a.get_field_members(): _ti_core.insert_snode_access_flag( _ti_core.SNodeAccessFlag.block_local, v.ptr)
def block_local(*args): """Hints Taichi to cache the fields and to enable the BLS optimization. Please visit https://docs.taichi.graphics/lang/articles/advanced/performance for how BLS is used. Args: *args (List[Field]): A list of sparse Taichi fields. """ if impl.current_cfg().opt_level == 0: ti.warn("""opt_level = 1 is enforced to enable bls analysis.""") impl.current_cfg().opt_level = 1 for a in args: for v in a.get_field_members(): _ti_core.insert_snode_access_flag( _ti_core.SNodeAccessFlag.block_local, v.ptr)
def cache_read_only(*args): for a in args: for v in a.get_field_members(): _ti_core.insert_snode_access_flag( _ti_core.SNodeAccessFlag.read_only, v.ptr)
def block_local(*args): for a in args: for v in a.get_field_members(): _ti_core.insert_snode_access_flag( _ti_core.SNodeAccessFlag.block_local, v.ptr)