![]() name # c_name # arg_dtypes #Ī tuple of result dtypes class degen. This is used to track functions that emerge late during code generation,Į.g. SeenFunction ( name, c_name, arg_dtypes, result_dtypes ) # VectorizationInfo ( iname, length, space ) # iname # length # space # class degen. PreambleInfo ( * args, ** kwargs ) # kernel # seen_dtypes # seen_functions # seen_atomic_dtypes # codegen_state # class degen. allows_offset # is_written # class degen. Name of the array and axis number for which this argument provides Manner offset_for_name # stride_for_name_and_axis #Ī tuple (name, axis) indicating the (implementation-facing) Strides in multiples of emsize that accounts for The user-facing name of the underlying array. Implemented arrays may correspond to one user-facing In the case of separate-array-tagged axes, multiple ImplementedDataInfo ( target, name, dtype, arg_class, base_name = None, shape = None, strides = None, unvec_shape = None, unvec_strides = None, offset_for_name = None, stride_for_name_and_axis = None, allows_offset = None, is_written = None ) # name # ![]() AtomicNumpyType ( dtype, target = None ) #Ī dtype wrapper that indicates that the described type should be capable On which atomic operations are performed. AtomicType #Ībstract class for dtypes of variables encountered in a loopy.LoopKernel NumpyType ( dtype, target = None ) # class loopy.types. LoopyType #Ībstract class for dtypes of variables encountered in a The codegen pipeline user-provided types are converted to ![]() Types #ĭTypes of variables in a loopy.LoopKernel must be picklable, so in Expression Manipulation Helpers # loopy.symbolic. Returns True iff the sub-array refs have identical expressions. swept_inames #Īn instance of tuple denoting the axes to which the sub arrayĪn instance of denoting theĪrray in the kernel. Sub-arary) as consecutive elements of the sweeping axes which are defined SubArrayRef ( swept_inames, subscript ) #Īn algebraic expression to map an affine memory layout pattern (known as ResolvedFunction ( function ) #Ī function identifier whose definition is known in a loopy program.Ī function is said to be known in a TranslationUnit if its Subclasses of this must be careful to not touch identifiers thatĪre in ExpansionState.arg_context. Note: the third argument dragged around by this mapper is the RuleAwareIdentityMapper ( rule_mapping_context ) # ExpansionState ( * args, ** kwargs ) # kernel # instruction # stack #Ī tuple representing the current expansion stack, as a tupleĪ dict representing current argument values class loopy.symbolic. Only used internally in the rule-aware mappers to match subst rules Represents a (numbered) argument of a loopy.SubstitutionRule. Represents a linear index into a multi-dimensional array, completely In precisely one reduction, to avoid mis-nesting errors. If not True, an iname is allowed to be used * a function call or substitution rule invocation. operation # an instance of :class:`` inames #Ī list of inames across which reduction on expr is beingĪn expression which may have tuple type. Represents a reduction operation on expr across inames. Reduction ( operation, inames, expr, allow_simultaneous = False ) # LegacyStringInstructionTag or, if they used to carryĪ functional meaning, the tag carrying that same fucntional meaning May then be used to address these uses–such as by prefetching onlyĪ frozenset of subclasses of used to ‘one’ identifies this specific use of the identifier. This is an identifier with tags, such as matrix$one, where Only defined for numerical types with semantics matching TypedCSE ( child, prefix = None, dtype = None ) #Ī annotated withĪ numpy.dtype. FunctionIdentifier #Ī base class for symbols representing functions. Not for use in Loopy source representation. You can also choose to follow a loop hashtag if you're interested in the particular topic, you don't have to join in to follow. (and Some of these got so large, multiple chat groups were set up with many taking part and we can all link up even further through the loop hashtag to comment on all the posts. I've become involved in various loops in different ways, sometimes being invited to take part by friends in the loop, sometimes asking to become part of one I've seen and wanted to join (there are limits to the numbers allowed in group chats on Instagram though so don't be disheartened if they say there's no room), sometimes I've created my own and posted in a Facebook group to ask others to join or even just directly choosing those I wanted to loop with and I've also spotted loops being started in groups and added my handle to the list to be included. This mutual commenting at the same time is also a nice way to connect with your fellow loopers! I've made some wonderful friends and found a real sense of community through my loops.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |