When tracePrimEnabled
in Data.Array.Parallel.Config is True
, DPH programs will print
out what array primitives they're using at runtime. See tracePrim
for details.
- tracePrim :: TracePrim -> a -> a
- data TracePrim
- = TraceReplicate {
- traceCount :: Int
- | TraceRepeat {
- traceCount :: Int
- traceSrcLength :: Int
- | TraceIndex {
- traceIndex :: Int
- traceSrcLength :: Int
- | TraceExtract { }
- | TraceDrop {
- traceCount :: Int
- traceSrcLength :: Int
- | TracePermute { }
- | TraceBPermuteDft { }
- | TraceBPermute { }
- | TraceMBPermute { }
- | TraceUpdate { }
- | TraceAppend { }
- | TraceInterleave { }
- | TracePack { }
- | TraceCombine { }
- | TraceCombine2 { }
- | TraceMap { }
- | TraceFilter { }
- | TraceZipWith { }
- | TraceFold { }
- | TraceFold1 { }
- | TraceAnd { }
- | TraceSum { }
- | TraceScan { }
- | TraceIndexed { }
- | TraceEnumFromTo { }
- | TraceEnumFromThenTo { }
- | TraceEnumFromStepLen { }
- | TraceEnumFromStepLenEach { }
- | TraceMkSel2 { }
- | TraceTagsSel2 { }
- | TraceIndicesSel2 { }
- | TraceElementsSel2_0 { }
- | TraceElementsSel2_1 { }
- | TraceMkSelRep2 { }
- | TraceIndicesSelRep2 { }
- | TraceElementsSelRep2_0 { }
- | TraceElementsSelRep2_1 { }
- | TraceReplicate_s { }
- | TraceReplicate_rs {
- traceCount :: Int
- traceSrcLength :: Int
- | TraceAppend_s { }
- | TraceFold_s { }
- | TraceFold1_s { }
- | TraceFold_r { }
- | TraceSum_r { }
- | TraceIndices_s { }
- = TraceReplicate {
Documentation
tracePrim :: TracePrim -> a -> aSource
Print tracing information to console.
This function is used to wrap the calls to DPH primitives defined
in dph-prim-par
:Data.Array.Parallel.Unlifted
Tracing is only enabled when tracePrimEnabled
in Data.Array.Parallel.Base.Config is True
,
otherwise it's a no-op.
Records information about the use of a primitive operator.
These are the operator names that the vectoriser introduces. The actual implementation of each operator varies depending on what DPH backend we're using. We only trace operators that are at least O(n) in complexity.