def _specialize_iet(cls, graph, **kwargs): options = kwargs['options'] platform = kwargs['platform'] # Flush denormal numbers avoid_denormals(graph) # Distributed-memory parallelism optimize_halospots(graph) if options['mpi']: mpiize(graph, mode=options['mpi']) # Lower IncrDimensions so that blocks of arbitrary shape may be used relax_incr_dimensions(graph, counter=generator()) # SIMD-level parallelism ompizer = Ompizer() ompizer.make_simd(graph, simd_reg_size=platform.simd_reg_size) # Shared-memory parallelism ompizer.make_parallel(graph) # Misc optimizations hoist_prodders(graph) # Symbol definitions data_manager = DataManager() data_manager.place_definitions(graph) data_manager.place_casts(graph) return graph
def _specialize_iet(cls, graph, **kwargs): options = kwargs['options'] platform = kwargs['platform'] # Flush denormal numbers avoid_denormals(graph) # Distributed-memory parallelism optimize_halospots(graph) if options['mpi']: mpiize(graph, mode=options['mpi']) # Tiling blocker = Blocker(options['blockinner'], options['blocklevels'] or cls.BLOCK_LEVELS) blocker.make_blocking(graph) # Shared-memory and SIMD-level parallelism ompizer = Ompizer() ompizer.make_simd(graph, simd_reg_size=platform.simd_reg_size) if options['openmp']: ompizer.make_parallel(graph) # Misc optimizations hoist_prodders(graph) # Symbol definitions data_manager = DataManager() data_manager.place_definitions(graph) data_manager.place_casts(graph) return graph
def _specialize_iet(cls, graph, **kwargs): options = kwargs['options'] platform = kwargs['platform'] sregistry = kwargs['sregistry'] # Distributed-memory parallelism optimize_halospots(graph) if options['mpi']: mpiize(graph, mode=options['mpi']) # Lower IncrDimensions so that blocks of arbitrary shape may be used relax_incr_dimensions(graph, sregistry=sregistry) # SIMD-level parallelism ompizer = Ompizer(sregistry, options) ompizer.make_simd(graph, simd_reg_size=platform.simd_reg_size) # Shared-memory parallelism ompizer.make_parallel(graph) # Misc optimizations hoist_prodders(graph) # Symbol definitions DataManager(sregistry).process(graph) return graph
def _specialize_iet(cls, graph, **kwargs): options = kwargs['options'] sregistry = kwargs['sregistry'] # Distributed-memory parallelism if options['mpi']: mpiize(graph, mode=options['mpi']) # Shared-memory parallelism if options['openmp']: ompizer = Ompizer(sregistry, options) ompizer.make_parallel(graph) # Symbol definitions DataManager(sregistry).process(graph) return graph
def _specialize_iet(cls, graph, **kwargs): options = kwargs['options'] # Distributed-memory parallelism if options['mpi']: mpiize(graph, mode=options['mpi']) # Shared-memory parallelism if options['openmp']: ompizer = Ompizer() ompizer.make_parallel(graph) # Symbol definitions data_manager = DataManager() data_manager.place_definitions(graph) data_manager.place_casts(graph) return graph