MCPcopy Create free account

hub / github.com/UCLA-VAST/AutoSA / functions

Functions546 in github.com/UCLA-VAST/AutoSA

↓ 2 callersFunctiongroup_tagged_writes
Collect the references to all writes in "group". * Each reference is represented by a universe set in a space * * [S[i,j] -> R[]] * * with S[i,j]
gpu.c:2652
↓ 2 callersFunctiongroup_writes
If two groups have overlapping access relations (as determined by * the "overlap" function) and if one of them involves a write, * then merge the tw
gpu_group.c:1058
↓ 2 callersFunctionhas_child_properties
Does "node" satisfy the properties of the inner node in the input * pattern for hybrid tiling? * That is, is it a band node with only coincident mem
hybrid.c:974
↓ 2 callersFunctionhas_parent_properties
Does "node" satisfy the properties of the outer node in the input * pattern for hybrid tiling? * That is, is it a band node with a single member? *
hybrid.c:989
↓ 2 callersFunctionhas_preceding_sync
Is "node" part of a sequence with a previous synchronization statement * for "kernel"? * That is, is the parent of "node" a filter such that there i
gpu_tree.c:392
↓ 2 callersFunctionhas_sync_after_core
Does the subtree rooted at "node" (which is a band node) contain * any synchronization statement for "kernel" that follows * the core computation of
gpu_tree.c:467
↓ 2 callersFunctionhybrid_tile_foreach_phase
Given a branch "node" that contains a sequence node with two phases * of hybrid tiling as input, call "fn" on each of the two phase marker * nodes.
hybrid.c:2165
↓ 2 callersFunctioninsert_phase
Insert a mark node at "node" holding a pointer to "phase". */
hybrid.c:1674
↓ 2 callersFunctioninsert_space_tiling
Insert a band node for performing the space tiling for "phase" at "node". * In particular, insert a band node with partial schedule * * [P[t] -> C[
hybrid.c:1895
↓ 2 callersFunctioninsert_sync_after
Insert (or extend) an extension on top of "node" that puts * a synchronization node for "kernel" afater "node". * Return a pointer to the original n
gpu_tree.c:511
↓ 2 callersFunctionis_candidate
Is "node" a candidate for mapping to block and thread identifiers? * In particular, is it permutable with at least one coincident dimension? * Alter
gpu.c:2598
↓ 2 callersFunctionis_permutable
Can "node" be tiled and then mapped to block and thread identifiers? * That is, is it permutable with at least one coincident dimension? */
gpu.c:2538
↓ 2 callersFunctionis_phase_id
Does "id" contain a pointer to a ppcg_ht_phase? * That is, is it called "phase"? */
hybrid.c:1631
↓ 2 callersFunctionjoin_groups
Combine the given two groups into a single group, containing * the references of both groups. */
gpu_group.c:732
↓ 2 callersFunctionjoin_groups_and_free
Combine the given two groups into a single group and free * the original two groups. */
gpu_group.c:770
↓ 2 callersFunctionmin_max_dist
Given a set of dependence distance vectors "dist", compute * pair of non-negative bounds min and max such that * * d_pos >= -min d_0 * and * d_po
hybrid.c:1259
↓ 2 callersFunctionn_outer_coincidence
Return the number of outer band members of the band node "node" * that are marked coincident. */
gpu.c:2897
↓ 2 callersFunctionnext
Construct a map from domain_space to domain_space that increments * the dimension at position "pos" and leaves all other dimensions * constant. */
gpu_group.c:311
↓ 2 callersFunctionopencl_error_string
Return the OpenCL error string for a given error number. */
ocl_utilities.c:7
↓ 2 callersFunctionopencl_print_escaped
Write text to a file and escape some special characters that would break a * C string. */
opencl.c:119
↓ 2 callersFunctionparametrization
Given a parameter space "space", create a set of dimension "len" * of which the dimensions starting at "first" are equated to * freshly created para
schedule.c:71
↓ 2 callersFunctionppcg_compute_schedule
Compute a schedule on the domain of "sc" that respects the schedule * constraints in "sc". * * "schedule" is a known correct schedule that is used
schedule.c:145
↓ 2 callersFunctionppcg_get_schedule
Obtain a schedule, either by reading it form a file * or by computing it using "compute". * Also take care of saving the computed schedule and/or *
schedule.c:159
↓ 2 callersFunctionppcg_ht_bounds_get_upper
Return the upper bound on the relative dependence distances * in the first space dimension. */
hybrid.c:113
↓ 2 callersFunctionppcg_ht_bounds_is_valid
Can the bounds on relative dependence distances recorded in "bounds" * be used to perform hybrid tiling? * In particular, have appropriate lower and
hybrid.c:171
↓ 2 callersFunctionppcg_ht_bounds_set_lower
Replace the lower bound on the relative dependence distances * in space dimension "pos" by "lower". */
hybrid.c:151
↓ 2 callersFunctionppcg_ht_phase_get_input_space
Return the space of the pair of band nodes that form the input * to the hybrid tiling of which "phase" is a phase. * In particular, return the space
hybrid.c:404
↓ 2 callersFunctionppcg_ht_tiling_compute_phase
Construct a representation for one of the two phase for hybrid tiling * "tiling". If "shift" is not set, then the phase is constructed * directly f
hybrid.c:1582
↓ 2 callersFunctionppcg_ht_tiling_get_input_space
Return the space of the pair of band nodes that form the input * to the hybrid tiling. * In particular, return the space [P -> C], where P is the sp
hybrid.c:263
↓ 2 callersFunctionppcg_kernel_print_copy
Print a copy statement. * * A read copy statement is printed as * * local = global; * * while a write copy statement is printed as * * global
gpu_print.c:167
↓ 2 callersFunctionppcg_multi_val_from_int_list
Construct an isl_multi_val living in "space" with values specified * by "list". "list" is assumed to have at least as many entries * as the set dim
util.c:45
↓ 2 callersFunctionppcg_options_set_target_defaults
Set defaults that depend on the target. * In particular, set --schedule-outer-coincidence iff target is a GPU. */
ppcg_options.c:23
↓ 2 callersFunctionppcg_print_body_macros
Print the required macro definitions for the body of a statement in which * the access expressions are replaced by the isl_ast_expr objects * in "re
print.c:299
↓ 2 callersFunctionppcg_print_declaration_with_size
Print a declaration for an array with element type "base_type" and * size "size" to "p". */
print.c:379
↓ 2 callersFunctionppcg_print_exposed_declarations
Print declarations for the arrays in "scop" that are declared * and exposed to the code after the scop. */
print.c:451
↓ 2 callersFunctionppcg_print_macro
Print a macro definition for "type" to "p". * If GNU extensions are allowed, then print a specialized definition * for isl_ast_op_min and isl_ast_op
print.c:230
↓ 2 callersFunctionppcg_print_macros
Print the required macros for "node". */
print.c:309
↓ 2 callersFunctionppcg_scop_any_hidden_declarations
Does "scop" refer to any arrays that are declared, but not * exposed to the code after the scop? */
ppcg.c:101
↓ 2 callersFunctionppcg_scop_free
ppcg.c:837
↓ 2 callersFunctionppcg_transform
Transform the C source file "input" by rewriting each scop * through a call to "transform". * The transformed C code is written to "out". * * This
ppcg.c:1003
↓ 2 callersFunctionprefix_with_equalities
Return the prefix schedule at "node" as a relation * between domain elements and schedule dimensions after detecting * equalities in this relation.
gpu_group.c:1456
↓ 2 callersFunctionprint_cpu_with_schedule
Generate CPU code for the scop "ps" using "schedule" and * print the corresponding C code to "p", including variable declarations. */
cpu.c:762
↓ 2 callersFunctionprint_declarations
Print declarations for the arrays in "scop" that are declared * and that are exposed (if exposed == 1) or not exposed (if exposed == 0). */
print.c:423
↓ 2 callersFunctionprint_iterators
Print a list of iterators of type "type" with names "ids" to "p". * Each iterator is assigned the corresponding opencl identifier returned * by the
opencl.c:641
↓ 2 callersFunctionprint_iterators
Print a list of iterators of type "type" with names "ids" to "out". * Each iterator is assigned one of the cuda identifiers in cuda_dims. * In parti
cuda.c:366
↓ 2 callersFunctionprint_kernel_arguments
Print the arguments to a kernel declaration or call. If "types" is set, * then print a declaration (including the types of the arguments). * * The
cuda.c:251
↓ 2 callersFunctionprint_kernel_header
Print the header of the given kernel. */
cuda.c:321
↓ 2 callersFunctionprint_ppcg_macro
Print a macro definition "def" for the macro "name" to "p", * unless such a macro definition has been printed to "p" before. * "note_name" is used a
print.c:90
↓ 2 callersFunctionpullback_phase
Pull back "phase" over "ma". * That is, take a phase defined over the range of "ma" and * turn it into a phase defined over the domain of "ma". */
hybrid.c:1429
↓ 2 callersFunctionread_tile_sizes
Extract user specified "tile" sizes from the "sizes" command line option, * defaulting to option->tile_size in each dimension. * *tile_len contains
gpu.c:601
↓ 2 callersFunctionremove_external_flow
Remove those flow dependences from data->may_persist_flow * that flow between elements of "domain" within the same iteration * of all outer band nod
gpu.c:4970
↓ 2 callersFunctionset_array_groups
Set array->n_group and array->groups to n and groups. * * Additionally, set the "nr" field of each group. */
gpu_group.c:1240
↓ 2 callersFunctionstmt_print_global_index
Print an access to the element in the global memory copy * described by "stmt". The index of the copy is recorded in * stmt->index as an access to
gpu_print.c:136
↓ 2 callersFunctionstmt_print_local_index
Print an access to the element in the private/shared memory copy * described by "stmt". The index of the copy is recorded in * stmt->local_index as
gpu_print.c:126
↓ 2 callersFunctiontile_adjust_depth
Adjust the fields of "tile" to reflect the new input dimension "depth". * The dimension beyond "depth" are assumed not to affect the tile, * so they
gpu_group.c:574
↓ 2 callersFunctionunroll
Mark the given band node "node" for unrolling by the AST generator and * then sink it to the leaves of the schedule tree. * All dimensions of "node"
gpu.c:3143
↓ 2 callersFunctionwide_enough
Does * * s0 > delta + 2 * {delta * h} - 1 * * hold? */
hybrid.c:1945
↓ 2 callersFunctionwrapped_reference_to_access
Given a set of wrapped references "ref", return the corresponding * access relations based on the tagged access relations "tagged". * * The element
gpu.c:2167
↓ 1 callersFunctionaccess_is_coalesced
Check if the given access is coalesced (or if there is no point * in trying to coalesce the access by mapping the array to shared memory). * That is
gpu_group.c:342
↓ 1 callersFunctionaccesses_fixed_element
Does "expr" access a single, fixed element (independently of the statement * instance)? * That is, does it have a completely specified constant inde
gpu.c:5448
↓ 1 callersFunctionadd_bounded_parameters
Add parameters p[i] with identifiers "ids" to "set", * with bounds to 0 <= p[i] < size[i]. */
gpu.c:724
↓ 1 callersFunctionadd_copies
For each array reference group that is mapped to private or shared memory, * add copy statements to the schedule tree of "node" * for reading from g
gpu.c:3625
↓ 1 callersFunctionadd_copies_group_private
Add copy statements to the schedule tree of "node" * for reading from global memory to private memory (if "read" is set) or * for writing back from
gpu.c:3341
↓ 1 callersFunctionadd_copies_group_shared
Add copy statements to the schedule tree of "node" * for reading from global memory to shared memory (if "read" is set) or * for writing back from s
gpu.c:3495
↓ 1 callersFunctionadd_groups
Extend "grouping" with groups corresponding to merged * leaves in the list of potentially merged leaves "leaves". * * The "list" field of each elem
grouping.c:515
↓ 1 callersFunctionadd_init_clear_device
Add nodes for initializing ("init_device") and clearing ("clear_device") * the device before and after "node". */
gpu.c:5252
↓ 1 callersFunctionadd_next_filters
Given a filter node "node", collect the filters on all following siblings * (which are also filter nodes), add them to "filters" and return the resul
gpu.c:4944
↓ 1 callersFunctionadd_params
Add parameters with identifiers "ids" to "set". */
schedule.c:24
↓ 1 callersFunctionadd_previous_filters
Given a filter node "node", collect the filters on all preceding siblings * (which are also filter nodes), add them to "filters" and return the resul
gpu.c:4921
↓ 1 callersFunctionadd_sync
Insert a synchronization node in the schedule tree of "node" * after the core computation of "kernel" at the level of the band * that is mapped to t
gpu.c:3170
↓ 1 callersFunctionadd_to_from_device
Add nodes for copying outer arrays in and out of the device * before and after the subtree "node", which contains one or more kernels. * "domain" co
gpu.c:5180
↓ 1 callersFunctionall_coincident
Are all members of the band node "node" coincident? */
hybrid.c:953
↓ 1 callersFunctionallocate_ast_node_userinfo
Allocate an ast_node_info structure and initialize it with default values. */
cpu.c:208
↓ 1 callersFunctionallocate_device_array
Allocate a device array for "array'. * * Emit a max-expression to ensure the device array can contain at least one * element if the array's positiv
opencl.c:260
↓ 1 callersFunctionallocate_device_arrays
cuda.c:90
↓ 1 callersFunctionalready_printed
Was the definition of "type" printed before? * That is, does its name appear in the list of printed types "types"? */
gpu_print.c:261
↓ 1 callersFunctionany_double_elements
Return true if there is a double array in prog->array or * if any of the types in prog->scop involve any doubles. * To check the latter condition, w
opencl.c:848
↓ 1 callersFunctionany_global_or_shared_sync_writes
Are there any direct writes to global memory that require * synchronization? */
gpu.c:2743
↓ 1 callersFunctionany_sync_writes_in_group
Is there any write access in "group" that requires synchronization * on a write to global memory? * We currently take into account all writes that w
gpu.c:2684
↓ 1 callersFunctionapproximate_copy_out
Replace any reference to an array element in the range of "copy" * by a reference to all array elements (defined by the extent of the array). */
gpu.c:4308
↓ 1 callersFunctionarray_extent
Return the extent of "array", recomputed from the bounds. * The recomputed extent may be simpler than the original extent. */
gpu.c:820
↓ 1 callersFunctionast_schedule_dim_is_parallel
Check if the current scheduling dimension is parallel. * * We check for parallelism by verifying that the loop does not carry any * dependences. *
cpu.c:142
↓ 1 callersFunctionatomic
Mark all dimensions in the current band node atomic. */
gpu.c:3650
↓ 1 callersFunctionatomic_ancestors
Mark "node" atomic, if it is a band node. * Do the same for all ancestors. * Return a pointer to "node" (in the updated schedule tree). */
gpu.c:3659
↓ 1 callersFunctionband_set_coincident
For each member in the band node "node", determine whether * it is coincident with respect to the outer nodes and mark * it accordingly. * * That
gpu.c:4502
↓ 1 callersFunctionband_set_permutable
If the band node "node" has exactly one member then mark it permutable. */
gpu.c:4444
↓ 1 callersFunctionbuild_array_bounds
Build AST expressions for the device array sizes of all arrays in "prog" * that require allocation on the device using "build", as well as * for the
gpu.c:2031
↓ 1 callersFunctionbuild_grid_and_local_array_sizes
Build access AST expressions for the effective grid size and * the localized array sizes using "build". */
gpu.c:2400
↓ 1 callersFunctionbuild_grid_size
Build an access AST expression for the effective grid size using "build". * Store the result in kernel->grid_size_expr. */
gpu.c:2359
↓ 1 callersFunctionbuild_local_array_sizes
Build access AST expressions for the localized array sizes using "build". * Store the result in local->bound_expr. * Only do this for arrays for whi
gpu.c:2377
↓ 1 callersFunctioncheck_can_be_private_live_ranges
For each array in the input program that can be mapped to private memory, * check if there are any order dependences active inside the current kernel
gpu_group.c:1342
↓ 1 callersFunctioncheck_options
Check consistency of options. * * Return -1 on error. */
ppcg.c:1016
↓ 1 callersFunctioncheck_requires_unroll
Given an access relation in terms of the data->thread_depth initial * dimensions of the computed schedule and the thread identifiers * (as parameter
gpu_group.c:821
↓ 1 callersFunctioncheck_shared_memory_bound
If max_shared_memory is not set to infinity (-1), then make * sure that the total amount of shared memory required by the * array reference groups m
gpu.c:952
↓ 1 callersFunctioncheck_width
Check that the tile will be wide enough in the first space * dimension, i.e., the base of the hexagon. This ensures that * neighboring hexagons in
hybrid.c:2027
↓ 1 callersFunctionchemv
chemv - complex hermitian matrix-vector multiplication * The function body was taken from a VOBLA-generated BLAS library. */
examples/chemv.c:19
↓ 1 callersFunctionclear_build_info
Clear all memory allocated by "build_info". */
cpu.c:533
↓ 1 callersFunctionclear_device
Print code for clearing the device after execution of the transformed code. * In particular, free the memory that was allocated on the device. */
opencl.c:1075
↓ 1 callersFunctionclear_device
Print code for clearing the device after execution of the transformed code. * In particular, free the memory that was allocated on the device. */
cuda.c:528
↓ 1 callersFunctioncollect_array_info
Construct a gpu_array_info for each array referenced by prog->scop and * collect them in prog->array. * * The sizes are based on the extents and th
gpu.c:336
← previousnext →101–200 of 546, ranked by callers