From 188b5e68c5246293ae77cc1448dec69be484c9fd Mon Sep 17 00:00:00 2001 From: ccsuzzh <1719571694@qq.com> Date: Wed, 21 Jan 2026 11:06:01 +0800 Subject: [PATCH] update dsp operator lib docs --- master/doctrees/environment.pickle | Bin 2081329 -> 9821908 bytes .../doctrees/functionlib/dsplib/abs.doctree | Bin 0 -> 58056 bytes .../functionlib/dsplib/absgrad.doctree | Bin 0 -> 23911 bytes .../functionlib/dsplib/activation.doctree | Bin 376734 -> 375859 bytes .../dsplib/activation_grad.doctree | Bin 0 -> 108338 bytes .../doctrees/functionlib/dsplib/adam.doctree | Bin 0 -> 34082 bytes .../dsplib/adamweightdecay.doctree | Bin 43369 -> 43379 bytes .../functionlib/dsplib/addfusion.doctree | Bin 0 -> 200888 bytes .../functionlib/dsplib/addgrad.doctree | Bin 0 -> 31625 bytes .../doctrees/functionlib/dsplib/addn.doctree | Bin 0 -> 63948 bytes .../functionlib/dsplib/affine.doctree | Bin 0 -> 56128 bytes .../doctrees/functionlib/dsplib/all.doctree | Bin 0 -> 73043 bytes .../functionlib/dsplib/allgather.doctree | Bin 0 -> 71278 bytes .../functionlib/dsplib/applymomentum.doctree | Bin 36103 -> 36113 bytes .../functionlib/dsplib/argmax.doctree | Bin 0 -> 49303 bytes .../functionlib/dsplib/argmin.doctree | Bin 0 -> 48921 bytes .../functionlib/dsplib/assign.doctree | Bin 0 -> 57682 bytes .../functionlib/dsplib/assignadd.doctree | Bin 0 -> 59640 bytes .../dsplib/audio_spectrogram.doctree | Bin 0 -> 22197 bytes .../functionlib/dsplib/avgpooling.doctree | Bin 0 -> 70099 bytes .../functionlib/dsplib/avgpoolinggrad.doctree | Bin 50220 -> 50242 bytes .../functionlib/dsplib/batchnorm.doctree | Bin 0 -> 44735 bytes .../functionlib/dsplib/batchnormgrad.doctree | Bin 0 -> 46529 bytes .../functionlib/dsplib/biasadd.doctree | Bin 0 -> 95131 bytes .../functionlib/dsplib/biasaddgrad.doctree | Bin 0 -> 25808 bytes .../dsplib/binarycrossentropy.doctree | Bin 0 -> 52783 bytes .../dsplib/binarycrossentropygrad.doctree | Bin 0 -> 38119 bytes .../doctrees/functionlib/dsplib/cast.doctree | Bin 0 -> 135758 bytes .../doctrees/functionlib/dsplib/ceil.doctree | Bin 0 -> 26986 bytes .../doctrees/functionlib/dsplib/clip.doctree | Bin 0 -> 59173 bytes .../functionlib/dsplib/concat.doctree | Bin 0 -> 89253 bytes .../dsplib/constant_of_shape.doctree | Bin 0 -> 62406 bytes .../functionlib/dsplib/conv2d.doctree | Bin 57725 -> 57737 bytes .../doctrees/functionlib/dsplib/cos.doctree | Bin 0 -> 45069 bytes .../functionlib/dsplib/cumsum.doctree | Bin 0 -> 85171 bytes .../dsplib/customextractfeatures.doctree | Bin 0 -> 76825 bytes .../dsplib/customnormalize.doctree | Bin 0 -> 24698 bytes .../functionlib/dsplib/custompredict.doctree | Bin 0 -> 21479 bytes .../dsplib/deconvgradfilter.doctree | Bin 0 -> 32771 bytes .../dsplib/detection_post_process.doctree | Bin 0 -> 62613 bytes .../functionlib/dsplib/div_fusion.doctree | Bin 0 -> 69173 bytes .../functionlib/dsplib/divgrad.doctree | Bin 0 -> 158325 bytes .../functionlib/dsplib/dropout.doctree | Bin 0 -> 27123 bytes .../functionlib/dsplib/dropoutgrad.doctree | Bin 0 -> 27622 bytes .../functionlib/dsplib/dsplib_index.doctree | Bin 4595 -> 11481 bytes .../functionlib/dsplib/dynamicquant.doctree | Bin 0 -> 44556 bytes .../functionlib/dsplib/eltwise.doctree | Bin 75267 -> 75279 bytes .../doctrees/functionlib/dsplib/elu.doctree | Bin 0 -> 31559 bytes .../dsplib/embeddinglookup.doctree | Bin 31482 -> 31500 bytes .../doctrees/functionlib/dsplib/erf.doctree | Bin 0 -> 27251 bytes .../functionlib/dsplib/expfusion.doctree | Bin 80179 -> 79179 bytes .../fake_quant_with_min_max_vars.doctree | Bin 0 -> 35466 bytes ...uant_with_min_max_vars_per_channel.doctree | Bin 0 -> 39678 bytes .../functionlib/dsplib/fftimag.doctree | Bin 0 -> 34946 bytes .../functionlib/dsplib/fftreal.doctree | Bin 0 -> 34946 bytes .../doctrees/functionlib/dsplib/fill.doctree | Bin 0 -> 65310 bytes .../functionlib/dsplib/flatten.doctree | Bin 0 -> 19320 bytes .../functionlib/dsplib/flattengrad.doctree | Bin 0 -> 25457 bytes .../functionlib/dsplib/floormod.doctree | Bin 0 -> 31472 bytes .../dsplib/formattranspose.doctree | Bin 0 -> 87043 bytes .../functionlib/dsplib/fullconnection.doctree | Bin 0 -> 46037 bytes .../functionlib/dsplib/fusedbatchnorm.doctree | Bin 44499 -> 44507 bytes .../functionlib/dsplib/gather.doctree | Bin 0 -> 109168 bytes .../functionlib/dsplib/gather_nd.doctree | Bin 0 -> 94916 bytes .../functionlib/dsplib/gatherd.doctree | Bin 0 -> 85423 bytes .../doctrees/functionlib/dsplib/glu.doctree | Bin 0 -> 56030 bytes .../functionlib/dsplib/greater.doctree | Bin 0 -> 63032 bytes .../functionlib/dsplib/greaterequal.doctree | Bin 0 -> 63553 bytes .../dsplib/groupnormfusion.doctree | Bin 47983 -> 47993 bytes .../dsplib/hashtablelookup.doctree | Bin 0 -> 27104 bytes .../functionlib/dsplib/instancenorm.doctree | Bin 0 -> 38089 bytes .../dsplib/invertpermutation.doctree | Bin 0 -> 29143 bytes .../functionlib/dsplib/isfinite.doctree | Bin 0 -> 55865 bytes .../functionlib/dsplib/l2norm.doctree | Bin 0 -> 29566 bytes .../dsplib/layernormfusion.doctree | Bin 0 -> 61234 bytes .../functionlib/dsplib/layernormgrad.doctree | Bin 0 -> 46980 bytes .../doctrees/functionlib/dsplib/less.doctree | Bin 0 -> 65117 bytes .../functionlib/dsplib/lessequal.doctree | Bin 0 -> 65666 bytes .../functionlib/dsplib/linspace.doctree | Bin 16206 -> 16206 bytes .../doctrees/functionlib/dsplib/log.doctree | Bin 0 -> 33639 bytes .../doctrees/functionlib/dsplib/log1p.doctree | Bin 0 -> 44847 bytes .../functionlib/dsplib/loggrad.doctree | Bin 0 -> 26599 bytes .../functionlib/dsplib/logical_not.doctree | Bin 0 -> 47852 bytes .../functionlib/dsplib/logical_or.doctree | Bin 0 -> 56151 bytes .../functionlib/dsplib/logicaland.doctree | Bin 0 -> 55764 bytes .../functionlib/dsplib/logsoftmax.doctree | Bin 0 -> 44327 bytes .../dsplib/lpnormalization.doctree | Bin 0 -> 40371 bytes .../doctrees/functionlib/dsplib/lrn.doctree | Bin 0 -> 32783 bytes .../functionlib/dsplib/lsh_projection.doctree | Bin 0 -> 88096 bytes .../doctrees/functionlib/dsplib/lstm.doctree | Bin 46755 -> 66542 bytes .../functionlib/dsplib/lstmgrad.doctree | Bin 0 -> 23693 bytes .../functionlib/dsplib/lstmgraddata.doctree | Bin 0 -> 23853 bytes .../functionlib/dsplib/lstmgradweight.doctree | Bin 0 -> 23949 bytes .../functionlib/dsplib/maximum.doctree | Bin 0 -> 55131 bytes .../functionlib/dsplib/maximumgrad.doctree | Bin 0 -> 36254 bytes .../functionlib/dsplib/maxpoolfusion.doctree | Bin 0 -> 41375 bytes .../functionlib/dsplib/maxpoolgrad.doctree | Bin 0 -> 46634 bytes .../doctrees/functionlib/dsplib/mfcc.doctree | Bin 0 -> 44222 bytes .../functionlib/dsplib/minimum.doctree | Bin 0 -> 55181 bytes .../functionlib/dsplib/minimumgrad.doctree | Bin 0 -> 36254 bytes .../doctrees/functionlib/dsplib/mod.doctree | Bin 0 -> 55685 bytes .../doctrees/functionlib/dsplib/mul.doctree | Bin 0 -> 68534 bytes .../functionlib/dsplib/mulgrad.doctree | Bin 0 -> 150252 bytes .../doctrees/functionlib/dsplib/neg.doctree | Bin 0 -> 56525 bytes .../functionlib/dsplib/neg_grad.doctree | Bin 0 -> 57183 bytes .../functionlib/dsplib/nllloss.doctree | Bin 0 -> 57791 bytes .../functionlib/dsplib/nlllossgrad.doctree | Bin 0 -> 45927 bytes .../dsplib/non_max_suppression.doctree | Bin 0 -> 30516 bytes .../functionlib/dsplib/nonzero.doctree | Bin 0 -> 85496 bytes .../functionlib/dsplib/not_equal.doctree | Bin 0 -> 65883 bytes .../functionlib/dsplib/onehot.doctree | Bin 0 -> 102458 bytes .../functionlib/dsplib/ones_like.doctree | Bin 0 -> 49310 bytes .../functionlib/dsplib/padfusion.doctree | Bin 0 -> 61139 bytes .../functionlib/dsplib/pow_fusion.doctree | Bin 0 -> 73872 bytes .../functionlib/dsplib/power_grad.doctree | Bin 0 -> 31217 bytes .../functionlib/dsplib/prelufusion.doctree | Bin 0 -> 33981 bytes .../functionlib/dsplib/priorbox.doctree | Bin 0 -> 49546 bytes .../functionlib/dsplib/quantdtypecast.doctree | Bin 0 -> 48873 bytes .../functionlib/dsplib/random_normal.doctree | Bin 0 -> 26638 bytes .../dsplib/random_standard_normal.doctree | Bin 0 -> 22724 bytes .../doctrees/functionlib/dsplib/range.doctree | Bin 44141 -> 44141 bytes .../doctrees/functionlib/dsplib/rank.doctree | Bin 0 -> 14811 bytes .../functionlib/dsplib/real_div.doctree | Bin 0 -> 68065 bytes .../functionlib/dsplib/reciprocal.doctree | Bin 0 -> 56760 bytes .../functionlib/dsplib/reducescatter.doctree | Bin 0 -> 53900 bytes .../functionlib/dsplib/reshape.doctree | Bin 0 -> 57900 bytes .../functionlib/dsplib/resizegrad.doctree | Bin 0 -> 78503 bytes .../doctrees/functionlib/dsplib/rfft.doctree | Bin 0 -> 57807 bytes .../functionlib/dsplib/roipooling.doctree | Bin 0 -> 60257 bytes .../doctrees/functionlib/dsplib/round.doctree | Bin 0 -> 28374 bytes .../doctrees/functionlib/dsplib/rsqrt.doctree | Bin 0 -> 56098 bytes .../functionlib/dsplib/rsqrtgrad.doctree | Bin 0 -> 26359 bytes .../functionlib/dsplib/scatter_nd.doctree | Bin 0 -> 94602 bytes .../dsplib/scatter_nd_update.doctree | Bin 0 -> 95359 bytes .../functionlib/dsplib/select.doctree | Bin 0 -> 169333 bytes .../doctrees/functionlib/dsplib/sgd.doctree | Bin 40512 -> 40538 bytes .../doctrees/functionlib/dsplib/shape.doctree | Bin 0 -> 20393 bytes .../sigmoidcrossentropwithlogitsgrad.doctree | Bin 0 -> 28691 bytes .../sigmoidcrossentropywithlogits.doctree | Bin 0 -> 36319 bytes .../doctrees/functionlib/dsplib/sin.doctree | Bin 0 -> 44734 bytes .../doctrees/functionlib/dsplib/size.doctree | Bin 0 -> 17146 bytes .../functionlib/dsplib/skipgram.doctree | Bin 0 -> 38202 bytes .../doctrees/functionlib/dsplib/slice.doctree | Bin 0 -> 84015 bytes .../functionlib/dsplib/smooth1loss.doctree | Bin 0 -> 36595 bytes .../dsplib/smoothl1lossgrad.doctree | Bin 0 -> 32770 bytes .../functionlib/dsplib/softmax.doctree | Bin 0 -> 44098 bytes .../softmax_cross_entropy_with_logits.doctree | Bin 0 -> 61293 bytes ..._softmax_cross_entropy_with_logits.doctree | Bin 0 -> 61036 bytes .../dsplib/sparsefillemptyrows.doctree | Bin 0 -> 131984 bytes .../functionlib/dsplib/sparsereshape.doctree | Bin 0 -> 33259 bytes .../dsplib/sparsesegmentsum.doctree | Bin 0 -> 100923 bytes .../functionlib/dsplib/sparsetodense.doctree | Bin 0 -> 96157 bytes .../functionlib/dsplib/splice.doctree | Bin 0 -> 104129 bytes .../doctrees/functionlib/dsplib/split.doctree | Bin 0 -> 94969 bytes .../dsplib/split_with_overlap.doctree | Bin 0 -> 105744 bytes .../doctrees/functionlib/dsplib/sqrt.doctree | Bin 0 -> 56816 bytes .../functionlib/dsplib/sqrtgrad.doctree | Bin 0 -> 68924 bytes .../functionlib/dsplib/square.doctree | Bin 0 -> 57210 bytes .../dsplib/squaredifference.doctree | Bin 0 -> 69663 bytes .../doctrees/functionlib/dsplib/stack.doctree | Bin 0 -> 85748 bytes .../functionlib/dsplib/stridedslice.doctree | Bin 0 -> 47980 bytes .../dsplib/stridedslicegrad.doctree | Bin 0 -> 38231 bytes .../functionlib/dsplib/subfusion.doctree | Bin 0 -> 169362 bytes .../functionlib/dsplib/subgrad.doctree | Bin 0 -> 35085 bytes .../functionlib/dsplib/switch.doctree | Bin 0 -> 22113 bytes .../functionlib/dsplib/switchlayer.doctree | Bin 0 -> 23234 bytes .../dsplib/tensor_scatter_add.doctree | Bin 0 -> 112051 bytes .../functionlib/dsplib/tensorarray.doctree | Bin 0 -> 35552 bytes .../dsplib/tensorarrayread.doctree | Bin 0 -> 81095 bytes .../dsplib/tensorarraywrite.doctree | Bin 0 -> 12291 bytes .../dsplib/tensorlistfromtensor.doctree | Bin 0 -> 81227 bytes .../dsplib/tensorlistgetitem.doctree | Bin 0 -> 19593 bytes .../dsplib/tensorlistreserve.doctree | Bin 0 -> 19713 bytes .../dsplib/tensorlistsetitem.doctree | Bin 0 -> 25742 bytes .../dsplib/tensorliststack.doctree | Bin 0 -> 24916 bytes .../doctrees/functionlib/dsplib/tile.doctree | Bin 0 -> 83056 bytes .../functionlib/dsplib/topkfusion.doctree | Bin 0 -> 52692 bytes .../functionlib/dsplib/transpose.doctree | Bin 0 -> 99823 bytes .../doctrees/functionlib/dsplib/tril.doctree | Bin 0 -> 99610 bytes .../doctrees/functionlib/dsplib/triu.doctree | Bin 0 -> 98497 bytes .../functionlib/dsplib/uniform_real.doctree | Bin 0 -> 23243 bytes .../functionlib/dsplib/unique.doctree | Bin 0 -> 70957 bytes .../dsplib/unsortedsegmentsum.doctree | Bin 0 -> 76551 bytes .../functionlib/dsplib/unstack.doctree | Bin 0 -> 19436 bytes .../doctrees/functionlib/dsplib/where.doctree | Bin 0 -> 76605 bytes .../functionlib/dsplib/zeroslike.doctree | Bin 0 -> 47710 bytes master/doctrees/functionlib/rstfiles.doctree | Bin 0 -> 2831 bytes master/doctrees/rstfiles.doctree | Bin 0 -> 3422 bytes master/html/.buildinfo | 2 +- .../_sources/functionlib/dsplib/abs.rst.txt | 95 + .../functionlib/dsplib/absgrad.rst.txt | 80 + .../functionlib/dsplib/activation.rst.txt | 8 +- .../dsplib/activation_grad.rst.txt | 115 + .../_sources/functionlib/dsplib/adam.rst.txt | 128 + .../dsplib/adamweightdecay.rst.txt | 4 +- .../functionlib/dsplib/addfusion.rst.txt | 274 ++ .../functionlib/dsplib/addgrad.rst.txt | 88 + .../_sources/functionlib/dsplib/addn.rst.txt | 96 + .../functionlib/dsplib/affine.rst.txt | 276 ++ .../_sources/functionlib/dsplib/all.rst.txt | 97 + .../functionlib/dsplib/allgather.rst.txt | 105 + .../functionlib/dsplib/applymomentum.rst.txt | 4 +- .../functionlib/dsplib/argmax.rst.txt | 111 + .../functionlib/dsplib/argmin.rst.txt | 112 + .../functionlib/dsplib/assign.rst.txt | 83 + .../functionlib/dsplib/assignadd.rst.txt | 88 + .../dsplib/audio_spectrogram.rst.txt | 137 + .../functionlib/dsplib/avgpooling.rst.txt | 136 + .../functionlib/dsplib/avgpoolinggrad.rst.txt | 4 +- .../functionlib/dsplib/batchnorm.rst.txt | 99 + .../functionlib/dsplib/batchnormgrad.rst.txt | 113 + .../functionlib/dsplib/biasadd.rst.txt | 108 + .../functionlib/dsplib/biasaddgrad.rst.txt | 86 + .../dsplib/binarycrossentropy.rst.txt | 102 + .../dsplib/binarycrossentropygrad.rst.txt | 95 + .../_sources/functionlib/dsplib/cast.rst.txt | 128 + .../_sources/functionlib/dsplib/ceil.rst.txt | 79 + .../_sources/functionlib/dsplib/clip.rst.txt | 90 + .../functionlib/dsplib/concat.rst.txt | 110 + .../dsplib/constant_of_shape.rst.txt | 110 + .../functionlib/dsplib/conv2d.rst.txt | 2 +- .../_sources/functionlib/dsplib/cos.rst.txt | 88 + .../functionlib/dsplib/cumsum.rst.txt | 102 + .../dsplib/customextractfeatures.rst.txt | 131 + .../dsplib/customnormalize.rst.txt | 89 + .../functionlib/dsplib/custompredict.rst.txt | 77 + .../dsplib/deconvgradfilter.rst.txt | 97 + .../dsplib/detection_post_process.rst.txt | 156 + .../functionlib/dsplib/div_fusion.rst.txt | 90 + .../functionlib/dsplib/divgrad.rst.txt | 161 + .../functionlib/dsplib/dropout.rst.txt | 86 + .../functionlib/dsplib/dropoutgrad.rst.txt | 89 + .../functionlib/dsplib/dsplib_index.rst.txt | 174 +- .../functionlib/dsplib/dynamicquant.rst.txt | 138 + .../functionlib/dsplib/eltwise.rst.txt | 6 +- .../_sources/functionlib/dsplib/elu.rst.txt | 84 + .../dsplib/embeddinglookup.rst.txt | 12 +- .../_sources/functionlib/dsplib/erf.rst.txt | 86 + .../functionlib/dsplib/expfusion.rst.txt | 118 +- .../fake_quant_with_min_max_vars.rst.txt | 86 + ...uant_with_min_max_vars_per_channel.rst.txt | 98 + .../functionlib/dsplib/fftimag.rst.txt | 104 + .../functionlib/dsplib/fftreal.rst.txt | 104 + .../_sources/functionlib/dsplib/fill.rst.txt | 103 + .../functionlib/dsplib/flatten.rst.txt | 104 + .../functionlib/dsplib/flattengrad.rst.txt | 82 + .../functionlib/dsplib/floormod.rst.txt | 84 + .../dsplib/formattranspose.rst.txt | 90 + .../functionlib/dsplib/fullconnection.rst.txt | 93 + .../functionlib/dsplib/fusedbatchnorm.rst.txt | 4 +- .../functionlib/dsplib/gather.rst.txt | 107 + .../functionlib/dsplib/gather_nd.rst.txt | 97 + .../functionlib/dsplib/gatherd.rst.txt | 117 + .../_sources/functionlib/dsplib/glu.rst.txt | 106 + .../functionlib/dsplib/greater.rst.txt | 98 + .../functionlib/dsplib/greaterequal.rst.txt | 98 + .../dsplib/groupnormfusion.rst.txt | 4 +- .../dsplib/hashtablelookup.rst.txt | 105 + .../functionlib/dsplib/instancenorm.rst.txt | 111 + .../dsplib/invertpermutation.rst.txt | 79 + .../functionlib/dsplib/isfinite.rst.txt | 86 + .../functionlib/dsplib/l2norm.rst.txt | 97 + .../dsplib/layernormfusion.rst.txt | 106 + .../functionlib/dsplib/layernormgrad.rst.txt | 108 + .../_sources/functionlib/dsplib/less.rst.txt | 91 + .../functionlib/dsplib/lessequal.rst.txt | 91 + .../functionlib/dsplib/linspace.rst.txt | 4 +- .../_sources/functionlib/dsplib/log.rst.txt | 85 + .../_sources/functionlib/dsplib/log1p.rst.txt | 78 + .../functionlib/dsplib/loggrad.rst.txt | 93 + .../functionlib/dsplib/logical_not.rst.txt | 81 + .../functionlib/dsplib/logical_or.rst.txt | 84 + .../functionlib/dsplib/logicaland.rst.txt | 101 + .../functionlib/dsplib/logsoftmax.rst.txt | 94 + .../dsplib/lpnormalization.rst.txt | 113 + .../_sources/functionlib/dsplib/lrn.rst.txt | 87 + .../functionlib/dsplib/lsh_projection.rst.txt | 100 + .../_sources/functionlib/dsplib/lstm.rst.txt | 20 +- .../functionlib/dsplib/lstmgrad.rst.txt | 88 + .../functionlib/dsplib/lstmgraddata.rst.txt | 88 + .../functionlib/dsplib/lstmgradweight.rst.txt | 88 + .../functionlib/dsplib/maximum.rst.txt | 83 + .../functionlib/dsplib/maximumgrad.rst.txt | 98 + .../functionlib/dsplib/maxpoolfusion.rst.txt | 235 ++ .../functionlib/dsplib/maxpoolgrad.rst.txt | 209 + .../_sources/functionlib/dsplib/mfcc.rst.txt | 222 ++ .../functionlib/dsplib/minimum.rst.txt | 83 + .../functionlib/dsplib/minimumgrad.rst.txt | 98 + .../_sources/functionlib/dsplib/mod.rst.txt | 84 + .../_sources/functionlib/dsplib/mul.rst.txt | 91 + .../functionlib/dsplib/mulgrad.rst.txt | 158 + .../_sources/functionlib/dsplib/neg.rst.txt | 81 + .../functionlib/dsplib/neg_grad.rst.txt | 83 + .../functionlib/dsplib/nllloss.rst.txt | 111 + .../functionlib/dsplib/nlllossgrad.rst.txt | 120 + .../dsplib/non_max_suppression.rst.txt | 151 + .../functionlib/dsplib/nonzero.rst.txt | 119 + .../functionlib/dsplib/not_equal.rst.txt | 88 + .../functionlib/dsplib/onehot.rst.txt | 115 + .../functionlib/dsplib/ones_like.rst.txt | 87 + .../functionlib/dsplib/padfusion.rst.txt | 188 + .../functionlib/dsplib/pow_fusion.rst.txt | 95 + .../functionlib/dsplib/power_grad.rst.txt | 79 + .../functionlib/dsplib/prelufusion.rst.txt | 84 + .../functionlib/dsplib/priorbox.rst.txt | 100 + .../functionlib/dsplib/quantdtypecast.rst.txt | 113 + .../functionlib/dsplib/random_normal.rst.txt | 79 + .../dsplib/random_standard_normal.rst.txt | 72 + .../_sources/functionlib/dsplib/range.rst.txt | 4 +- .../_sources/functionlib/dsplib/rank.rst.txt | 64 + .../functionlib/dsplib/real_div.rst.txt | 85 + .../functionlib/dsplib/reciprocal.rst.txt | 82 + .../functionlib/dsplib/reducescatter.rst.txt | 86 + .../functionlib/dsplib/reshape.rst.txt | 84 + .../functionlib/dsplib/resizegrad.rst.txt | 205 + .../_sources/functionlib/dsplib/rfft.rst.txt | 158 + .../functionlib/dsplib/roipooling.rst.txt | 98 + .../_sources/functionlib/dsplib/round.rst.txt | 88 + .../_sources/functionlib/dsplib/rsqrt.rst.txt | 86 + .../functionlib/dsplib/rsqrtgrad.rst.txt | 81 + .../functionlib/dsplib/scatter_nd.rst.txt | 100 + .../dsplib/scatter_nd_update.rst.txt | 103 + .../functionlib/dsplib/select.rst.txt | 188 + .../_sources/functionlib/dsplib/sgd.rst.txt | 31 +- .../_sources/functionlib/dsplib/shape.rst.txt | 81 + .../sigmoidcrossentropwithlogitsgrad.rst.txt | 103 + .../sigmoidcrossentropywithlogits.rst.txt | 88 + .../_sources/functionlib/dsplib/sin.rst.txt | 85 + .../_sources/functionlib/dsplib/size.rst.txt | 74 + .../functionlib/dsplib/skipgram.rst.txt | 125 + .../_sources/functionlib/dsplib/slice.rst.txt | 97 + .../functionlib/dsplib/smooth1loss.rst.txt | 85 + .../dsplib/smoothl1lossgrad.rst.txt | 100 + .../functionlib/dsplib/softmax.rst.txt | 94 + .../softmax_cross_entropy_with_logits.rst.txt | 125 + ..._softmax_cross_entropy_with_logits.rst.txt | 140 + .../dsplib/sparsefillemptyrows.rst.txt | 122 + .../functionlib/dsplib/sparsereshape.rst.txt | 124 + .../dsplib/sparsesegmentsum.rst.txt | 157 + .../functionlib/dsplib/sparsetodense.rst.txt | 191 + .../functionlib/dsplib/splice.rst.txt | 94 + .../_sources/functionlib/dsplib/split.rst.txt | 103 + .../dsplib/split_with_overlap.rst.txt | 103 + .../_sources/functionlib/dsplib/sqrt.rst.txt | 87 + .../functionlib/dsplib/sqrtgrad.rst.txt | 95 + .../functionlib/dsplib/square.rst.txt | 86 + .../dsplib/squaredifference.rst.txt | 89 + .../_sources/functionlib/dsplib/stack.rst.txt | 109 + .../functionlib/dsplib/stridedslice.rst.txt | 171 + .../dsplib/stridedslicegrad.rst.txt | 118 + .../functionlib/dsplib/subfusion.rst.txt | 185 + .../functionlib/dsplib/subgrad.rst.txt | 100 + .../functionlib/dsplib/switch.rst.txt | 124 + .../functionlib/dsplib/switchlayer.rst.txt | 129 + .../dsplib/tensor_scatter_add.rst.txt | 101 + .../functionlib/dsplib/tensorarray.rst.txt | 203 + .../dsplib/tensorarrayread.rst.txt | 123 + .../dsplib/tensorarraywrite.rst.txt | 41 + .../dsplib/tensorlistfromtensor.rst.txt | 121 + .../dsplib/tensorlistgetitem.rst.txt | 83 + .../dsplib/tensorlistreserve.rst.txt | 64 + .../dsplib/tensorlistsetitem.rst.txt | 114 + .../dsplib/tensorliststack.rst.txt | 116 + .../_sources/functionlib/dsplib/tile.rst.txt | 98 + .../functionlib/dsplib/topkfusion.rst.txt | 139 + .../functionlib/dsplib/transpose.rst.txt | 92 + .../_sources/functionlib/dsplib/tril.rst.txt | 136 + .../_sources/functionlib/dsplib/triu.rst.txt | 129 + .../functionlib/dsplib/uniform_real.rst.txt | 73 + .../functionlib/dsplib/unique.rst.txt | 95 + .../dsplib/unsortedsegmentsum.rst.txt | 113 + .../functionlib/dsplib/unstack.rst.txt | 89 + .../_sources/functionlib/dsplib/where.rst.txt | 94 + .../functionlib/dsplib/zeroslike.rst.txt | 87 + .../_sources/functionlib/rstfiles.rst.txt | 7 + master/html/_sources/rstfiles.rst.txt | 13 + master/html/appdevelop/ai_dsp/gray_cnn.html | 39 +- master/html/appdevelop/ai_dsp/index.html | 33 +- master/html/appdevelop/autocodegen/index.html | 32 +- master/html/appdevelop/dsp/index.html | 33 +- master/html/appdevelop/dsp/rdsar.html | 41 +- master/html/appdevelop/index.html | 29 +- .../functionlib/custom_op/complex_abs.html | 39 +- master/html/functionlib/custom_op/fft.html | 39 +- master/html/functionlib/custom_op/ifft.html | 39 +- master/html/functionlib/custom_op/index.html | 35 +- master/html/functionlib/dsplib/abs.html | 481 +++ master/html/functionlib/dsplib/absgrad.html | 417 ++ .../html/functionlib/dsplib/activation.html | 197 +- .../functionlib/dsplib/activation_grad.html | 542 +++ master/html/functionlib/dsplib/adam.html | 454 +++ .../functionlib/dsplib/adamweightdecay.html | 201 +- master/html/functionlib/dsplib/adder.html | 189 +- master/html/functionlib/dsplib/addfusion.html | 754 ++++ master/html/functionlib/dsplib/addgrad.html | 424 +++ master/html/functionlib/dsplib/addn.html | 471 +++ master/html/functionlib/dsplib/affine.html | 624 +++ master/html/functionlib/dsplib/all.html | 478 +++ master/html/functionlib/dsplib/allgather.html | 481 +++ .../functionlib/dsplib/applymomentum.html | 201 +- master/html/functionlib/dsplib/argmax.html | 446 +++ master/html/functionlib/dsplib/argmin.html | 447 +++ master/html/functionlib/dsplib/assert.html | 189 +- master/html/functionlib/dsplib/assign.html | 475 +++ master/html/functionlib/dsplib/assignadd.html | 480 +++ master/html/functionlib/dsplib/attention.html | 189 +- .../functionlib/dsplib/audio_spectrogram.html | 468 +++ .../html/functionlib/dsplib/avgpooling.html | 478 +++ .../functionlib/dsplib/avgpoolinggrad.html | 213 +- master/html/functionlib/dsplib/batchnorm.html | 444 +++ .../functionlib/dsplib/batchnormgrad.html | 445 +++ .../html/functionlib/dsplib/batchtospace.html | 189 +- .../functionlib/dsplib/batchtospacend.html | 189 +- master/html/functionlib/dsplib/biasadd.html | 491 +++ .../html/functionlib/dsplib/biasaddgrad.html | 421 +++ .../dsplib/binarycrossentropy.html | 445 +++ .../dsplib/binarycrossentropygrad.html | 430 +++ .../html/functionlib/dsplib/broadcastto.html | 189 +- master/html/functionlib/dsplib/cast.html | 597 +++ master/html/functionlib/dsplib/ceil.html | 423 +++ master/html/functionlib/dsplib/clip.html | 459 +++ master/html/functionlib/dsplib/concat.html | 497 +++ .../functionlib/dsplib/constant_of_shape.html | 488 +++ master/html/functionlib/dsplib/conv2d.html | 191 +- .../functionlib/dsplib/conv2d_transpose.html | 189 +- .../dsplib/conv2dbackpropfilterfusion.html | 189 +- .../dsplib/conv2dbackpropinputfusion.html | 189 +- master/html/functionlib/dsplib/cos.html | 456 +++ master/html/functionlib/dsplib/crop.html | 189 +- .../functionlib/dsplib/crop_and_resize.html | 189 +- master/html/functionlib/dsplib/cumsum.html | 488 +++ .../dsplib/customextractfeatures.html | 512 +++ .../functionlib/dsplib/customnormalize.html | 421 +++ .../functionlib/dsplib/custompredict.html | 410 ++ .../functionlib/dsplib/deconvgradfilter.html | 438 +++ .../html/functionlib/dsplib/depthtospace.html | 189 +- .../dsplib/detection_post_process.html | 503 +++ .../html/functionlib/dsplib/div_fusion.html | 476 +++ master/html/functionlib/dsplib/divgrad.html | 526 +++ master/html/functionlib/dsplib/dropout.html | 421 +++ .../html/functionlib/dsplib/dropoutgrad.html | 422 +++ .../html/functionlib/dsplib/dsplib_index.html | 366 +- .../html/functionlib/dsplib/dynamicquant.html | 483 +++ master/html/functionlib/dsplib/eltwise.html | 195 +- master/html/functionlib/dsplib/elu.html | 427 +++ .../functionlib/dsplib/embeddinglookup.html | 201 +- master/html/functionlib/dsplib/equal.html | 189 +- master/html/functionlib/dsplib/erf.html | 427 +++ .../html/functionlib/dsplib/expand_dims.html | 189 +- master/html/functionlib/dsplib/expfusion.html | 205 +- .../dsplib/fake_quant_with_min_max_vars.html | 424 +++ ...e_quant_with_min_max_vars_per_channel.html | 434 +++ master/html/functionlib/dsplib/fftimag.html | 444 +++ master/html/functionlib/dsplib/fftreal.html | 444 +++ master/html/functionlib/dsplib/fill.html | 488 +++ master/html/functionlib/dsplib/fillv2.html | 189 +- master/html/functionlib/dsplib/flatten.html | 433 +++ .../html/functionlib/dsplib/flattengrad.html | 421 +++ master/html/functionlib/dsplib/floor.html | 189 +- master/html/functionlib/dsplib/floordiv.html | 189 +- master/html/functionlib/dsplib/floormod.html | 427 +++ .../functionlib/dsplib/formattranspose.html | 476 +++ .../functionlib/dsplib/fullconnection.html | 435 +++ .../functionlib/dsplib/fusedbatchnorm.html | 199 +- master/html/functionlib/dsplib/gather.html | 494 +++ master/html/functionlib/dsplib/gather_nd.html | 485 +++ master/html/functionlib/dsplib/gatherd.html | 490 +++ master/html/functionlib/dsplib/glu.html | 452 +++ master/html/functionlib/dsplib/greater.html | 461 +++ .../html/functionlib/dsplib/greaterequal.html | 461 +++ .../functionlib/dsplib/groupnormfusion.html | 201 +- master/html/functionlib/dsplib/gru.html | 189 +- .../functionlib/dsplib/hashtablelookup.html | 435 +++ .../html/functionlib/dsplib/instancenorm.html | 443 +++ .../functionlib/dsplib/invertpermutation.html | 424 +++ master/html/functionlib/dsplib/isfinite.html | 472 +++ master/html/functionlib/dsplib/l2norm.html | 430 +++ .../functionlib/dsplib/layernormfusion.html | 451 +++ .../functionlib/dsplib/layernormgrad.html | 441 +++ .../html/functionlib/dsplib/leaky_relu.html | 193 +- master/html/functionlib/dsplib/less.html | 462 +++ master/html/functionlib/dsplib/lessequal.html | 462 +++ master/html/functionlib/dsplib/linspace.html | 201 +- master/html/functionlib/dsplib/log.html | 437 +++ master/html/functionlib/dsplib/log1p.html | 449 +++ master/html/functionlib/dsplib/loggrad.html | 427 +++ .../html/functionlib/dsplib/logical_not.html | 453 +++ .../html/functionlib/dsplib/logical_or.html | 456 +++ .../html/functionlib/dsplib/logicaland.html | 466 +++ .../html/functionlib/dsplib/logsoftmax.html | 439 +++ .../functionlib/dsplib/lpnormalization.html | 447 +++ master/html/functionlib/dsplib/lrn.html | 425 +++ .../functionlib/dsplib/lsh_projection.html | 473 +++ master/html/functionlib/dsplib/lstm.html | 221 +- master/html/functionlib/dsplib/lstmgrad.html | 428 +++ .../html/functionlib/dsplib/lstmgraddata.html | 428 +++ .../functionlib/dsplib/lstmgradweight.html | 428 +++ .../html/functionlib/dsplib/matmulfusion.html | 189 +- master/html/functionlib/dsplib/maximum.html | 455 +++ .../html/functionlib/dsplib/maximumgrad.html | 436 +++ .../functionlib/dsplib/maxpoolfusion.html | 554 +++ .../html/functionlib/dsplib/maxpoolgrad.html | 542 +++ master/html/functionlib/dsplib/mfcc.html | 561 +++ master/html/functionlib/dsplib/minimum.html | 455 +++ .../html/functionlib/dsplib/minimumgrad.html | 436 +++ master/html/functionlib/dsplib/mod.html | 456 +++ master/html/functionlib/dsplib/mul.html | 475 +++ master/html/functionlib/dsplib/mulgrad.html | 522 +++ master/html/functionlib/dsplib/neg.html | 469 +++ master/html/functionlib/dsplib/neg_grad.html | 469 +++ master/html/functionlib/dsplib/nllloss.html | 464 +++ .../html/functionlib/dsplib/nlllossgrad.html | 466 +++ .../dsplib/non_max_suppression.html | 492 +++ master/html/functionlib/dsplib/nonzero.html | 493 +++ master/html/functionlib/dsplib/not_equal.html | 475 +++ master/html/functionlib/dsplib/onehot.html | 499 +++ master/html/functionlib/dsplib/ones_like.html | 472 +++ master/html/functionlib/dsplib/padfusion.html | 582 +++ .../html/functionlib/dsplib/pow_fusion.html | 466 +++ .../html/functionlib/dsplib/power_grad.html | 419 +++ .../html/functionlib/dsplib/prelufusion.html | 431 +++ master/html/functionlib/dsplib/priorbox.html | 440 +++ .../functionlib/dsplib/quantdtypecast.html | 472 +++ .../html/functionlib/dsplib/raggedrange.html | 189 +- .../functionlib/dsplib/random_normal.html | 417 ++ .../dsplib/random_standard_normal.html | 411 ++ master/html/functionlib/dsplib/range.html | 201 +- master/html/functionlib/dsplib/rank.html | 398 ++ master/html/functionlib/dsplib/real_div.html | 473 +++ .../html/functionlib/dsplib/reciprocal.html | 470 +++ master/html/functionlib/dsplib/reduce.html | 189 +- .../functionlib/dsplib/reducescatter.html | 461 +++ master/html/functionlib/dsplib/reshape.html | 471 +++ master/html/functionlib/dsplib/resize.html | 189 +- .../html/functionlib/dsplib/resizegrad.html | 519 +++ .../functionlib/dsplib/reverse_sequence.html | 189 +- master/html/functionlib/dsplib/reversev2.html | 189 +- master/html/functionlib/dsplib/rfft.html | 503 +++ .../html/functionlib/dsplib/roipooling.html | 439 +++ master/html/functionlib/dsplib/round.html | 429 +++ master/html/functionlib/dsplib/rsqrt.html | 472 +++ master/html/functionlib/dsplib/rsqrtgrad.html | 419 +++ .../html/functionlib/dsplib/scalefusion.html | 193 +- .../functionlib/dsplib/scatter_elements.html | 193 +- .../html/functionlib/dsplib/scatter_nd.html | 487 +++ .../functionlib/dsplib/scatter_nd_update.html | 489 +++ master/html/functionlib/dsplib/select.html | 570 +++ master/html/functionlib/dsplib/sgd.html | 225 +- master/html/functionlib/dsplib/shape.html | 416 ++ .../sigmoidcrossentropwithlogitsgrad.html | 437 +++ .../dsplib/sigmoidcrossentropywithlogits.html | 437 +++ master/html/functionlib/dsplib/sin.html | 453 +++ master/html/functionlib/dsplib/size.html | 408 ++ master/html/functionlib/dsplib/skipgram.html | 454 +++ master/html/functionlib/dsplib/slice.html | 483 +++ .../html/functionlib/dsplib/smooth1loss.html | 431 +++ .../functionlib/dsplib/smoothl1lossgrad.html | 434 +++ master/html/functionlib/dsplib/softmax.html | 439 +++ .../softmax_cross_entropy_with_logits.html | 471 +++ .../html/functionlib/dsplib/spacetobatch.html | 189 +- .../functionlib/dsplib/spacetobatchnd.html | 189 +- .../html/functionlib/dsplib/spacetodepth.html | 189 +- ...rse_softmax_cross_entropy_with_logits.html | 479 +++ .../dsplib/sparsefillemptyrows.html | 506 +++ .../functionlib/dsplib/sparsereshape.html | 458 +++ .../functionlib/dsplib/sparsesegmentsum.html | 528 +++ .../functionlib/dsplib/sparsetodense.html | 573 +++ master/html/functionlib/dsplib/splice.html | 482 +++ master/html/functionlib/dsplib/split.html | 489 +++ .../dsplib/split_with_overlap.html | 488 +++ master/html/functionlib/dsplib/sqrt.html | 473 +++ master/html/functionlib/dsplib/sqrtgrad.html | 481 +++ master/html/functionlib/dsplib/square.html | 472 +++ .../functionlib/dsplib/squaredifference.html | 475 +++ master/html/functionlib/dsplib/squeeze.html | 189 +- master/html/functionlib/dsplib/stack.html | 494 +++ .../html/functionlib/dsplib/stridedslice.html | 499 +++ .../functionlib/dsplib/stridedslicegrad.html | 455 +++ master/html/functionlib/dsplib/subfusion.html | 651 ++++ master/html/functionlib/dsplib/subgrad.html | 435 +++ master/html/functionlib/dsplib/switch.html | 453 +++ .../html/functionlib/dsplib/switchlayer.html | 461 +++ .../dsplib/tensor_scatter_add.html | 489 +++ .../html/functionlib/dsplib/tensorarray.html | 526 +++ .../functionlib/dsplib/tensorarrayread.html | 508 +++ .../functionlib/dsplib/tensorarraywrite.html | 370 ++ .../dsplib/tensorlistfromtensor.html | 506 +++ .../functionlib/dsplib/tensorlistgetitem.html | 414 ++ .../functionlib/dsplib/tensorlistreserve.html | 398 ++ .../functionlib/dsplib/tensorlistsetitem.html | 446 +++ .../functionlib/dsplib/tensorliststack.html | 447 +++ master/html/functionlib/dsplib/tile.html | 485 +++ .../html/functionlib/dsplib/topkfusion.html | 491 +++ master/html/functionlib/dsplib/transpose.html | 480 +++ master/html/functionlib/dsplib/tril.html | 518 +++ master/html/functionlib/dsplib/triu.html | 515 +++ .../html/functionlib/dsplib/uniform_real.html | 413 ++ master/html/functionlib/dsplib/unique.html | 480 +++ .../dsplib/unsortedsegmentsum.html | 487 +++ master/html/functionlib/dsplib/unsqueeze.html | 189 +- master/html/functionlib/dsplib/unstack.html | 417 ++ master/html/functionlib/dsplib/where.html | 478 +++ master/html/functionlib/dsplib/zeroslike.html | 472 +++ master/html/functionlib/index.html | 201 +- master/html/functionlib/rstfiles.html | 338 ++ master/html/functionlib/supported_op.html | 30 +- master/html/genindex.html | 3349 ++++++++++++++++- master/html/index.html | 20 +- master/html/objects.inv | Bin 17369 -> 82732 bytes master/html/quickstart/hellodsp.html | 47 +- master/html/quickstart/index.html | 29 +- master/html/quickstart/installation.html | 42 +- master/html/quickstart/overview.html | 30 +- master/html/refdoc/dsplib_description.html | 38 +- master/html/refdoc/index.html | 29 +- master/html/refdoc/mindspore.html | 30 +- master/html/refdoc/signal_scheduling.html | 28 +- master/html/rstfiles.html | 118 + master/html/search.html | 13 +- master/html/searchindex.js | 2 +- 620 files changed, 110900 insertions(+), 1370 deletions(-) create mode 100644 master/doctrees/functionlib/dsplib/abs.doctree create mode 100644 master/doctrees/functionlib/dsplib/absgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/activation_grad.doctree create mode 100644 master/doctrees/functionlib/dsplib/adam.doctree create mode 100644 master/doctrees/functionlib/dsplib/addfusion.doctree create mode 100644 master/doctrees/functionlib/dsplib/addgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/addn.doctree create mode 100644 master/doctrees/functionlib/dsplib/affine.doctree create mode 100644 master/doctrees/functionlib/dsplib/all.doctree create mode 100644 master/doctrees/functionlib/dsplib/allgather.doctree create mode 100644 master/doctrees/functionlib/dsplib/argmax.doctree create mode 100644 master/doctrees/functionlib/dsplib/argmin.doctree create mode 100644 master/doctrees/functionlib/dsplib/assign.doctree create mode 100644 master/doctrees/functionlib/dsplib/assignadd.doctree create mode 100644 master/doctrees/functionlib/dsplib/audio_spectrogram.doctree create mode 100644 master/doctrees/functionlib/dsplib/avgpooling.doctree create mode 100644 master/doctrees/functionlib/dsplib/batchnorm.doctree create mode 100644 master/doctrees/functionlib/dsplib/batchnormgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/biasadd.doctree create mode 100644 master/doctrees/functionlib/dsplib/biasaddgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/binarycrossentropy.doctree create mode 100644 master/doctrees/functionlib/dsplib/binarycrossentropygrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/cast.doctree create mode 100644 master/doctrees/functionlib/dsplib/ceil.doctree create mode 100644 master/doctrees/functionlib/dsplib/clip.doctree create mode 100644 master/doctrees/functionlib/dsplib/concat.doctree create mode 100644 master/doctrees/functionlib/dsplib/constant_of_shape.doctree create mode 100644 master/doctrees/functionlib/dsplib/cos.doctree create mode 100644 master/doctrees/functionlib/dsplib/cumsum.doctree create mode 100644 master/doctrees/functionlib/dsplib/customextractfeatures.doctree create mode 100644 master/doctrees/functionlib/dsplib/customnormalize.doctree create mode 100644 master/doctrees/functionlib/dsplib/custompredict.doctree create mode 100644 master/doctrees/functionlib/dsplib/deconvgradfilter.doctree create mode 100644 master/doctrees/functionlib/dsplib/detection_post_process.doctree create mode 100644 master/doctrees/functionlib/dsplib/div_fusion.doctree create mode 100644 master/doctrees/functionlib/dsplib/divgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/dropout.doctree create mode 100644 master/doctrees/functionlib/dsplib/dropoutgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/dynamicquant.doctree create mode 100644 master/doctrees/functionlib/dsplib/elu.doctree create mode 100644 master/doctrees/functionlib/dsplib/erf.doctree create mode 100644 master/doctrees/functionlib/dsplib/fake_quant_with_min_max_vars.doctree create mode 100644 master/doctrees/functionlib/dsplib/fake_quant_with_min_max_vars_per_channel.doctree create mode 100644 master/doctrees/functionlib/dsplib/fftimag.doctree create mode 100644 master/doctrees/functionlib/dsplib/fftreal.doctree create mode 100644 master/doctrees/functionlib/dsplib/fill.doctree create mode 100644 master/doctrees/functionlib/dsplib/flatten.doctree create mode 100644 master/doctrees/functionlib/dsplib/flattengrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/floormod.doctree create mode 100644 master/doctrees/functionlib/dsplib/formattranspose.doctree create mode 100644 master/doctrees/functionlib/dsplib/fullconnection.doctree create mode 100644 master/doctrees/functionlib/dsplib/gather.doctree create mode 100644 master/doctrees/functionlib/dsplib/gather_nd.doctree create mode 100644 master/doctrees/functionlib/dsplib/gatherd.doctree create mode 100644 master/doctrees/functionlib/dsplib/glu.doctree create mode 100644 master/doctrees/functionlib/dsplib/greater.doctree create mode 100644 master/doctrees/functionlib/dsplib/greaterequal.doctree create mode 100644 master/doctrees/functionlib/dsplib/hashtablelookup.doctree create mode 100644 master/doctrees/functionlib/dsplib/instancenorm.doctree create mode 100644 master/doctrees/functionlib/dsplib/invertpermutation.doctree create mode 100644 master/doctrees/functionlib/dsplib/isfinite.doctree create mode 100644 master/doctrees/functionlib/dsplib/l2norm.doctree create mode 100644 master/doctrees/functionlib/dsplib/layernormfusion.doctree create mode 100644 master/doctrees/functionlib/dsplib/layernormgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/less.doctree create mode 100644 master/doctrees/functionlib/dsplib/lessequal.doctree create mode 100644 master/doctrees/functionlib/dsplib/log.doctree create mode 100644 master/doctrees/functionlib/dsplib/log1p.doctree create mode 100644 master/doctrees/functionlib/dsplib/loggrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/logical_not.doctree create mode 100644 master/doctrees/functionlib/dsplib/logical_or.doctree create mode 100644 master/doctrees/functionlib/dsplib/logicaland.doctree create mode 100644 master/doctrees/functionlib/dsplib/logsoftmax.doctree create mode 100644 master/doctrees/functionlib/dsplib/lpnormalization.doctree create mode 100644 master/doctrees/functionlib/dsplib/lrn.doctree create mode 100644 master/doctrees/functionlib/dsplib/lsh_projection.doctree create mode 100644 master/doctrees/functionlib/dsplib/lstmgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/lstmgraddata.doctree create mode 100644 master/doctrees/functionlib/dsplib/lstmgradweight.doctree create mode 100644 master/doctrees/functionlib/dsplib/maximum.doctree create mode 100644 master/doctrees/functionlib/dsplib/maximumgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/maxpoolfusion.doctree create mode 100644 master/doctrees/functionlib/dsplib/maxpoolgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/mfcc.doctree create mode 100644 master/doctrees/functionlib/dsplib/minimum.doctree create mode 100644 master/doctrees/functionlib/dsplib/minimumgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/mod.doctree create mode 100644 master/doctrees/functionlib/dsplib/mul.doctree create mode 100644 master/doctrees/functionlib/dsplib/mulgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/neg.doctree create mode 100644 master/doctrees/functionlib/dsplib/neg_grad.doctree create mode 100644 master/doctrees/functionlib/dsplib/nllloss.doctree create mode 100644 master/doctrees/functionlib/dsplib/nlllossgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/non_max_suppression.doctree create mode 100644 master/doctrees/functionlib/dsplib/nonzero.doctree create mode 100644 master/doctrees/functionlib/dsplib/not_equal.doctree create mode 100644 master/doctrees/functionlib/dsplib/onehot.doctree create mode 100644 master/doctrees/functionlib/dsplib/ones_like.doctree create mode 100644 master/doctrees/functionlib/dsplib/padfusion.doctree create mode 100644 master/doctrees/functionlib/dsplib/pow_fusion.doctree create mode 100644 master/doctrees/functionlib/dsplib/power_grad.doctree create mode 100644 master/doctrees/functionlib/dsplib/prelufusion.doctree create mode 100644 master/doctrees/functionlib/dsplib/priorbox.doctree create mode 100644 master/doctrees/functionlib/dsplib/quantdtypecast.doctree create mode 100644 master/doctrees/functionlib/dsplib/random_normal.doctree create mode 100644 master/doctrees/functionlib/dsplib/random_standard_normal.doctree create mode 100644 master/doctrees/functionlib/dsplib/rank.doctree create mode 100644 master/doctrees/functionlib/dsplib/real_div.doctree create mode 100644 master/doctrees/functionlib/dsplib/reciprocal.doctree create mode 100644 master/doctrees/functionlib/dsplib/reducescatter.doctree create mode 100644 master/doctrees/functionlib/dsplib/reshape.doctree create mode 100644 master/doctrees/functionlib/dsplib/resizegrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/rfft.doctree create mode 100644 master/doctrees/functionlib/dsplib/roipooling.doctree create mode 100644 master/doctrees/functionlib/dsplib/round.doctree create mode 100644 master/doctrees/functionlib/dsplib/rsqrt.doctree create mode 100644 master/doctrees/functionlib/dsplib/rsqrtgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/scatter_nd.doctree create mode 100644 master/doctrees/functionlib/dsplib/scatter_nd_update.doctree create mode 100644 master/doctrees/functionlib/dsplib/select.doctree create mode 100644 master/doctrees/functionlib/dsplib/shape.doctree create mode 100644 master/doctrees/functionlib/dsplib/sigmoidcrossentropwithlogitsgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/sigmoidcrossentropywithlogits.doctree create mode 100644 master/doctrees/functionlib/dsplib/sin.doctree create mode 100644 master/doctrees/functionlib/dsplib/size.doctree create mode 100644 master/doctrees/functionlib/dsplib/skipgram.doctree create mode 100644 master/doctrees/functionlib/dsplib/slice.doctree create mode 100644 master/doctrees/functionlib/dsplib/smooth1loss.doctree create mode 100644 master/doctrees/functionlib/dsplib/smoothl1lossgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/softmax.doctree create mode 100644 master/doctrees/functionlib/dsplib/softmax_cross_entropy_with_logits.doctree create mode 100644 master/doctrees/functionlib/dsplib/sparse_softmax_cross_entropy_with_logits.doctree create mode 100644 master/doctrees/functionlib/dsplib/sparsefillemptyrows.doctree create mode 100644 master/doctrees/functionlib/dsplib/sparsereshape.doctree create mode 100644 master/doctrees/functionlib/dsplib/sparsesegmentsum.doctree create mode 100644 master/doctrees/functionlib/dsplib/sparsetodense.doctree create mode 100644 master/doctrees/functionlib/dsplib/splice.doctree create mode 100644 master/doctrees/functionlib/dsplib/split.doctree create mode 100644 master/doctrees/functionlib/dsplib/split_with_overlap.doctree create mode 100644 master/doctrees/functionlib/dsplib/sqrt.doctree create mode 100644 master/doctrees/functionlib/dsplib/sqrtgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/square.doctree create mode 100644 master/doctrees/functionlib/dsplib/squaredifference.doctree create mode 100644 master/doctrees/functionlib/dsplib/stack.doctree create mode 100644 master/doctrees/functionlib/dsplib/stridedslice.doctree create mode 100644 master/doctrees/functionlib/dsplib/stridedslicegrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/subfusion.doctree create mode 100644 master/doctrees/functionlib/dsplib/subgrad.doctree create mode 100644 master/doctrees/functionlib/dsplib/switch.doctree create mode 100644 master/doctrees/functionlib/dsplib/switchlayer.doctree create mode 100644 master/doctrees/functionlib/dsplib/tensor_scatter_add.doctree create mode 100644 master/doctrees/functionlib/dsplib/tensorarray.doctree create mode 100644 master/doctrees/functionlib/dsplib/tensorarrayread.doctree create mode 100644 master/doctrees/functionlib/dsplib/tensorarraywrite.doctree create mode 100644 master/doctrees/functionlib/dsplib/tensorlistfromtensor.doctree create mode 100644 master/doctrees/functionlib/dsplib/tensorlistgetitem.doctree create mode 100644 master/doctrees/functionlib/dsplib/tensorlistreserve.doctree create mode 100644 master/doctrees/functionlib/dsplib/tensorlistsetitem.doctree create mode 100644 master/doctrees/functionlib/dsplib/tensorliststack.doctree create mode 100644 master/doctrees/functionlib/dsplib/tile.doctree create mode 100644 master/doctrees/functionlib/dsplib/topkfusion.doctree create mode 100644 master/doctrees/functionlib/dsplib/transpose.doctree create mode 100644 master/doctrees/functionlib/dsplib/tril.doctree create mode 100644 master/doctrees/functionlib/dsplib/triu.doctree create mode 100644 master/doctrees/functionlib/dsplib/uniform_real.doctree create mode 100644 master/doctrees/functionlib/dsplib/unique.doctree create mode 100644 master/doctrees/functionlib/dsplib/unsortedsegmentsum.doctree create mode 100644 master/doctrees/functionlib/dsplib/unstack.doctree create mode 100644 master/doctrees/functionlib/dsplib/where.doctree create mode 100644 master/doctrees/functionlib/dsplib/zeroslike.doctree create mode 100644 master/doctrees/functionlib/rstfiles.doctree create mode 100644 master/doctrees/rstfiles.doctree create mode 100644 master/html/_sources/functionlib/dsplib/abs.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/absgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/activation_grad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/adam.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/addfusion.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/addgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/addn.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/affine.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/all.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/allgather.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/argmax.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/argmin.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/assign.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/assignadd.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/audio_spectrogram.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/avgpooling.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/batchnorm.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/batchnormgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/biasadd.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/biasaddgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/binarycrossentropy.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/binarycrossentropygrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/cast.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/ceil.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/clip.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/concat.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/constant_of_shape.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/cos.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/cumsum.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/customextractfeatures.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/customnormalize.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/custompredict.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/deconvgradfilter.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/detection_post_process.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/div_fusion.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/divgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/dropout.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/dropoutgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/dynamicquant.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/elu.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/erf.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/fake_quant_with_min_max_vars.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/fake_quant_with_min_max_vars_per_channel.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/fftimag.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/fftreal.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/fill.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/flatten.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/flattengrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/floormod.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/formattranspose.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/fullconnection.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/gather.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/gather_nd.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/gatherd.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/glu.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/greater.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/greaterequal.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/hashtablelookup.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/instancenorm.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/invertpermutation.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/isfinite.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/l2norm.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/layernormfusion.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/layernormgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/less.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/lessequal.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/log.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/log1p.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/loggrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/logical_not.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/logical_or.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/logicaland.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/logsoftmax.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/lpnormalization.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/lrn.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/lsh_projection.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/lstmgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/lstmgraddata.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/lstmgradweight.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/maximum.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/maximumgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/maxpoolfusion.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/maxpoolgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/mfcc.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/minimum.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/minimumgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/mod.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/mul.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/mulgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/neg.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/neg_grad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/nllloss.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/nlllossgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/non_max_suppression.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/nonzero.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/not_equal.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/onehot.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/ones_like.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/padfusion.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/pow_fusion.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/power_grad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/prelufusion.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/priorbox.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/quantdtypecast.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/random_normal.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/random_standard_normal.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/rank.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/real_div.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/reciprocal.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/reducescatter.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/reshape.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/resizegrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/rfft.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/roipooling.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/round.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/rsqrt.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/rsqrtgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/scatter_nd.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/scatter_nd_update.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/select.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/shape.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/sigmoidcrossentropwithlogitsgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/sigmoidcrossentropywithlogits.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/sin.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/size.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/skipgram.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/slice.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/smooth1loss.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/smoothl1lossgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/softmax.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/softmax_cross_entropy_with_logits.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/sparse_softmax_cross_entropy_with_logits.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/sparsefillemptyrows.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/sparsereshape.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/sparsesegmentsum.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/sparsetodense.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/splice.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/split.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/split_with_overlap.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/sqrt.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/sqrtgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/square.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/squaredifference.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/stack.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/stridedslice.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/stridedslicegrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/subfusion.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/subgrad.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/switch.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/switchlayer.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/tensor_scatter_add.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/tensorarray.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/tensorarrayread.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/tensorarraywrite.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/tensorlistfromtensor.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/tensorlistgetitem.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/tensorlistreserve.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/tensorlistsetitem.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/tensorliststack.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/tile.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/topkfusion.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/transpose.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/tril.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/triu.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/uniform_real.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/unique.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/unsortedsegmentsum.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/unstack.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/where.rst.txt create mode 100644 master/html/_sources/functionlib/dsplib/zeroslike.rst.txt create mode 100644 master/html/_sources/functionlib/rstfiles.rst.txt create mode 100644 master/html/_sources/rstfiles.rst.txt create mode 100644 master/html/functionlib/dsplib/abs.html create mode 100644 master/html/functionlib/dsplib/absgrad.html create mode 100644 master/html/functionlib/dsplib/activation_grad.html create mode 100644 master/html/functionlib/dsplib/adam.html create mode 100644 master/html/functionlib/dsplib/addfusion.html create mode 100644 master/html/functionlib/dsplib/addgrad.html create mode 100644 master/html/functionlib/dsplib/addn.html create mode 100644 master/html/functionlib/dsplib/affine.html create mode 100644 master/html/functionlib/dsplib/all.html create mode 100644 master/html/functionlib/dsplib/allgather.html create mode 100644 master/html/functionlib/dsplib/argmax.html create mode 100644 master/html/functionlib/dsplib/argmin.html create mode 100644 master/html/functionlib/dsplib/assign.html create mode 100644 master/html/functionlib/dsplib/assignadd.html create mode 100644 master/html/functionlib/dsplib/audio_spectrogram.html create mode 100644 master/html/functionlib/dsplib/avgpooling.html create mode 100644 master/html/functionlib/dsplib/batchnorm.html create mode 100644 master/html/functionlib/dsplib/batchnormgrad.html create mode 100644 master/html/functionlib/dsplib/biasadd.html create mode 100644 master/html/functionlib/dsplib/biasaddgrad.html create mode 100644 master/html/functionlib/dsplib/binarycrossentropy.html create mode 100644 master/html/functionlib/dsplib/binarycrossentropygrad.html create mode 100644 master/html/functionlib/dsplib/cast.html create mode 100644 master/html/functionlib/dsplib/ceil.html create mode 100644 master/html/functionlib/dsplib/clip.html create mode 100644 master/html/functionlib/dsplib/concat.html create mode 100644 master/html/functionlib/dsplib/constant_of_shape.html create mode 100644 master/html/functionlib/dsplib/cos.html create mode 100644 master/html/functionlib/dsplib/cumsum.html create mode 100644 master/html/functionlib/dsplib/customextractfeatures.html create mode 100644 master/html/functionlib/dsplib/customnormalize.html create mode 100644 master/html/functionlib/dsplib/custompredict.html create mode 100644 master/html/functionlib/dsplib/deconvgradfilter.html create mode 100644 master/html/functionlib/dsplib/detection_post_process.html create mode 100644 master/html/functionlib/dsplib/div_fusion.html create mode 100644 master/html/functionlib/dsplib/divgrad.html create mode 100644 master/html/functionlib/dsplib/dropout.html create mode 100644 master/html/functionlib/dsplib/dropoutgrad.html create mode 100644 master/html/functionlib/dsplib/dynamicquant.html create mode 100644 master/html/functionlib/dsplib/elu.html create mode 100644 master/html/functionlib/dsplib/erf.html create mode 100644 master/html/functionlib/dsplib/fake_quant_with_min_max_vars.html create mode 100644 master/html/functionlib/dsplib/fake_quant_with_min_max_vars_per_channel.html create mode 100644 master/html/functionlib/dsplib/fftimag.html create mode 100644 master/html/functionlib/dsplib/fftreal.html create mode 100644 master/html/functionlib/dsplib/fill.html create mode 100644 master/html/functionlib/dsplib/flatten.html create mode 100644 master/html/functionlib/dsplib/flattengrad.html create mode 100644 master/html/functionlib/dsplib/floormod.html create mode 100644 master/html/functionlib/dsplib/formattranspose.html create mode 100644 master/html/functionlib/dsplib/fullconnection.html create mode 100644 master/html/functionlib/dsplib/gather.html create mode 100644 master/html/functionlib/dsplib/gather_nd.html create mode 100644 master/html/functionlib/dsplib/gatherd.html create mode 100644 master/html/functionlib/dsplib/glu.html create mode 100644 master/html/functionlib/dsplib/greater.html create mode 100644 master/html/functionlib/dsplib/greaterequal.html create mode 100644 master/html/functionlib/dsplib/hashtablelookup.html create mode 100644 master/html/functionlib/dsplib/instancenorm.html create mode 100644 master/html/functionlib/dsplib/invertpermutation.html create mode 100644 master/html/functionlib/dsplib/isfinite.html create mode 100644 master/html/functionlib/dsplib/l2norm.html create mode 100644 master/html/functionlib/dsplib/layernormfusion.html create mode 100644 master/html/functionlib/dsplib/layernormgrad.html create mode 100644 master/html/functionlib/dsplib/less.html create mode 100644 master/html/functionlib/dsplib/lessequal.html create mode 100644 master/html/functionlib/dsplib/log.html create mode 100644 master/html/functionlib/dsplib/log1p.html create mode 100644 master/html/functionlib/dsplib/loggrad.html create mode 100644 master/html/functionlib/dsplib/logical_not.html create mode 100644 master/html/functionlib/dsplib/logical_or.html create mode 100644 master/html/functionlib/dsplib/logicaland.html create mode 100644 master/html/functionlib/dsplib/logsoftmax.html create mode 100644 master/html/functionlib/dsplib/lpnormalization.html create mode 100644 master/html/functionlib/dsplib/lrn.html create mode 100644 master/html/functionlib/dsplib/lsh_projection.html create mode 100644 master/html/functionlib/dsplib/lstmgrad.html create mode 100644 master/html/functionlib/dsplib/lstmgraddata.html create mode 100644 master/html/functionlib/dsplib/lstmgradweight.html create mode 100644 master/html/functionlib/dsplib/maximum.html create mode 100644 master/html/functionlib/dsplib/maximumgrad.html create mode 100644 master/html/functionlib/dsplib/maxpoolfusion.html create mode 100644 master/html/functionlib/dsplib/maxpoolgrad.html create mode 100644 master/html/functionlib/dsplib/mfcc.html create mode 100644 master/html/functionlib/dsplib/minimum.html create mode 100644 master/html/functionlib/dsplib/minimumgrad.html create mode 100644 master/html/functionlib/dsplib/mod.html create mode 100644 master/html/functionlib/dsplib/mul.html create mode 100644 master/html/functionlib/dsplib/mulgrad.html create mode 100644 master/html/functionlib/dsplib/neg.html create mode 100644 master/html/functionlib/dsplib/neg_grad.html create mode 100644 master/html/functionlib/dsplib/nllloss.html create mode 100644 master/html/functionlib/dsplib/nlllossgrad.html create mode 100644 master/html/functionlib/dsplib/non_max_suppression.html create mode 100644 master/html/functionlib/dsplib/nonzero.html create mode 100644 master/html/functionlib/dsplib/not_equal.html create mode 100644 master/html/functionlib/dsplib/onehot.html create mode 100644 master/html/functionlib/dsplib/ones_like.html create mode 100644 master/html/functionlib/dsplib/padfusion.html create mode 100644 master/html/functionlib/dsplib/pow_fusion.html create mode 100644 master/html/functionlib/dsplib/power_grad.html create mode 100644 master/html/functionlib/dsplib/prelufusion.html create mode 100644 master/html/functionlib/dsplib/priorbox.html create mode 100644 master/html/functionlib/dsplib/quantdtypecast.html create mode 100644 master/html/functionlib/dsplib/random_normal.html create mode 100644 master/html/functionlib/dsplib/random_standard_normal.html create mode 100644 master/html/functionlib/dsplib/rank.html create mode 100644 master/html/functionlib/dsplib/real_div.html create mode 100644 master/html/functionlib/dsplib/reciprocal.html create mode 100644 master/html/functionlib/dsplib/reducescatter.html create mode 100644 master/html/functionlib/dsplib/reshape.html create mode 100644 master/html/functionlib/dsplib/resizegrad.html create mode 100644 master/html/functionlib/dsplib/rfft.html create mode 100644 master/html/functionlib/dsplib/roipooling.html create mode 100644 master/html/functionlib/dsplib/round.html create mode 100644 master/html/functionlib/dsplib/rsqrt.html create mode 100644 master/html/functionlib/dsplib/rsqrtgrad.html create mode 100644 master/html/functionlib/dsplib/scatter_nd.html create mode 100644 master/html/functionlib/dsplib/scatter_nd_update.html create mode 100644 master/html/functionlib/dsplib/select.html create mode 100644 master/html/functionlib/dsplib/shape.html create mode 100644 master/html/functionlib/dsplib/sigmoidcrossentropwithlogitsgrad.html create mode 100644 master/html/functionlib/dsplib/sigmoidcrossentropywithlogits.html create mode 100644 master/html/functionlib/dsplib/sin.html create mode 100644 master/html/functionlib/dsplib/size.html create mode 100644 master/html/functionlib/dsplib/skipgram.html create mode 100644 master/html/functionlib/dsplib/slice.html create mode 100644 master/html/functionlib/dsplib/smooth1loss.html create mode 100644 master/html/functionlib/dsplib/smoothl1lossgrad.html create mode 100644 master/html/functionlib/dsplib/softmax.html create mode 100644 master/html/functionlib/dsplib/softmax_cross_entropy_with_logits.html create mode 100644 master/html/functionlib/dsplib/sparse_softmax_cross_entropy_with_logits.html create mode 100644 master/html/functionlib/dsplib/sparsefillemptyrows.html create mode 100644 master/html/functionlib/dsplib/sparsereshape.html create mode 100644 master/html/functionlib/dsplib/sparsesegmentsum.html create mode 100644 master/html/functionlib/dsplib/sparsetodense.html create mode 100644 master/html/functionlib/dsplib/splice.html create mode 100644 master/html/functionlib/dsplib/split.html create mode 100644 master/html/functionlib/dsplib/split_with_overlap.html create mode 100644 master/html/functionlib/dsplib/sqrt.html create mode 100644 master/html/functionlib/dsplib/sqrtgrad.html create mode 100644 master/html/functionlib/dsplib/square.html create mode 100644 master/html/functionlib/dsplib/squaredifference.html create mode 100644 master/html/functionlib/dsplib/stack.html create mode 100644 master/html/functionlib/dsplib/stridedslice.html create mode 100644 master/html/functionlib/dsplib/stridedslicegrad.html create mode 100644 master/html/functionlib/dsplib/subfusion.html create mode 100644 master/html/functionlib/dsplib/subgrad.html create mode 100644 master/html/functionlib/dsplib/switch.html create mode 100644 master/html/functionlib/dsplib/switchlayer.html create mode 100644 master/html/functionlib/dsplib/tensor_scatter_add.html create mode 100644 master/html/functionlib/dsplib/tensorarray.html create mode 100644 master/html/functionlib/dsplib/tensorarrayread.html create mode 100644 master/html/functionlib/dsplib/tensorarraywrite.html create mode 100644 master/html/functionlib/dsplib/tensorlistfromtensor.html create mode 100644 master/html/functionlib/dsplib/tensorlistgetitem.html create mode 100644 master/html/functionlib/dsplib/tensorlistreserve.html create mode 100644 master/html/functionlib/dsplib/tensorlistsetitem.html create mode 100644 master/html/functionlib/dsplib/tensorliststack.html create mode 100644 master/html/functionlib/dsplib/tile.html create mode 100644 master/html/functionlib/dsplib/topkfusion.html create mode 100644 master/html/functionlib/dsplib/transpose.html create mode 100644 master/html/functionlib/dsplib/tril.html create mode 100644 master/html/functionlib/dsplib/triu.html create mode 100644 master/html/functionlib/dsplib/uniform_real.html create mode 100644 master/html/functionlib/dsplib/unique.html create mode 100644 master/html/functionlib/dsplib/unsortedsegmentsum.html create mode 100644 master/html/functionlib/dsplib/unstack.html create mode 100644 master/html/functionlib/dsplib/where.html create mode 100644 master/html/functionlib/dsplib/zeroslike.html create mode 100644 master/html/functionlib/rstfiles.html create mode 100644 master/html/rstfiles.html diff --git a/master/doctrees/environment.pickle b/master/doctrees/environment.pickle index ed85ef82c0918c676f4542c4cbb8c720cfeafba1..4ff7ebac6f2585b414296831832473ac8e3bb073 100644 GIT binary patch literal 9821908 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

VST?M+k`Wlb(ASaN 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 XGlOHFw>qkP^- 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 z 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

tXGJxqWx(i@Uo!xUzpk!-U}ycMccMxO10N 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⩔Q+nrTeIdZ~KMO`f$?ej(gho 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


<6?DbEs99v@JyrKMz*9G>!E;!X*qp3 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%0Dv7`>m9s$S70pp{Cq~&WyF? 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

@^{5VO_+QS8RF3c5sunTnIw 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

*;`J|w2RBA^_jrDWwsp7Jd* zG{-ISEP+=!V2Nh(GsMi@o_yck{vPk|+24fGc7n26GH znxyHbp$YBDAomBAHoWSd*z=Ot@bh*2Bt0&9 z)BV8fq^V*SclLoDzjcuNbDldM=Kkz>>vXvLYqC!1cmy3k-Fcaj$+L9X1*PMK?yvUt zZq44_Ma&mIUDEqAo3VMXPQ)cz#aXOCSifu;yWHM2CTUidG^?n`+uzSdX_G-N`-}Cl zT_pM#t{&xx7gC#|+_{y`OzC6E1Max2KIUV|^f8|Delg`G0p+n;N>(4^DgP#>d^n&y zUQ5a9V?5 zy=Y{c;FPk6qr58Zi^e4til2x2|$}_~2Qv=E;wUn&l#8X}`raUX4d`?NpD^3`bNG9O-@Ll-Uk}!nYgbmO~ zxKHBn6{l@R*GzHxGc{<6QxQs>UUR1CQa92Ip2^_SV)RhtAS1hdy}De?UsegMP9`d= z1Xgz`D1liOr?syv4T~6&Zt`fxwmyZ;utsZiXinN@8bY@B= zY51*&%WOI3W62aJp7Kj#%54M66||JB;>1&)CZ;?xpj=f;$tq4f<+WnUGXu&sw3Mvk z#8W;cruSV-m>({2smw--3U@ey{=h2=_@GX~k*v zY0-yCGnY7RLHB5aQxOEGt(_^l#0?XiklK58=|;h6tqn@UqRS>GIGNy75}a~(5fhwp z&s2(&mYU$yi;TTwZPBS`?p4RGr%U>YZ|~IEJ9YGGz?+Q18duEN>SK?6O%wT9g>{11 zU{#bjZRzKr^iCa@{l$9IZW6r-SC90j6RAy+-t>7oGo?4}JKr6bm)a8f<$nXpqqUT* z-o#VxE~eaw&PbLvkhrRjmx1yL>~R2KukNzN4Ls;Y|{%+VIudyEus>p47`$ z;%F*CN9vh`i6nwCGj@jc7xBC5#TnTq3FSVGXI;ptgWZqr_R~a?gt!DPmV`blk%Vyd zND^A%5vh#v8quW$f@kPA%Su8%mP``jDYp_+u0m&~C>LreSxJbeJWNcvZ9w^omXei( zc*;}6loJBVH?@?kB*ar*C8j(*p!|oHl9hyb%E!c%*9VjzC@FbK2xAht1pFSp3*Ul& zz<#g+`Uv+)9BD~t=;ZCj)NJ#kDnUHu{bI@=2b5cBDOn|mr~I3k^5KATJ1r%v1o4zZs4dax`DZ}6lai8Gf-okL zOu+BqyYMae2kZwMppS5$#F18l)|fnM^bR$Xg7%`jG%3i-jC<%cv2o56CIvZn%u@== zrAoxgg9;l}=3;LXgL1dGi9zp$ss3Fe6N7S}#+P9+ zXm3A1Y#ZjpAT~3L)u25kY7nj;sX^bRRz>;j3_3HV22K2(J1&V=j2h%)$*Z_Tm`y`IE8njxI(}HHrXq+;+v8AAHP;sYbXR|{UF-T6k3L_ z3E2MBwm)@gf9l*_#N?*j^AwYta+I6Oy~JBjb%p8*g|^k2nrF^#o!Bz1apu&CElnp* zZI7NU!S2*9d9+WQ`8xy_W~{cYJY#limpv<*()JwcOiZwKRkiO4_n4H_HaKnOx*4`M z>$ZG*}gzy`SZ)Ic-BGZyD(*owDtUeVq$64Qy!G zcWsGmi%Ump%K~apB;wsdXQt$_w;y-MjBL9!ESYS}Q!YYAG+1Q(hvbJSCtUtfged zW!~cVi79^)P<~8Hi3wBYm#>Q{9}Fl*C@H%naGJX2y15=@Q<&eNa9|F>Jb-bEv4*h# ze}=!oXJAv<1^tG5C$_XKKDcSrcD2#PH=(;WUAzdo_~yEgM&i0R^{i@Qv5LVGgE{ZW6P^0S1$GvP<9SA2!WcGFwhZh8pOD;Uu9@A}lg z6J%W#j9Y+pDw|F_r&ANW>uZH6$zAZ?)Yop>R(FDTq>#jl_c{{A8`q8$?>W?>NJ~D5 z&P=JaXFlnU%PQVJmQ3;HDK8UKo*Yn~t)*lYZ=Q0#nDVNC@;ogit9bL2?}#ZM4=8`6 zrDPRvo^mL)CGyLE29%d;DOtsvr~H(dayXrt8a>x(DOtsvr<@?B+$o^ENlVEp-aO^k z#FR${l)q3?@`^X+H)t1_Log3uoMNnDEWn@PZ}1t|6m~(s;ogbOSG>0wT^q&wKDujD zyo;cCKj=)+rLLwI!0pSiE|<#o<=Cv1;A>x58WvqPF~!>y?~>x3yNj6OZHl)k-pT83 z@-L_Mh`&(LV>P9TDc+eRn!?n6C#HDkJ{9-e=rqMU)9CCugPG!8X9mk%@xI^JZlHKa z3Q4SZuPaf!aqUR)UhOHVviMhGOKEl+{@xvzRlI#Hnc~e;ep*bqCY_n0+(b*sD&9Qh zWHIHg0p-?ON>=gaDd&kPn*z%1wUn&l%~ReWrfdr+ch*v}iZ@UBw3zaifN~ElC98Pz zl<$ivpA9JY(^9gEH%~d7+7hjCd>BxEPD#lt-k9H@U0@EuJb-bEv4*h#e}=!oXJAv< z1^tG5C$_ZWz1lSQmF!w|6S!A$V3GlS(Wcz@ZKZfH-FNFa&z?)4;kH!dCN-PclsB9-ZMIy0pt-}$sVE~|I@ zSTenvr+h|C`LlrXJ}o7yck`4Vi7B5CC?D2RvU)d9xe>J`vUp!QGiC87wUn&h%~S3z zru;-e`J9%L)w_AhW-;aXfbu0RC98Myl;0Io9ve`;uBBx4Zl3ZMF=cx|`IeHB*Sj&l zLAt;kvLvsimN3>Z7U0kDH~0)}3cH}+aPP$C>D@=wNbi21P)zUkbk!dE=G%wP6kXb? z>D@KayBBvUBu)KkcYwA$z6Wogd@F1=oQJthhtA#H#ZkIUhtA#DJtv%)4xLFjDbDCL z9eNoaou)%)8l62ioth3^X9mk%hyH-ng_5{SI&>sl#5(i{i4KiRM>_Pb&$tFfs^kbd zGo?x%_y-TQ>ywD3y|sNTnGVfUHi;?s3MdcLQnETUPx)Oj<&1#x%UViShvq477gL@e zP)^lSvN|+Rxll~`%YbsamXg(>dCKLeEz#)tb3oamrDSzzo^oR`Wj{JIHO5cWQnETU zPr0|4a%4bxs*;k|p)tQfy1*QQc>v=SV+~^g{tSPE&%maz3;GTBPHdhIJ*7rE^tb7z zO@}Um4*eZx3e%yTJJxV(?MR32KV`=3NzWYAIPIny1{D z+7k6;Uph0@m;cmKvPv{hxv!XVvw-qHT1r-l<|${2DaQwt4bLh4l2xL4%JamOa{|g0 zw3Mt8%~SqDOnG5IxvG|uRib&yg<{G(1Ijg&l)Ms+`3=$q<`B#S7^fI(7z^-c_#1o% zHicc#Z@712ODoZXCvP{VHd}yPCH%83clnUs^_j7}4xm*LTALUg9l*>lsW3DI?Cu-t{{^?gl+_M(oJ zi&%-?K%zwB+L037L@kQc)4k}-lzMvn0(V?iiT1H%N;FUTT`}d1fbtYAC96d9l)n&D zo*z(tQ%lJz(LCi#V#<30%CoeTtP;&rE>CTV{PNEMWxJM=Rib&yO~sT0>CDvV`GJ;_ zRib&y{l%191e8D4QnE@kPdQUed0;?!jgpdAqA|ZgyTBZRc>v=SV+~^g{tSPE&%maz z3;GTBPHbrE=J$t%PMU{ofsX9 z7qJ?>p+t?w#UnNPBWhBl`aMr)ru4LxpLfS))o33}rbhFW8~;&C*_X~tQLe6~WYuV% za(^-9W&!1JEhVc)^OP-O%FhLq8)zw6HJYcqKukF&pd6{CWYuV%@@_HZ#R273T1r-p z<|+Rqro1AYNb&!90L*im`^V0Dp$R!DnDo z*aiKDdndNE8ogSRuSL&nPj2hn6nA7YuAl3J+ud;zP1FyT&YDjr>_sz zrbRn$wfq?S6T1r+v zp-? zP+qU3LB;$ zJoo1?_a{ypnG7eLb)C}j2s(bcGejGiJWFd73rfce-CxHiFVMf%MkRi`c9(j$c9;5) zE>&1xF<~PpU*bffr|VnlQNxk4_UNGmXxkn@)2VChzc- z0NQ3C&b(t~^3xJ!64#ED$>m>gk*G+gdWqOl3edmkH_IxMK9)?GaGRaf^R!n(y zK)I%tl2s;o%D;*!9|K6!OLC&wnQ;pgl4 zxyb!w7swNpAep<1m>`*Z7F-<3!vx9Pjoot@v7KFGynMK$3~ki4leo0567@!Bb#KSOdL5-WfkK&9@(<7JR(P?^QrqS7R(`oK{ zKUz%N{BtNBUSYIg+OwL~V&E z-wY`KsHJ4(NS<h|)sg;K|#Ksm=S%&r=(w6c#}#e9@W0ltSl@c`Ai@RG67iSlDbO z4|AJNn7g@)qePfan7griF0nP8Fq0BdoY84I;W9irO()DWI(u$9&0Qy4NXcqRe4~93 z<3uLR>o%3O9b$wI~v|`qG&x*=X=<9xEdh`dBidkf+>VOu1P=`7tdeD-`mS zv&EF33n)iuDOsVAr~HAK@}z+B6Ix1EDC8-BEvCFUpxi=B$qI!$=^AdJA_!yDH0Nnp)*rr z;YqK%UZ8&IC6rDVlIp7JFzZmp`3pAiXOk#S~S1 zi`bogpkt=rI>`Mw&;2>f{n_!Qli_qb>y(a1(DBoy3FBFsD;AWF7rMWWPhOyZt&K63 z!SAKy?jl>8i;PcRAy1rkeRW^wDat2xa(9s<%tZ>~B8xjG&!ppnY2jB^#+GK^-D&o% z{Qa~rR6E^_T@YhujVjKY=M3KwZ08bHT*@_IQAI;#-K;2&jQcnXmIBY}XN^a=3kEJ> z!DEIXgWuUGoc60X*!}c$2q%e(2Ac{!IeD||F|^42Z9+SJuM^&r5{Z813ma{#Ox`jr zBsgcd%l&S$V_)~9X<$Rcz6S&nD{_}mZopL|xnVK2B@*18r885M|5@aY8HsgiSdqkv z@L5LrNoq?(xg4FDqHOq!k`fV|jPhVHu4!43&|+|A*OsXpxj7F*(I^kq%gOAWP+IqGY3XLMkhuX zMgY7RUItHDVo7>DqPK9zMC3`V?mJmpiFFIQOOsfOAhB-kOwkp1r=O|G;8J=v)ctjW zb0*WzUUzZ8yrl;g2|}Q($x!Z}q&A7QC

ibrF+T%|$xbNS5e!NvOJ+#A+^5!9`4% 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%0DSMz)UL)qa-lF4l(Gs+V~&WKpv-nD(+IbT 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/absgrad.doctree b/master/doctrees/functionlib/dsplib/absgrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c70bb91f9d72ebdb7865cee2c963c07d74e14b20 GIT binary patch literal 23911 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 T^w6`5?h(QYCTO2u%a8sa_K#>; literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/activation.doctree b/master/doctrees/functionlib/dsplib/activation.doctree index 80c1aff8c548b4c5311580234ceda587ba3d85de..afedab4d934a66e86e4a7d89c0f658c8abf211e2 100644 GIT binary patch delta 512 zcmbRDUu^Rau??b}j6IXZIE#d1;>!|qYBhBfVoFjgN~&`cD`Ga!F)>^UKrne@pyA|zKn2FC$%TO?jCPZCgWM*+ z3uK4!H|qw;F)~I>_6a`2WM?}$Hd=hLZMeebpb%~*#+JzsQzRzW25Nw07KQ~e7Edk= zHv(}q!`+cN4x68a&thV1oZJ|76DYkoHu@$L*K<8Rh1|rF3@fY2i2{}oBSa^cMC(sJ z5LduhKG`r{2PF6~-irh3XPDULhw(ZK1hcX^85lGhr%YvFU}OM+>4D!FmA5)FUi~i! z6t113k--X=o9y^PcB>21{r}T9Y+z*JoXQH*qu9hGyw#cc)&J=Rs*D_*QyF0r8zULT nw}!Gj{4WGDNe&q33R6Gt23y21IdPl()^yg+-P42jvw8ynN71KC delta 1230 zcmc(dPfQa*6vjKHrP&q?HKAx4VbX(8OP6T8hy=kX##E|Bfhf?jl%dmhyGwSr1QgO> zLNungx1@<0p%*w96SVdsiQYVUz=H=b;-8ohPu|pMQn!m0P>6{!aW0$p?VIo0_j{ZB z?6^~KELAh;1~?eW9vb8LDR(38SID?>CBcp7ZZUNT`C&f37lP$BSheon_gmAtU{$GQ zK!q&c0|~~7cj(fas3YA998+*Ps3)&yc-6Fdrz zqH*BtEpRQ^1f6yp%!jO7l^h;?KgY}(49HMCnf6b}lRtu96fCnQUCRV&P<_6|xLROl z(T^@T__!v2wCsZ>l`cYHp)TKPdZS69C%Tm(bHCN-&JUWeFQ*zPlinpy$O=h>5=54{ z2vI?GPpeaE12xm~;?5{rs?(BR#FEGpOaw)mz$2oBUBz)-I4aH(7F?{gTaF5;2tFx9_^3?r2*>k7TsW?q>KW_KZ0VQy z*V)Br&!4hq)FKM%jJ?akb9*hU)R&u_vDaB>e^7VK%#$&~t3H%ADHEeaO`A^pJI-nk zJ}MB^=Sr8$Vp0kdm3or2A@(Y3FlbKQ+Cq~!>?E4P0rL}ng diff --git a/master/doctrees/functionlib/dsplib/activation_grad.doctree b/master/doctrees/functionlib/dsplib/activation_grad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3caaa9f59044ae32475f38a59a8464bc0ac3e007 GIT binary patch literal 108338 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 o_XB_k=FlZ|15?Tp*1JV2q%mx*B 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 F{Xd%PNi+Ze literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/adam.doctree b/master/doctrees/functionlib/dsplib/adam.doctree new file mode 100644 index 0000000000000000000000000000000000000000..29f1f51771c6e3d382b0b327a7825ec5d0e0abd1 GIT binary patch literal 34082 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 delta 33 pcmex-iRtAfCYA=)sc{=w)@Lw#3np&fozZE|?9HFJ*=K<|CjjoP46pzI diff --git a/master/doctrees/functionlib/dsplib/addfusion.doctree b/master/doctrees/functionlib/dsplib/addfusion.doctree new file mode 100644 index 0000000000000000000000000000000000000000..17493b65c9b96b4ab5787111e27bbbbecfb26ee9 GIT binary patch literal 200888 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 LXYpEh>-7H*cVz8G literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/addgrad.doctree b/master/doctrees/functionlib/dsplib/addgrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..49fc4873c794e50eea6210bfee95ceb48c8130b6 GIT binary patch literal 31625 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 Od4#giUea$s2mcogj%u<1 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/addn.doctree b/master/doctrees/functionlib/dsplib/addn.doctree new file mode 100644 index 0000000000000000000000000000000000000000..81375bbf24a7d64f822da384e08ca84ea1332faf GIT binary patch literal 63948 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 Kq3kt~tN%a7hid!) literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/all.doctree b/master/doctrees/functionlib/dsplib/all.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5b5841d36643f54a5e2864759f2b4880cb6f1c05 GIT binary patch literal 73043 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 XmSOQc#zLz%!}739S!}&g8yWg9d=#jm literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/allgather.doctree b/master/doctrees/functionlib/dsplib/allgather.doctree new file mode 100644 index 0000000000000000000000000000000000000000..913a20ed2da4365ff85d46dbdad451a19f82feab GIT binary patch literal 71278 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�T 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/applymomentum.doctree b/master/doctrees/functionlib/dsplib/applymomentum.doctree index 9439431a504b197f8a25ceb1dd23c677a43f5b3a..797e0150fd1d293fe642c9ede177aabcf89632ef 100644 GIT binary patch delta 44 ycmZpl#WZmi6KezORJPuYtS#Xj8s7Zg0^WkDn|s1Tb$~oxZ$5AS)Xh(tl{o<~xeYe} delta 34 qcmbO@i>ZAU6KezO)IU8NSzE%Hz4;S2PYe&$VfN-t-2ARtnG*ouT?}sk diff --git a/master/doctrees/functionlib/dsplib/argmax.doctree b/master/doctrees/functionlib/dsplib/argmax.doctree new file mode 100644 index 0000000000000000000000000000000000000000..88bf7022f9f9fed3b66acfdcc250735202808040 GIT binary patch literal 49303 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/argmin.doctree b/master/doctrees/functionlib/dsplib/argmin.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8781de04f5b409f829d3748a81d1bf614c3acfbb GIT binary patch literal 48921 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 UAny$>V0eVFs_V&^Um0Bfe;h57Pyhe` literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/assign.doctree b/master/doctrees/functionlib/dsplib/assign.doctree new file mode 100644 index 0000000000000000000000000000000000000000..be5051f2198aa19260c051e2eebb51e0198d8623 GIT binary patch literal 57682 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/assignadd.doctree b/master/doctrees/functionlib/dsplib/assignadd.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2e9bc46584b82fbc24289d7758bd718750140ac4 GIT binary patch literal 59640 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 KqH#bz-v573pyA~J literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/batchnormgrad.doctree b/master/doctrees/functionlib/dsplib/batchnormgrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..efd9364670d744e4250a9d00662e8019df97c4a3 GIT binary patch literal 46529 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%0ALW{bm7}f@eACae)yxhv`-|3x%uXyGd*Z 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 SMEf%|o{6rX=54jn4gVkIC&nBA literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/binarycrossentropygrad.doctree b/master/doctrees/functionlib/dsplib/binarycrossentropygrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e38d08d3bf299238563963257fbe2ff45b68f427 GIT binary patch literal 38119 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

sMkt@@BfaQ6Si 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/ceil.doctree b/master/doctrees/functionlib/dsplib/ceil.doctree new file mode 100644 index 0000000000000000000000000000000000000000..61385e1fdfe67ef0e803366470882e55edfc6aa1 GIT binary patch literal 26986 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/clip.doctree b/master/doctrees/functionlib/dsplib/clip.doctree new file mode 100644 index 0000000000000000000000000000000000000000..85ce06c4328572bfbb923ad3355638c0c80d6592 GIT binary patch literal 59173 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 K))9@ViT?wZ)*M{` literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/concat.doctree b/master/doctrees/functionlib/dsplib/concat.doctree new file mode 100644 index 0000000000000000000000000000000000000000..604c379353da539a62beec1f6903a5bbe0339a72 GIT binary patch literal 89253 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 RF*oW?vzRNxlOO;?{~yE5NAdsw literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/conv2d.doctree b/master/doctrees/functionlib/dsplib/conv2d.doctree index e51c7ef12aafd02259c9220216465982d80b801f..56560bb7363e0ef16ecc313dcd84d9ff0c804de1 100644 GIT binary patch delta 172 zcmex+h`IAHGfM;O)Vhr3u)^N7oBP7$$XWQ>`-P*fa9?hri$V{e`)CdMje zVU?R$l3|sg5mS;{QBs|qT9lWX16HjZ6JMNJm0BBZ7^|5uC4)V7N`_dE0j4^jdE7F; g8N(*Wipj#vo;*=ZffJ_3Z!({(7))mKMA4HdGfM;O)S`_nb|Nf$m>3u)3y8~YP7$$XoP1DPeDW^QLtuKYto-IJV&7Rr z&8%`0OERnyG-66pD@v-fQ;YIab3jTIJ_|WU$9h$q?(&!%#I@Smrll b$mDo2S(ve0aMeDO^JK+9!kg#HzBvp4APG4r diff --git a/master/doctrees/functionlib/dsplib/cos.doctree b/master/doctrees/functionlib/dsplib/cos.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ca9d34bbcc022ab891068f19c71960b2792d5c54 GIT binary patch literal 45069 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 y2israRM*kl`YzM^v literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/cumsum.doctree b/master/doctrees/functionlib/dsplib/cumsum.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5df0cebbf4111c2013c1d37099a861a009480320 GIT binary patch literal 85171 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/customnormalize.doctree b/master/doctrees/functionlib/dsplib/customnormalize.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0fbb7dc8b7552a6777a0d0b2d7402514f65ba387 GIT binary patch literal 24698 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/custompredict.doctree b/master/doctrees/functionlib/dsplib/custompredict.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d7ad419bdaef1220b94c8d5245592f988817a870 GIT binary patch literal 21479 zcmeHP3veCPdA5-yS+X9M9}2-h?~sJb!jc?H!L>_BFr|Qqn@MPgb_Q0fdso_B-Fx@; z?p|A_Lt=v;(r|bLFN7EaP6{c6+CZC7unkN~GxU|VY1(OL+R03c?v+hw=rox=GSg|l z^W4W>t=3qCnGT-u)!nn_{QrOc??3-J=l{<=ds-j*=g%!;|46S}F|G3SuwE#Xor2-| zWM#q0*Gfj&^AGtO_xgAG1Eiy>?{b}5HE;N28EWKBt5~QSW&bvx^w8>_Rdk0%`*zpJ zdzMpH&COP`&1}ETA22&et7mydBlL=NZ?CzYQ~FHRC|G&Vrxj6e#Vy7(6(Ih4zfUD1 zZ518tQM=C_*GZ@Dc~xt?=0SWaZi`iLsc7x_qVBpV#P`;+UgFNa>1=QRYP+v5Gc}S zBlz!*@FpV@wKCI5(Hb8?P5LL#x?SPj9T&uru9!TDpa;#E-}H;Q<3 z`n5+-e}y#ed$4}u{`!Mt{@A0a_0B0Wck-!u|B1%T1C1kl=1~RNw#9JEsnJ4&??1 zt#YO24G!jpa${pRQ{~=Ro^Zy-a!g_S=3Y6}c?_q(2{BNjeme(xyWt%G_>R%-n7e=GF#tyN;P!XJADk+u^6^n+quoZSt z`;40&+55iR8duXWp8+szCZr2*bG@olo(y%CbSP=1a$DI*@s(mriz#*r3N@k7e$s-` z6*M$m>I~b97@JkS7-rfX8G@2=hZ>dvjlGL8|AJ!viE|su0Z%IT9;rOip~kqBvz3kc zp#GukGOkPV69J_t=gzS)=|CjwHeL|4cq%*Z7L2l>Ay^riymLDgT&OML%E!gnqLnq6 zLSCuwa$#R*;q`cD1M~ehH{YV7*%PHHmD9-#moWs{0(2bAB) zs=<}u@OoAa(#lZ{-Z(h8L{mUqv2P_PHq1&XHYg0b|4tUgzReW74T^oY(^kOn?X3Fl zfC^7%)i<8mP~kKKLd;JuWL+#tj$2?M%O$;y_w2Twp&Wjspy0Mkka5{4DWG2`2`G{ zvjsR{N6BOzJUw8$kFm|>)oA^_T+CqYbc52zQdm~V%l+yS5f&C3xV*k5!V<#n$QTKf z`T|pGx{@e{$GCF($(6|%E;hOXj+9bX7!gadpJANSC6tpBtIE6x-jEjN;wd+K2cO5 zX|R0@^+*cY#=96;#7{HGhJB{}A6%w>vb-~BOba6$#*pF^N3O}BQP+8kYa`&8j<5`) zt$~C;W)h~`s9RipZZI5`7s#K(Js;hvIi)#kf#xpR^;tQ?*#iW&o)dt2~Lk5&5}D+C*~^r{12E z*%gdTpY-L2V|9G9ZHMRURI>-ELWD-m!5!wN9k94%WCfBq`6k&0@TP~p;aMH8R*krx zFYR=!LN3N@K!qQ3gEh0*jiXPmYgi)3pHL*tauQ(m$l*>cV16z z2sd&gSVq=HMMnf0$)z9JhX#d>wp@O=A!L6fwX zoB}h19i)Th<;6o+ek)Jr(_!wD^Tl}t&cYqe4{Pr3(zsIu$(tQ#s#Y0AH8CvUxOGpb z>HYQ1&2*Yl@BY;1Zn-fKOAaTpf^oP1o=Vnbxtd;f%DYQW&Glz%<4JSK0bh5=seS$z znqVgU3Dc8(5`PpV$u41IO9BLMpj{IL!Y6RjFb5>4`Q)Qj==p(~9y?Y+mWvr5n~A}| z2mMk4L$bWmJczGC#h@z@>k|1pVOg7RY~+L^};~K|2C@EQTpC zkCiG-Enkr^d8C2PSuQE)%+m(@kR-Sl_Ourybs!Duel*Ai^*|EoG^hpX2ppZUj$x}D zE>b{TnZzs&2+nLtf#~O>FTMdx0wjI>{aR9I(m)x_49aauq|-nVq$8j-C#S_QX?~#q zno44v1`ubwqyTl(sZj02lW7e|9dVW^ ze}+>0T~H*e`Obv%6&t03fgMm)_nfK^j!#g=k;p?3h_oMOi&7kX#j$2=t9{Z*H`mU% zjYHOcWKV6MgzjhAZie-g#d~H*r{+0%+F{T2H{wJyePWv*vyIC57-i0n&|Uyp4hvaW z^rMUIKk`o53!es;M`+Uye%XHmSwiGwtSzd_0ecN*RI*aW@1p%7ZDO0rYqg`#OnvtE zL7N8_!p~)Ah=&+wNqgCmUwdTn5Dh2p_Mso~Qa<;ghUlWJD)p8fStjdIN|c{#cpkRs z*e61Jk4WffOi{)YgE%ct;A}tr{M|SMJOAW~xmS^lINThh{Sj3a57MrV*A6yy|At!e zjeK}t4rxppp?w?m()RDPo{W57C_|w@yMuI#GnU$T(aBHAE%t!fdh06m@*`F`U#u03 z+%LOc!E%PpPjsrHOCph}Ve^tsY*xG+jS&oN%>7Ph4*%jYkKEO{aI|LQ=IKvu=Kr?k zMn-tN6rZ{4uKO%&-?Yh~1Xv-OUaOi?Ryj&QOzUhv5~h>1fTg5FIf!i!5eo?MNmo)* zBC+@li|c~O$2V_g!q@j6JbnCCoPSo;f<*?awvD|=p3PBV^YAZD@G6n{gua=cz#G;& zqI1oKE^xq`#)9cNZ+bd>Q$z>qiFZUjvcPhDMX@QE#5M|cRRi(wa&Ggs&O61b{sXgs zqCYT;z%0}vptUvKSA`~J9PBO|WykerNb7_{e_%9ARu=X0WKEwmeD3*sO#Hy5NPpy_ zA)rWq;zL%NMK+<*pY4qH=q~leE#N9-UYg?#{dgcDYjzDM;CE#h;%w4owvUGKR9PiMs;sg|s?7d!lSBjdZ99Ey5}UMLLIRt=4C_0VW`c2HP(_m%iB+%#Zz@;5 z#ZHnkZG$m^2Jyi+VAmn2-M~k52^|SOi%e8PH~%%m(TZJD;PEe4QN3-0(46d zpIInNvpb1T8q%E4k|KRhS(+~nPfHQ9YFXA_~91Z4C&+Vk`Xz5Op>$znA2oAle- zc6`jKZ*_c|wHxeno_(HXpJ&+TTkP|P^pird6p{1~gTGkrrbN;=pjMVh`iD?2zHtmM zcxiM;M$)&0qBbi4iNxX7H}P8v6(@hsLgxrPvwzXh`OTNB__GY6@Njr2a!y;)|J!)r zJSlQ6$SfW>r*tkCw2}hnAfyBeLO)9$H&2L;SC%w7o)QxO0PY|l{{IO< zowe`_Gxj=s&f4qo$sK1uzTN5D=i?7T+1*W{?5%-k30yPjj%0suvJ=w@^-aw$LRTfx zAHBDPrX}1n6--N#g1lQv-F9VOM%H;%z3dj*@l&l*btZ9Mo8Pq6>Ny^6Wf@&YI%OTB zfX5njj>}0;zE-98bZO$|tR19Fmay#f4jdKd=~Uc1)~7BKo51}tNI4g9&)0A0#TtGC zqR#EM@zAfo!|cU5;z^^7TVZG#9S=APY`C6Ys^DQ&)p0zCid&$jaZGu{C#$#!G;1)0 z3Z3GyRxRSGn^tK;*FB|Ct2>nA-LoK3Q8eaQ3F46%2Ze9-Qc}hjx%Q zWb!9)aso=Ra72UKgxN-V^qS{rK@m9*KPDmFg<7eiDXWBTSpl*RMin=^QG&g!gxNba zfS{=28nuF>;inC#wc41jIIf|ETQWn*d)iLRwYb&xY6Z*H$BPE~BBX4WqXi?c3!QOs z+<>3_hT({6+Jsd^=P=;=={GRJ4=C7eXGWP)D**LXxU^4`kE6>;A02Wqp7JDYv1pYn z&;Ru5pC>&PqoP461_o-LDGa|tsKDSMI~^V5eADwP?$(hJ6uZNf-Ja=`hn?yq2Gx36 zlL>&D8g5SmLil|qe$io6hCa6W3h1+^I+2f&rzHXTOC@=Fl%HDdlu;eF3~z$*pcm~5me8@q|OoeETpCKSoNv}R+_ZbRLFbnH(@)oXy zQ?6kR^%ZVyJXXyrA-xG+Iv+ybsOL#qu3V=_4GotK+ zRb3Y=RJA)I6gwnW)@V(HK0I*M^D&s#$7zW-ms+eKAN*u?54NX!vfLrL``-GdIb9`-l`2PTU CZQM%$ literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/deconvgradfilter.doctree b/master/doctrees/functionlib/dsplib/deconvgradfilter.doctree new file mode 100644 index 0000000000000000000000000000000000000000..b19b629df8820cff7b41955320393e25711c9f76 GIT binary patch literal 32771 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

Xl(jV$ zfV$v$-eI8_d?*!(y!J}5$~LaEPxFp)%jrTTpJwYHsZzN(TDB@|zq&rJ%`Lj=d~M|+ zUY9CkW#P2S21hzdW6*QJ#I0R8ct`{vAfWWHfV2oL(My41Yin9*9zU-;`LOl zjLUYO9EWZF#$bEDITg2@E3u6z$Dm>b0FM(_th~jqq}JzLJC(_&D;4Mn$deWP3*BX_ zR4luxymg%gsyx)|g2?8dwt4fc@f>K-O}o{KD%9q+Wv$`rDB#UmpDq_bgHQst;v9o3 zonVTL#k$1W$A2o5vI?1E7E0B;&Z;}IXxXAl4vvr4Z>FqrxmZrw=|VPdl|lQgsTsHC z%@xUZ2&Ijq)Vzg}I}r%yq=oQi^Em=HXoISKynZ86**l!|0sO9FgNpLdryA_4DmPIC zjc4J!?Rq=4Vol9EvTVWLoY_>?DuLsGq#Rdvd!|?zfu4d=a#`gQcDpwxU3H78;F5P} z4!o@=TOBKU*W#a93Z$b|(U9OT7UOP9H%~jIFc?Kg4Ji2)9b-n;&kNL4vPvl!C>9LT3|Ck; zyE2@HwzJXU9c{aAsdCQXAY862E^Tn_VqtNyJPLzqJ}b!^03}nd1sk!#AcQ?E;rgNv z4J`$I&MA*%BJk`=0Dp>thw+_s}O3htCm0nEHJ=&unYPZkzfM6rt1`&ifkA1AVpf9r&gx7f!vNW`4&>|=2ce4NQX*dEjl z+ojrJJJUF9?;8HbVTZkwn7>KNVegu9*w2a`_QPX`{ocS~zesS{*Nz!nQDm7=%bg6e}AXBW? zuB|P+xOPEpfzwe=om(jlm3uQarwwZKW^;vfIa92ytvS8>Q{fNWv6Ek$WC!Ol3xF_dpHx_ZlAI=TN=nLJ@35i(vwu2mJZ~K>B?ZKoJm%4 z08miPmcsv)rKZW!zM-OyLm}6*6l$t}2259%lq=PmGog?xW@@X)5A{H=JD_tZ2*Y4D z7@OLT&wXb5=RUdfqN_$O-LUdpc*51(;k4S(2Rt zsga!rd6j_w-vs|34FAsu+OrF?i?dzX!?KH3w=3GS3$uG@B02|B)oik-Q0iS5WFr0H zDx~H4>EUG;By)-568Lew`t;#y4$=&Z-ccMJsxF7(&Q7<9`c$`x!gVA2+8Fa9^=2+o z&LqfbJwBW_L}xUN&f?HOPo`X375D9f@xz2Nd(7<8|PgG??v`hF0#QKoJw~8i*JW{ z5$25L@7lg;maJ3o2%_S)TBAOA$+?BV5SCq_2kw)65Uw}0h}FaeC*aTkU~UDKmt#j)U8T0 zxnfRjK9YqTtg(I)`8$xkLzR-bYGxo%^Ym-?Xlpam$cvkA>Rg=Y>PoNg>Pjq5Z2Q!m zJ1)O>0>ee|M{hcAH{W$UB=xb4wL&7x_BA`C6vWO%u5VkRZC?r!_!BhX~~{V;c~4d;)L2di(Z&e8hF6GLR}1WH1k184Xh!ss=z*04{&rSWKJ^Q#;I7 z%Cod`O@UZ06w|qZiV26A^B|OZa)OY#Zenj?UkDpCT{qZ0uW#EPxO3-qPi}qkGutj! zQ=#Sydq_5Y=t{P!?p2^+uwT#(%9?Q$X7*}su)w*Bv-U+-1bS&)jcOclmTC+e^-MCI zs-~9d_-uXji;$KhU%pfAB=32A=O@27a?3*_pSs8mi&x#GbG_=YCC>G_{n5*m@xkmS zAs7Z=`xkE?*?b*kuUGA-2U3-F+PiJHJ-Y1^_iVrIV&x95D{z5O&6I-!*6Hv@tGh@9 zO1yREpX*Ig&)`;MCaf7>GkZaQst8OFW-5U-YjV#}p^&LYPc{R4n)4O3B~lv z+ZAPh<6cZntW?XTVt>FlXQBaj12I0m-k()ps2719(DMH19@(rt3+()A zsLuBMmq>@I{2Vy-ytgQy*wxkQ^co6jz7wv7O;mS!W+0Txj2Ftl#v?x+>Iqv^%K3$ezNMtQI70r@?(ef~Pg4K&mb1^UepfmW8FaFmxuL>X-OQTF#(`IW*b zFL$GSRAiLvt(Ja>6__-{dqap9YvZyIL;X;Q-`dsH`WhXM^QqucIGd-347mZH95C+( z;S3!FzEdz;urfI)NqF#ru}p^)7+8Meo`37c^??5YZMX z?2Bv?+y^@KJ{>+j%IdO=L6lYQ+^Rc2DtA<| zFn7Kvu%vRwvlPx9%2q_~e6vwoq1=hs7yDr|zQ}TCHgxJ{9X?s^K>bke9M#p;;N6a`Q^AdJ0B4Q@cLO=qy5#jce}?Wn-xrTV4Iursba@W0{ z%6~wckY(cj5a0J{Q@l%VCPMwu@x{f4jBntoH*~!nj_-PKgNSbk+>5VO?#K5+-Fdz< zD!%9IPLGN&cSI|?y9FtikmzS-h~t47jj9sove(MEV@+-O4mP&AKr2W-?`nmg|D zX0Om)ns8jd0gi;@x)%ZO#&&w>-jW}JZ|M;5T~hIVMt6Nw&N420IjfpVqdW&peNCI< zU2>xg^+!k949}=22ZmXlDDMDAh$xSO_o5v7iy!6R>Jac5x;G8O**g{PrHA7>%?5Ns+UZ;Iqd5!O*V{L#XikTE zdSfsT<^<+0rH`yyNP{>JEKJrGWI=@bOc3kdN(~3G8%%RS4BVvhgBaNA9;v&^yRL$` zQg;zjQXE9pLK?(3f`w(;0`G~NiBLZj#N)fVTDid-4(kWOnQ&Mq2TZt$ISGyWx$|M& zZN3{Spl9grLO@rj-BpA4!+moKMjGV=m_1FK<=u0m4D~}%p4-(`?=F1SyBF=u;cDv$ zF39?~RN=ZXfb9mj!z=Uqe2Fl`7rG&y4j~SHU*JQjD$?*B2;n=gf$%|n6~5?Qurtwo zNl#0yC5*yden8U4Por>;}H1u61oiYDMZ&JC9A?+Qximg_Z)vW;zGBz2AH}Y*DP#8#0Ng`&i0`<&&Zzo^-Dv#$ zKLP#uyHpOqbmmT!Dlfh%$Rl^IRQ1iY5N##c=Q=#mbk`sI+4_Fw`=AcE*kfFr?TqX6 z+pEG#Pre`iac5^I5K7OkiLKx6Jl&4XGTSasyE{EC06&x3PZm1srj@F1LeJy7t1wXI zrWN1d@xZd}%TOm2OI1q*w|H^FFp@AC);GAK8&+l$Ew60(5sMP)FD9DIGB|S-m}%mr zQT{#%j#}nm`$|;y()WS-^mt0!MG(V#1Tl9f4ORc2bp5~rzAxKl-~X@s{zo?Pdhv7v zy;uxhJ=H)jRDIKn=tQ8WKGpx*>s!j-rn+jx%!fhRxmo1J!r8a0Yvj_0w?2N~$OAWw zTynS3e8NpC!@0N6Lq*A&_nZ3Od)cux;Ch?W4p&{7;lLz?Te~Pl zw=)Tz4JhZd+IvxH!9jBDBU-nlyF7NptFOA7kZZjE7Y1&oy&JxSIj59M!_f4d zS2k`L1wu6aM$4riLF~uX!Mn2^YXB3rE*&8Hgi9!fhKU z)zO7s1bp|Sn+V*P^Sb5*+(b9w-ZCMhtMYaqH@wMpnf2$E%IRcv{a`S_&IFaahKUY|^QT^#N8TaDLmfq%lc2o^Yd z!t+Lp%@Y}WD!268OfcNp_hsL&=CI?L&d<_4QcoQXWMDrSl1ra{AWT_ih8i0~^~aFO zUoV(}*~#f}hwyrxOAGRIffR28+^+xXW;lNG@+AjV!>eq5ArwXpt_=Kbs3*T9Xo4O< z=Tgu|Q_whq3^dFapr1GETyju7;5L*BJ?rO;^Td4c&g;wNgh6NA;ON}H6e_|zfn9kU zeDb2D)U3EY2?|^D*Av+J_d?;QIN`uD;L+PL_2^P&0G`F$=nkb`<5d#=fdHrBAI~e7 zVNjRo+d_>n{2%}|#PEH_0Rh8brJy;65&E(~-}0N_14cYZ=D$$b*FfQ@fFqlTZL^61 zgA0t{Lp}MQQs5k$20U&y%{5d*X-lVmHa-Jh}DKwA~dIAN_5sJ_f zLQkQvIYJTJBGeKF;~Zd>c~SZ>WsalRn2VL-z_z_HiiarYIf_354P+E=prAR55n4j= z)f6^IF=E>khoc5l@#J8cNAagAa~#FSTuc;C)1%nC%599`FH^2_1b+b<$OwLhg60TD zXbHhTqOduF5!)g-pt!{m94PU~eV#JKk!wuFL~e&7*XTis?NjvJ{9lyU9IyWu8pwE^ zG>KRcIbIRkialyvG45f->pqkTF6PEWOfjDoTo%opipB=j63Trp_+8LI7W`u=XfF5& zEg4krq_DX`h1eFcAJyFM30UeERa*}Qjh2xDU%%0#$-%Hn~iSZK4W9!`SXtF zXM<}dLQ80#L1A+=Beq5JC}A{GJ*wQJdoE>`quZE`m2NZHG)eanR0lY^yP<)M?zd9V z+^9xq3El6busOOB+oqd}98BNS!{r{`Ny;oow=o+N-JR}z;%06m4pXjkL|37KjOfcK zXpU%vmJnT|usNa;+ag*^?QksHvb)bv@EoBAK6XNzxRdxeH){{(a=D~^1CQ# zZuBCwgyj!W*c{7<9l^2*oW*kBp_G2g7{{_P78A=;^j_M1utTjLp)Y!(?>k*YInI&$ zzo3DP+)q%@9JvTBA@>#vnl4sG#_RVfXpUEewqhT6N(Q4JDDmR|3(6E1e`BiY_(wNX-<&)9>nj&6*-Coy z2yq-sDWlRg$`o zT9vlZ=}cBjy{fC#N^K#WC9FPaflhX!@^OYTZj_qK!I!D%ixxpm(ZY(}Qn4C5d)Yla znL7?KKdn=T(S>vMigpkeIOBTZ_*GZ`Xm`h%m@W;Za>ZJH4q!QxpvyXX`MK(&))@sq z7fXwcK68^ZsaSH~PIHSFD=p@FIQVr6{?YwB6KY@&D_*7P#gbd*)>BBzUL{klf|9eQ zlV!5YoRVdtBs2e4&}q6-j7B7)`ALB0%*h56nWQ{4SfP$QG(QC(ZC@7TX9mhnKg<<^ z22mGeQ-waG12ylI*bm?RPf>wl7ktmPO3{@1`(?LVUWr5jn%`FzL8DVsCXLh+-~CTf zdK!1N(9?YjuA8@Byq1kB5ve?FMG`0Hd@GFhhV)2pQ8SM}n|8|<#P?BVxCN0g^X5QW zI8%ZHO0WBQYw;ZYci5NOh29dHrkvxJ(6gbzD4Aydbnq{K2E16yhN~w-X(rLHvjY7( z{S8WniTMCZX7kP+Wsv7%*$o?aOO3au8!fZ@1Hs~y!3=!8T^zyE zTI-gOALfIX7ne4g7ncxu5tQk|&njg4>}3}UaMJ=u*cPj~z8oB>uIp9RNxs!u{&E0y zCJmI*dRMW=>CnG-fFGvx9t~R$XsEQ@HD^EkZ3kncvZQxOva)`lr&IvQca=)(h6Yzd zHPk-CqYZE@toqr6eMUD+sUIwudcylpeTVOstC@BtXzTet<(b+KrHZBE`hn6=1(xj| z^@xQvI4`TEDm`j1bP?2tJ<$KsQIcp@AA*{rCMRyzKxoP3(GwIldwFEs4$d<98(`?- z-rUls{tE@p%_zokd;4Z(PLw`%*my;a2=Bh~#ZbrIrC4J?XBhS(Gy=9Y+K=C8cl`Zz z_-7cH5s<$b+KMwje=F3^-wrRjXZbtf-P&6IURC-zcnK%nFQH7fRE?k9VA3J9B}>&Ng8}pwir-UKIA)ENn3!!z+uJdPSe!Xt+o6Gs*L^8y zj#q@1@OlV^&GCxZ7O%hdd8I_X-INWERbwM2R+|;|zLWBrBlKiwAS3j23YsGnp{=0r z3wkJA_ri+aJ_?@;xWSJp;4Le9FQnY(B7dGZ@(u;fMINCgL+K_8n;S}qZLxZW&uWy6 z_b$o~$F8vxE4w&*HzVVHl5(G8_bbpqHm<%)L38XPw1nNCQP>>2h;6ZZbAVktgx(Uk zgR;Z1YwX0tZj0L8wy6y+g0G0Vokl@(+#mX_=;q^xkv8Y?j| z8-rx`1gZnv$UP1k$VTod6g0;!LQB|POJQ^DBDTfu8$tYpt8KJOH&0pO7&ew-W!OwB zO{#P+p*p}Zd?7TDF?6+e*RD`YCA3hhL@8xwJFr zai?ADcTo46Mr;tcj_d;scFVMzsU4G~-Aby@T-qVDB<)V5u(`BDY%A?Xth5Upm~aY( z&aq|CV@kUjX14Pc2Y92c`TO_zM*Gtb4R*`y>(!1)vhOmg&s_E)v?Tj#6gHQAh;3!x zp&(wvofWCU{tRV=OG0C07bT%9!EQbYH#gd!$DqM(nS@``j!Ba6r&OQ0Bt&RQ5^kfg zxg`Ma5EG-VsKehydCpP#570nH>4zw2j#7lS!v4G;c1jkWrEGA4 zH#V9Md~`!4fHT_Zfc|^546Y798|XJY(RY5Fl6j1W7myPjtNyVBiN5?Ke&5LUn)D|=%*LDG1EwkO{ z1xAS-q1VnI2qtxn{F~Ifn}Fc_LEgKA;oYYEA^LT`emzvbF3_(F^=p@URV3^JUG+Tw z5Y6TA!||h))iZ(z@2V;-Ypd0d1&0pVRk&lv>^3g4W%dFH^HJx2Svp z8U!Y{6|x298OjW|zz}9Ewe>W6bn8n*OGD^TH9%1tF7|HmJxjUBtxrFK2I2kr0-5HT z=$)mx9y|J034vt~7Fa@4_aIa}r8V?KCI4XbAE*T2hQfM zb8I5Cgw6L**c_XPZLzr}LXW$a0_WH?;Bm9*-cD|S%^}Kjj?Iri0~wneC}@sNgqE;* zHHFQwiP#pKQ9{>GQ{Wt%20SJUvk zLf2nXRybyjl~|cYnM&hA*FRIvbIkq$8pxP!pV{CtiqH~f_oA>lW)a(Bwyw}ML0RFL zHCAF`wk4tKD#~?^*Okyf#_P!xG&f=qTEgq86gI~zVq3h{5xS-*8yu^~Mog?WD|B5? zdCd_z1Px?_UQR)Cgd(&RbVlfU9fi*Y+~CI)@Ro(H4^ZxNk-tYA`L9sWT;vg2GL*he zVRJ(Xu`N~wLf4;Ab~tv8omknmRhsI1%FwlB^eHaCqul4%eE}NC#?>nnG{-JNOW5t4 zMJ%oyyNGSED-gQwOWEPrHFjcRw?(1rQp$Ob+ryxNjN9WVXpUQimTV5v zLf6wND;%@NN=(egAaot1I>518fCe&lFQlM3b`e^_u0vsS>>{?su1M&5BV~zW*jS2{ z;jl)tp}F~CsskLu4?qJM!%tGs9K#4LVfecgHpehxTMUbYu3IQe9K*&^OboYl0_{tb z>m0Ygg9b8g+x8;XMvhyAmT)_b!sfU|Y>V4S1?d44I>)C$kDbpZ?)j~tT<7>)3Jqj@ zoLDj!(q4_>7chewae%_%!G-@fpYYvsJ1G9Ib=UKt}5&6f{RGLQ819 zio)h-MQn@KdYZ>iQARj+jgei&t}A+M;70wIs2*_aJ`4?H?0$oS=GaAO3A;a_usL=S z+hVt#nD7^r5sqDBBqnxS5EK51a-1XeC1@Zcb;8~auB-?xA$1mo&5?@O7OAY5@QsuO zj!|PFCPrHk6CO!<&QZDo8ptSp8wJgcQ-rp{UPny$e#!1bgbyEM zxkbA#5ka=?)8JMgp(R`WX%sfM)kkb=&lx3xJb(h{hPDBZ-tsw7BFLYZU{a~+X&{?V z%_AD^#|mf=o}ymM)OoaI6{|F|pdLr1U1rYmU(Cp@EFhyD4an zP=vOE&PYlhq42qY8~m68-m;|hdzAZJlPOR*`sOTvT-$+g67yoXbHQAQP>>2h;6Yekd&^X>~QQFJ2A1_ zqNMaal=B?7?}7$0ZqK5iIc^bJ!fk=V=D0;{i`%-A()E-Tj#*>{?su1He)IAw`r*jS2{;g%$&KcqUqG5kGfAY=G>3YudW zp(PCej>6^`Mr?~=k)-smlqHT~V<{$vV>~-`_I|`F%ynchXs}z}%9^enlibScruxjK zAVN!0@GTTJmx73GrC_A;_1zRY$Cg2lJMCJ(gPLu$BN=G0Tc%w~J0?lHk5PT*(hi{| zX?G2U&7~b;TWJ?5(7lyH=hDug$CP&QpPl-6qy70ZG}tY(?+e;7N%sAO>NA&p2rbFJ ztrRwweTZ#kUp*c1?2eY%2-t$(>K4jBrV4jKq|LEy$hEq#WmV^dE!PBo7Gh$w6}j^*l;<3!H$Vd!rT0?M9Hj_tg}sj4`BBOS7kFc%>A*)f zB<0Sd^=NefqUFvvf!f2?2L|NM*TElSkvp#hx$`H{60qEy+}Q<)L+<*=R-mDWqavk(u3YtrQgqCcXlN2_$Wkzgk?-nH+E>PgypfKRkTc=3b@G&NsmTcHP z3D?sNH}DYe$0*M^HZL*`ECDU6dj`ETE}@H&a|gL33;(w1myuC~S^R#J1Sn z5~0U^fCA^(G~jWw>E2FmfX!zp&p9@~1`T9O(~l@>6>ODQWHv&KrS%r-4_ zeLLkmH&jo81~O((qo6rv5n94*FNMu9i`W*kb%m~jlogIyV5lY2!+oD+~CI)@Ro(HuTt)Fk^e7oSU@2rU^(`%~E5P(o~rRe{iTK4phv z*Vu`b-4=wd$5ZZe>>dpbWaH{x6g0;!LQB~F5QWXLi`W*s0-*c`WrZE;&y=z2G0g=5xOiHX@5gsx9f9pKpA3=L%L zevg9Y*hOdwyU$VB9J`2Zu`3d~?xZYn3>!V4S z1?f5po#WG>$IfRH_xv_cu5)~T6dK6*yqbdM_(W(4pSM!j9G{47@fj)2yq`kn_%!G- z@fpY2sZUcq;Anjc8pvqacywe9sHMV&(~8GE}^V(G#hI%(cFTn z@MOwyZtR{24P@+|Nn0LdVvcq@X`nFaX%3K9U)s%+TKWPFS#X!Fk|Zo!-ExmB`x$D>_iRw5LH`8IE!+TTal(g zgC=!^MDHve;n*Rnuiqi6%NxyuB}5*)mM2w)4^iD4{Gks~)d?Ry&$3IqFHu9jhl&h0 zh!I+{)jx~E=C=BXZS6Uu)R5~aaBgTD@aQdHq#AO*38tln#PfYUF=X?PB3{;LKQ?H0 z{QYJ&v9|VFrsliAetr$Sgp=;0+A&Ge-3~P?J$4uJT+$)5B?&T@1d-4 z%o;1PG8?!E)%yC-k2OU9EOC}{o?|u*4P?xoLqT)QBD93rk5SkhvxsdmTUT3pHD!fk z)>w&&*_O1W_fW2Lyxs{7WW0Wvg64QdXbG>+P}m%=h;8v&M_c+s$_B@(u@Mui&1y?u zpuFY?-3AS0g#Lws<_JY-E9i{2bmD=;y2=II;Kvm3mbInxDEGO@zX2M^BEN`&<|2>K zlA&}oh0P5m#I{%!XiMKt+2PnVc4B4Mx`o=<0+^)S=h!_H8pzlkprAQ+5n96T`4l$C zE@E5k3bdsgDLWjy#!gJ^wx}(=jdGsj_7-R$fDVfR%En`0NTEp|oP(#|(Exb7NDu`+CC zX73BC#^&ZXQ61nIo(BzN3@@XgIffBh!tn7FHpehxTMUb|rK>4R+!!{NVq!SPLsa`3 z?MN>)*e!2mCADLcTUnP-edbaSp(QDJ6@|^EAYxl77%74M6ot;Eok5Q~?OMNs`e>sa z`4TkPEz|B{?U*F({*CH0mv#s(NxNTD*j(Bnwv~2~O5GPJbS~`-dQ52-{~@ZK2Q|1p zPl5)!W%li%9g}3=e5%h}_93(+`&LreT=pThm3{RD#V1fkxFj@2c2N?#dgA84MEY=} z{W${~?3PJ*ns!W*gu_&yxgOwfTaY{7M>)>z z=fX9}Am6|pT+S-JDSQ5HBxjfI#PZAI?W=*ZH2v#+uT55Tn|rQHLC%%=J#y8Wx0#M~9+WHg7KYN9 z#IcoXI#*hfJw8yB&Yja=PNh|$5(5sTa>WJe4M?MV7bSYLsdATkf6kd}7bec{Ou&DA zg;J`jRKbbk66WmIMAyP)!zV0XrvE#}sx-VjRI8h;)g7v}f~YmTT4-E7x_YV&O#B7e$pWwZ2cW>l(_88@jGmyHlu!wm{90gx$t9^aW~%?i|{+4TXW) zIS3qxuI*ZezCf*jdf%>TxC_+82q>MuUDFU3sOhQw?Ru+pP><;}{Q6G~oVjc*R9xPD zOz=^HGnebam3CpbDqLZgtx#o$8}k7lebiu~hZ-z&QG;bcRIfiireEYC`b93DU*e*9 zxz}4NXOaV{$~y3U*>GPUMg>zE3jMYaovy$~uowIYwt^p5tTlnaK>$Djf|dK;0~d-% z6=b_W!v&jofM)mrU@%G=Fj$}gg9REeSfBuP82qDi;q+?tgo%1WLp_=iFuy2hZIK^^ zMeZXcSl4|n1P!?#br9VTrmA<}-GvSmq?HHy=@5TLTa@tL>nB3=n1U(Ytah`<)(}|UhR4>Bz`ST>Cyb=PdNa0$sKp@=D{ua@<21I0n8{P^GrTzn zLNvC9{QtFvc;`TWu+CMGx`N)u~eyTblUq$<=#wfle1?bRqP*1^=E4NIh}27 z&a`ZQvNh`ZDuZ(jt*Qb`B!-Rc6DvP z>*8&^!&t4L@QsDN}^)f)2=n{G@gW+nm5QWpMP9xYK%<1S_=s9PUBm z+S<-3<ez34gdWCSsP|a;eSskFlAVd%*iU(QKjmQ}7t+E{P#K5YR>yqs=AT=L z(V6G&W!?Y{0?*v$W%o7jrOa^mH3>7;Gq+QM1IVOH@E)i$`tNWz$}aR`u$gj>yA%B= zGzd>s!e8wm`ei+BI}0WV_kNMOXu|tQ>dM7^YaYx`bXnI?!J8P~qxy+1Z=0o`vUjhl zbmh>cRS>|vq|#;9MOL6?;KC}4?CpS zYx+Yu->xCuq{mMl<3FVs=d%9aG~<$Q+O|>9T&5$mVl!xY=|COAWC3AXV}En)UA6gI~!Vq47CeU!3&euL|&u@V!r zEj>y(mvWusb$@6e* z!K0L~PbUZ;sm;&_KrRn+q#cZ9!FW> zm^D^nVm5|HDNmz1z_I&YXdq*^mxAWlMQ91TAEB^0b`jfRSM(_5g_I?ZVPh#)hRw|E z-BN69ZoZ!C0LSn(&_KrU9TYUjFhWZh{yc@vF^t$2!=gtipQJ2t3>!-^G2GJ6bUaJB z&T;!AXdvTugo5U{MQ91Pf1t2AZV}t!Hu4$8wgtq3#qnv-W9PGpdw%;-u5*0u4Gm;` z&ZnR`J`q~N=Sm8j;}fwhJ|iFgJAp#y_%!G-@fpX@beuu;fTQ&^Xdt7tpMvISMQ91F zLlibgD`H!;)_bb%63Ph2t}(K!*mWPPYv4xxO;is!cCUv9GIsB#pgDFCTEgxl6gI~$ zVq5IidtB`slo5_yVB$JHh* zY;bio7Mf->x*_@0)M#Bn9f0VkrfTr@tgY|}JT-MC{4tiNrt31zZHPxyx%|9|eNek106>25LDU8K+X{b=KMz4^(4vF%cl!Ge z4a?2mPtBs-@^T6^2uw!nWJ^toGQ%x3gc)0I791A(K7{=P4^u|{UCGU?LQk4ep`7FP z1|?|Fq}+_?S5R)|ysC%z-+A_0LL@vP-&2(}f6l};jq-dY!E^A5Sf`_$=}VW?)2Ar< zo&*Ke^@E@RzgcO()!(b?!MkcLf4M4{G*C(xQv;dW8mFVTkg8P7hy1PZ$NcT^qUE*u zJK-JtWJ&nP8-~Ci@5dWJ32miw_!Rw*Yv&~jxreE^aDx+}CHuf9DQs>Zh}hOXFiIi! z9SWQqxCT6WBNnNUyW9kmN=#26*L-4bZ?qpGtR%w(nfhA+#jvW>VN((jm5$bX(eKA>TX-oJ%?b9&^&U_w<@ix}zHH#}UvVyz0G{ zvteY?b!*2YNp~96XD;awT9S0V6gHQ1h;1cZl-_WV0_T#>fX9?{E$R(7QqFUG%#T3> z*}n363YsGnp(TXgL1A-*BDO_nUA^JMlogIyV5sNd&>qKZE<8?m@n&TCrCA`k3usL24 z+v2s3-f#tFgJad$h>6u^^@gh{uQ@{B4h>|4o^?_fbL=9v#jZeaxRbKOv1{za#BPgv!*PomTm)Ygb32`a=D0;@3Ab}8 zY>r#Rwz#dUH|(OUaLgJjF)|cTH3iKvjL;H>Z>6v~h7sFhSfn?+pR&X;Y%ImZ zaEw3Q@Xw8Q`pn?mQ(&Y;Jg zcCFt*-G4E$LEt(v8yf7EX*WwdCP}-)sXlXQhtQI=JBh;P(hjk$w2M@4zK25R*fQub zrCt0#-LS6F{$!!SZkc^)?U*F{E~om;WgkLIvhO+yo6A1Lwz99D$nu6i7Q4)$YXH+Hn&s6)`KCp5UD{Z4{mS?Td-Af?)2 zkM?^rGzd&z1=-Ds_flrK^@%WJX)UMOgNRUDQZ+zt87}q|m%WsW+zOP02H|ak@PI#} zcR|JF>0<}{rBl_^u0G)JqZH%Z&A9V5&CSMvC9t`050G`nCG<=J^8~!} zriSlP&>WixEn)LH3Y%jSu`M>YMCbx{Qs5k$20U&y-P>9XusLpNgX_|(Vm7B!&>Wix zEn#ymh0U>v*cO{ng1asXoMY2~$HZofg1Zwb=egl|JT#DPF5W{ybA%$agwV4nY>rUG zwg{~&xLZeA;g~g6Vr8~z!QBSRd5+nSLIWAIS5wd&vj{C=_Erj;V-~S3X6p*>?x(D9 z%o-~(G24>h?rF+(j@PH4fsEH5QqUZ)2rc3Dc?z536|pT|>j>_COWEL9H8x^mwOPSk z`?3bt)N#;2M(AD?G)E{xTR~?8cL!4VT)+)}OaX6MaCa2tJ~xyO7f1f>6f_rkgq94Y z(h+2PnVc4A_;MZw)yDCaqDzYGmz+Hx>^QP4of@M;R0V;G?&44*+^a||Q4#jr?l*GF067&ew-Vz{LP{w}0k=eRu&8pybH zC}@sbgqCo76NSxji`W*okxI6^D0GfbgC0AdP2BT)l5(Bn^DEFm#^-k_XpT>WmhkyA z3Y+5-u`NC$C1N`$bdFDh9uuE&9ProHO{|0*t*?k_okl@(v?8>G);Sb5M=N4mwARyJ zEu@Ta>>4Axid|QH)xeGV6Q~|=>>dXVWP|n;3YudVp(X6DrLZ}65!+(7o~S8L8R6J9 zMq*;Og#-RBp&aK(y$~A6NWF@J=14_o38|l^usKo@+ai@c;O{=l0>`Ma&@`jb4M~~W zXk9@afM}W8G4Oqwt@H3jBKafWkFm(q3LsNkg_ay2^s_@tO40_wC4(9bIL78gc)0yW)B-mm`2o4!n9Dar#^WDX&ELfuCbZ?ac%W@|K1vzOw<3YLxgR2;yJM)3Cy41I__|yt4s8P#wzf z@Ih_e+I@+VuDGfrl+oJ z{u!H3G}@1kYj^xDfe;E=sJpF9pseodJ(2=~@&kE~T93HlK$<1KEc2I0~906rm-AuBNa#LJ`{{ zw60k3bjk|Htg#X+vrUT?2Px+{W(&|j#_WX@G{-DLOPF;iY>rvPwwSFeR=kn2!ZB;C z#Kde%V#S9k*EwDvfCe&NpQNBUUJ+Wt>vt(^j#tFCc&#H=+(OylST#0cVzpVZ;!Bj* z9HGC11~Nk14ky+9>E z#B2;=#hp|KICe*%fsEZhQ_vi{2rXf^{Rm>U<=91Ri(QdeaTaBXW7t@VmEo4eid|F( zIELp#0~y1sC}@shgqARTGKI}CjMx^#BC+E8DN7u~#!^fS$9OtmvC)pKg9f|ht*n0S znB-R0KT>_>QV^jfDR={g&7~k>TPYZ+sl1ay=hDug$DMYq-$8w<(T;o-8tj&7_n3A} zl6KEgedf{*p(Sbe0)@?`9b#K)7b*SxGlkBjok5Q&?czTjaMqE;PJrvrbZD?!X5VD( zm?Zm_P<`gI51}R5cPxd?WglW&*;h}Y`VPtnN18FRi;~b4s5bv4Qo7Opq@clWnS^V# zW0EAii0U(!ga|E3!cS1xToNL-m4x+#v^P^mxFj@2VoJgmgtT9v9OriQ4?+Xkj{a*D zG)F2zOGy1!3Y#Mpu`Nz^0bUH`mCRi$MiEpcX{!W}#BvAOde z{n(A2_t^Y-kB7mq93^7n7NkR=K|oeplr2t2QD(Tsi7;c!YVGk$$!duj_IZzbRC}`8 z)s&0e3iNhp5Z(w1&wC_#XUS^E&U<_<&U@^q80T`oS2HfzVGmKzT)rc;WHYvb!sa$( zh;41gq6Dc|QQ+JtFyPU4DiO>=@+m9laQ;to< zw%Cl4P|l*jIW`S=Ol-C&q3oiZ=Lnq-4P=C_qM$iK5n4j%$rLt6C}LZL)|F7cpR&R+ zYple|Y||3Tb(HfQv;ELO#_W0unqwBBCCpwUJ+Wt>$fOuj#tFCc&#I${4r&NW7XJ*iPdH$l)t6C<_O&h4P=D= zm4fC7MQAJNjD)h|XkuOE0&ehQ3V6#B$^$9)xya9j2C~R6rJ%XUBeY~F9YRL38XPw1nLYDQu2i#J1QKNGLx}+2PnV zc4A_;MG56+Dd#zEZ-oXjZXc$gIc^bJ!tIk3HpeYuTin)_P=1H9!ZB;C#Kde263VSq z2RL@0hXyisU!tHnb`e^_Zrd@$YRIvR*cQ7Y3FTDE634Ky6f46mNhlAYI>0e}AT*FM zyn=$}7)EFb!zWPK9K(ohF)Wf$uAwY(3>!-^G2GI5kA0Nu9Jf8tK*nvAg66nIXbHEM zP}m%|h;4C8X%nye&O6)me;3r?+utiGGaRwTOzgxqar5sk%5{#|&q4zkv0tK~Ibso7 zLhLsvY>rsOwup^X|9ziA=lC?}G4UD4!H+wr9&og7g$6QO|3pD^v?8>G)(OWpxY{DN zMQc4--Au{|$F4E5tJrmQbq(CHUr6rgKwn%05YS&U0I7W?yrWuWH zNb1!_3k>Q2MC;WKg0IVL!AC%^HV^(7i(ah=JC+1mg8XStujT^8p;vnb2sQ^l>UXcZ zUd=x%OUYJV+`RFmMBh-cx0)*zU);Q@=2*vRX=O`x;+kqLrG78@`b7!zZW#1i_^umIMl7Vt{h4GXn;Ohu zN#NThEGZ3D12qzGmf}FgZeA_t(iykRx<40$uxc5@14D&sZmI@H`!S@F3zC>sD7Ai8_s6}YWCUOmh&21tP+uB4%>Fmy= zz`3z(z@v9@kvhBCCYV%e#&GcCIgR$CqTTVgkgxT@kH>=j{PFM-PP&qIOpNA&g2rWsvmndv5=@8pWx+vA+-zab{=?r*GN!Oxkao^*Kq0VhS_ksqp4d)>g zG)E{xO9)*-VRM8cwnb=N)#6(yD;%@NO03KVt}FEpJ9MJ_9U~ts>O>bD;%@NN=(eQq*}a@a-HM#I%pu{^)3pU z;}xMLynczo=6FSHi`P1;#jjH~I982~m{@IAwYY`ynj`cl&_G7$4hoth6rru4GpfZu zQTSZI4Sq}kZ&|fC?ad7?ex1-j7Wp|8G#7bV5vs>R1BD;%@NN=(egpj!L^)d7y(??M9^yT7EM zId&0R!tQS=Y>r*Tw%8S^7GI_;aSR(vu`+CCX74+v#^&Z(Z)tGlodykL3@0dPj$wqB zFua7q<`_n7i(!#!@fgYy$FQ*!6T>kc{P=-JJMw;Luv^~BIz>Asxs_F>`pl&uLQ7Kc zA_|*JLBzIFkP=sFP3097I+u0^J?^w?{SNBgjdtWtXs}zR-Dk98lC*o8>NA&i2rWsw zA5z#{+99@;c9GK0UsC8?+8Oki(k}jkA75^?KYxY>yJhzMK|3bNzS$=bOFEZ*2rbFJ zgDGq-`w-j8zIqDP<&+UF35}6ml!UH8wfQfR-qmP--T@7E%Orf8c1)6lS*p)m5+bxD z3D2Rhxg`Ma&@`jb4M`#GXdP4?fM_A@mQlJiUj>o>G5j$WA#DkSw9ld?$e-qf zv@Sp#LfSt8!A3}{-?c2H%`RDZaqWWIf^569cURX*J09Awy>|EZJ09Qq#K&LUd{bAK z`MPhXTPgnv*jMUS_y%xBxOUC^I`F@VGz==HKt`M00ik^v>T!#Js<$}Xl|3xGX!S>2 z%`NcofrH!HT$fItHLC%%=J#y8Ww;9hn56TsL3q$El;@C)zy9oW| zR9Y1()!9HQS6rapfXcRaQKC1SDtD>(=bX8AVdDJG1pL=mD5XH2mR_GYE@2LsOmr<= zHoSb9`R^F3((v+7t!}bbcc|71qSo+oEu9V3TuIgJrfMEe)bs_pA=o3h%Hcj8=~mWV zFO-V?3H_pV#{j(2#KiwYdVR8zJ1-M1h8~i|-B_&QwKfn%&_nV&zSGcAUmm z2Qy=itq%WFR|oG>W#);a?<58yMhgKvkxKMF+#B)%>+Jb>Y(q&G!gAdNrQAQgS9% zN<-z|Of7quvv;+eDpm?9^)zF0uw3ddXDStSk>|8mOVw1Nwz|#fbn9f&@Nr1l8|O^x z9V(YIMR=0XV6AbcxFv;LF;iRP>{-cFtGQx-rRK~`mwJa_DXuK(E0>DZOfg+^CVn7Q z7|K*?*VfF{nKKb4kins9ZB2Ii8mFT_Q_Pf8)lwOdI^dzeOr@F{7=#a#%cW8kT+Q_5 zhHK8ar8Q@=aUltI*Fl9&{5VuDz^AFzQg5;+)w@pp6C^ctp=r19N{QF@hP`Z>H z9#A-tI2b6m7K}i>B)4ilInqHT0Ji(xuXR}-W2Fe1;&RSdH^~V zt0nv3G1y8ChWc#v4vbVXWj#DIMTM3I)+d)!=K@>ind5Zmzi-p`ku3CHd zj6#NyPaY?D%4})qS zRZ}|vHIvoM05DVqM)rjA#fL0g3Gtj(?&}S~s}di6z6-A&>Q!00E>m8T%T)Wc4VV*_ zW~&1QFxF8`^}s+%SF^R%dpdI=EeDd``1CrEtPH9o+2qWqtS?qm!^v!}KU;wRA%!QX z+Xppg3T)V5tbJq%26hDkwU_>EJ|+vL-V}y*uDW%T>ILG>kb@}e5JKy9LxW&q8hBUD zRU!UnCfEeoQ|iqX`ydB!YM7K z1snVHLalYl4BS;JBva|MntHX@GZnI$kSm!&pPAM+IeTP^=hW5=^*DQ)2?a(lWTLtm z0Ar(?tg7p7n4lnUW`a|YSyh;E0VAF1Qxm!~%PK9V2EY^)16rT=VWOH<)4F_;Dm3r& z^I??d4^oSt)1iv1>j!mX{fAAJ>^xX6^xv~n@*VI5RDPCvIZ~~A$Eufmr^CyG>gBq< z;pHav^78)h@;CJ|G7nx}P%l@i<+7$;PF@HvtJTX9OW@@g^`d^EC$E0PC$G*v$g9&4 z^v&D6y1hH(ObsTC?!wgG9HgC!0d&ihsCmJyXJQpBG4&vVkYEEnrGl4(y6WDcLa%m* zh1lU*)s1FZ_%O?tt2G#~`-HLZFR<9ctkqi@QgaflY`vvI!Q=ugU6W42@@s*(OKb0g w5jdDC!&n9?E0A=?pf`D0#gn~aoi~&5rYGcSze<_Tw3=UWDpLE1p`IoG4=kSBk^lez literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/neg.doctree b/master/doctrees/functionlib/dsplib/neg.doctree new file mode 100644 index 0000000000000000000000000000000000000000..66371c2f17277e9c109d03f50dd8c8ba3d23e24d GIT binary patch literal 56525 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/nllloss.doctree b/master/doctrees/functionlib/dsplib/nllloss.doctree new file mode 100644 index 0000000000000000000000000000000000000000..375930d062b671570166a2ed957c1c0d02ad2775 GIT binary patch literal 57791 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 OF_MQ9vKFY0tp0!YOEYu; literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/nlllossgrad.doctree b/master/doctrees/functionlib/dsplib/nlllossgrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..44b9dfacc6b34076830a2c3babb8f84e61dfccff GIT binary patch literal 45927 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 HhgtVOF`Z1} literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/non_max_suppression.doctree b/master/doctrees/functionlib/dsplib/non_max_suppression.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c5438defdd61eab1340a585e6b2fc4313498c36a GIT binary patch literal 30516 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 fell!uwXL5EZ9&!s2%xVH2PFZ literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/nonzero.doctree b/master/doctrees/functionlib/dsplib/nonzero.doctree new file mode 100644 index 0000000000000000000000000000000000000000..41d56cf87795ee6dfa7e6f0b7c54de0cc2ed56e0 GIT binary patch literal 85496 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 Uf!yt7Y1ABJHCL7=u^;OAe|b6QPyhe` literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/not_equal.doctree b/master/doctrees/functionlib/dsplib/not_equal.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2c777d0247e7b1c934bae514514731e9b28fc340 GIT binary patch literal 65883 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/ones_like.doctree b/master/doctrees/functionlib/dsplib/ones_like.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ef5ed5e874f1836703ac8d1203e06042db43cd0f GIT binary patch literal 49310 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 x6hn8vJ literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/pow_fusion.doctree b/master/doctrees/functionlib/dsplib/pow_fusion.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0faee08535427baf0e3623cf481785eb90ee0478 GIT binary patch literal 73872 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 z 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 bv`j9UEvHzX4zZN!NU`x%4n<GyWM@8?%TVw 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 R+SqTQdjwdO5k8n7{6CaJoq7NO literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/random_standard_normal.doctree b/master/doctrees/functionlib/dsplib/random_standard_normal.doctree new file mode 100644 index 0000000000000000000000000000000000000000..81f50bab72beb43b8809f09b369ca43101d6b725 GIT binary patch literal 22724 zcmeHPdypK(d6&?=b$8+tq0DbE@-}6(J6BX~8xL{aSyoH@swZEo1UFeVH(k{V z6sAVH9d(Mna`jF6MS4H!ReZ_l8%UQB$lc?*Rno@qxkn$rnM!cHWR&xE#j0wGZ2&=$ zHXFx3dz?2JFVxCRLPaAx4oLc^%7mcUo)nZa6T?{5c3jd?G|HO0`)v2ml z(ZfQVTz0>`N^_{=nJCk1d^CSbFq@#f4*wb0^-Ny^o1Mtq+sSTHtlL1|Xhsn{wAd z34|HDpebdp;$bq>z*K^d!un z7K>|C&*NbWbpY1m&XeAmQgNqUQK?h+RH~Y- zRrhO5s-N{F(G`)zro2`#$_909rD(t~MR*AN_jz?dis5Lb5G48Dd#@f}Jo3#CUVgl9 zG?mE|wepmsXELeL6n*g!HN&NcpF8{LYl{ni21{f>wx;D7h;OOOrygE>_K^=>Cd=+q zXBLhw9X+);_Z@Dl+=v6So;@Yd#^H>WVgU%cLQX%YKI9ZE+mz2 zKScJOr1GV}QTa}0GHrKI-8WjYr>*FjcG7yFw+ox27n&TFcQ26iyGeBW4%6+G(CtcN zRzT>Tq$(YNmflRNQVI-}Hg`tS#Y2=!){nArW-jDxM_Q4&KLm_`*qjWFo~2OqG$FCF z?_i(i!;Bbz`0&ie06u(R;AqUBd^cJ=`NHB?Wef?&s_7gD|x#lUZAzLO!!|^|%@w1OtQMOUS2-Kk)6+ygGq! zFgBPwxKM`41l(XnY71yl97)~aT+ke4G~=^TF?dk;Obd9k8vtexg@U~bPoOP7)}kea z7tTQ8xrrq62Re~4z1%kNiOZMV=aQ z(}>(GvkxatY*KyZmDeyCNd1;I^V8YmduWnfO)WonV(HtDELNJG_l=$>w*VA8*nqgZ5qM_0}e$3%!2`di>i2dKZCmyWXT6<>Lm-UrEH$2 zcEM{(!w8Tf-uYr8AIfAJ3k*oQxPkeT3v*i_&MlG#!SFGfKwdO~8c850A=isTtgj=T zsBLO9q2bg^NShVuNH+?zRfE-9)2Nvm>-`O^Vj|iaD=OP9oZ6P0M#3mdPB)dLM~EX za=jWZs2sKmHk4`Y-~p?eSDb^D2qPU-9GvT6!f$*x%}dOVoHGrj)YWUvEK`tqH~oVO ztLGh;GA;SKP(`U8zr?HH=Ptmmw>8X|a6jNXOn27H;Vy!9}N zrQmmwNV`~W?BW-A7azo*`T&?FJut>mUOn!iOtVWZtQ);$-|Na3apy}*%)h;?Q{4LUdP_pXJb{M|^75>Y6KOu2(!~d@gq5o~VQ)`!?!JjX z5cIe3$LFpuh^I1DZ@_DzXm;(h{R?1Ok(z(bsV7kLh7A(baccHZN5$^d!-d%E%H!sc zj7Xf=IgvJreW+pRl1aZuKnWED4}3jjWc`S9x69EWnY&#lLmj6F4|OD1G`FBn$?gWFU}j|m;;e^@rcKr}K%Lgla%7g%TkCN2J~x?HAUZLr;9GKOrL(Cx1?A)$(uNkj7YYL8(@B43<_Z{-Da&2YGi6nh_4O=g&s$*4M(7K(Hj3j?S zQOf*Xyj1B*KlW`PYjH^*&0Vali9IE5BxN!G5|W-L{f4cuKC;Ytj`S&xm7`sCY9?B38HK_70eT4_-p(#M~n)#57r- z!&1AL+C;lUy08gGHOj8}PryaG(Pbt*^PlN0OWVTtWowkr#O6tN*%Ft7;_)b*bsfYa zf4}!q+z$c5>!IxfZ7N&hnSi61C_P(q9L(8VW-Ol-nxj)JZ+d0kgok3#Udd$8+=GT> zo8EkaC7lSyz_*wPnzuG^nl^tg^o-oerhG9J(z;qKtYyY$-nDXiBH>-t+%B3Q$4%mX z2|HU++VtPl<^w;zELkYt*dZYk7m6ihj)aAHQH;LW0Axm@cuR1^^;j4`(qAI$NnE7A z01X-@XXaPY8S`uSi9|P%AbS%si4dL)3*iQ4nQOC@NcP=NEnVQ_<2WWO{S~d8M>tSs zut_d7HRFCC6?6y1AkssACPP>0s2&%P41bWK+vl`C!Sa*$BW{ zS_g|W_6J?n&eB2ddNjvqbTt!NlIg1f$Ohk!b4m~O8zCDs{}DG{P8y!69+2VwF<={J zkw2gae73`0YrY-eZkVP%AR`dxhn)H7*c>sYX4BLiT%Zw0S@ksaq>SyjboVh%J;5~f zTQbyf>hw@YM81WFce)FAnAGp!GEd70#EF~}Xp_j>H%0xCtRHbYcq6e6-j<<`(}9ON z;S}|K8T$5c{y#F*2{?~fPd>1ox(RAerzFn`~z-6V#N9^EjDbj0VZFqA?lj zIGKB>BQpPTAamKw^adG?IKguos}_9ohBUe1)3?wRv@ykLf#5}S*PnNq3%E01q7t~s z{003J$xK5t%%9;UpJAG>(KdgBpGfM(IWzwb&*#k7@jGIE55Eob$IC$JKj;fkf|kEe zA=&2=V#b&bZKc|p$=sZJ?}huZlVJJDg)^^y5!-AU7y724A}{6+HGl`jUqhnF@Bjv> z>U5b;16+N=Sq~?c`F;cNSxTPu2K$Kzysa}0d*5&0j&;rPaj`>#cc7TXYVqV#satNjHMRWo!r2pl#c%}0Vj$Qtam7`;*ke(q^w;6&+bgd0-bRX5 zcr!6mDDZYM%Rgzc-Y3@j`0}1#92(&msu~s)%c+T7eTTdx_}6lyUrcQG*GOB-&7UuP zzJhS`uOD3BV-{OIL~Id_>qaR+^gobVXWeih*BqrD?Lo=7P$KHW%>S1ku`3 zLJDGv-=et0Db%gD##NJkB(a6qwbnPNl?7w=HOca(w`FAF@+JwHXf-KT>+phTkt1dm zzanZMu`qs!`15R;i4Y>yq%ko9i=i$UT_syvgl$Bo#cN%w@9&b# z65?|09yCa1GZ)HG$JvaBI!Uo3EyEpG?C@|$^7y!7$JH_dac05^M2Dbo4%l=}zJm)i zqSaLwJNC%fj#KAnIQ0a@jyq(iSL`?}>qndp4kgyX zF&XMO9eAh{7CXKoL*E|GpOK+Xzl%bEa9WIzv+fMU_(m8kIK+pm~^EvnT z8^-U@ocp_Y*_Ju?HOR(a_b5r{+(}kx1%h_u=l>1`^ZcA$tvNqmYm(c1eL$Y%#=x&R z$=%apIkmEqLvqvH{RS@3_T=tgma!d| zeLc#lC&=AT$xz3s(?cB*d0g)P*D?ZeBIg9!B=Yv|^VPpY zn3RZ-pS+KyD(|D&U+L=Dj)@8UKY=wSx{MYS=~l1=7E|t&E_5|r-THslX}@m!$riT7 ze3!sF=FErjJ8vGvFJIs}hO0xa`6c|p(o;{v($lVpi8c4`(9)CeuXapr??%t~)RtYX zd1@PUfSkv_{S>F&@x$)$?UHxGThsTUli%pMSQ|n?3#a1+K}#SKN5%Pv_37Klc@Bu% zMfRPQQmI-~IQfhp6xiul4vvc0y^iz=7#zK{dtHsjhxKGISF5rOf!@J?lcZlfVSCRf z@tqytEsaAIhv-p(>{P@8j>y7>@;pvs`HgWXY49?9NcgaRho~~I=1E9~ltySsiZUc0?J3YjZz6Bedd_OnY zTmTw+%0lSn92uY|HR6akWd`e|C9Inc;y^E>qU5X+J^#@L!i)G5t*Egl$^iqX;faG3 zLCPBNs;7!Ez=(5cx1sFQT&wQOw)x>50!)Bu7<6Vz0_t3C zrefKe5^l*1CFdyn4cp*WyGh9#wwf(!=!?f?x8ivUysjUevGFAV|GW`~K){K-Ek`R&hc?Pw#O<59o;IAS=A{x)m9407yzV#BMYG+97%$6 z5w*(bZ%$kVc@99;Di3tKG~ zcvzb!8?^F%7hms_9v)EO!LUSp=VHJ&9EES;W_B|KreIkPqAd=l#2JZfSI6eaQ@X2~ zZ}xzA{hKc8K{y*0n?SnhLw;>e(Qz+Nhjr3RAG6P30K{I*+xn$AkCeUF``PD8?1Ltg zZYyIO&rDkEHfcHBq^Yw>lj|B82rHP89LO0k6UsB#;7_O@3pn1l@DmOPPk}+uo#(#I zFwpbr9{SL|5sbZpDr>Ykf*(=2>bP*Qt@XIPHy9WZWpY-H#t@7|ISYs3u#;>t)O6qM zJwFav9dU1k$6y0Jd=H|xVI-WOA8aCzH~Np6o;P}X$zWGgG&Il;$Se$x5SBa16YjD9 E159jDr~m)} literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/range.doctree b/master/doctrees/functionlib/dsplib/range.doctree index 36f59461b6ec4e4e3bfb842c00753e0f0243da1c..b1ef0afb79fb566c00441f5f622977c3f0424d18 100644 GIT binary patch delta 23 fcmaERgX!%JrVZ{1j9i;N5^gv#a&A^!?86BFfXWFx delta 23 fcmaERgX!%JrVZ{1jNF?&5^gv#a&1;z?86BFfZYi` diff --git a/master/doctrees/functionlib/dsplib/rank.doctree b/master/doctrees/functionlib/dsplib/rank.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0337fa788f54d2dbc20dbb39a564fb523f094c26 GIT binary patch literal 14811 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/real_div.doctree b/master/doctrees/functionlib/dsplib/real_div.doctree new file mode 100644 index 0000000000000000000000000000000000000000..85b3acecffce5ec2942a39e80bb89b8803138250 GIT binary patch literal 68065 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 L5m`qxMuz?m7A~>A literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/reshape.doctree b/master/doctrees/functionlib/dsplib/reshape.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f841f71d8c264d5b79fad2eb5c1b506dd1242e44 GIT binary patch literal 57900 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/resizegrad.doctree b/master/doctrees/functionlib/dsplib/resizegrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4e15b6d6171ac218e3f6fe6c2e1f310003daa082 GIT binary patch literal 78503 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 H==}c=$AI%Y literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/rfft.doctree b/master/doctrees/functionlib/dsplib/rfft.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2b86aeda0bfdb7dddafce0a5ec9c504c33b981b7 GIT binary patch literal 57807 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/roipooling.doctree b/master/doctrees/functionlib/dsplib/roipooling.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ae18a1298234689a998f569078563dffc8cce0b3 GIT binary patch literal 60257 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/round.doctree b/master/doctrees/functionlib/dsplib/round.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d15ec8ec5d77914b6d500217ed00db4e7f4ffed8 GIT binary patch literal 28374 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 GzW)Vv+1w}q literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/rsqrt.doctree b/master/doctrees/functionlib/dsplib/rsqrt.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f7733fa695bd06a8f79d96e647c203d539023047 GIT binary patch literal 56098 zcmeHQdzc(mmCtLQnaK+h0)b=pL$4dw_F?490KVJ&c5iw1~;QnT$r z!|gO2r<55iJJ4L#ys4R#&6?7d%o?^0C*imyZ{);Ld#YRvz6=`4%_Vb)l_|Szjxo$G zRnjxl3({R~N5b!WdaB#%b@}rCbRlQ6G#y^tc1MW(=2%Vmhpq%ih>=>)5W3 z9e#Y@>kr*~_@O?f4X&eCxpO^=2|t zEESSQw&#lL%Al>D^@W1-)`8L2cHAhGJI`${s4xxatsiWXJ{}B_UI;eqf&Yu)|4H!w z6i{-yH@!67mwtEpv`eQkC8w99r}B<><_ssD7|a%uo5MXnZKDG&uq|af+Y_0d^LsW9 zm5k)J72CIMWD49SuG*y}T;0Ci>)FIA`7K{fwcKq3i*oO9=SSHSJTqU;4VtCOI=3Zj z44PRuXw4V4fITatZpTP2dyZW+*tlsgmQ33$U2k%goG(?<8dAwJG1}5C?t8}`e&W!R zHw&ZpY=Yiy>N&LkOJMl%hi^Hw{|mx1-a6n4=NQ}dRo@|)b8w&V?B1K6=XNW26~F%* zZ03P8`It<=s4!uWL0i3X4=rio!aX%lg_Z=hucfrd?7k5?w*hQD&pjhn^TX{lwLGjd zq)zBq${fn%Gb|V-vKbh8LC1oKbaYjrM8+|5p_1-?VTQL3+}XLbr>_rG(AU?qv?n|w z$M!xlcJ~g@I4_Yk^TSSB6yk&TjoZII_T&RFNQD{3?)wCc*~4FcYV4lB1{;pMAD3tD zya{Z}hcg?s94pC!OwO=3bGY$+`^Rto{Na5&0qf9HyT*2X`OuSpH}<7ZkKOp-;nCgW zd%yU`-W{($09Sc^ZZ#Hkr#WUx=~9Q^CC{>9Vj!TLZNJE z$n?Q-HfuW3#^_*XsFSylR&{+rUthyxGVQyndwxT3+yuSp zz&zawoM)j9zr}&Rex+liH@T6PgOMf_c>*bK>RN^IuQzn9!U}^`qQ{ooDgsT#oxGG! zw|9ib&TaL?d@@uR!dkQ#HpguX#lR6z*A4zqxtImnk3Z?n8$f76Q^Mh=ZX3U6ub4Mr z4q!9*eV-e91Sa>J<$QnmuKi=Tx@;bhR=&|k=E0gH`xf?P`MS4Gojhq$JtKP&e0F+) zbt0694t&ZJBct}7s_#MAIj^s;!A^w+!nqBA)eHj&^1Nl9dZxm+KrsUvih($9triNI z=br3GDavet09Fy0)is{xC>CXXP@^?Kq=MFT_V}(*Es}OskA}|yv~zjiXxi>gIIR5H zb;?_Fp@21ym4ZRx4L4SERh^owyf@-ldEth1PrN|~ZkryF2}LmQP8qK}JnrrUN<4N8 zq(*mkZrb$T4QHLbZtbQ`aCrHKvz9ME0}gA3)y%4Tp7+$8_ZX5j3VqWZVn;*Yc5z+Q z46$H3n2R=5wzR`-%K|wq8QCzQ3H8ovaI5HU;2rzwx6`@@%0LtE6iuAxPVNlqvy=9q z^%?l%`*cW^zFeW(px&dr9_eMOT-xlO1J8wa?&0kup?$Yv<%Q~Le9x`GRGwSW6|N5j z{~)oQmM=I;5|v-tBP`M*JZz}A^7PYsGI{50{<-2z{)e3#DxP`9X+6necEtO;;`Fm2 z5fF;?tFszDNT|A~D9lk6w|hf;@w`S_BhY=9wO#{5@Wq>XZezIqs2Z#9HU5&qv0&PR z8m{2QGFJW-UOuFcr7_eSDBzty0TTrBd;H%M=<#vTga4dBk6C%q<7i*Tqc_vlkLyda zUSbLmD?IaIJXy-{6~|s!In3mTVVToCE^~H*FZ?BJNZAK^ zymchV&?|0Na#?V>l5Sn+R1BC6t<#wrq#o0K>(ZyK16nr8odzq9$(k1R!j&29idc$t z$|WWA3|wExq*O9!G93A0hcU5}x712C38@{t=X~KY zB(O8Ep=Xb7Uqy8b&vV1|{r3I^+TMI^dv6f!9f3d9|h1eLd0bIlMP)F+67i$*EeebI*{T8_%1BC4KO)*G?BBg5z?{GVkjun)wur;lv26 ziiS#yC}3@ee)vSFRRDPY;C=O#`~VcL4p!DEoUHLhspY?gYt>o~YZGqAm_w;T&dB5; z!A-(_5BSbU2Us};aVRsCffZ?9%rQ#Crc<#V1WdOrS4eT=taCf~trGdAD|wE%zrw~^ z#hov22?-JQvgERay)`#j$O7bLg~H}?@lq%zeG|fx;TY_W%iP*(2D{tQz2=Gymjuo7 zeA=DHrCU2#%epdl!pIl$TXTi7T^TJ8Rt3kutQhtn^Pqd7Gz9j$xr(eI_~Y9FACmtJ zMQXHPf|E7cmt#^ugAc&Mu!yROBDhykx60^P~Q+A;MrC>V4_ zaVfqiDM^*GKxzF7K_{I_bSHZ1XLl>i9Nc``?G4hqM7#FDpYou!7ykGv?&K2&58`5| zSRV{uZsC``fgr#6d0vV=YuYQ1#`zDS*i?Rg4@ z{U+9IX;6u+8k8+Scm`D#BUWPYRCEyV%`zy&E;;LC2Av9*{bsXc-tt#@GMdm?%pBLR4)1M^|KF&pkF*&N>;+XcIn55VxsD*|c*ziwz49mRJY3 z8y>4j6yffh0c3e|WjDiG2UzYbFSHX%@EP>}9*f%~Or(0PY zFJ{6;O1BW&vR1Z*v*Ip3FD46lC;W_v_mBs5o7Va+v?T=RB{!-Pd#$HHoZIf@N@{=H zR>^!ssW#{{SD*DVV8gR3FlUFq=L<_kCO7J~WZWCR#Yh{iKhpw^!Rl4&K_!DzrcID|{E@k7F!UDb z&0DiDF;w(K#B2#`Yr0}ncs@$aJ8CY&a~8@uKiDqDT1Exig;1e71L?JHg~nN*gbyXa zc(hUGc1Wl02zP3g=Sy)+u8`3#>6D?&&H8Le6qc*C$vPgX@xS}JS~F2yU4ZB+DqE8= z%S+d+uR(K_G;ILDqS7?$87OUi%j==_k8lJ&@q%}v*Lsl^I0+!E@4*qvqN)NzbsBXJ zZ@Uh|HlXB$(kKai&~IJ3C5mAeFl>rpOYAW1uzmxAJc1p5O3AtbL#LcypsRC|V$i6J z=}e(b#Yr2=m?~J)DXMp?Xn{t?^jQp=3RV(Y$DWU1*pxjbwqnm!EC#b@Lg%^a-P^BW z=#)JLdb8}wn7e%7g*C5Norarfm6rsGv9TyoNzjwv^C{zO6vtHObPiFaeax zg@7ihypd$7qXh|Dl-66If}Ylo!JsLvOK3&wp9!>%Wl1MvGAP9h8L<@~U6IZ5B9#cG zL$z~#9e}Sxcl{j5`UZTno?#kTV7;gyvE5FD}@+aIUlD&8Uak3Zd-#{d10oKph(N$nz>!5%1 zDjbbkukp`A{Bw+dj`PpM{PT78`M;KBtUR60GJ@;P$}$2(#th+Gv$Bj@;5d|1S>U9y z3uwLBv#L8G)iWEw0WosxI>^BXrJZ&K0a>RIs`gD#Xk( zkWSTR8PG^4j>#1Q$Fd9`NUqfBWEreZILqMQeO)~^QC&TP=t?1_p?gAgvy86*Sc6%{ z9RQ(Z8PGp@qq|a_WqgshT_?-<7brQQEJH%;u+oDVHpNOMwlZHwW*NW0&?)B^=+X0K z0w|RW0ZmeQBU#2atmTx}w`gm96oaO; zE}<2z*U2*WU@|Dh3mLH$A6*g6GHU1gIsnmGMiyeHO1VN=#xPuLN|w8bkXAq=tFVA<%V;N_wYLz0bp<1$PUSe-^8KL^JwZ#3=~uH zOoplXjGMY}L}eD^*!ZNv%d1c!NyVj*w3P9m`uN=_(|kkC5B^9l@`BAyaknUW(DiA@+f z#9Y&RTB*0*4K<57fLx}pa?EWL?Z^mkPcR`@?<5d@?6Gc&8^bZz zfP8BJKC0c$;SJMqyFE~HLT)Fab=>ZL44ZO0iLJO@WWMt#hEBPiKyQ-Ub;iwip2wO^ zO^we&1-f{sI^TJvh6o1X)%p=!Y)ZcKF35LYmXc!UJ03tY@}0}T zz#`w_M@Ky08KU!@;Bv$H&V@YR2>^TLFMNVu;OPC@N6mO})HqA)+ILej*chckj0qJ& zInQFfAio6@Lj`$6jGFTVy2o;!s;eyL37zsu{V3KfDnjjo3NdpYq(@55vr_m_9BV7o z(p#er(jLVb=-&?9k12$5hkLm~bU52%7&PSq68fOVlTFWH*c4}z*vf1cnJT=9p;KNW z(4%LQ$W-BOp-t4DL9Q?XdyZpGr|kKvXo1F)O>bk+lszT1jy5;<2S4lsLWp9PKP4|2yf{Md0teC@kHypgLzE-AmA}omVi9d3!=#cSQ7&PSv z68fM98DEHDQ{+uzE7Mve8Gkp1PPvLekDgW{$@n`$o483M*tlmyxm53c^-Vf}wVpER zYN(($wErA~rc5fKbxfMTuql&DY{jIJd_0SxQzjMYO)_chHSwFUW>dD@0TuLY`6&#V zvZaJp^iA>ceV71BL5aVk+`oF5%&KE5D% z<{8ls0m07}L)RN-3ncVG4K}_F!=|X4#8xJ?NH)G3L#Mn%phr(Ck!<`bp-qL2d$&3w$T)qgV;|OZ z%AR{g3pAF-AHtw1drD{>dmg~BDSJw6#h#H={5cGrvZp|AmObMxjUU9CP1*9NP(d$3 zzlA|lwv^C{z9}mH2TTB^av`8eDsO~}&+VGv961{*=xO~#44TrqgjTd(hl;PjWKfD1 zGGZ$}x*|%&YbV7z0MS%@0l1jTO+r+B9$ah+6+a26_vNWT{qm z=P_u?8zi(2m3s-prl_36RwlVfYCeXcQ?4S=qbHe2YW}#;rb5mAdmj?XL@)oL^5rZ`q=UHS6{QFXIp0v{FA$k!{Z6? z{#Wnu<0Z>S)+`tQ&V@4l{qO>vV%Ztn``|?vtv~$vC*Rofc(^jm?`q`>)yjpk1GRaL zV08y-tbk(Y`ltOpn&Hawk)a`RC3s}Jmp@n!vQG2go#9tmA_|vGcqd1`2SB~I)&5C= zu@&ei96zn&|13DN*Jb6+e8H~lc3XxD?CsT~ZhO|q50{N$vm$;&I3t}IPG{l2lK>}V z?~``h(^bbTu}u;E4Zr`kl48RP250aEg8+~Pk9x1L5$~)~ zf5j4kL*A|vI8~cGQupT;&p=2##cmcth0rW}o*utkj)|d|4kAWb3;a}*7EMNUo=@0X!>nvdGz_dbnu!Pphc5lY8 zscctbD|tZV0>)h!I_2a7J(`C{E?`_Kw5d2}L-!UR! zeh?yGodq%Ea`~*X%>?zQjWzT?p%2=Z;JV$RR{5IBX%9g)`3VO54l$ppRM%hwA zEBdBZFJ@r^D3uEVu~i;j5ly0Nr zHGz#rDw13c6+%vZzFt(xVPdGLf{0N#Yv^Sc7-_A!%$_L=Ua3(G7}`g%mQmqo8&rr% zTaivFwDlCvTeNJfP=gpR#IV>4CnRyLeHX?(6V=OIh+bkd*CxCRV<)u7XRcMlyqdc1 z;ceHUu3y8{LOHU8)}cBtVAvGZk=V-A8%bSX!q6#47wFNmUnF(CO=wf`&xWY$FR`Xm zLF(tC1sc@#j~Fy%PYJDK&#qYrm7?q^u@!qpQrBZKbjqFry;=5*OI=rB&8BR*6e{RV zGOICY%9avZ(Kkh1FUJH>Di;D`t30|QN?mKGmpTB^)b%PD7V0b?qOR-VVpFK=`9NJa zNJ+7&s|U~w>iSVIu%NE|=*Ux7e`oaw>Ka^cc&Swq&H#~-5%@;Gl7XPEwMbgDMw`0s z#YQ6)Nj?n~LQZ{wUR3!4CWeYCh?pws8fXStZ=Ig0y3DC-=$wBakoL_b*Sq*m|7@Dme4v>r+xMWsgA@}rrt>EIu}Ey99^JC&wi2A^`C?`75{9Ax-P|< zP6eqYP(d#+or^(J_LR^%_Phkcrl_mLR_qx`U9ZH@DSHa^X4x|?b2OyfdR$vILvwVoU-U1h!LR~Ka>iS73 zDK>TW0GdHv4}gIMb>&A#nz{!2{3FaYywi8%YpyH!nybHcc(Lw2{}^XQK_p*AH}?0a zj5b~U5jFy;=x1oV4_?16Z@mjpM%gPN*i;bLbWzxGt?OSqgTIZ_`kq9K0{T9 zb2UMo&6}=6P|w1&LbH#^NNi<-jU=e+F?7nF0zG<;izKMsLYtUl2ES^k z^G*rEF>@2`h{f9z%&`C08~3jS`PM4FOhYEVL-}4wWWlIUI=$qovFJS^Gl?wr}RUTat z<*eC~M(l|_WmwrzLBh`d#DuSE{6++JZ9=&L?3KK&`6GV*4r339E zE5E^Z@PcVGE*+}iulv3aYZeuQ2B1PUd(?c=7U_|~rBCvHqQQR*A%DEVe-ja`vY>3* zTUCqLhmzhWC5dT(vVVeWK!*)nhe1;|m(V(F;G-Be#Rep{GCM_*P!~g|+(Mv7PY{tL z^lG6^g@k(c3|Od=8PoQ>4{JJQ&wZi=8aMbK#h@vBN@yK>egng%>?yGodq%Rm?_%hb zJq3ER>=}&Ti9MS-hBceAV0Xt$NwL|T2ha?5w-O92R!RBM5odS)#?v^v3obXz z?pASj7XWH)yn^w&2p~!DyzQkUD1b62P|u})02_%^6uAs4gdBQ}UPQST6GKH5M2yPt z0u5sfuj(pec%f51!z*IVqT)~%D#T=XNRJeTcZ$~D<0!}TH{6IIdG$8ja4|JdPOzJ+ zL5Jqui9u6_m(V)2;6V(Vq6HFLnWiFX-d8Ym$~Odh^h^;+^KKH_RA`=W(g>bc&!peQ zT2GnuInf9WruQ-iO_@|e>zMQn44X2k#8yli$@G4Qp;IOm=uI+d>~*{ua}l;g*|HNV z=*8vZF=)z`5?awW#q|0x0hG#xfY>UJu81eyl(uCxcIeuu!V9l=2Bh+PIK4twqhfZ ziXvsG5OU}X^&-m0F)>s`LBuFbFSJE9c4NHeGJA|OWRl?4_}^eHqe9W`P$4GSLpr69 zy(6=n_Z3V7lnZ>BYe0wR{XGUvnO#Ebkb>`H*c2&{*vcdo$@5;p&?&bN=+W~;B+vVj z(5Axk8d}c#9oBTpp1&3?&>(r!<{_MevZsXBvF98No3f|GR_qx`@)lv}lsyG{v+Nmn zIqxj2*_16;LIu5$ycUC|Y$>4?eN!aw3QPc{av>nL%A+fyB(F9Y*8zwodDp=JQs=}F z$;-mUrjWb~f#l_-q}U|S184@x+XV&|B#$2*X_6P-O&MW%>Tb%7)4a3zl3r*h-(u`V zy-27gFYA348-1{chI4UYV z4HaVYJ)~a>-#dbfd#_+>pj_d{Tn##;@8=jaWqt{*LlWM>uql!tv6V?HlJvD5gU}nw zHw1e0yb($I{#9sGA$^T5?k&PvPnmQ9RL~pIOEGB5q!L=kq~~JTlu0GFV$w+7cQJ-e znN*-R$)vFt_cme8rfj(pD(KlVk3mzml+cR4Dc*MjCV*185D;7C(G^kNR~wY;07Ub? zJ7E;7(_@JD-3}L_-KD}Q> z+%WvmzPF3#qfoATey=X)?bEw9w2S9YVE4}@J7L$--gL`{W*(`HdD*79>|fQ!yqBG> zu`e&H%QxK>oBGz@mp6DEu4eb$=q-2uq?+2@h6%LVlxr$%Sad?wsiD9& zg&H4jt6eCw9e&gAc8_*SM&8aEPNtAg6ibESl4-MzeS6&&r{Eab%B7RsPOprag0E#J zZ?ZchSuT~#ypxbv>wvz?Gi)c}$~w2*HXSFEhkb(G*{MRZ>}0a`vY}ET@0j^i#cjRP z$d*mJa$7}=Nw-zFb7ft6<~p}y*vy+H!zq*isUu}LrtKKHB7B)%Dij=OsyUPyskoE- zEADjB1hx1pzm`i`_}1+dl8HehxtU#srnEqtOIs`MoFRb87aTKmaktxTn@J~M z&Lu`*59A!|g*?M{N||CJS;*y}q78rx#2GVd@-vAo87G}cW)0hh&VW2w!9USeGK+wj%=XPYA#(4u2FW!o#%;$=l+@K9!?c>!8Rh8XYtPkLOb{bTag+5haBXzmsG-x~p z-&;PCP7JK8xJQ*t*eg7hNSQ@&9*~sb%5F^-@Qxyc{0-B3s$!jTRVrUCF|zi!ZCATAqOnd4(FGiy!;H% z=Zw-&vI?G^3E)rh;9>k4%xgEBrDYk@8R9Y^CiJJBTo#0NIL06hq?D7cT-xrQ0B)H} z_~X;>K*BCECmD5T*<16DF_Q4NBd@sAvIXY-U3SiZv36Y<1~%Ku{3!lid`)BvNkgjk z1h$pFkp#nwAqQIKDumjb%S8||16t=~9MHdr1f$?Rg=8i_1U?``!yFbX?DAk$u}ls& zOb1zp7?0C7CJjRMbdAmRc>${gZ5wa-z` z=8YVPVjH-Fdi^i0EUKpX`8IY^99yrzoM*kvCO)@=op!bsd1ZcK)J`vi`GQ|hcUfy- zcW3MU?Blmn;o}|lF$}wpSXuV*qgMEMg?(&nhYy2&u=hw?>`l`adySp7fPJu6W?1Z{ z8W!94(_%Y=T5KC7i*2-Iv0tTI?04(@cQqFK<&DLj!L-;@niji9Z?U`h7F)=**ix^> zsJ+F=f7$I0I~MP1cQOO+$#ezX7iU=f@X86DhR=v{plNW#++ZQ=`zkMbbk#|}bccf2 z;YsC{<|z0u8)?$`IX>g))m>FastF*{tvxnBv+7HoGGsBnQ660OKLCQTBLDyZ literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/rsqrtgrad.doctree b/master/doctrees/functionlib/dsplib/rsqrtgrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..fd06d9d3b93f5dc2113c1db17beb3ad2f75bc229 GIT binary patch literal 26359 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/scatter_nd.doctree b/master/doctrees/functionlib/dsplib/scatter_nd.doctree new file mode 100644 index 0000000000000000000000000000000000000000..609008922c34d4799a35fbb73a6db0fdcc48fa1c GIT binary patch literal 94602 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 REVbG)tPabPB~E_2{y*!okc zZuRu&bZdIdigHJKoITpgSXsk!%ARy#GGSRpVQK0U{i%dylvzJ^d*lhq($n=yfXaaM2WF}Q)?u|)i6U8DNg!iL!i9YdeY^u~>{m_$0 zt}Yn8tW3!sVV)Bw-RXRv(f!%arn?uhxOMksa;ai} zzF@?Q834$#YTfX!*e$Ab_m*-zF4;^^HZB?y2m&y7Kgs^7O!tyaR|#IG+Xuk1ARO4}2ByOB)TKMpbJCsZ z+3Bt&qZoDRS?Q5Hgl&BZD;@92=98KDK@M(c3DI-1NqVJN7=eDYkN@48Y2jF+n@pRiiV9cvVRJR~HE*XwrW8{%)ovZX6dp~n5m{KoshE^AD^JMQhds52i&Ezs{UWsQj zFi1LclXr5NR#PYr+0o}Ic}dqnEiG)&+qiw-?mOD%#5y|#C7qqIIkC#uH;NR5)bx&w zl`T6eU)%uMEoyd)bCBeasveAZF`ei)IFh$E%kyWyG<@BYL$~Z0e&!khR#Owk?mn#I z@H0^i@_U;z+~V!YF9QsIkaU%<)+Phc5c|S^FaZ#=b3x%ItC<++V-YR_ilQ^X-$$%!F`G1>W)m#>WWoveC&-4gR_LetviP{e|dQ8l|bg6 zXEwgE;VKxO_UzhR+4%ULT@O_rxxI4L1H*#@Lt7q}?D8JMmMx=TnDJ(kJx(M8q>-_(ufLp**HOl!}K=1bGeJAi`CMIe}ZCm%dI`va1#~ju&=zMm}-WM*9RL+T%TT zok-WM#LN$9M)@Qs%4b8Az0*w7lV6o-hONuTWZ+`~_eGBnC||?JLN_j+VZz%YzbUsi z=$`~PYEyhl9k>(v3C?8A7b?}pf0{R*ZVU{@=5pR>SP-)jL(5$^-&s}N_)Y;+7jsjz zOHRH+`I`97t%krIIBNV=x+M!?+MU_Ve*xpQQHAl>iJpLTg4*sqT#f0~yuow>SWGwY zhC)o)&_Vg=hLY9L4duaL;Rxue)S1 zAK-DJ+sPunoyP+rz6>HB`3kg}0nCmrPgB9KZQL)~e}^Y1U&GVV&d$i!z11#ZpBE`S zC$S@4UELhv5AP5@9dBMW-rv>a|0Re2;~D=AUJz8xF&JHXrvbe$G(azuXY~57SnXDE z6;QTE%;Ad9F3*besh|bd*F1&cn#11=lR@tGT%c@$Mb1`tNqVAKiy;@%qF2G?C(L8R z&)ht8*Ouy4ujKwd7lvOpZQ50PAtjEuquwaEa1UCFIoDFtA>1uc9=v_hF(a>^o~ij< zUAe;rqDKk{Y=Nh5bm-QsOM8vWBr~Sba5k(RB^oRy62kpz2D2Kv8GI;MIE-7+8=zSE zLjua1zlAPg{*Ltv$TKH{S*$Z@h&9H?eQM#DFdMNLEaG~FK2R;|nq)(W6b;9QI1K(*4k zhAh$yJJSCV;9(Ec^j{+;x5B&RtCL-?@ufKYoD_)x_-rnd|&+(Xdb^L1eu5epYy4 z433Dx^X}MZ)~_5?i38e?W)b&D_b6jEna*`_-%)%{DL?w7zx5g<~N)tx!H_o$rhbth|V(|9pin#@L8*PcU!hHkM1` z#{1DQJ35n{8&CVt&dz%FPU-9vN$Fk)nzO5MpNdqdE*$1)#EUJ9XKBRAiR*D5*IVq- zFo+myJQKCNgz(#aV2^>lD1{8)UeW>EL^8Qmu+PPwky#k8+vO35?HB`#V$LQ2xY<;; z4@=I)iCUC;uBC8|(_)W;?I+1PPdnhuM0Q5(N3lu;@3OuxpWue8p^DROKU}v> zHrl3KeVeWmZMqiz)Q-6w_E^~MHAn2~8OvPdZw)UQ=?l^qvfg_Q5t@T}E7?x3J_Bww z*X(ex2V{?Y_hhliAlG4UZ=5Jb564$dBuo7Eegm}g+^YB**lXvhAO=?RdI*mr&)BU3 z!%0Qwqs!eBP`Gx!G;f20b=^Rc_c)xZCC^I|Y;iPtQ~AC`CI_lo67~(kXWlXGwoD3! z_DpXEc4F~jR-&-Vu*&9>fN78E%cnT!OYL!dtD*eRo;*eDPh{O3hIhHmQkW>tP0o!M z*Y@?~vjBN+KEJxuzXXcOZUG~D!b-3mi-*)#ORyb+6VAGD**R6WobF_g;?~X0%(M1P zF`mffb8GwZrDA!o)I-cM*On8-9+sq!K~0!9AL8LME%@Vdf{zS8gCccIY=DDxOvs@@ zKtn#jZXGc>#rxUL$Wo$a)2KZ{t`9(H=&TM!zeWt&Bl_#R?XRF-}M)5K8h;w~i7yM@)kX;DiR-Gcah1Z3(^4#7QT!xvWSPg_($GJ=jZYGh^ug#@wgK{SH*n>t8>`peb@Cv<|udjbT&dN^FJP znvEio;+mr_(SOEFQbY@r5fMF^5$(MYYpf4X9o^tmISDH0(fnQvnxa`kD^#f4OPuLU zX|GE}H)fC`LKuvQ2sWL;wY+=%D|y)AnfQ@~K3_x2X4Nh7mo(a-vpG5bw|%^eeDg){ zth&lKUuGZKMS#xg-u!ncZGPWroB5ycZbjMr5j*-{@KU>+Ud$cSSzxWg+Dv7Qgw`1x zN*FdZI7n}w|#zuoXG0&+%|2C+gHyV5y zgQj?u&`RvbsqKPIOr9g|IPer^ii*E5)pY#*E3#`H`|!R}*2-|rF7E0DV*mOeyW+eD z`U_m9)$3FNxD((Ti}8NgmY)DQaCLcrVO=+H=7ofnFOF(3$c6#_;R82h3j(d{E|4C&spBDUpilLp}sa_4udZqI7c2< zgV-TPy|Iq+thUE)l>&$y8==iSeC8hj8@?6_m+Riox%?cMh(IGBw8!M~&fAI3;W=g~m0@(-@42a&x9qO12E+ugDEI8;~JvSoL zo997AduC?-NqQRn;h@puWdlTd^MX1LJIsqc$L#xr9FL^#`uMs}c$&v>(;l;L7kYsNfk?X6nrgotPPFUO>!j^wM#tZ-&AyXH{e+ zi^AmMd)}RDPQ$#XrkaINp;m_NFzdA zu}Dyl_Sj(ttdDKDu;$hHLIyZ-Kf4?(Ze5DxsL@W55_3IOxdzzkXWu`68f7+J@DlAH}?EK8=uL`$!=Ncd?p{T??FxnJp;CBz_Wz-9<8dZ_YKSp6@FnR!tg8CcbfV#Tc0{g zrL&ZFm(D+Fv`MdWQmSH6?IVa95}2Dx=}g zW04t^8VMw}l8M(;Gtt$WUB;$j7N{f?79vW*Fxv8L%yVi0m&=jQ-S_%8p z)v#lt@<%ZnRN#e;rUUO^k;wu=dG)Br_2NJPz^l+)S28w#1fR?wvj`k%PGciRRU8H# zr`q4mNpMn#!{$#}ou9#rB3cN~%sp^?z^uUQEOQ86>!jbAU}=i91T61mCHb@V8WDRP z07nQ_+f0kS=38KrU*4O4X7APl!RBAwcYlR)-k7+x)c!d>%AM@YjRb>wXhu zk6)lK%Hm~1i?VkKQ5HvMa+9+unv0Fj2WnSwr*p4b)^Mg;YFBZm^GG^W(p1IRK#$)M zaV#Gf5tHy2#e;*4jm4V;o!PQxb{S1SqvQ9$l zti*nWVN)wHiLERNC{^+=m;oy3gaLJi(o!W~5&>2C468~`9fvGbDOM*z1--H4y%;pb zs)W{IwHw2xSe4ictHG+|X_y&`TVW<5Zo{dP%P`+5X3vKTdd&7<&=j*0T8Vz3D%p=& zp@J{0L=^lGs^kFXI2HM8v?G5j22Dj?LhJOYdogUPPf2WrRZ^9F9J4?%DlA0AXlPaP zMa+GQ*XN;vUXS_#22JrQp>=qzVAvF|5?kR_LzVn3W`|-|*olbUkg8-`TZ8jpD^$?q z_Am^Z;#NW{@efudXJBTi@C!2$gpKg%2K$fENud@ZHS?J{-Iwoyhh&n%@2s_=FYx?UsQq?|=1$xg43q z_X}*)p$5$%sNm_mv-AegKVfF50TeN#NPN@rtU(k$sw4<}ey3f1uWdZCNTbH(R;bXV zzK670(f6+5z2e=GVu~WvE|RjLy_KU_9Znd~AU?Q3pVes4XCOgW^exW=1_F0g&IYiM zyDHlO!rfKrKZ4fYNIsS~Lr1#W9Ay+gvO@I>o90)oRrWytlo}cQ>;pCh1FpBayw>*;#Qc6 zh}&@T<+GUY6tho51-%*YWel2PRzfS$50o!o#jH@l7giz)ehB&UH<;s8#+wg z7qB){c_N{8#(-BaY-$XU*h&tPTIiU0x3VL0C z%midgr6`rqO4tLm)GnI&2c$jq-WshRe zRPsq^okiJh44Yb%No-|xKuMD?Vg{)669)VzXkTgab`em8)v(g!&oS>QR$miNXh@U$ zFldTZ39ZBG-!N>7Rf(;z8Z1q=O+=QK6t}`mMBIjxCXdB@rt*}Z;lb^#ZP>c!- z5iuHCn!F8jpW^jqsG!%Qwqwu~uM%2^*RNvO6t5Cn;Z;ML{8!8l#jdau5xXI!$sc0Q zQ{27+74*0r!k{T`CA1R%U}^IAm>DYk!c0WrpQv8-NNuu#_IZ#25(&ZR5MX7{V!XBXc zWiT65;DwE*1MgoE)%@x&MFRl*HNQ(?HLXep9?kD!I2noN*9n^6C#5A|xjD_x0f<8L zyAuc&nje36z%{>=zUGG)4Xyc!ADP0zJ5u>lPuAG~J1iYL`l_FX+xuUU5pGAO`|ZR= zA8PP?0xEbq@oc?;^aaceHIO1^RNW8H9!&QmN;2Kg=d>$G{Sb4V8lPW*3Qg*MNUIgy zZ$S2rcT1Wn8qq{2HT|VOc#<&d+>Z9=d~{>|do0#eHvXE&T1WglXfm?!qcTuJ>#WWu zW7yQ{Okyj`1WNon8Z$uUpfKP+Q~Qd4Z;F5_#D*3BPQ<*YSe*|Q^v0D%7&OJIgw|p8 z;}|x@s>D`U4Ho}CjhUgi6=ovhHk|l(8Rk31Yym3hF?$ULO))E>mFNeGe_z0?P{9{g zA_{&8@$W&*aVqlnX-9r122Dj?LhJOY7cgw9Pf2WrRZ{%>56l9^sIU+bqoKvWUt;c4 zybePJy&m-z22JrQp>=p2GX0ei1*i`?L*b2X-{x^tOpr{oVBBC~o{;d}UvzQGk z@WMvZf%mV7>VNf@qyYf_`ri(?wos)5kN)=%oQy>On+^KkBhnJE+?@XB07Rkx?E`{^ z{>R@PX#Hkm~m@JN4egFqIE^w$N_ z-w0_5SZ+@Ga{!`{{uTkjLi*$H4z%>wk(|F^p`P}41ZaOgg+q&f+lBb&1OG1G0I22o z{#O8NZi9uD09Rt85H*Ni3Kcw^d5+$In#0Ucb0lI$kpK_#PtdyGw5H2~2Mng-1H)HNoyxs^E^m^1b44UFq zLhJDQ7=}&pDzOz_HKf4Zm>r5;VJ9MXLrQ_KV9rzAeh(_>ar-(3O>rxsmG}osfxpJg zP~jJ5A_{*L8v(~oM`l}!gHcdHkAvwLG{u30*6ClzVc1mvlGqBrq#8IMvp`WREJQ?Y z7&Y)5%yWv;4?_h#N-xHsDM}@@67~Q!(7(1_?}%4 zRUWy$a@7O-b`Q3_FOy4VODQ9ETG2{n@^jN?R1Y1?s&<#GOtv^TeQaABdmv|DB9rTw z67A#1=2Uz>6Sv za;p#@szLz5(49{V-MXW)VYjzB|KV2oE6J=f{|wd_RjV>Tq5AL>U#jfB#i`3}v%>Hl zMe&2o%U3}CbtiPi*#GNKbqfHvx4?;Au?6c-Wq`t;6Zh0C-6leaevi9DeEYJi+CuS`nPN&|Dw8yd{7v--sZ-p&uIdj;yI#x^o)rwMRLI5V zo!Yiues}YqX~r^*CHX(o%t<6C&m&1QcR0O2U^r!yl|3e#$r-tPu{>ap?#&mHMtRU4 zn@!|al@hCrviM<@iRsL$bQb=qliqg%SaK%47onW)q<2pG$aK4y@yxSEwzN1?T)LIJbkzECNBS7> zEe8LNg@4DvzZoma_822)6*8RE4)Z*yXwS%Cx4ruJ?H*VZ>n-JyRwkc=NwEyK0p{XG zL*Mi&^P65cIGer}#@~Sl-8y#Uv^z`emR{kBt*znb{=dT|{B$33A^dD$SNmH?Hk#Cx zz#mwi!`e!A{3Uu<1!E3Ht|6(b0>q4ROKUowAIPS5sw8`=g%6NBsveHHPF-vq0u^dI zZijgnq>gzvycpgd$cAJ#CSC(4U`#|>t=!C7EA#(=<&|=iW1^FMVj;z2-(d#*{K1o~ zsbZjP6#&(-abcseJ`stvH@^fUdDWH!giLLOeaZfIT*`e4Kb|PXoWwmGCQAo2gup&^qJ5>lijQ4oGYz56OFn`!EYs3JMEN zr=WjD^cGhAg=heP|1GTF)CmUFv@_p?labuQS^`(kzmk?P_6|VrHnp7%`*hdx!ewVBL;&vM76Mg&&kF z@qHTeo*Ill1r?f<_>hJx65l$f9~`*kQdASRS`jJOkjl5B)m8b%NQA1)x4zMMe-?>% z(=s1(Eu_r168v#xK4QSEUEN&9+o7|%*@A_L>QE9|XLa)+hE1(*B(}1;p>)2dFauP7 z5(fO27`{4RK?GFE*swa^zhmB0L*~oE2@Rd^H4K_!RYL2q`b!L(VpU=*tOo0Rf5OaA z+zK-haT`wOn|wrrlVLkl(3=2{!JsK-CA1R#K%K7(vqA-5Scxe3A#}dQnB!ERI#WCH z7hup-=vXHH60atWpMHL-NQ9o7rx9q>}S7XBl5OlK{8_>su8O=XLO z))@(AV%XG3AhDH9B$d7sFbh-?3JXmqp?^hG>8rmU4FK?0`c49tRq3FbcIJFI8Hv(& zE+~D+OG_}?G^g}A08uD?y+E+oe8}G&c%|?71^P-KUN*GSccW1HaCD|{?Ehb_;zkIC zFVMwzM1W~t*}EDWSE%Xvb5Oz4JXOpUUKX9co#@6ZfUlq-8a=Urv* z9?W}c@Vy%Rl~IA?{|M=@-wTS;t%R#HV;hFPE(6&9Li z)W0ICBGq5}1OWJ}Nb6vAsa~dfRHVz`WF#umd7vV#k(MBTnp2S+fGAX?Yk^>)BJp7GmV2H(dqGt}UVm{C-u>3CisA`(@SegD%3$Q3=lg}F|Ryw5>}CM6`K)ry2v z;(337a!L^$+C|zmv?px#ct{=b&CgM+dUZqC>y5_vr$~&O-Vnz83b`TddGN>G5avH5 z*4_jAF>i*BJ~rZ*1{aPJT4(h#3B#sVFA`f>y-@ntQJ4X$3kd`MO9)?m><1#CN~(s{ z$4HKht*{!bkFCJWP}~YL5pf$%7As-CQ_Ow_ zD(EqLH3m&FE1{L>2g+if$E;An7giz)eh69Y%b4R-!AX5D}xHWwBpi?o+%DK?S`Y^(PFP;#ETH@Y?zwWOk)^mDmce8nW0_ z%nrq_uoDrxA!V`InDZ33GogYWw;#ZuDQ+dS68~UX?4y_&D*VDsMB$&HT&YQ2Ea+(| z{%hu*MjI37bX3KZP&>hzSTp~Pt&!h`m)ceEa_*SUD)?WpHdA>bp>@Up8^fl?0Ew;S zAgST~56l9Ue!@c2>E~Y&)$r;sJ_7*!HM~24WmP1ork!~!oQy=nTM8Q9?a~sAGtFsu z4nPzd-pfF+(D3-X1Fqrq>T7s-(a;*+7r2IpgCCe5FUOwb7VPEzmt52zD{uIFo_n#e zg_@lAKm|`1{g~cF{YT6UH2@=KR2>h`4NS))N-`bK=d`Qijg28|JZkhE1r?gq@sL(4 zI^N~ZV}ONzCVrQyQ+#lq5z2OH$s^7aX<_%6=drZaPu?oBfP79Zo>huGGC_GnF?PFd zG%vx=K%nI(H?GHFaiuaZ#^b6p-7mnPsce(bI@A4`7&bNCOKfGjr$n#wFauP+2?PFf zuCM5IlnAK8YFN?Bz`UneO$aA6HiZ>2Xo^({t;6b-7&gVK#8y}h7QHrOW+-ljnTWUz zCwkq7`A#wWC8(e`J3N6wQ_M5?Y7XlQC?H zSBb6gsv&wU#_Ul2RoID$-H@W!rI_;+x0gT#J#I}5n&MVMEAbB&z1Co6sPGFj5rseW zZ;{`Gxla*bYZGu622Bwlp>;af!x%Qzxg@qiE~zFxjai_06&9N2)xRRDCe>d81pxS~ zNk6N*RQ0GyKZcW$s7W6KHR&~J2|93dYLWvGg_`tBAXunL{M`XplT!L>5?(a4nk1gM zkAokmAH&A%N@I^j7G>1HI|?dz6s7a^X2I#08EOzl%&3YIo*$T^ zM3iKTlFw;Z`RKr0r$*r8phA<164Gi#QCchW|A6I{qCQM?l26$mrhLn=RTOblCFi3X z+{IXMsq{OO2UkZ{x&VWwQcgna%=;@bY--+@*vh<5$x3~g0V?T)0sqO@S5`Vr1XLk5 ztgN&V^PXb$O5ucttaLL5O|dGWby(eoVNt*}bUO7FugP>c!-5iuHCRyq}PpW^josG!%Q&cUE5UL~{+uNPz36t5Cn;Z;Lc zN?~>=c7>gY*bONwU4c1Iak~a8=y7`;22F7*p_TXt%SyLnW~lHBGZBS9ir=-~fwh3* z;9+eJzK%gt97t%L{`GGdHr2l*w!$x|EWL_Zpr{oVnx@vjBC0IaUkU{P_$x~-FcYem ztR7|QFQC6fqAZ;c%F^Eej9G#{+?=xH07RiIjX%y&miW5^tt`z>#yW-)zOs- z7&Mh|5?W{0-+*CLv%bVuX8jSPpdZPf-jvFmn{PK@2B>@!2K=X9UtQ@^umn9gQe9~~ z<~_ygHsOSZuJlz5nqpN#>#+I_44YzAVk@i$>q_6n%uw74GZAqcPFEVje5aUw9V+Ne z5WmNuDP|?K68%73>7e%`vmF(DVI`vAhtQRdz#OL{KOHLQMZN=rrXnw)b^6pv7&g_X zB(}mTsVgnQEKrOJ3lT9IT31?*xli$WF;vjwHG@G@yh>;tUN6V6DPASE!mEa^bPZ;Q zVprISh~1F7(iY5lird?vf*!XIV$c+~5?YCWu&%TdGed=6n29L-p|>l24|AU);NP?f z_%95aB0xgxbgnlsY^rlfY=vA>RC)`uK=CRpG|j7jMO0L(zXS>Zcy)A3%K&@Y=cOY- zO!*OfGJgy&AoavxS)pF7dPJoo;bbJD(#OHl(b5uh;O0an2OtVjY4!|9RO0Urw5ZgP zoWEe9o~m?2a;{(D(6Z94LRRwe<=wPtNz2pyuPr${N0f(db(q@X(%F!P4T(#Op@OHo zUZ6J{UWA#U24lpGA}$@~pMrJ2cu1E8dC9+kd%d5=8bFQ5DX7q-zJ#=0(U<<=HZNU+ z1(#X{Y~aDw5t+V#K~sq*p>=#pNf4&rYl51BNdsR z$GoRl{f2NtLuC3744Pt9LhG>la}1keRbnfw28&F;!pufC&h)kzoj#GW=B<;wbjX_h9m(V(W>LLuA>QfS1 zVU-k_l9&aGQDGq>Mnj8C>oE5zUN46VdOd0ogQj?u&^o-{hGA2@N^FH!4Uy?y%nrq_ zuoDrxAw{O$nDZ33JE4Lew=ZGP6t@yuiGQ%j^h3-H6@FnRqVPwtdFj_!3n&iW)aKyt z7&OI!gx2X_?H$NOOZ6{_t?*0gOow9@C~Ad;rm6L>i0VxBmqGym{yNi{u;5ZJTs=C| zscF!t;d^)O`TF(ycHhz2 zDRzOp=oB&+14HsI^yJ#o)kgw<1mV&9gkO-}(%%N(J_O}zFH397%}IBrXQ#WCEQ9hN zWY)z-tox?7v^ZW}a?yyEmiJ|H$!sZQ#7-+(sZ4%u`i!$p^Qva{RNvJ6@FHfbxkj;%P6- zS3t>iCv?Tw|LcWCRsdkU1y1aWEr7GUes_0FkW;zgmZ7aXhX)6Swmd9cMZenDA@&G# zvB%IjkC-{0J*y^_Ng74|#yPy8E9M9`!j*zyl?u5Sgkrti1@zAdCli)s6yV7`aS^L{ ze^e26Rh>@;^cp@UeGT${z5fR>4G!}52b<>hJv>`6tzOfDsODf5Ao4I^pRu#+klvF-hvNGA?+}=Vy zXBoLv*>1fkku4d;^37#2@|jGoS(=`-)E>9W$Qgx%l`jCwxKzS2idLepA3lsPI|%SX;Ia?gf}!-ZDHV z2kZ$&BWdMIeepHD`9fcLz@AvN3Yq?RGT+w+6^j6Pq&Q+^4SpnkdB#e|li5VE2n_*y zvVwb{yDKy$1oich#s{n7}<%vQL zA_yf4Mxqani~}l?25S=YFO%zs@zBU6^C>7*w#SvM-Z=~B6f^MtDD`CAC=~LAcsh|w zWsL$vpShZ}Ag{#G>OmRJQOfqwHD_ud%=@7q*b@bA)d#2cQR<1B%JyW|2FSZ&8bXwX zHkIuO*+gztDY43ch^OH5=+CC(i_|@nd}qDGJ}hln{l!zdyWwzgZvR>x4II+iy0R?(6WFlMsK;N+9 zR-&-VfB_2fW(qh3nPtIf3m7S*mks9j!OGEGq7O{LVL)$_Yx{X+eqykgJ_hCrem>o9evHlDm#~*ft?)99y$p_pm(A?uwKjNpoxNN< z0bVX;FAq(EmmTco?J4jw>R@=ea2mW^!d~8FOM>697xtUoCi_)yll|_J$$puMKfTpt z&v!N1lQ&HEYz~usQ^I85r7+p;ZGHpXWEUVNyF@A36TFGVn>rzxf%Igtg64}OZ2WM_ ziI{qih;k5VNW{LLeAdlXUUXW`LAUfc1#z5Xl~+1g!H3zPV3na`A5x1Y&%lHXqgygx zVq+J~fXRF|D{=;=xG{_5@tc9*jpYlVr}ifb(C2~jA|$6U=nitq;qmTao?r0my!;vj U@_7|Yt+o^!hvkqZE?nmRf2!Umy8r+H literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/select.doctree b/master/doctrees/functionlib/dsplib/select.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2aaa9b5a91d70ae2532a4f82232f2f6bec7e6f7d GIT binary patch literal 169333 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 z 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 literal 40512 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/sigmoidcrossentropywithlogits.doctree b/master/doctrees/functionlib/dsplib/sigmoidcrossentropywithlogits.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d670a868502afae7528225597e3bd3b2600bead9 GIT binary patch literal 36319 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/smooth1loss.doctree b/master/doctrees/functionlib/dsplib/smooth1loss.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e1c28885bd6ad81211d8b30335ad26c0c2a83c82 GIT binary patch literal 36595 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 HQaA8_tb4L- literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/softmax.doctree b/master/doctrees/functionlib/dsplib/softmax.doctree new file mode 100644 index 0000000000000000000000000000000000000000..64b3f2b17edaf5f9d7240ba0705a5a52fae478dc GIT binary patch literal 44098 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/sparse_softmax_cross_entropy_with_logits.doctree b/master/doctrees/functionlib/dsplib/sparse_softmax_cross_entropy_with_logits.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3bca44596fe28ef077df4fff8636b8c950268a83 GIT binary patch literal 61036 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 KYoe=*o&O(FgK!A| literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/sparsefillemptyrows.doctree b/master/doctrees/functionlib/dsplib/sparsefillemptyrows.doctree new file mode 100644 index 0000000000000000000000000000000000000000..171eed2eca1163c73862e615920af2c42997f849 GIT binary patch literal 131984 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

^?yJHJ+22ZXo_nIt;6+iFl>rziLG!Q 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 H6+8YvLbNjL literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/sparsereshape.doctree b/master/doctrees/functionlib/dsplib/sparsereshape.doctree new file mode 100644 index 0000000000000000000000000000000000000000..576d87002e202c7f4da4a9cc607946135a0df4cc GIT binary patch literal 33259 zcmeHQdypJQdDp{tr#tEH^s=zA4GY-jbVxesP$9Z49#5+uNPH+0owa zvO6ou76Qq(tUEK79auj~HXyld`E7|p82Kze0)!AkNPzH1szMy%+dC;HxS�g+G$~ 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

=3{m_F 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 OO0Ygxc27e2Y5y;i+OGlt literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/sparsetodense.doctree b/master/doctrees/functionlib/dsplib/sparsetodense.doctree new file mode 100644 index 0000000000000000000000000000000000000000..af41a6a9147ffa7bff5ec4ef1070cb5a335d23c7 GIT binary patch literal 96157 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 G-TwuGy>Yt$ literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/split_with_overlap.doctree b/master/doctrees/functionlib/dsplib/split_with_overlap.doctree new file mode 100644 index 0000000000000000000000000000000000000000..084ddd9a27abfc0150a7e24e1329a41cbaf4620c GIT binary patch literal 105744 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 RQmZ4&>aZwT{FJBX{{z#BF4zD7 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/sqrt.doctree b/master/doctrees/functionlib/dsplib/sqrt.doctree new file mode 100644 index 0000000000000000000000000000000000000000..be20d2d2153c9d7ea69031b82a0c549d10ce7cd7 GIT binary patch literal 56816 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 m!_^^0It>eYvm_ipk7|VKiYU*j*<_*H%lgJ3eM# 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 HH1Pibu4>ED literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/stridedslice.doctree b/master/doctrees/functionlib/dsplib/stridedslice.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ceacd98f36e80d7c2a0f1235eb2d84f0a324532e GIT binary patch literal 47980 zcmeHQ3y@pYdG=!O+Phw_U)Y535}3z&V|#4_34uJ?I-#^q+$2Eb)~2#nx@$?+N?Yj) z+c2KmP}{rs8dDIE7$}el!6Dd&;DGT1cP5#3+G$dnlIBr5P21J(x@qH1Nt)6onSTFy z-g|X)_R1?V)6~qcmX6N(|Nng7f1daJ=WcI(IB|Rm`_G$Q8cb*MTb3nKseB>jlq%kg zR3TX&aPn^Dp~~VNm2H)7uf3SqTq=}{NvGmXL5^fPlS>tyeC3Xc*G1XgOs=#{l%HO5 zl5VDuSH;t<>9+LrJ1X7jcCXdVxH-r7lh=8xTg;@KR4JE%c*=)t({6LNkp9rGJ1b<5 z*EX1da<`J6Tk1=A9SIi_`pPbhCu65(QYA8MdNP+Nm5_+ft@*?N|1=|29@Jm@63I

Jh-8)JSq*^epu3(jW?j#&$d)k%=2)B9 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 MVL4@q(xvOa0YCs_aR2}S literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/topkfusion.doctree b/master/doctrees/functionlib/dsplib/topkfusion.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5ae36067172163b5bd2ef8e0a3482a1b4cbe443f GIT binary patch literal 52692 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/transpose.doctree b/master/doctrees/functionlib/dsplib/transpose.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8c89f8ec97fcb074d6777c2a1b17566b8c9b0299 GIT binary patch literal 99823 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/tril.doctree b/master/doctrees/functionlib/dsplib/tril.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c2960eef84438efc01498c5c5169f7816c4388a7 GIT binary patch literal 99610 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 PRi7f`Fdwp*3efsr4kRIi literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/uniform_real.doctree b/master/doctrees/functionlib/dsplib/uniform_real.doctree new file mode 100644 index 0000000000000000000000000000000000000000..23a5ed7be99652130ea9f1974cfe1f3452527feb GIT binary patch literal 23243 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/unique.doctree b/master/doctrees/functionlib/dsplib/unique.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c9cc32c6f03214899d7eb0d2180174a630336109 GIT binary patch literal 70957 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 Wi|36jCH16P9+oMK?Ki5UEB-$ZIv#%j literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/unsortedsegmentsum.doctree b/master/doctrees/functionlib/dsplib/unsortedsegmentsum.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6132ca64e1b920591dfa32abee5d9dd6d2460e57 GIT binary patch literal 76551 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 RJsCFV%IS&iE2{mA|38}5ZFT?v literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/unstack.doctree b/master/doctrees/functionlib/dsplib/unstack.doctree new file mode 100644 index 0000000000000000000000000000000000000000..fea5586757983d94389bc519b825a558cd280751 GIT binary patch literal 19436 zcmeHPYmgk(b=G6w+J{z10xU!ZW5e!9yDJF_RA30U;y8)IQW!xT3stLkrf0i*XS#>! z9%&^k-V(dNLIb^dWtV z-p_iKVEp=8)+L91&xCGQw27lf^@%+sr-_PT6`iVG(-g-5f--fRz<*~#beSmCEiQ+$ zF*N~5`coG}9j`gA$2!V}rFnbT)Tc1&UJOp1uBlZ$Dw_if-+Oz3J>B@DGw;25p>h7i zdvBd;9RE(^(sS=WeRAQeCmM4nF28oMarVsR*M7h8($_`%2bUOuJ$*4~Szz;x6UQ4b zee?b2FE%coTzKZU8*|_IhsT}}65q@|W-3B`knIHYre6bP>DNNjIsE@5{(lPpZ-657 z5q(V0>)Z70d%H*x`l!B^i>9xly1Ft|wqYaEBK1youU&VmbyqQRcjOEU-}XP~!g3yl zTC~}mTDGm}oH}bb#}4#8_)uLf=EUogUCU`|LC-m5qoDb4$2g>v$H#yZso3> z3}alxd<5-dGH7=>ZVm1fVTSbv*yP|lxz4>{;7_$0_!AiLqZsgJcGXgL5@LJQnbO*d z9fQF7aJ@yKIpWKlfDeI%qjJn_M?SwiyG#o0tPt9h0Y*s5#~4V8KZj%cy>=vZj!Wvs zq@5b_GYX-wW*uj)3EWgVSewXHrl&_f)Ej6 z`(e9sS&yOqMZ0n#;J93_&*xi)q@-y6B}Fs>Ngx_}3xcFCB#fU+75VNhNigRj7)J4Ktx{-g5y51RF%sHv7`%Tc&uUhQdg`S#8Lpu+xJhujrGCeOY@g6 zK9f6mkVn(~ z%UFBX)N*t+GL*0a$?Up_ZG@;EZOyTH3@}lq*TS$u41$?#qnDeRO+ZuNV{gxK3I1RU zc=HYbn0FEs+)Fwx^*qp`C&5eKC3s=P*&~te3!~Q`@V8~53*WHdy}ZC4Z@m6$IO7xRDYigG(O7m5WtyLhF4tgcV_A-}+ zo^;S~0@;+xs^HXo1ihszv&f(%pIu^zLb zoG`3hse03{?fAUq=IuxjxV!o1&Rh5&dQ+&DXXzdN-MMQw_M}3xVSfS^SkS+zr%*^D z+>b=|5_fzgegyi!Sj}~75RoWFwwZlI#DPN%0A(wOlICy?)Y}XARtp2U{vh}+4j+-o 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/where.doctree b/master/doctrees/functionlib/dsplib/where.doctree new file mode 100644 index 0000000000000000000000000000000000000000..caa19624846c1450a4c1d4dd6931a9bd665a3432 GIT binary patch literal 76605 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 aSFcPkz@NvNYxQJU9F`%A?KP^SL;nwBOYgn_ literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/zeroslike.doctree b/master/doctrees/functionlib/dsplib/zeroslike.doctree new file mode 100644 index 0000000000000000000000000000000000000000..00714303c9cc1d17100bf2d085e9ad5ba743d186 GIT binary patch literal 47710 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/rstfiles.doctree b/master/doctrees/functionlib/rstfiles.doctree new file mode 100644 index 0000000000000000000000000000000000000000..61331f572dad8ef465a2f570988df2d1cbe5e0ad GIT binary patch literal 2831 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 + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; // input在DDR空间 + float *output = (float *)0xC0000000; + int length = 1024; + int core_mask = 0xff; + + fp_abs_s(input0, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_abs_p(int8_t* src_data, int8_t* dst_data, int length) +.. c:function:: void i16_abs_p(int16_t* src_data, int16_t* dst_data, int length) +.. c:function:: void i32_abs_p(int32_t* src_data, int32_t* dst_data, int length) +.. c:function:: void hp_abs_p(half* src_data, half* dst_data, int length) +.. c:function:: void fp_abs_p(float* src_data, float* dst_data, int length) +.. c:function:: void dp_abs_p(double* src_data, double* dst_data, int length) +.. c:function:: void c64_abs_p(float* src_data, float* dst_data, int length) +.. c:function:: void c128_abs_p(double* src_data, double* dst_data, int length) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0x10810000; // input在L2空间 + float *output = (float *)0x10820000; + int length = 1024; + + fp_abs_p(input0, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/absgrad.rst.txt b/master/html/_sources/functionlib/dsplib/absgrad.rst.txt new file mode 100644 index 0000000..025cfad --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/absgrad.rst.txt @@ -0,0 +1,80 @@ +Absgrad +================= + + +逐元素计算绝对值梯度 + +.. math:: + + output_i = \begin{cases} + input0_i, & \text{if } input1_i \geq 0 \\ + -input0_i, & \text{if } input1_i < 0 + \end{cases} + +输入: + - **input0** - 第一个输入数据地址。 + - **input1** - 第二个输入数据地址。 + - **size** - 计算长度。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + + +**共享存储版本:** + +.. c:function:: void fp_absgrad_s(float *input0, float *input1, float *output, int size, int core_mask) +.. c:function:: void hp_absgrad_s(half *input0, half *input1, half *output, int size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; //input在DDR空间 + float *input1 = (float *)0xB0000000; + bool *output = (bool *)0xC0000000; + int size = 1000; + int core_mask = 0xff; + fp_absgrad_s(input0, input1, output, size, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_absgrad_p(float *input0, float *input1, float *output, int size) +.. c:function:: void hp_absgrad_p(half *input0, half *input1, half *output, int size) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0x10000000; //input在L2空间 + float *input1 = (float *)0x10001000; + bool *output = (bool *)0xC0000000; + int size = 1000; + fp_absgrad_p(input0, input1, output, size); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/activation.rst.txt b/master/html/_sources/functionlib/dsplib/activation.rst.txt index c33dc8a..41d3ae2 100644 --- a/master/html/_sources/functionlib/dsplib/activation.rst.txt +++ b/master/html/_sources/functionlib/dsplib/activation.rst.txt @@ -19,7 +19,7 @@ Activation .. math:: - output_i = \min(\max(input_i, \text{min_val}), \text{max_val}) + output_i = \min(\max(input_i, \text{min\_val}), \text{max\_val}) - ``LRelu`` - 带泄露的线性整流单元(Leaky Rectified Linear Unit),它在输入为正时保持线性,在输入为负时也保留一个很小的斜率,以避免标准 ReLU 中的“死亡神经元”问题。 @@ -97,7 +97,7 @@ Activation output_i = \begin{cases} - input_i, & input_i \gt 88.0 \\ + input_i, & input_i > 88.0 \\ \ln(1 + e^{input_i}), & \text{otherwise} \end{cases} @@ -107,7 +107,7 @@ Activation output_i = \begin{cases} - input_i, & input_i \ge 0 \\ + input_i, & input_i >= 0 \\ \alpha (e^{input_i} - 1), & input_i < 0 \end{cases} @@ -117,7 +117,7 @@ Activation .. math:: output_i = \begin{cases} - input_i, & input_i \ge 0 \\ + input_i, & input_i >= 0 \\ \alpha (e^{\frac{input_i}{alpha}} - 1), & input_i < 0 \end{cases} diff --git a/master/html/_sources/functionlib/dsplib/activation_grad.rst.txt b/master/html/_sources/functionlib/dsplib/activation_grad.rst.txt new file mode 100644 index 0000000..693c620 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/activation_grad.rst.txt @@ -0,0 +1,115 @@ +ActivationGrad +================= + +激活函数梯度计算算子系列。该系列算子根据激活函数的输入(或输出)以及上一层传回的梯度,计算并输出当前层的梯度。 + +.. math:: + + \text{通用公式:}\quad dst_i = src0_i \cdot f'(src1_i) + +其中 :math:`src0` 为梯度输入(Output Gradient),:math:`src1` 为激活函数的原始输入或输出(取决于具体激活函数类型),:math:`f'` 为激活函数的导数。 + +包含算子列表: + - **ReluGrad**: ReLU 激活梯度。 + - **Relu6Grad**: ReLU6 激活梯度。 + - **LeakyReluGrad (l_relu_grad)**: Leaky ReLU 激活梯度,需传入参数 ``alpha``。 + - **SigmoidGrad**: Sigmoid 激活梯度。 + - **TanhGrad**: Tanh 激活梯度。 + - **HSigmoidGrad**: Hard Sigmoid 激活梯度。 + - **HSwishGrad**: Hard Swish 激活梯度。 + - **GeluGrad**: GELU 激活梯度。 + - **EluGrad**: ELU 激活梯度,需传入参数 ``alpha``。 + - **SoftplusGrad**: Softplus 激活梯度。 + - **HardShrinkGrad**: Hard Shrink 激活梯度,需传入参数 ``lambd``。 + - **SoftshrinkGrad**: Softshrink 激活梯度,需传入参数 ``lambd``。 + +输入: + - **src0** - 梯度输入数据地址。 + - **src1** - 原始输入/输出数据地址。 + - **length** - 计算长度。 + - **alpha / lambd (float, 可选)** - 特定激活函数所需的系数。 + - **core_mask (int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **dst** - 梯度计算结果输出地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 仅支持 fp32。 + - MT7004 支持 fp32, fp16。 + - 对于不同的算子,``src1`` 的含义可能不同(例如 SigmoidGrad 通常使用前向传播的输出作为 src1,而 ReluGrad 使用前向传播的输入作为 src1),需确保上层传入地址正确。 + +**共享存储版本:** + +.. c:function:: void fp_relu_grad_s(float* src0, float* src1, float* dst, int length, int core_mask) +.. c:function:: void hp_relu_grad_s(half* src0, half* src1, half* dst, int length, int core_mask) +.. c:function:: void fp_relu6_grad_s(float* src0, float* src1, float* dst, int length, int core_mask) +.. c:function:: void fp_l_relu_grad_s(float* src0, float* src1, float* dst, int length, float alpha, int core_mask) +.. c:function:: void fp_sigmoid_grad_s(float* src0, float* src1, float* dst, int length, int core_mask) +.. c:function:: void fp_tanh_grad_s(float* src0, float* src1, float* dst, int length, int core_mask) +.. c:function:: void fp_h_sigmoid_grad_s(float* src0, float* src1, float* dst, int length, int core_mask) +.. c:function:: void fp_h_swish_grad_s(float* src0, float* src1, float* dst, int length, int core_mask) +.. c:function:: void fp_gelu_grad_s(float* src0, float* src1, float* dst, int length, int core_mask) +.. c:function:: void fp_elu_grad_s(float* src0, float* src1, float* dst, int length, float alpha, int core_mask) +.. c:function:: void fp_softplus_grad_s(float* src0, float* src1, float* dst, int length, int core_mask) +.. c:function:: void fp_hard_shrink_grad_s(float* src0, float* src1, float* dst, int length, float lambd, int core_mask) +.. c:function:: void fp_softshrink_grad_s(float* src0, float* src1, float* dst, int length, float lambd, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例(共享存储) + #include + #include "78NE/utils.h" + + int main(int argc, char* argv[]) { + float *src0 = (float *)0xA0000000; // 梯度输入在共享存储 + float *src1 = (float *)0xA1000000; // 原始数据在共享存储 + float *dst = (float *)0xB0000000; // 结果输出到共享存储 + int length = 1024; + int core_mask = 0xff; + fp_relu_grad_s(src0, src1, dst, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_relu_grad_p(float* src0, float* src1, float* dst, int length) +.. c:function:: void hp_relu_grad_p(half* src0, half* src1, half* dst, int length) +.. c:function:: void fp_relu6_grad_p(float* src0, float* src1, float* dst, int length) +.. c:function:: void fp_l_relu_grad_p(float* src0, float* src1, float* dst, int length, float alpha) +.. c:function:: void fp_sigmoid_grad_p(float* src0, float* src1, float* dst, int length) +.. c:function:: void fp_tanh_grad_p(float* src0, float* src1, float* dst, int length) +.. c:function:: void fp_h_sigmoid_grad_p(float* src0, float* src1, float* dst, int length) +.. c:function:: void fp_h_swish_grad_p(float* src0, float* src1, float* dst, int length) +.. c:function:: void fp_gelu_grad_p(float* src0, float* src1, float* dst, int length) +.. c:function:: void fp_elu_grad_p(float* src0, float* src1, float* dst, int length, float alpha) +.. c:function:: void fp_softplus_grad_p(float* src0, float* src1, float* dst, int length) +.. c:function:: void fp_hard_shrink_grad_p(float* src0, float* src1, float* dst, int length, float lambd) +.. c:function:: void fp_softshrink_grad_p(float* src0, float* src1, float* dst, int length, float lambd) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + //MT7004 示例 + #include + + int main(int argc, char* argv[]) { + float *src0 = (float *)0x10000000; // 私有存储空间地址 + float *src1 = (float *)0x10001000; + float *dst = (float *)0x10002000; + int length = 139; + float alpha = 0.01f; + fp_l_relu_grad_p(src0, src1, dst, length, alpha); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/adam.rst.txt b/master/html/_sources/functionlib/dsplib/adam.rst.txt new file mode 100644 index 0000000..f1904ff --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/adam.rst.txt @@ -0,0 +1,128 @@ +Adam +================= + + 使用 Adam 算法更新参数权重。支持 Nesterov 动量。 + + 算法逻辑如下: + + .. math:: + + m_t = m_{t-1} + (g_t - m_{t-1}) \cdot (1 - \beta_1) \\ + v_t = v_{t-1} + (g_t^2 - v_{t-1}) \cdot (1 - \beta_2) \\ + \hat{lr} = lr \cdot \frac{\sqrt{1 - \beta_2^t}}{1 - \beta_1^t} + + 如果不启用 Nesterov: + + .. math:: + + w_t = w_{t-1} - \hat{lr} \cdot \frac{m_t}{\sqrt{v_t} + \epsilon} + + 如果启用 Nesterov: + + .. math:: + + w_t = w_{t-1} - \hat{lr} \cdot \frac{m_t \cdot \beta_1 + (1 - \beta_1) \cdot g_t}{\sqrt{v_t} + \epsilon} + + 输入: + - **m** - 一阶矩向量地址(输入/输出)。 + - **v** - 二阶矩向量地址(输入/输出)。 + - **gradient** - 梯度向量地址。 + - **weight** - 权重向量地址(输入/输出)。 + - **beta1** - 一阶矩估计的指数衰减率。 + - **beta2** - 二阶矩估计的指数衰减率。 + - **beta1_power** - :math:`\beta_1^t` 的值(指针形式传入)。 + - **beta2_power** - :math:`\beta_2^t` 的值(指针形式传入)。 + - **eps** - 数值稳定性项 epsilon。 + - **learning_rate** - 学习率。 + - **nesterov** - 是否启用 Nesterov 动量(0: 不启用, 1: 启用)。 + - **start** - 计算的起始索引(包含)。 + - **end** - 计算的结束索引(不包含)。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + + 输出: + - **m** - 更新后的一阶矩。 + - **v** - 更新后的二阶矩。 + - **weight** - 更新后的权重。 + + 支持平台: + ``FT78NE`` + ``MT7004`` + + .. note:: + - 仅支持 fp32 数据类型。 + +**共享存储版本:** + +.. c:function:: void fp_adam_s(float* m, float* v, const float* gradient, float* weight, float beta1, float beta2, float* beta1_power, float* beta2_power, float eps, float learning_rate, int nesterov, int start, int end, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 25-26 + + #include + + int main(int argc, char* argv[]) { + // 假设所有数据均位于DDR空间 + float* m = (float*)0xC0000000; + float* v = (float*)0xC1000000; + float* gradient = (float*)0xC2000000; + float* weight = (float*)0xC3000000; + + // 标量参数 + float beta1 = 0.9f; + float beta2 = 0.999f; + float beta1_power_val = 0.9f; // beta1^1 + float beta2_power_val = 0.999f; // beta2^1 + float* beta1_power = &beta1_power_val; + float* beta2_power = &beta2_power_val; + float eps = 1e-8f; + float learning_rate = 0.001f; + int nesterov = 1; + + int start = 0; + int end = 800000; // 元素总数 + int core_mask = 0xff; // 使用所有核心 + + fp_adam_s(m, v, gradient, weight, beta1, beta2, beta1_power, beta2_power, + eps, learning_rate, nesterov, start, end, core_mask); + + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_adam_p(float* m, float* v, const float* gradient, float* weight, float beta1, float beta2, float* beta1_power, float* beta2_power, float eps, float learning_rate, int nesterov, int start, int end) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 20-21 + + #include + + int main(int argc, char* argv[]) { + // 假设所有数据均位于L2/AM空间 + float* m = (float*)0x10820000; + float* v = (float*)0x10830000; + float* gradient = (float*)0x10840000; + float* weight = (float*)0x10850000; + + float beta1 = 0.9f; + float beta2 = 0.999f; + float beta1_power_val = 0.9f; + float beta2_power_val = 0.999f; + float eps = 1e-8f; + float learning_rate = 0.001f; + int nesterov = 0; + int start = 0; + int end = 2000; + + fp_adam_p(m, v, gradient, weight, beta1, beta2, &beta1_power_val, &beta2_power_val, + eps, learning_rate, nesterov, start, end); + + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/adamweightdecay.rst.txt b/master/html/_sources/functionlib/dsplib/adamweightdecay.rst.txt index a83c44d..f2ae39a 100644 --- a/master/html/_sources/functionlib/dsplib/adamweightdecay.rst.txt +++ b/master/html/_sources/functionlib/dsplib/adamweightdecay.rst.txt @@ -48,7 +48,7 @@ AdamWeightDecay .. code-block:: c :linenos: - :emphasize-lines: 17 + :emphasize-lines: 17-19 // FT78NE 多核示例 #include @@ -84,7 +84,7 @@ AdamWeightDecay .. code-block:: c :linenos: - :emphasize-lines: 15 + :emphasize-lines: 15-17 // MT7004 单核示例 #include diff --git a/master/html/_sources/functionlib/dsplib/addfusion.rst.txt b/master/html/_sources/functionlib/dsplib/addfusion.rst.txt new file mode 100644 index 0000000..7df3026 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/addfusion.rst.txt @@ -0,0 +1,274 @@ +Addfusion +================= + + +带参数alpha的逐元素求和 + +.. math:: + + output_i = in0_i + in1_i*alpha + +输入: + - **in0** - 第一个输入数据地址。 + - **in1** - 第二个输入数据地址。 + - **alpha** - 乘法因子。 + - **size** - 计算长度。 + - **core_mask** - 核掩码。 + +输出: + - **out** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + + +**共享存储版本:** + +.. c:function:: void i8_addext_s(int8_t *in0, int8_t *in1, int8_t alpha, int8_t *out, int size, int core_mask) +.. c:function:: void i16_addext_s(int16_t *in0, int16_t *in1, int16_t alpha, int16_t *out, int size, int core_mask) +.. c:function:: void i32_addext_s(int32_t *in0, int32_t *in1, int32_t alpha, int32_t *out, int size, int core_mask) +.. c:function:: void hp_addext_s(half *in0, half *in1, half alpha, half *out, int size, int core_mask) +.. c:function:: void fp_addext_s(float *in0, float *in1, float alpha, float *out, int size, int core_mask) +.. c:function:: void dp_addext_s(double *in0, double *in1, double alpha, double *out, int size, int core_mask) +.. c:function:: void c64_addext_s(float *in0, float *in1, float alpha, float *out, int size, int core_mask) +.. c:function:: void c128_addext_s(double *in0, double *in1, double alpha, double *out, int size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *in0 = (float *)0xA0000000; //input在DDR空间 + float *in1 = (float *)0xB0000000; + bool *out = (bool *)0xC0000000; + float alpha = 0.1; + int size = 1000; + int core_mask = 0xff; + fp_addext_s(in0, in1, alpha, out, size, core_mask); + return 0; + } + + + +**私有存储版本:** + +.. c:function:: void i8_addext_p(int8_t *in0, int8_t *in1, int8_t alpha, int8_t *out, int size) +.. c:function:: void i16_addext_p(int16_t *in0, int16_t *in1, int16_t alpha, int16_t *out, int size) +.. c:function:: void i32_addext_p(int32_t *in0, int32_t *in1, int32_t alpha, int32_t *out, int size) +.. c:function:: void hp_addext_p(half *in0, half *in1, half alpha, half *out, int size) +.. c:function:: void fp_addext_p(float *in0, float *in1, float alpha, float *out, int size) +.. c:function:: void dp_addext_p(double *in0, double *in1, double alpha, double *out, int size) +.. c:function:: void c64_addext_p(float *in0, float *in1, float alpha, float *out, int size) +.. c:function:: void c128_addext_p(double *in0, double *in1, double alpha, double *out, int size) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *in0 = (float *)0x10000000; //input在L2空间 + float *in1 = (float *)0x10001000; + bool *out = (bool *)0xC0000000; + int length = 1000; + fp_addext_s(in0, in1, alpha, out, size); + return 0; + } + + + +逐元素求和并计算relu激活函数 + +.. math:: + + out_i = max(0, in0_i + in1_i) + +输入: + - **in0** - 第一个输入数据地址。 + - **in1** - 第二个输入数据地址。 + - **size** - 计算长度。 + - **core_mask** - 核掩码。 + +输出: + - **out** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_addrelu_s(int8_t *in0, int8_t *in1, int8_t *out, int size, int core_mask) +.. c:function:: void i16_addrelu_s(int16_t *in0, int16_t *in1, int16_t *out, int size, int core_mask) +.. c:function:: void i32_addrelu_s(int32_t *in0, int32_t *in1, int32_t *out, int size, int core_mask) +.. c:function:: void hp_addrelu_s(half *in0, half *in1, half *out, int size, int core_mask) +.. c:function:: void fp_addrelu_s(float *in0, float *in1, float *out, int size, int core_mask) +.. c:function:: void dp_addrelu_s(double *in0, double *in1, double *out, int size, int core_mask) +.. c:function:: void c64_addrelu_s(float *in0, float *in1, float *out, int size, int core_mask) +.. c:function:: void c128_addrelu_s(double *in0, double *in1, double *out, int size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *in0 = (float *)0xA0000000; //input在DDR空间 + float *in1 = (float *)0xB0000000; + bool *out = (bool *)0xC0000000; + int size = 1000; + int core_mask = 0xff; + fp_addrelu_s(in0, in1, out, size, core_mask); + return 0; + } + + + +**私有存储版本:** + +.. c:function:: void i8_addrelu_p(int8_t *in0, int8_t *in1, int8_t *out, int size) +.. c:function:: void i16_addrelu_p(int16_t *in0, int16_t *in1, int16_t *out, int size) +.. c:function:: void i32_addrelu_p(int32_t *in0, int32_t *in1, int32_t *out, int size) +.. c:function:: void hp_addrelu_p(half *in0, half *in1, half *out, int size) +.. c:function:: void fp_addrelu_p(float *in0, float *in1, float *out, int size) +.. c:function:: void dp_addrelu_p(double *in0, double *in1, double *out, int size) +.. c:function:: void c64_addrelu_p(float *in0, float *in1, float *out, int size) +.. c:function:: void c128_addrelu_p(double *in0, double *in1, double *out, int size) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *in0 = (float *)0x10000000; //input在L2空间 + float *in1 = (float *)0x10001000; + bool *out = (bool *)0xC0000000; + int size = 1000; + fp_addrelu_s(in0, in1, out, size); + return 0; + } + + + +逐元素求和并计算relu6激活函数 + +.. math:: + + out_i = min(max(0, in0_i + in1_i), 6) + +输入: + - **in0** - 第一个输入数据地址。 + - **in1** - 第二个输入数据地址。 + - **size** - 计算长度。 + - **core_mask** - 核掩码。 + +输出: + - **out** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + + + +**共享存储版本:** + +.. c:function:: void i8_addrelu6_s(int8_t *in0, int8_t *in1, int8_t *out, int size, int core_mask) +.. c:function:: void i16_addrelu6_s(int16_t *in0, int16_t *in1, int16_t *out, int size, int core_mask) +.. c:function:: void i32_addrelu6_s(int32_t *in0, int32_t *in1, int32_t *out, int size, int core_mask) +.. c:function:: void hp_addrelu6_s(half *in0, half *in1, half *out, int size, int core_mask) +.. c:function:: void fp_addrelu6_s(float *in0, float *in1, float *out, int size, int core_mask) +.. c:function:: void dp_addrelu6_s(double *in0, double *in1, double *out, int size, int core_mask) +.. c:function:: void c64_addrelu6_s(float *in0, float *in1, float *out, int size, int core_mask) +.. c:function:: void c128_addrelu6_s(double *in0, double *in1, double *out, int size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *in0 = (float *)0xA0000000; //input在DDR空间 + float *in1 = (float *)0xB0000000; + bool *out = (bool *)0xC0000000; + int size = 1000; + int core_mask = 0xff; + fp_addrelu6_s(in0, in1, out, size, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_addrelu6_p(int8_t *in0, int8_t *in1, int8_t *out, int size) +.. c:function:: void i16_addrelu6_p(int16_t *in0, int16_t *in1, int16_t *out, int size) +.. c:function:: void i32_addrelu6_p(int32_t *in0, int32_t *in1, int32_t *out, int size) +.. c:function:: void hp_addrelu6_p(half *in0, half *in1, half *out, int size) +.. c:function:: void fp_addrelu6_p(float *in0, float *in1, float *out, int size) +.. c:function:: void dp_addrelu6_p(double *in0, double *in1, double *out, int size) +.. c:function:: void c64_addrelu6_p(float *in0, float *in1, float *out, int size) +.. c:function:: void c128_addrelu6_p(double *in0, double *in1, double *out, int size) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *in0 = (float *)0x10000000; //input在L2空间 + float *in1 = (float *)0x10001000; + bool *out = (bool *)0xC0000000; + int size = 1000; + fp_addrelu6_s(in0, in1, out, size); + return 0; + } + + \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/addgrad.rst.txt b/master/html/_sources/functionlib/dsplib/addgrad.rst.txt new file mode 100644 index 0000000..3c6d28a --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/addgrad.rst.txt @@ -0,0 +1,88 @@ +Addgrad +================= + + +逐元素计算加法梯度 + +.. math:: + + dx1 = \frac{\partial L}{\partial X1} = \frac{\partial L}{\partial Y} * 1 = \frac{\partial L}{\partial Y}\\ + dx2 = \frac{\partial L}{\partial X2} = \frac{\partial L}{\partial Y} * 1 = \frac{\partial L}{\partial Y} + +输入: + - **dy** - dy数据地址。 + - **dx1_dim** - x1的维度信息。 + - **dx2_dim** - x2的维度信息。 + - **dy_dims** - dy的维度信息。 + - **num_dims** - 维度数 + - **core_mask** - 核掩码。 + +输出: + - **dx1** - dx1的数据地址。 + - **dx2** - dx2的数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + + +**共享存储版本:** + +.. c:function:: void fp_addgrad_s(float* dy, int* x1_dims, int* x2_dims, int* dy_dims, int num_dims, float* dx1, float* dx2, int core_mask) +.. c:function:: void hp_addgrad_s(half* dy, int* x1_dims, int* x2_dims, int* dy_dims, int num_dims, half* dx1, half* dx2, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *dy = (float *)0xA0000000; //input在DDR空间 + float *dx1 = (float *)0xB0000000; //dx1 + float *dx2 = (float *)0xC0000000; //dxx + int dx1_dims[] = {13, 183, 47}; // 2x2 + int dx2_dims[] = {1, 183, 47}; // 2x2 + int dy_dims[] = {13, 183, 47}; // 2x2 + int num_dims = 3; + int core_mask = 0xff; + fp_addgrad_s(dy, dx1_dims, dx2_dims, dy_dims, num_dims, dx1, dx2, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_addgrad_p(float* dy, int* x1_dims, int* x2_dims, int* dy_dims, int num_dims, float* dx1, float* dx2) +.. c:function:: void hp_addgrad_p(half* dy, int* x1_dims, int* x2_dims, int* dy_dims, int num_dims, half* dx1, half* dx2) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *dy = (float *)0x10000000; //input在L2空间 + float *dx1 = (float *)0x10001000; //dx1 + float *dx2 = (float *)0x10002000; //dxx + int dx1_dims[] = {13, 183, 47}; // 2x2 + int dx2_dims[] = {1, 183, 47}; // 2x2 + int dy_dims[] = {13, 183, 47}; // 2x2 + int num_dims = 3; + fp_addgrad_p(dy, dx1_dims, dx2_dims, dy_dims, num_dims, dx1, dx2); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/addn.rst.txt b/master/html/_sources/functionlib/dsplib/addn.rst.txt new file mode 100644 index 0000000..cc0bab6 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/addn.rst.txt @@ -0,0 +1,96 @@ +AddN +================= + + + +对多个输入张量进行 **逐元素相加**,并将结果输出。 +当前实现为二输入版本,可扩展用于多输入逐元素求和的场景。 + +数学表达式为: + +.. math:: + + dst_i = src0_i + src1_i + +输入: + - **input0** - 第一个输入数据地址。 + - **input1** - 第二个输入数据地址。 + - **length** - 计算长度(元素个数)。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 ``fp32``、``fp64``、``int8``、``int16``、``int32``、``cplx64``、``cplx128`` 类型 + - MT7004 支持 ``fp16``、``fp32``、``int16``、``int32``、``cplx64`` 类型 + - 所有输入与输出张量需具有相同的长度与数据布局 + +**共享存储版本:** + +.. c:function:: void fp_addn_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void dp_addn_s(double* input0, double* input1, double* output, int length, int core_mask) +.. c:function:: void i8_addn_s(int8_t* input0, int8_t* input1, int8_t* output, int length, int core_mask) +.. c:function:: void i16_addn_s(int16_t* input0, int16_t* input1, int16_t* output, int length, int core_mask) +.. c:function:: void i32_addn_s(int32_t* input0, int32_t* input1, int32_t* output, int length, int core_mask) +.. c:function:: void c64_addn_s(cplx64* input0, cplx64* input1, cplx64* output, int length, int core_mask) +.. c:function:: void c128_addn_s(cplx128* input0, cplx128* input1, cplx128* output, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; + float *input1 = (float *)0xA0010000; + float *output = (float *)0xC0000000; + + int length = 1024; + int core_mask = 0xff; + + fp_addn_s(input0, input1, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_addn_p(float* input0, float* input1, float* output, int length) +.. c:function:: void dp_addn_p(double* input0, double* input1, double* output, int length) +.. c:function:: void i8_addn_p(int8_t* input0, int8_t* input1, int8_t* output, int length) +.. c:function:: void i16_addn_p(int16_t* input0, int16_t* input1, int16_t* output, int length) +.. c:function:: void i32_addn_p(int32_t* input0, int32_t* input1, int32_t* output, int length) +.. c:function:: void c64_addn_p(cplx64* input0, cplx64* input1, cplx64* output, int length) +.. c:function:: void c128_addn_p(cplx128* input0, cplx128* input1, cplx128* output, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0x10810000; // L2 空间 + float *input1 = (float *)0x10814000; + float *output = (float *)0x10820000; + + int length = 1024; + + fp_addn_p(input0, input1, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/affine.rst.txt b/master/html/_sources/functionlib/dsplib/affine.rst.txt new file mode 100644 index 0000000..b562f00 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/affine.rst.txt @@ -0,0 +1,276 @@ +Affine +================= +将来自输入数据的若干行按照一个“context”(偏移集合)拼接/裁切成一个中间矩阵,再对该中间矩阵与权重做一次矩阵乘和偏置加法操作,最后应用激活函数(如果指定),得到输出结果。 + +该算子支持全量运行和增量运行两种模式,并维护了上一次全窗口的输出(previous\_output)以支持增量更新。 + +输入: + - **input0** - 输入数据张量地址。 + - **input1** - 权重矩阵地址。 + - **input2** - 偏置向量地址。 + - **input0_shape** - 输入数据形状数组,长度为3,第一维值为1。 + - **input1_shape** - 权重矩阵形状数组,长度为3,第一维值为1。 + - **input2_shape** - 偏置向量形状数组,长度为3,第一维值为1。 + - **output_shape** - 输出张量形状数组,长度为3,第一维值为1。 + - **context** - 上下文索引数组,值递增。 + - **context_size** - 上下文大小。 + - **output_dim** - 输出维度,即输入张量最后一维大小乘以上下文大小。 + - **activation_type** - 激活函数类型,0-8。 + - **is_full_run** - 全量运行标志指针,所指值为1时为全量更新(运行后修改为0),为0时为增量更新。 + - **full_input** - 全量输入缓冲区地址。 + - **full_input_shape** - 全量输入形状数组。 + - **increment_input** - 增量输入缓冲区地址。 + - **increment_input_shape** - 增量输入形状数组。 + - **increment_output** - 增量输出缓冲区地址。 + - **increment_output_shape** - 增量输出形状数组。 + - **previous_output** - 先前输出缓冲区地址。 + - **previous_output_shape** - 先前输出形状数组。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 仿射变换结果张量地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型:int8, fp32 + - MT7004 支持的数据类型:fp16, fp32 + +**激活函数类型定义:** + +.. code-block:: c + :linenos: + + #define ActivationType_NO_ACTIVATION 0 // 无激活函数 + #define ActivationType_RELU 1 // ReLU激活函数 + #define ActivationType_RELU6 2 // ReLU6激活函数 + #define ActivationType_SIGMOID 3 // Sigmoid激活函数 + #define ActivationType_TANH 4 // Tanh激活函数 + #define ActivationType_SWISH 5 // Swish激活函数 + #define ActivationType_HSWISH 6 // Hard Swish激活函数 + #define ActivationType_HSIGMOID 7 // Hard Sigmoid激活函数 + #define ActivationType_SOFTPLUS 8 // Softplus激活函数 + +**激活函数数学公式:** + +- **ReLU**: :math:`f(x) = \max(0, x)` +- **ReLU6**: :math:`f(x) = \min(\max(0, x), 6)` +- **Sigmoid**: :math:`f(x) = \frac{1}{1 + e^{-x}}` +- **Tanh**: :math:`f(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}` +- **Swish**: :math:`f(x) = x \cdot \sigma(x) = \frac{x}{1 + e^{-x}}` +- **Hard Swish**: :math:`f(x) = x \cdot \frac{\min(\max(x + 3, 0), 6)}{6}` +- **Hard Sigmoid**: :math:`f(x) = \frac{\min(\max(x + 3, 0), 6)}{6}` +- **Softplus**: :math:`f(x) = ln(1 + e^x)` + +**参数数组结构:** + +.. code-block:: c + :linenos: + + long long params[21]; + params[0] = (long long)input0; // 输入数据张量地址 + params[1] = (long long)input1; // 权重矩阵地址 + params[2] = (long long)input2; // 偏置向量地址 + params[3] = (long long)output; // 输出张量地址 + params[4] = (long long)input0_shape; // 输入数据形状数组 + params[5] = (long long)input1_shape; // 权重矩阵形状数组 + params[6] = (long long)input2_shape; // 偏置向量形状数组 + params[7] = (long long)output_shape; // 输出张量形状数组 + params[8] = (long long)context; // 上下文索引数组 + params[9] = (long long)context_size; // 上下文大小 + params[10] = (long long)output_dim; // 输出维度 + params[11] = (long long)activation_type; // 激活函数类型 + params[12] = (long long)&is_full_run; // 全量运行标志指针 + params[13] = (long long)full_input; // 全量输入缓冲区地址 + params[14] = (long long)full_input_shape; // 全量输入形状数组 + params[15] = (long long)increment_input; // 增量输入缓冲区地址 + params[16] = (long long)increment_input_shape; // 增量输入形状数组 + params[17] = (long long)increment_output; // 增量输出缓冲区地址 + params[18] = (long long)increment_output_shape; // 增量输出形状数组 + params[19] = (long long)previous_output; // 先前输出缓冲区地址 + params[20] = (long long)previous_output_shape; // 先前输出形状数组 + +**共享存储版本:** + +.. c:function:: void i8_affine_s(long long* params, int core_mask) +.. c:function:: void fp_affine_s(long long* params, int core_mask) +.. c:function:: void hp_affine_s(long long* params, int core_mask) + +**C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 87 + + // FT78NE 多核示例 + #include + #include + #include + #include + + void test_fp_affine_s(int a, int b, int c, int o, int activation_type, int full_run, int core_mask) { + int i = 0, j = 0; + srand(time(0)); + + int core_id = DNUM; + int logic_core_id = GetLogicCoreId(core_mask, core_id); + int num = GetCoreNum(core_mask); + + int is_full_run = full_run; + int context[] = {-1, 0, 1, 2}; + int context_size = c; + int output_dim = b * c; + + // 形状定义 + int input0_shape[3] = {1, a, b}; + int input1_shape[3] = {1, b * c, o}; + int input2_shape[3] = {1, a - c + 1, o}; + int output_shape[3] = {1, a - c + 1, o}; + + // 中间缓冲区形状 + int full_input_shape[3] = {1, input0_shape[1] - (context[context_size - 1] - context[0]), output_dim}; + int increment_input_shape[3] = {1, 1, output_dim}; + int increment_output_shape[3] = {1, 1, output_shape[2]}; + int previous_output_shape[3] = {1, output_shape[1], output_shape[2]}; + + // 内存分配 + float* input0 = (float*)(0xA0400000); + float* input1 = (float*)(0xA0400000 + 0x100000); + float* input2 = (float*)(0xA0400000 + 0x200000); + float* output = (float*)(0xA0400000 + 0x300000); + float* full_input = (float*)(0xA0400000 + 0x400000); + float* increment_input = (float*)(0xA0400000 + 0x500000); + float* increment_output = (float*)(0xA0400000 + 0x600000); + float* previous_output = (float*)(0xA0400000 + 0x700000); + + // 初始化数据 + if (logic_core_id == 0) { + int input0_len = input0_shape[0] * input0_shape[1] * input0_shape[2]; + int input1_len = input1_shape[0] * input1_shape[1] * input1_shape[2]; + int input2_len = input2_shape[0] * input2_shape[1] * input2_shape[2]; + + for (i = 0; i < input0_len; i++) { + input0[i] = ((float)rand() / RAND_MAX) * 2 - 1; + } + for (i = 0; i < input1_len; i++) { + input1[i] = ((float)rand() / RAND_MAX) * 2 - 1; + } + for (i = 0; i < input2_shape[2]; i++) { + input2[i] = ((float)rand() / RAND_MAX) * 2 - 1; + for (j = 1; j < input2_shape[1]; j++) { + input2[i + j * input2_shape[2]] = input2[i]; + } + } + } + + // 准备参数数组 + long long params[21]; + params[0] = (long long)input0; + params[1] = (long long)input1; + params[2] = (long long)input2; + params[3] = (long long)output; + params[4] = (long long)input0_shape; + params[5] = (long long)input1_shape; + params[6] = (long long)input2_shape; + params[7] = (long long)output_shape; + params[8] = (long long)context; + params[9] = (long long)context_size; + params[10] = (long long)output_dim; + params[11] = (long long)activation_type; + params[12] = (long long)&is_full_run; + params[13] = (long long)full_input; + params[14] = (long long)full_input_shape; + params[15] = (long long)increment_input; + params[16] = (long long)increment_input_shape; + params[17] = (long long)increment_output; + params[18] = (long long)increment_output_shape; + params[19] = (long long)previous_output; + params[20] = (long long)previous_output_shape; + + // 执行 Affine 操作 + fp_affine_s(params, core_mask); + } + + int main(void) { + int a = 23, b = 31, c = 4, o = 29; + int activation_type = 0; // 激活函数类型 + int full_run = 1; // 全量运行标志 + int core_mask = 0xff; // 核掩码 + + test_fp_affine_s(a, b, c, o, activation_type, full_run, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_affine_p(long long* params) +.. c:function:: void fp_affine_p(long long* params) +.. c:function:: void hp_affine_p(long long* params) + +**C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 57 + + // FT78NE 单核示例 + #include + #include + + int main(void) { + // 参数设置(与共享版本类似) + int a = 32, b = 16, c = 4, o = 16; + int is_full_run = full_run; + int context[] = {-1, 0, 1, 2}; + int context_size = c; + int output_dim = b * c; + + int input0_shape[3] = {1, a, b}; + int input1_shape[3] = {1, b * c, o}; + int input2_shape[3] = {1, a - c + 1, o}; + int output_shape[3] = {1, a - c + 1, o}; + + int full_input_shape[3] = {1, input0_shape[1] - (context[context_size - 1] - context[0]), output_dim}; + int increment_input_shape[3] = {1, 1, output_dim}; + int increment_output_shape[3] = {1, 1, output_shape[2]}; + int previous_output_shape[3] = {1, output_shape[1], output_shape[2]}; + + float* input0 = (float*)(0x10810000); + float* input1 = (float*)(0x10810000 + 0x100000); + float* input2 = (float*)(0x10810000 + 0x200000); + float* output = (float*)(0x10810000 + 0x300000); + float* full_input = (float*)(0x10810000 + 0x400000); + float* increment_input = (float*)(0x10810000 + 0x500000); + float* increment_output = (float*)(0x10810000 + 0x600000); + float* previous_output = (float*)(0x10810000 + 0x700000); + + // 准备参数数组(与共享版本相同) + long long params[21]; + params[0] = (long long)input0; + params[1] = (long long)input1; + params[2] = (long long)input2; + params[3] = (long long)output; + params[4] = (long long)input0_shape; + params[5] = (long long)input1_shape; + params[6] = (long long)input2_shape; + params[7] = (long long)output_shape; + params[8] = (long long)context; + params[9] = (long long)context_size; + params[10] = (long long)output_dim; + params[11] = (long long)activation_type; + params[12] = (long long)&is_full_run; + params[13] = (long long)full_input; + params[14] = (long long)full_input_shape; + params[15] = (long long)increment_input; + params[16] = (long long)increment_input_shape; + params[17] = (long long)increment_output; + params[18] = (long long)increment_output_shape; + params[19] = (long long)previous_output; + params[20] = (long long)previous_output_shape; + + // 调用 Affine + fp_affine_p(params); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/all.rst.txt b/master/html/_sources/functionlib/dsplib/all.rst.txt new file mode 100644 index 0000000..31a70c6 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/all.rst.txt @@ -0,0 +1,97 @@ +All +================= + + +沿指定轴计算张量的逻辑与 (Logical AND)。如果轴上的所有元素都为真(非零),则输出为1.0,否则为0.0。 + +.. math:: + + Y_i = \prod_{x \in S_i} B(x) + +其中 :math:`S_i` 是输入张量中用于计算输出 :math:`Y_i` 的切片, :math:`B(x)` 是一个辅助函数: + +.. math:: + + B(x)=\begin{cases} 1, & \text{if } x \neq 0 \\ 0, & \text{if } x = 0 \end{cases} + +输入: + - **outer_size** - 规约轴之前的所有维度大小的乘积。 + - **inner_size** - 规约轴之后的所有维度大小的乘积。 + - **axis_size** - 规约轴本身的大小。 + - **src_data** - 输入数据地址。 + - **core_mask** - 核掩码。 + +输出: + - **dst_data** - 输出数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + + +**共享存储版本:** + +.. c:function:: void i8_reduceall_s(int outer_size, int inner_size, int axis_size, int8_t *src_data, int8_t *dst_data, int core_mask) +.. c:function:: void i16_reduceall_s(int outer_size, int inner_size, int axis_size, int16_t *src_data, int16_t *dst_data, int core_mask) +.. c:function:: void i32_reduceall_s(int outer_size, int inner_size, int axis_size, int *src_data, int *dst_data, int core_mask) +.. c:function:: void hp_reduceall_s(int outer_size, int inner_size, int axis_size, half *src_data, half *dst_data, int core_mask) +.. c:function:: void fp_reduceall_s(int outer_size, int inner_size, int axis_size, float *src_data, float *dst_data, int core_mask) +.. c:function:: void dp_reduceall_s(int outer_size, int inner_size, int axis_size, double *src_data, double *dst_data, int core_mask) +.. c:function:: void c64_reduceall_s(int outer_size, int inner_size, int axis_size, float *src_data, float *dst_data, int core_mask) +.. c:function:: void c128_reduceall_s(int outer_size, int inner_size, int axis_size, double *src_data, double *dst_data, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *src_data = (float *)0xA0000000; //input在DDR空间 + float *dst_data = (float *)0xB0000000; //output + int outer_size = 2; + int inner_size = 4; + int axis_size = 3; + int core_mask = 0xff; + fp_reduceall_s(outer_size, inner_size, axis_size, src_data, dst_data, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_reduceall_p(int outer_size, int inner_size, int axis_size, int8_t *src_data, int8_t *dst_data) +.. c:function:: void i16_reduceall_p(int outer_size, int inner_size, int axis_size, int16_t *src_data, int16_t *dst_data) +.. c:function:: void i32_reduceall_p(int outer_size, int inner_size, int axis_size, int *src_data, int *dst_data) +.. c:function:: void hp_reduceall_p(int outer_size, int inner_size, int axis_size, half *src_data, half *dst_data) +.. c:function:: void fp_reduceall_p(int outer_size, int inner_size, int axis_size, float *src_data, float *dst_data) +.. c:function:: void dp_reduceall_p(int outer_size, int inner_size, int axis_size, double *src_data, double *dst_data) +.. c:function:: void c64_reduceall_p(int outer_size, int inner_size, int axis_size, float *src_data, float *dst_data) +.. c:function:: void c128_reduceall_p(int outer_size, int inner_size, int axis_size, double *src_data, double *dst_data) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *src_data = (float *)0x10000000; //input在DDR空间 + float *dst_data = (float *)0x10001000; //output + int outer_size = 2; + int inner_size = 4; + int axis_size = 3; + fp_reduceall_p(outer_size, inner_size, axis_size, src_data, dst_data); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/allgather.rst.txt b/master/html/_sources/functionlib/dsplib/allgather.rst.txt new file mode 100644 index 0000000..bddcfa7 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/allgather.rst.txt @@ -0,0 +1,105 @@ +AllGather +================= + + + +将各输入分片的数据进行 **全量收集(All-Gather)**, +并在输出中按指定维度进行拼接复制。 +该算子通常用于并行/多核场景中,将每个 rank 的本地数据 +收集成一个完整的输出张量。 + +算子行为可概括为两步: +1. 将 ``input`` 中每个 ``input_rank`` 对应的数据块拷贝到 ``output`` 的首段连续区域; +2. 将首段完整数据复制到其余 ``output_rank - 1`` 个位置,形成完整聚合结果。 + +输入: + - **input** - 输入数据地址,按 ``[input_rank, data_size]`` 形式连续存储。 + - **input_rank** - 输入 rank 数量(通常对应参与 AllGather 的并行单元数)。 + - **output_rank** - 输出 rank 数量(通常等于或大于 ``input_rank``)。 + - **data_size** - 单个 rank 对应的数据元素个数。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - AllGather 结果输出地址, + 数据按 ``[output_rank, input_rank, data_size]`` 的逻辑顺序存储。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 ``fp32``、``fp64``、``int8``、``int16``、``int32``、``cplx64``、``cplx128`` 类型 + - MT7004 支持 ``fp16``、``fp32``、``int16``、``int32``、``cplx64`` 类型 + - 当前实现基于 DMA进行数据搬运 + - 输入与输出地址需保证足够的连续空间以容纳聚合结果 + +**共享存储版本:** + +.. c:function:: void fp_allgather_s(float* input, float* output, int input_rank, int output_rank, int data_size, int core_mask) +.. c:function:: void dp_allgather_s(double* input, double* output, int input_rank, int output_rank, int data_size, int core_mask) +.. c:function:: void i8_allgather_s(int8_t* input, int8_t* output, int input_rank, int output_rank, int data_size, int core_mask) +.. c:function:: void i16_allgather_s(int16_t* input, int16_t* output, int input_rank, int output_rank, int data_size, int core_mask) +.. c:function:: void i32_allgather_s(int32_t* input, int32_t* output, int input_rank, int output_rank, int data_size, int core_mask) +.. c:function:: void c64_allgather_s(cplx64* input, cplx64* output, int input_rank, int output_rank, int data_size, int core_mask) +.. c:function:: void c128_allgather_s(cplx128* input, cplx128* output, int input_rank, int output_rank, int data_size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14-16 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; + float *output = (float *)0xC0000000; + + int input_rank = 4; + int output_rank = 4; + int data_size = 256; + int core_mask = 0xff; + + fp_allgather_s(input, output, + input_rank, output_rank, + data_size, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_allgather_p(float* input, float* output, int input_rank, int output_rank, int data_size) +.. c:function:: void dp_allgather_p(double* input, double* output, int input_rank, int output_rank, int data_size) +.. c:function:: void i8_allgather_p(int8_t* input, int8_t* output, int input_rank, int output_rank, int data_size) +.. c:function:: void i16_allgather_p(int16_t* input, int16_t* output, int input_rank, int output_rank, int data_size) +.. c:function:: void i32_allgather_p(int32_t* input, int32_t* output, int input_rank, int output_rank, int data_size) +.. c:function:: void c64_allgather_p(cplx64* input, cplx64* output, int input_rank, int output_rank, int data_size) +.. c:function:: void c128_allgather_p(cplx128* input, cplx128* output, int input_rank, int output_rank, int data_size) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13-15 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10810000; // L2 空间 + float *output = (float *)0x10820000; + + int input_rank = 4; + int output_rank = 4; + int data_size = 256; + + fp_allgather_p(input, output, + input_rank, output_rank, + data_size); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/applymomentum.rst.txt b/master/html/_sources/functionlib/dsplib/applymomentum.rst.txt index 4c291ab..fe1f1f3 100644 --- a/master/html/_sources/functionlib/dsplib/applymomentum.rst.txt +++ b/master/html/_sources/functionlib/dsplib/applymomentum.rst.txt @@ -48,7 +48,7 @@ ApplyMomentum .. code-block:: c :linenos: - :emphasize-lines: 15 + :emphasize-lines: 15-17 // FT78NE 多核示例 #include @@ -80,7 +80,7 @@ ApplyMomentum .. code-block:: c :linenos: - :emphasize-lines: 13 + :emphasize-lines: 13-15 // MT7004 单核示例 #include diff --git a/master/html/_sources/functionlib/dsplib/argmax.rst.txt b/master/html/_sources/functionlib/dsplib/argmax.rst.txt new file mode 100644 index 0000000..bc7c7d3 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/argmax.rst.txt @@ -0,0 +1,111 @@ +Argmax +================= + + +沿指定轴查找最大 `topk` 个值的索引。当 `topk=1` 时,该算子等价于 `ArgMax`。 + +.. math:: + + Y_i = \underset{k}{\operatorname{argmax}} (X_{slice_i}) + +其中 :math:`X_{slice_i}` 是输入张量中沿指定轴的一个切片,函数返回该切片中最大值的索引 :math:`k`。 + +输入: + - **input** - 输入数据地址。 + - **output** - 输出索引的数据地址,数据类型通常为int32。 + - **output_value** - (可选) 输出值的数据地址。 + - **in_shape** - 输入张量的维度信息数组。 + - **in_strides** - 输入张量的步长信息数组。 + - **out_strides** - 输出张量的步长信息数组。 + - **arg_elements** - 用于存放候选值的临时工作空间地址。 + - **index** - 用于存放候选索引的临时工作空间地址。 + - **topk** - 需要查找的最大值的数量。设置为1以执行ArgMax操作。 + - **out_value** - 是否返回数值的标志。若为非0,则 `output_value` 必须提供有效地址。 + - **input_shape_size** - 输入张量的维度数 (即 `in_shape` 数组的长度)。 + - **axis** - 执行查找操作的轴。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 存储索引的输出张量。 + - **output_value** - 如果 `return_values` 为 true,则此处存储找到的值。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + + +**共享存储版本:** + +.. c:function:: void fp_argmax_s(float *input, void *output, float *output_value, int32_t *in_shape, int *in_strides, int *out_strides, float *arg_elements, int* index, int topk, int out_value, int input_shape_size, int axis, int core_mask) +.. c:function:: void hp_argmax_s(half *input, void *output, half *output_value, int32_t *in_shape, int *in_strides, int *out_strides, half *arg_elements, int* index, int topk, int out_value, int input_shape_size, int axis, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 21 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input在DDR空间 + int *output = (int *)0xB0000000; // output indices + float *output_value = (float *)0xC0000000; // output values + float *arg_elements = (float *)0xD0000000; // temp workspace 1 + int *index = (int *)0xE0000000; // temp workspace 2 + + int in_shape[] = {2, 3, 4}; // input shape: (2, 3, 4) + int in_strides[] = {12, 4, 1}; // input strides for contiguous layout + int out_strides[] = {4, 1}; // output strides, shape is (2, 4) + int input_shape_size = 3; + + int axis = 1; // 沿第1轴操作 + int topk = 1; // ArgMax + int out_value = 1; // 同时返回值 + int core_mask = 0xff; + + fp_argmax_s(input, output, output_value, in_shape, in_strides, out_strides, arg_elements, index, topk, out_value, input_shape_size, axis, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_argmax_p(float *input, void *output, float *output_value, int32_t *in_shape, int *in_strides, int *out_strides, float *arg_elements, int* index, int topk, int out_value, int input_shape_size, int axis) +.. c:function:: void hp_argmax_p(half *input, void *output, half *output_value, int32_t *in_shape, int *in_strides, int *out_strides, half *arg_elements, int* index, int topk, int out_value, int input_shape_size, int axis) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 20-21 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input = (float *)0x10001000; // input在DDR空间 + int *output = (int *)0x10002000; // output indices + float *output_value = (float *)0x10003000; // output values + float *arg_elements = (float *)0x10004000; // temp workspace 1 + int *index = (int *)0x10005000; // temp workspace 2 + + int in_shape[] = {2, 3, 4}; // input shape: (2, 3, 4) + int in_strides[] = {12, 4, 1}; // input strides for contiguous layout + int out_strides[] = {4, 1}; // output strides, shape is (2, 4) + int input_shape_size = 3; + + int axis = 1; // 沿第1轴操作 + int topk = 1; // ArgMax + int out_value = 1; // 同时返回值 + + fp_argmax_p(input, output, output_value, in_shape, in_strides, out_strides, + arg_elements, index, topk, out_value, input_shape_size, axis); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/argmin.rst.txt b/master/html/_sources/functionlib/dsplib/argmin.rst.txt new file mode 100644 index 0000000..e773013 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/argmin.rst.txt @@ -0,0 +1,112 @@ +Argmin +================= + + +沿指定轴查找最小 `topk` 个值的索引。当 `topk=1` 时,该算子等价于 `ArgMin`。 + +.. math:: + + Y_i = \underset{k}{\operatorname{argmin}} (X_{slice_i}) + +其中 :math:`X_{slice_i}` 是输入张量中沿指定轴的一个切片,函数返回该切片中最小值的索引 :math:`k`。 + +输入: + - **input** - 输入数据地址。 + - **output** - 输出索引的数据地址,数据类型通常为int32。 + - **output_value** - (可选) 输出值的数据地址。 + - **in_shape** - 输入张量的维度信息数组。 + - **in_strides** - 输入张量的步长信息数组。 + - **out_strides** - 输出张量的步长信息数组。 + - **arg_elements** - 用于存放候选值的临时工作空间地址。 + - **index** - 用于存放候选索引的临时工作空间地址。 + - **topk** - 需要查找的最小值的数量。设置为1以执行ArgMin操作。 + - **out_value** - 是否返回数值的标志。若为非0,则 `output_value` 必须提供有效地址。 + - **input_shape_size** - 输入张量的维度数 (即 `in_shape` 数组的长度)。 + - **axis** - 执行查找操作的轴。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 存储索引的输出张量。 + - **output_value** - 如果 `return_values` 为 true,则此处存储找到的值。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + + +**共享存储版本:** + +.. c:function:: void fp_argmin_s(float* input, void* output, float* output_value, int* in_shape, int* in_strides, int* out_strides, float* arg_elements, int* index, int topk, int out_value, int input_shape_size, int axis, int core_mask) +.. c:function:: void hp_argmin_s(half* input, void* output, half* output_value, int* in_shape, int* in_strides, int* out_strides, half* arg_elements, int* index, int topk, int out_value, int input_shape_size, int axis, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 21-22 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input在DDR空间 + int *output = (int *)0xB0000000; // output indices + float *output_value = (float *)0xC0000000; // output values + float *arg_elements = (float *)0xD0000000; // temp workspace 1 + int *index = (int *)0xE0000000; // temp workspace 2 + + int in_shape[] = {2, 3, 4}; // input shape: (2, 3, 4) + int in_strides[] = {12, 4, 1}; // input strides for contiguous layout + int out_strides[] = {4, 1}; // output strides, shape is (2, 4) + int input_shape_size = 3; + + int axis = 1; // 沿第1轴操作 + int topk = 1; // ArgMax + int out_value = 1; // 同时返回值 + int core_mask = 0xff; + + fp_argmin_s(input, output, output_value, in_shape, in_strides, out_strides, + arg_elements, index, topk, out_value, input_shape_size, axis, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_argmin_p(float *input, void *output, float *output_value, int32_t *in_shape, int *in_strides, int *out_strides, float *arg_elements, int* index, int topk, int out_value, int input_shape_size, int axis) +.. c:function:: void hp_argmin_p(half *input, void *output, half *output_value, int32_t *in_shape, int *in_strides, int *out_strides, half *arg_elements, int* index, int topk, int out_value, int input_shape_size, int axis) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 20-21 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input = (float *)0x10001000; // input在DDR空间 + int *output = (int *)0x10002000; // output indices + float *output_value = (float *)0x10003000; // output values + float *arg_elements = (float *)0x10004000; // temp workspace 1 + int *index = (int *)0x10005000; // temp workspace 2 + + int in_shape[] = {2, 3, 4}; // input shape: (2, 3, 4) + int in_strides[] = {12, 4, 1}; // input strides for contiguous layout + int out_strides[] = {4, 1}; // output strides, shape is (2, 4) + int input_shape_size = 3; + + int axis = 1; // 沿第1轴操作 + int topk = 1; // ArgMin + int out_value = 1; // 同时返回值 + + fp_argmin_p(input, output, output_value, in_shape, in_strides, out_strides, + arg_elements, index, topk, out_value, input_shape_size, axis); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/assign.rst.txt b/master/html/_sources/functionlib/dsplib/assign.rst.txt new file mode 100644 index 0000000..101ec19 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/assign.rst.txt @@ -0,0 +1,83 @@ +Assign +================= + +将输入张量的值复制到输出张量中,实现张量赋值操作。 + +.. math:: + + dst_i = src_i + +输入: + - **src** - 输入数据地址。 + - **length** - 数组长度(元素个数)。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **dst** - 输出数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型:int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持的数据类型:fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_assign_s(int8_t* src, int8_t* dst, int length, int core_mask) +.. c:function:: void i16_assign_s(int16_t* src, int16_t* dst, int length, int core_mask) +.. c:function:: void i32_assign_s(int32_t* src, int32_t* dst, int length, int core_mask) +.. c:function:: void fp_assign_s(float* src, float* dst, int length, int core_mask) +.. c:function:: void dp_assign_s(double* src, double* dst, int length, int core_mask) +.. c:function:: void c64_assign_s(float* src, float* dst, int length, int core_mask) +.. c:function:: void c128_assign_s(double* src, double* dst, int length, int core_mask) +.. c:function:: void hp_assign_s(half* src, half* dst, int length, int core_mask) + +**C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + // FT78NE 多核示例 + #include + #include + + int main(int argc, char* argv[]) { + float *src = (float *)0xA0000000; // src在DDR空间 + float *dst = (float *)0xB0000000; + int length = 1000; + int core_mask = 0xff; + fp_assign_s(src, dst, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_assign_p(int8_t* src, int8_t* dst, int length) +.. c:function:: void i16_assign_p(int16_t* src, int16_t* dst, int length) +.. c:function:: void i32_assign_p(int32_t* src, int32_t* dst, int length) +.. c:function:: void fp_assign_p(float* src, float* dst, int length) +.. c:function:: void dp_assign_p(double* src, double* dst, int length) +.. c:function:: void c64_assign_p(float* src, float* dst, int length) +.. c:function:: void c128_assign_p(double* src, double* dst, int length) +.. c:function:: void hp_assign_p(half* src, half* dst, int length) + +**C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 9 + + // MT7004 单核示例 + #include + #include + + int main(int argc, char* argv[]) { + half *src = (half *)0x10000000; // src在L2空间 + half *dst = (half *)0x10004000; + int length = 1000; + hp_assign_p(src, dst, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/assignadd.rst.txt b/master/html/_sources/functionlib/dsplib/assignadd.rst.txt new file mode 100644 index 0000000..fc0b4ec --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/assignadd.rst.txt @@ -0,0 +1,88 @@ +AssignAdd +================= + +将输入张量的值累加到输出张量中,实现张量原地加法操作。 + +.. math:: + + output_i = output_i + input_i + +输入: + - **input** - 输入数据地址。 + - **output** - 输出数据地址(同时作为输入和输出)。 + - **length** - 数组长度(元素个数)。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 原地写回累加结果。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型:int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持的数据类型:fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_assignadd_s(int8_t* input, int8_t* output, int length, int core_mask) +.. c:function:: void i16_assignadd_s(int16_t* input, int16_t* output, int length, int core_mask) +.. c:function:: void i32_assignadd_s(int32_t* input, int32_t* output, int length, int core_mask) +.. c:function:: void fp_assignadd_s(float* input, float* output, int length, int core_mask) +.. c:function:: void dp_assignadd_s(double* input, double* output, int length, int core_mask) +.. c:function:: void c64_assignadd_s(float* input, float* output, int length, int core_mask) +.. c:function:: void c128_assignadd_s(double* input, double* output, int length, int core_mask) +.. c:function:: void hp_assignadd_s(half* input, half* output, int length, int core_mask) + +**C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + // FT78NE 多核示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input在DDR空间 + float *output = (float *)0xB0000000; // output在DDR空间,同时作为输入和输出 + int length = 1000; + int core_mask = 0xff; + + // 执行 output[i] += input[i] + fp_assignadd_s(input, output, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_assignadd_p(int8_t* input, int8_t* output, int length) +.. c:function:: void i16_assignadd_p(int16_t* input, int16_t* output, int length) +.. c:function:: void i32_assignadd_p(int32_t* input, int32_t* output, int length) +.. c:function:: void fp_assignadd_p(float* input, float* output, int length) +.. c:function:: void dp_assignadd_p(double* input, double* output, int length) +.. c:function:: void c64_assignadd_p(float* input, float* output, int length) +.. c:function:: void c128_assignadd_p(double* input, double* output, int length) +.. c:function:: void hp_assignadd_p(half* input, half* output, int length) + +**C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + // MT7004 单核示例 + #include + #include + + int main(int argc, char* argv[]) { + half *input = (half *)0x10000000; // input在L2空间 + half *output = (half *)0x10004000; // output在L2空间,同时作为输入和输出 + int length = 1000; + + // 执行 output[i] += input[i] + hp_assignadd_p(input, output, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/audio_spectrogram.rst.txt b/master/html/_sources/functionlib/dsplib/audio_spectrogram.rst.txt new file mode 100644 index 0000000..798b6a3 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/audio_spectrogram.rst.txt @@ -0,0 +1,137 @@ +AudioSpectrogram +=================== + +音频频谱(Audio Spectrogram)是一种常用的音频信号特征表示方式,通过将时域音频信号转换为频域信号,提供了时间和频率的双重信息。 + +参数说明: + - **params** - 频谱图参数配置结构体指针 + - **workspace** - 工作空间缓冲区结构体指针 + - **core_mask** - 核掩码,指定参与计算的处理器核(仅共享存储版本) + +**结构体定义:** + .. code-block:: c + :linenos: + + typedef struct { + // 输入 + float* input; // 输入数据地址 + int input_len; // 输入数据长度 + + // 输出 + float* output; // 输出数据地址 + int* output_shape; // 输出数据形状 + + // 配置参数 + int pad; // 填充大小 + WindowType window_type; // 窗函数类型 + int n_fft; // FFT点数 + int hop_length; // 帧移长度 + int win_length; // 窗长度 + float power; // 功率值 + bool normalized; // 是否归一化 + bool center; // 是否中心化 + BorderType pad_mode; // 填充模式 + bool onesided; // 是否单边频谱 + } SpectrogramParam; + typedef struct { + float* fft_window; // FFT窗函数缓冲区 + float* fft_window_later; // 后续FFT窗缓冲区 + float* input_data_pad; // 填充后的输入数据 + float* input_data; // 输入数据缓冲区 + float* input_win; // 加窗输入数据 + float* exp_complex; // 复数指数缓冲区 + float* spec_f; // 频谱频率缓冲区 + float* output_onsided; // 单边输出缓冲区 + } WorkspaceParam; +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp32 + - MT7004 支持 fp32 + +**共享存储版本:** + +.. c:function:: void fp_audio_spectrogram_s(SpectrogramParam* params, WorkspaceParam* workspace, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 30 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float* input_data = (float*)0x81000000; + float* output = (float*)0x82000000; + int output_shape[2] = {0, 0, 0}; + SpectrogramParam* spec_params = (SpectrogramParam*)0x83200000; + WorkspaceParam* spec_workspace = (WorkspaceParam*)0x83400000; + + // 结构体 SpectrogramParam + spec_params->input = input_data; + spec_params->input_len = 4000; + spec_params->output = output; + spec_params->output_shape = output_shape; + spec_params->pad = 0; + spec_params->window_type = kHann; + spec_params->n_fft = 32; + spec_params->hop_length = 16; + spec_params->win_length = 32; + spec_params->power = 2.0f; + spec_params->normalized = false; + spec_params->center = false; + spec_params->pad_mode = kConstant; + spec_params->onesided = true; + + int core_mask = 0xff; + //spec_workspace里每个中间缓冲区指针分配地址 + //... + fp_audio_spectrogram_s(spec_params, spec_workspace, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_audio_spectrogram_p(SpectrogramParam* params, WorkspaceParam* workspace) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 29 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float* input_data = (float*)0x10810000; + float* output_mfcc = (float*)0x10820000; + SpectrogramParam* spec_params = (SpectrogramParam*)0x10830000; + WorkspaceParam* spec_workspace = (WorkspaceParam*)0x10840000; + int output_shape[2] = {0, 0, 0}; + + spec_params->input = input_data; + spec_params->input_len = 4000; + spec_params->output = output; + spec_params->output_shape = output_shape; + spec_params->pad = 0; + spec_params->window_type = kHann; + spec_params->n_fft = 32; + spec_params->hop_length = 16; + spec_params->win_length = 32; + spec_params->power = 2.0f; + spec_params->normalized = false; + spec_params->center = false; + spec_params->pad_mode = kConstant; + spec_params->onesided = true; + + //为spec_workspace里每个中间缓冲区指针分配地址 + //... + + fp_audio_spectrogram_p(spec_params, spec_workspace); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/avgpooling.rst.txt b/master/html/_sources/functionlib/dsplib/avgpooling.rst.txt new file mode 100644 index 0000000..000a134 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/avgpooling.rst.txt @@ -0,0 +1,136 @@ +Avgpooling +================= + + +对NHWC格式的输入张量执行2D平均池化,并随后进行范围裁剪(Clip)激活。 + +该算子融合了两个步骤: + +1. **平均池化 (Average Pooling)**: + +.. math:: + + \text{Pool}_{i,j} = \frac{1}{k_h \times k_w} \sum_{m=0}^{k_h-1} \sum_{n=0}^{k_w-1} \text{Input}_{i \cdot s_h + m, j \cdot s_w + n} + +2. **裁剪激活 (Clipping Activation)**: + +.. math:: + + \text{Output} = \max(\min\_val, \min(\text{Pool}, \max\_val)) + +输入: + - **input** - 输入张量的数据地址。格式: NHWC。 + - **batch** (N) - 批处理大小。 + - **in_h** (H) - 输入特征图的高度。 + - **in_w** (W) - 输入特征图的宽度。 + - **channel** (C) - 输入特征图的通道数。 + - **win_h** - 池化核的高度。 + - **win_w** - 池化核的宽度。 + - **stride_h** - 垂直方向的步长。 + - **stride_w** - 水平方向的步长。 + - **pad_top** - 上边距填充。 + - **pad_bottom** - 下边距填充。 + - **pad_left** - 左边距填充。 + - **pad_right** - 右边距填充。 + - **min_val** - 裁剪范围的最小值。 + - **max_val** - 裁剪范围的最大值。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出张量的数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int8 + - MT7004 支持fp16, fp32 + + +**共享存储版本:** + +.. c:function:: void i8_avgpool_fusion_s(int8_t* input, int8_t* output, int batch, int in_h, int in_w, int channel, int win_h, int win_w, int stride_h, int stride_w, int pad_top, int pad_bottom, int pad_left, int pad_right, int8_t min_val, int8_t max_val, int core_mask) +.. c:function:: void fp_avgpool_fusion_s(float* input, float* output, int batch, int in_h, int in_w, int channel, int win_h, int win_w, int stride_h, int stride_w, int pad_top, int pad_bottom, int pad_left, int pad_right, float min_val, float max_val, int core_mask) +.. c:function:: void hp_avgpool_fusion_s(half* input, half* output, int batch, int in_h, int in_w, int channel, int win_h, int win_w, int stride_h, int stride_w, int pad_top, int pad_bottom, int pad_left, int pad_right, half min_val, half max_val, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 25-28 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input在DDR空间 + float *output = (float *)0xB0000000; // output + + // Shape parameters + int batch = 2; + int in_h = 224; + int in_w = 224; + int channel = 3; + + // Pooling parameters + int win_h = 3, win_w = 3; + int stride_h = 2, stride_w = 2; + int pad_top = 1, pad_bottom = 1, pad_left = 1, pad_right = 1; + + // Fusion parameters (e.g., for ReLU6 activation) + float min_val = 0.0f; + float max_val = 6.0f; + + int core_mask = 0xff; + + fp_avgpool_fusion_s(input, output, batch, in_h, in_w, channel, + win_h, win_w, stride_h, stride_w, + pad_top, pad_bottom, pad_left, pad_right, + min_val, max_val, core_mask); + return 0; + } + + + +**私有存储版本:** + +.. c:function:: void i8_avgpool_fusion_p(int8_t* input, int8_t* output, int batch, int in_h, int in_w, int channel, int win_h, int win_w, int stride_h, int stride_w, int pad_top, int pad_bottom, int pad_left, int pad_right, int8_t min_val, int8_t max_val) +.. c:function:: void fp_avgpool_fusion_p(float* input, float* output, int batch, int in_h, int in_w, int channel, int win_h, int win_w, int stride_h, int stride_w, int pad_top, int pad_bottom, int pad_left, int pad_right, float min_val, float max_val) +.. c:function:: void hp_avgpool_fusion_p(half* input, half* output, int batch, int in_h, int in_w, int channel, int win_h, int win_w, int stride_h, int stride_w, int pad_top, int pad_bottom, int pad_left, int pad_right, half min_val, half max_val) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 23-26 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; // input在L2空间 + float *output = (float *)0x10100000; // output + + // Shape parameters + int batch = 2; + int in_h = 32; + int in_w = 32; + int channel = 16; + + // Pooling parameters + int win_h = 2, win_w = 2; + int stride_h = 2, stride_w = 2; + int pad_top = 0, pad_bottom = 0, pad_left = 0, pad_right = 0; + + // Fusion parameters + float min_val = -127.0f; + float max_val = 127.0f; + + fp_avgpool_fusion_p(input, output, batch, in_h, in_w, channel, + win_h, win_w, stride_h, stride_w, + pad_top, pad_bottom, pad_left, pad_right, + min_val, max_val); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/avgpoolinggrad.rst.txt b/master/html/_sources/functionlib/dsplib/avgpoolinggrad.rst.txt index 9a4093d..81c13aa 100644 --- a/master/html/_sources/functionlib/dsplib/avgpoolinggrad.rst.txt +++ b/master/html/_sources/functionlib/dsplib/avgpoolinggrad.rst.txt @@ -47,7 +47,7 @@ AvgPoolingGrad .. code-block:: c :linenos: - :emphasize-lines: 20 + :emphasize-lines: 20-25 // FT78NE 多核示例 #include @@ -88,7 +88,7 @@ AvgPoolingGrad .. code-block:: c :linenos: - :emphasize-lines: 21 + :emphasize-lines: 21-26 // MT7004 单核示例 #include diff --git a/master/html/_sources/functionlib/dsplib/batchnorm.rst.txt b/master/html/_sources/functionlib/dsplib/batchnorm.rst.txt new file mode 100644 index 0000000..3bbc65f --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/batchnorm.rst.txt @@ -0,0 +1,99 @@ +BatchNorm +================= + +对输入数组按通道执行批归一化(Batch Normalization)计算。 +该算子使用给定的均值与方差对输入进行标准化,并通过 epsilon 保证数值稳定性。 + +.. math:: + + dst_{i,j} = \frac{src_{i,j} - mean_j}{\sqrt{variance_j + \epsilon}} + +其中: + +- :math:`i` 表示第 ``unit`` 个样本 +- :math:`j` 表示通道索引 +- :math:`mean_j`、:math:`variance_j` 为第 :math:`j` 个通道的统计量 + +对于 ``int8`` 类型输入,内部以浮点方式计算,最终结果按实现规则取整并输出为 ``int8``。 + +输入: + - **input** - 输入数据地址,形状为 ``[unit, channel]``。 + - **mean** - 均值数组地址,长度为 ``channel``。 + - **variance** - 方差数组地址,长度为 ``channel``。 + - **unit** - 样本数(或展开后的空间维度)。 + - **channel** - 通道数。 + - **epsilon** - 数值稳定因子。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 批归一化后的输出数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 ``int8``、``fp32`` 类型 + - MT7004 支持 ``fp16``、``fp32`` 类型 + - 当前实现不包含 scale 与 bias,仅执行标准化操作 + +**共享存储版本:** + +.. c:function:: void i8_batchnorm_s(int8_t* input, int8_t* output, float* mean, float* variance, int unit, int channel, float epsilon, int core_mask) +.. c:function:: void fp_batchnorm_s(float* input, float* output, float* mean, float* variance, int unit, int channel, float epsilon, int core_mask) +.. c:function:: void hp_batchnorm_s(half* input, half* output, float* mean, float* variance, int unit, int channel, float epsilon, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + int8_t *input = (int8_t *)0xA0000000; // input 在 DDR 空间 + int8_t *output = (int8_t *)0xC0000000; + float *mean = (float *)0xA1000000; + float *var = (float *)0xA2000000; + int unit = 128; + int channel = 64; + float epsilon = 1e-5f; + int core_mask = 0xff; + + i8_batchnorm_s(input, output, mean, var, unit, channel, epsilon, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_batchnorm_p(int8_t* input, int8_t* output, float* mean, float* variance, int unit, int channel, float epsilon) +.. c:function:: void fp_batchnorm_p(float* input, float* output, float* mean, float* variance, int unit, int channel, float epsilon) +.. c:function:: void hp_batchnorm_p(half* input, half* output, float* mean, float* variance, int unit, int channel, float epsilon) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + int8_t *input = (int8_t *)0x10810000; // input 在 L2 空间 + int8_t *output = (int8_t *)0x10820000; + float *mean = (float *)0x10830000; + float *var = (float *)0x10840000; + int unit = 128; + int channel = 64; + float epsilon = 1e-5f; + + i8_batchnorm_p(input, output, mean, var, unit, channel, epsilon); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/batchnormgrad.rst.txt b/master/html/_sources/functionlib/dsplib/batchnormgrad.rst.txt new file mode 100644 index 0000000..ae08364 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/batchnormgrad.rst.txt @@ -0,0 +1,113 @@ +Batchnormgrad +================= + + +逐元素计算加法梯度 + +计算批标准化 (Batch Normalization) 的梯度。 + +该算子计算损失函数 L 分别对输入 `x`、缩放因子 `scale` (γ) 和偏置 `bias` (β) 的梯度。其中 `bias` 的梯度为 `dbias`。 + +.. math:: + + dscale(\gamma) &= \sum_{i=1}^{m} dy_i \cdot \hat{x}_i \\ + dbias(\beta) &= \sum_{i=1}^{m} dy_i + +.. math:: + + dx_i = \frac{\gamma}{m\sqrt{\sigma^2 + \epsilon}} \left[ m \cdot dy_i - \sum_{j=1}^{m}dy_j - \hat{x}_i \sum_{j=1}^{m}dy_j \hat{x}_j \right] + +其中 :math:`m` 是批处理大小 (batch),:math:`\hat{x}` 是归一化后的 :math:`x`。 + +输入: + - **x** - 前向传播时的输入张量。 + - **dy** - 来自后一层的上游梯度。 + - **mean** - 前向传播时计算的均值。 + - **invar** - 前向传播时计算的逆方差 (1 / sqrt(variance + epsilon))。 + - **scale** - 前向传播时使用的缩放因子 (gamma, γ)。 + - **batch** - 批处理大小。 + - **channel** - 通道数。 + - **is_train** - 是否为训练模式。梯度计算通常在训练时进行。 + - **core_mask** - 核掩码。 + +输出: + - **dx** - 对输入 `x` 的梯度。 + - **dbias** - 对偏置 `bias` (β) 的梯度。 + - **dscale** - 对缩放因子 `scale` (γ) 的梯度。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void fp_batchnormgrad_s(float* x, float* dy, float* mean, float* invar, float* scale, int batch, int channel, int is_train, float* dx, float* dbias, float* dscale, int core_mask) +.. c:function:: void hp_batchnormgrad_s(half* x, half* dy, half* mean, half* invar, half* scale, int batch, int channel, int is_train, half* dx, half* dbias, half* dscale, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 20 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *x = (float *)0xA0000000; // forward input x + float *dy = (float *)0xB0000000; // upstream gradient dy + float *mean = (float *)0xC0000000; // forward mean + float *invar = (float *)0xD0000000; // forward inverse variance + float *scale = (float *)0xE0000000; // forward scale (gamma) + + float *dx = (float *)0xA1000000; // output gradient dx + float *dbias = (float *)0xB1000000; // output gradient dbias + float *dscale = (float *)0xC1000000; // output gradient dscale + + int batch = 4; + int channel = 64; + int is_train = true; + int core_mask = 0xff; + + fp_batchnormgrad_s(x, dy, mean, invar, scale, batch, channel, is_train, dx, dbias, dscale, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_batchnormgrad_p(float* x, float* dy, float* mean, float* invar, float* scale, int batch, int channel, int is_train, float* dx, float* dbias, float* dscale) +.. c:function:: void hp_batchnormgrad_p(half* x, half* dy, half* mean, half* invar, half* scale, int batch, int channel, int is_train, half* dx, half* dbias, half* dscale) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 19 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *x = (float *)0x10000000; // forward input x in L2 space + float *dy = (float *)0x10100000; // upstream gradient dy + float *mean = (float *)0x10200000; // forward mean + float *invar = (float *)0x10300000; // forward inverse variance + float *scale = (float *)0x10400000; // forward scale (gamma) + + float *dx = (float *)0x10500000; // output gradient dx + float *dbias = (float *)0x10600000; // output gradient dbias + float *dscale = (float *)0x10700000; // output gradient dscale + + int batch = 4; + int channel = 32; + int is_train = true; + + fp_batchnormgrad_p(x, dy, mean, invar, scale, batch, channel, is_train, dx, dbias, dscale); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/biasadd.rst.txt b/master/html/_sources/functionlib/dsplib/biasadd.rst.txt new file mode 100644 index 0000000..29bb55e --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/biasadd.rst.txt @@ -0,0 +1,108 @@ +Biasadd +================= + + + +将偏置向量 `input_bias` 加到输入张量 `input_x` 上。这是一个特殊的广播加法,其中偏置向量会沿着非通道维度进行广播。 + +.. math:: + + \text{Output} = \text{Input} + \text{Bias} + +对于NCHW格式,计算为 :math:`\text{Output}(n, c, h, w) = \text{Input}(n, c, h, w) + \text{Bias}(c)`。 +对于NHWC格式,计算为 :math:`\text{Output}(n, h, w, c) = \text{Input}(n, h, w, c) + \text{Bias}(c)`。 + +输入: + - **input_x** - 输入张量的数据地址。 + - **input_bias** - 1D偏置张量的数据地址。其长度必须等于输入张量的通道维度。 + - **dims** - 输入张量的维度信息数组。 + - **shape_size** - 输入张量的维度数。 + - **data_format** - 数据布局格式,支持 "NCHW" 和 "NHWC"。 + - **length** - 输入张量 `input_x` 的总元素数量。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出张量的数据地址,其维度与`input_x`相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_biasadd_s(int8_t* input_x, int8_t* input_bias, int8_t* output, int* dims, int shape_size, char* data_format, int length, int core_mask) +.. c:function:: void i16_biasadd_s(int16_t* input_x, int16_t* input_bias, int16_t* output, int* dims, int shape_size, char* data_format, int length, int core_mask) +.. c:function:: void i32_biasadd_s(int32_t* input_x, int32_t* input_bias, int32_t* output, int* dims, int shape_size, char* data_format, int length, int core_mask) +.. c:function:: void fp_biasadd_s(float* input_x, float* input_bias, float* output, int* dims, int shape_size, char* data_format, int length, int core_mask) +.. c:function:: void hp_biasadd_s(half* input_x, half* input_bias, half* output, int* dims, int shape_size, char* data_format, int length, int core_mask) +.. c:function:: void dp_biasadd_s(double* input_x, double* input_bias, double* output, int* dims, int shape_size, char* data_format, int length, int core_mask) +.. c:function:: void c64_biasadd_s(float* input_x, float* input_bias, float* output, int* dims, int shape_size, char* data_format, int length, int core_mask) +.. c:function:: void c128_biasadd_s(double* input_x, double* input_bias, double* output, int* dims, int shape_size, char* data_format, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input_x = (float *)0xA0000000; // input_x 在DDR空间 + float *input_bias = (float *)0xB0000000; // input_bias + float *output = (float *)0xC0000000; // output + + // NHWC format + int dims[] = {2, 224, 224, 3}; // N, H, W, C + int shape_size = 4; + int length = 2 * 224 * 224 * 3; + const char* data_format = "NHWC"; + int core_mask = 0xff; + + // The length of input_bias should be dims, which is 3. + fp_biasadd_s(input_x, input_bias, output, dims, shape_size, data_format, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_biasadd_p(int8_t* input_x, int8_t* input_bias, int8_t* output, int* dims, int shape_size, char* data_format, int length) +.. c:function:: void i16_biasadd_p(int16_t* input_x, int16_t* input_bias, int16_t* output, int* dims, int shape_size, char* data_format, int length) +.. c:function:: void i32_biasadd_p(int32_t* input_x, int32_t* input_bias, int32_t* output, int* dims, int shape_size, char* data_format, int length) +.. c:function:: void fp_biasadd_p(float* input_x, float* input_bias, float* output, int* dims, int shape_size, char* data_format, int length) +.. c:function:: void hp_biasadd_p(half* input_x, half* input_bias, half* output, int* dims, int shape_size, char* data_format, int length) +.. c:function:: void dp_biasadd_p(double* input_x, double* input_bias, double* output, int* dims, int shape_size, char* data_format, int length) +.. c:function:: void c64_biasadd_p(float* input_x, float* input_bias, float* output, int* dims, int shape_size, char* data_format, int length) +.. c:function:: void c128_biasadd_p(double* input_x, double* input_bias, double* output, int* dims, int shape_size, char* data_format, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input_x = (float *)0x10000000; // input_x 在L2空间 + float *input_bias = (float *)0x11000000; // input_bias + float *output = (float *)0x12000000; // output + + // NCHW format + int dims[] = {2, 3, 224, 224}; // N, C, H, W + int shape_size = 4; + int length = 2 * 3 * 224 * 224; + const char* data_format = "NCHW"; + + // The length of input_bias should be dims, which is 3. + fp_biasadd_p(input_x, input_bias, output, dims, shape_size, data_format, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/biasaddgrad.rst.txt b/master/html/_sources/functionlib/dsplib/biasaddgrad.rst.txt new file mode 100644 index 0000000..dd6fd09 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/biasaddgrad.rst.txt @@ -0,0 +1,86 @@ +Biasaddgrad +================= + + +将偏置向量 `input_bias` 加到输入张量 `input_x` 上。这是一个特殊的广播加法,其中偏置向量会沿着非通道维度进行广播。 + +.. math:: + + dbias_c = \sum_{n,h,w} dy(n, h, w, c) + +其中 :math:`dbias_c` 是偏置梯度向量的第 `c` 个元素,:math:`dy` 是上游梯度张量。 + +输入: + - **dy** - 来自后一层的上游梯度张量。格式必须为 NHWC。 + - **dy_dims** - 上游梯度张量 `dy` 的维度信息数组。 + - **shape_size** - 上游梯度张量 `dy` 的维度数。 + - **core_mask** - 核掩码。 + +输出: + - **dbias** - 输出的偏置梯度向量。其长度等于 `dy` 的通道数。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + + +**共享存储版本:** + +.. c:function:: void fp_biasaddgrad_s(float* dy, int* dy_dims, int shape_size, float* dbias, int core_mask) +.. c:function:: void hp_biasaddgrad_s(half* dy, int* dy_dims, int shape_size, half* dbias, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *dy = (float *)0xA0000000; // dy 在DDR空间 + float *dbias = (float *)0xB0000000; // dbias output + + // NHWC format + int dy_dims[] = {2, 16, 16, 8}; // N, H, W, C + int shape_size = 4; + int core_mask = 0xff; + + // The length of dbias should be dy_dims, which is 8. + fp_biasaddgrad_s(dy, dy_dims, shape_size, dbias, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_biasaddgrad_p(float* dy, int* dy_dims, int shape_size, float* dbias) +.. c:function:: void hp_biasaddgrad_p(half* dy, int* dy_dims, int shape_size, half* dbias) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *dy = (float *)0x10000000; // dy 在L2空间 + float *dbias = (float *)0x11000000; // dbias output + + // NHWC format + int dy_dims[] = {2, 16, 16, 8}; // N, H, W, C + int shape_size = 4; + + // The length of dbias should be dy_dims, which is 8. + fp_biasaddgrad_p(dy, dy_dims, shape_size, dbias); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/binarycrossentropy.rst.txt b/master/html/_sources/functionlib/dsplib/binarycrossentropy.rst.txt new file mode 100644 index 0000000..8bced91 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/binarycrossentropy.rst.txt @@ -0,0 +1,102 @@ +Binarycrossentropy +================= + + +计算二元交叉熵损失。用于衡量二分类问题中预测值 (`input_x`) 和目标值 (`input_y`) 之间的差距。 + +.. math:: + + L_n = -w_n [y_n \cdot \log(x_n) + (1 - y_n) \cdot \log(1 - x_n)] + +其中 :math:`x_n` 是预测值, :math:`y_n` 是目标值, :math:`w_n` 是可选的样本权重。最终输出由 `reduction` 参数决定: + +- **None (0):** 不进行规约,输出每个元素的损失 :math:`L_n`。 +- **Mean (1):** 输出所有元素损失的平均值。 +- **Sum (2):** 输出所有元素损失的总和。 + +输入: + - **input_size** - 输入张量的总元素数量。 + - **reduction** - 规约类型 (0: None, 1: Mean, 2: Sum)。 + - **input_x** - 预测值的张量数据地址,通常是Sigmoid函数的输出。 + - **input_y** - 目标值(标签)的张量数据地址。 + - **weight** - (可选) 权重张量的数据地址,维度与 `input_x` 相同。 + - **loss** - (输出) 最终损失值的数据地址。如果 `reduction` 为 `None`,其大小为 `input_size`;否则大小为1。 + - **tmp_loss** - 用于存储逐元素损失的临时工作空间地址,大小必须为 `input_size`。 + - **weight_defined** - 权重是否有效的标志。若为非0,则`weight`参数必须提供。 + - **core_mask** - 核掩码。 + + +输出: + - **loss** - 写入最终损失值的数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int8 + - MT7004 支持fp16, fp32 + + +**共享存储版本:** + +.. c:function:: void fp_binarycrossentropy_s(int input_size, int reduction, float* input_x, float* input_y, float* weight, float* loss, float* tmp_loss, int weight_defined, int core_mask) +.. c:function:: void hp_binarycrossentropy_s(int input_size, int reduction, half* input_x, half* input_y, half* weight, half* loss, half* tmp_loss, int weight_defined, int core_mask) +.. c:function:: void i8_binarycrossentropy_s(int input_size, int reduction, int8_t* input_x, int8_t* input_y, int8_t* weight, int8_t* loss, int8_t* tmp_loss, int weight_defined, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input_x = (float *)0xA0000000; // input_x 在DDR空间 + float *input_y = (float *)0xB0000000; // input_y + float *weight = (float *)0xC0000000; // weight + float *loss = (float *)0xD0000000; // loss output + float *tmp_loss = (float *)0xE0000000; // temp workspace + + int input_size = 1024; + int reduction = 1; // Mean + int weight_defined = 1; // true + int core_mask = 0xff; + + fp_binarycrossentropy_s(input_size, reduction, input_x, input_y, weight, loss, tmp_loss, weight_defined, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_binarycrossentropy_p(int input_size, int reduction, float* input_x, float* input_y, float* weight, float* loss, float* tmp_loss, int weight_defined) +.. c:function:: void hp_binarycrossentropy_p(int input_size, int reduction, half* input_x, half* input_y, half* weight, half* loss, half* tmp_loss, int weight_defined) +.. c:function:: void i8_binarycrossentropy_p(int input_size, int reduction, int8_t* input_x, int8_t* input_y, int8_t* weight, int8_t* loss, int8_t* tmp_loss, int weight_defined) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input_x = (float *)0x10000000; // input_x 在L2空间 + float *input_y = (float *)0x11000000; // input_y + float *weight = (float *)0x12000000; // weight + float *loss = (float *)0x13000000; // loss output + float *tmp_loss = (float *)0x14000000; // temp workspace + + int input_size = 1024; + int reduction = 1; // Mean + int weight_defined = 0; // false + + fp_binarycrossentropy_p(input_size, reduction, input_x, input_y, weight, loss, tmp_loss, weight_defined); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/binarycrossentropygrad.rst.txt b/master/html/_sources/functionlib/dsplib/binarycrossentropygrad.rst.txt new file mode 100644 index 0000000..8ab548b --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/binarycrossentropygrad.rst.txt @@ -0,0 +1,95 @@ +Binarycrossentropygrad +================= + + +计算二元交叉熵损失函数的梯度。 + +.. math:: + + dx_n = dL'_n \cdot w_n \cdot \frac{x_n - y_n}{x_n(1 - x_n) + \epsilon} + +其中 :math:`x_n` 是前向预测值, :math:`y_n` 是目标值, :math:`w_n` 是样本权重, :math:`dL'_n` 是上游梯度。`reduction` 参数决定了 :math:`dL'_n` 的广播方式。 + +输入: + - **input_size** - 输入张量的总元素数量。 + - **reduction** - 前向传播时使用的规约类型 (0: None, 1: Mean, 2: Sum)。 + - **input_x** - 前向传播时的预测值张量。 + - **input_y** - 前向传播时的目标值(标签)张量。 + - **weight** - (可选) 前向传播时使用的权重张量。 + - **dloss** - 来自后一层的上游梯度。 + - **dx** - (输出) 梯度结果的存储地址。 + - **weight_defined** - 权重是否有效的标志。若为非0,则`weight`参数必须提供。 + - **core_mask** - 核掩码。 + +输出: + - **dx** - 写入计算出的对 `input_x` 的梯度。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + + +**共享存储版本:** + +.. c:function:: void fp_binarycrossentropygrad_s(int input_size, int reduction, float* input_x, float* input_y, float* weight, float* dloss, float* dx, int weight_defined, int core_mask) +.. c:function:: void hp_binarycrossentropygrad_s(int input_size, int reduction, half* input_x, half* input_y, half* weight, half* dloss, half* dx, int weight_defined, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input_x = (float *)0xA0000000; // forward input_x, DDR + float *input_y = (float *)0xB0000000; // forward input_y + float *weight = (float *)0xC0000000; // forward weight + float *dloss = (float *)0xD0000000; // upstream gradient + float *dx = (float *)0xE0000000; // output gradient dx + + int input_size = 1024; + int reduction = 1; // Mean + int weight_defined = 1; // true + int core_mask = 0xff; + + fp_binarycrossentropygrad_s(input_size, reduction, input_x, input_y, weight, dloss, dx, weight_defined, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_binarycrossentropygrad_p(int input_size, int reduction, float* input_x, float* input_y, float* weight, float* dloss, float* dx, int weight_defined) +.. c:function:: void hp_binarycrossentropygrad_p(int input_size, int reduction, half* input_x, half* input_y, half* weight, half* dloss, half* dx, int weight_defined) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float *input_x = (float *)0x10000000; // forward input_x, L2 + float *input_y = (float *)0x11000000; // forward input_y + float *weight = (float *)0x12000000; // forward weight + float *dloss = (float *)0x13000000; // upstream gradient + float *dx = (float *)0x14000000; // output gradient dx + + int input_size = 1024; + int reduction = 1; // Mean + int weight_defined = 0; // false + + fp_binarycrossentropygrad_p(input_size, reduction, input_x, input_y, weight, dloss, dx, weight_defined); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/cast.rst.txt b/master/html/_sources/functionlib/dsplib/cast.rst.txt new file mode 100644 index 0000000..4e06742 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/cast.rst.txt @@ -0,0 +1,128 @@ +Cast +================= + + + +对输入数组进行 **逐元素数据类型转换(Cast)**,将源类型的数据按 C 语言强制类型转换规则转换为目标类型后输出。 + +数学表达式为: + +.. math:: + + dst_i = (T_{dst}) \; src_i + +输入: + - **input** - 输入数据地址。 + - **length** - 计算长度(元素个数)。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 转换后的结果数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 ``fp32``、``fp64``、``int8``、``int16``、``int32``、``cplx64``、``cplx128`` 类型之间的 Cast + - MT7004 支持 ``fp16``、``fp32``、``int16``、``int32``、``cplx64`` 类型之间的 Cast + - 转换规则遵循 C 语言显式类型转换语义,可能存在精度截断或溢出风险 + - 输入与输出张量长度必须一致 + +**共享存储版本:** + +.. c:function:: void casti8Tointi8_s(int8_t* input, int8_t* output, int length, int core_mask) +.. c:function:: void casti8Tointi16_s(int8_t* input, int16_t* output, int length, int core_mask) +.. c:function:: void casti8Tointi32_s(int8_t* input, int32_t* output, int length, int core_mask) +.. c:function:: void casti8Tofp_s(int8_t* input, float* output, int length, int core_mask) + +.. c:function:: void casti16Tointi8_s(int16_t* input, int8_t* output, int length, int core_mask) +.. c:function:: void casti16Tointi16_s(int16_t* input, int16_t* output, int length, int core_mask) +.. c:function:: void casti16Tointi32_s(int16_t* input, int32_t* output, int length, int core_mask) +.. c:function:: void casti16Tofp_s(int16_t* input, float* output, int length, int core_mask) + +.. c:function:: void casti32Tointi8_s(int32_t* input, int8_t* output, int length, int core_mask) +.. c:function:: void casti32Tointi16_s(int32_t* input, int16_t* output, int length, int core_mask) +.. c:function:: void casti32Tointi32_s(int32_t* input, int32_t* output, int length, int core_mask) +.. c:function:: void casti32Tofp_s(int32_t* input, float* output, int length, int core_mask) + +.. c:function:: void castfpTofp_s(float* input, float* output, int length, int core_mask) +.. c:function:: void castfpToint8_s(float* input, int8_t* output, int length, int core_mask) +.. c:function:: void castfpToint16_s(float* input, int16_t* output, int length, int core_mask) +.. c:function:: void castfpToint32_s(float* input, int32_t* output, int length, int core_mask) + +.. c:function:: void castdpTodp_s(double* input, double* output, int length, int core_mask) +.. c:function:: void castdpTofp_s(double* input, float* output, int length, int core_mask) + +.. c:function:: void castc64Toc64_s(cplx64* input, cplx64* output, int length, int core_mask) +.. c:function:: void castc128Toc128_s(cplx128* input, cplx128* output, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + // FT78NE 示例:int8 -> int16 + #include + #include + + int main(int argc, char* argv[]) { + int8_t *input = (int8_t *)0xA0000000; + int16_t *output = (int16_t *)0xC0000000; + + int length = 2048; + int core_mask = 0xff; + + casti8Tointi16_s(input, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void casti8Tointi8_p(int8_t* input, int8_t* output, int length) +.. c:function:: void casti8Tointi16_p(int8_t* input, int16_t* output, int length) +.. c:function:: void casti8Tointi32_p(int8_t* input, int32_t* output, int length) +.. c:function:: void casti8Tofp_p(int8_t* input, float* output, int length) + +.. c:function:: void casti16Tointi8_p(int16_t* input, int8_t* output, int length) +.. c:function:: void casti16Tointi16_p(int16_t* input, int16_t* output, int length) +.. c:function:: void casti16Tointi32_p(int16_t* input, int32_t* output, int length) +.. c:function:: void casti16Tofp_p(int16_t* input, float* output, int length) + +.. c:function:: void casti32Tointi8_p(int32_t* input, int8_t* output, int length) +.. c:function:: void casti32Tointi16_p(int32_t* input, int16_t* output, int length) +.. c:function:: void casti32Tointi32_p(int32_t* input, int32_t* output, int length) +.. c:function:: void casti32Tofp_p(int32_t* input, float* output, int length) + +.. c:function:: void castfpTofp_p(float* input, float* output, int length) +.. c:function:: void castfpToint8_p(float* input, int8_t* output, int length) +.. c:function:: void castfpToint16_p(float* input, int16_t* output, int length) +.. c:function:: void castfpToint32_p(float* input, int32_t* output, int length) + +.. c:function:: void castdpTodp_p(double* input, double* output, int length) +.. c:function:: void castdpTofp_p(double* input, float* output, int length) + +.. c:function:: void castc64Toc64_p(cplx64* input, cplx64* output, int length) +.. c:function:: void castc128Toc128_p(cplx128* input, cplx128* output, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + // FT78NE 示例:int8 -> int16(私有存储) + #include + #include + + int main(int argc, char* argv[]) { + int8_t *input = (int8_t *)0x10810000; + int16_t *output = (int16_t *)0x10820000; + + int length = 2048; + casti8Tointi16_p(input, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/ceil.rst.txt b/master/html/_sources/functionlib/dsplib/ceil.rst.txt new file mode 100644 index 0000000..a3d1186 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/ceil.rst.txt @@ -0,0 +1,79 @@ +Ceil +================= + + + +逐元素计算输入张量的向上取整值。即返回大于或等于每个元素的最小整数。 + +.. math:: + + \text{Output}_i = \lceil \text{Input}_i \rceil + +输入: + - **input_x** - 输入张量的数据地址。 + - **input_size** - 输入张量的总元素数量。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出张量的数据地址,其大小与`input_x`相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, double + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void fp_ceil_s(float* input_x, float* output, int input_size, int core_mask) +.. c:function:: void hp_ceil_s(half* input_x, half* output, int input_size, int core_mask) +.. c:function:: void dp_ceil_s(double* input_x, double* output, int input_size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input_x = (float *)0xA0000000; // input_x 在DDR空间 + float *output = (float *)0xB0000000; // output + + int input_size = 4096; + int core_mask = 0xff; + + fp_ceil_s(input_x, output, input_size, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_ceil_p(float* input_x, float* output, int input_size) +.. c:function:: void hp_ceil_p(half* input_x, half* output, int input_size) +.. c:function:: void dp_ceil_p(double* input_x, double* output, int input_size) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input_x = (float *)0x10000000; // input_x 在L2空间 + float *output = (float *)0x11000000; // output + + int input_size = 1024; + + fp_ceil_p(input_x, output, input_size); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/clip.rst.txt b/master/html/_sources/functionlib/dsplib/clip.rst.txt new file mode 100644 index 0000000..9e7b6cc --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/clip.rst.txt @@ -0,0 +1,90 @@ +Clip +================= + + + +逐元素将输入张量 `src` 的值裁剪到指定的最小值 `min` 和最大值 `max` 范围内。 + +.. math:: + + \text{dst}_i = \max(\min, \min(\text{src}_i, \max)) + +输入: + - **src** - 输入张量的数据地址。 + - **length** - 输入张量的总元素数量。 + - **min** - 裁剪范围的最小值。 + - **max** - 裁剪范围的最大值。 + - **core_mask** - 核掩码。 + +输出: + - **dst** - 输出张量的数据地址,其大小与`src`相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64 + - MT7004 支持int16, int32, fp16, fp32 + +**共享存储版本:** + +.. c:function:: void i8_clip_s(int8_t* src, int8_t* dst, int length, int8_t min, int8_t max, int core_mask) +.. c:function:: void i16_clip_s(int16_t* src, int16_t* dst, int length, int16_t min, int16_t max, int core_mask) +.. c:function:: void i32_clip_s(int32_t* src, int32_t* dst, int length, int32_t min, int32_t max, int core_mask) +.. c:function:: void fp_clip_s(float* src, float* dst, int length, float min, float max, int core_mask) +.. c:function:: void hp_clip_s(half* src, half* dst, int length, half min, half max, int core_mask) +.. c:function:: void dp_clip_s(double* src, double* dst, int length, double min, double max, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *src = (float *)0xA0000000; // src 在DDR空间 + float *dst = (float *)0xB0000000; // dst + + int length = 4096; + float min = 0.0f; + float max = 6.0f; // 例如ReLU6的裁剪范围 + int core_mask = 0xff; + + fp_clip_s(src, dst, length, min, max, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_clip_p(int8_t* src, int8_t* dst, int length, int8_t min, int8_t max) +.. c:function:: void i16_clip_p(int16_t* src, int16_t* dst, int length, int16_t min, int16_t max) +.. c:function:: void i32_clip_p(int32_t* src, int32_t* dst, int length, int32_t min, int32_t max) +.. c:function:: void fp_clip_p(float* src, float* dst, int length, float min, float max) +.. c:function:: void hp_clip_p(half* src, half* dst, int length, half min, half max) +.. c:function:: void dp_clip_p(double* src, double* dst, int length, double min, double max) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *src = (float *)0x10000000; // src 在L2空间 + float *dst = (float *)0x11000000; // dst + + int length = 1024; + float min = -1.0f; + float max = 1.0f; + + fp_clip_p(src, dst, length, min, max); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/concat.rst.txt b/master/html/_sources/functionlib/dsplib/concat.rst.txt new file mode 100644 index 0000000..96011ea --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/concat.rst.txt @@ -0,0 +1,110 @@ +Concat +================= + +在指定维度(axis)上连接一组张量。所有输入张量除了连接维度外,其他维度的形状必须完全相同。 + +.. math:: + + output = \text{Concat}(input_0, input_1, \dots, input_{n-1}, \text{axis}) + +输入: + - **inputs** - 包含所有输入张量起始地址的数组指针。 + - **input_shapes** - 包含所有输入张量形状(shape)的数组指针。 + - **num_inputs** - 输入张量的数量。 + - **axis** - 连接操作所在的维度索引。 + - **input_ndim** - 输入张量的维度(秩)。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果存储地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - 所有输入张量的维度 `input_ndim` 必须一致。 + - 除 `axis` 指定的维度外,所有输入张量的 `shape[i]` 必须相等。 + +**共享存储版本:** + +.. c:function:: void i8_concat_s(int8_t* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, int8_t* output, int core_mask) +.. c:function:: void i16_concat_s(int16_t* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, int16_t* output, int core_mask) +.. c:function:: void i32_concat_s(int32_t* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, int32_t* output, int core_mask) +.. c:function:: void hp_concat_s(half* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, half* output, int core_mask) +.. c:function:: void fp_concat_s(float* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, float* output, int core_mask) +.. c:function:: void dp_concat_s(double* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, double* output, int core_mask) +.. c:function:: void c64_concat_s(float* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, float* output, int core_mask) +.. c:function:: void c128_concat_s(double* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, double* output, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 22 + + // FT78NE 示例(共享存储) + #include + #include "78NE/utils.h" + + int main() { + int shape0[] = { 4, 10, 8, 12 }; + int shape1[] = { 4, 5, 8, 12 }; + int shape2[] = { 4, 15, 8, 12 }; + int* input_shapes[] = { shape0, shape1, shape2 }; + + float *input0 = (float *)0xA0000000; + float *input1 = (float *)0xA2000000; + float *input2 = (float *)0xA4000000; + float *inputs[] = { input0, input1, input2 }; + float *output = (float *)0xB0000000; + + int num_inputs = 3; + int axis = 1; + int input_ndim = 4; + int core_mask = 0b1011; + + fp_concat_s(inputs, input_shapes, num_inputs, axis, input_ndim, output, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_concat_p(int8_t* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, int8_t* output) +.. c:function:: void i16_concat_p(int16_t* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, int16_t* output) +.. c:function:: void i32_concat_p(int32_t* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, int32_t* output) +.. c:function:: void hp_concat_p(half* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, half* output) +.. c:function:: void fp_concat_p(float* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, float* output) +.. c:function:: void dp_concat_p(double* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, double* output) +.. c:function:: void c64_concat_p(float* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, float* output) +.. c:function:: void c128_concat_p(double* inputs[], int* input_shapes[], int num_inputs, int axis, int input_ndim, double* output) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 18 + + // MT7004 示例(私有存储) + #include + + int main() { + int shape0[] = { 2, 3, 4, 5 }; + int shape1[] = { 2, 2, 4, 5 }; + int* input_shapes[] = { shape0, shape1 }; + + float *input0 = (float *)0x10810000; + float *input1 = (float *)0x10820000; + float *inputs[] = { input0, input1 }; + float *output = (float *)0x10830000; + + int num_inputs = 2; + int axis = 1; + int input_ndim = 4; + + fp_concat_p(inputs, input_shapes, num_inputs, axis, input_ndim, output); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/constant_of_shape.rst.txt b/master/html/_sources/functionlib/dsplib/constant_of_shape.rst.txt new file mode 100644 index 0000000..e3d406b --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/constant_of_shape.rst.txt @@ -0,0 +1,110 @@ +ConstantOfShape +================= + + 将给定内存区间内的所有元素填充为指定的常量值。对于复数类型,实部和虚部需分别传入。 + + 输入: + - **output** - 输出数据的起始地址。 + - **start** - 填充的起始索引(包含)。 + - **end** - 填充的结束索引(不包含)。 + - **value** - 需要填充的常量值(针对非复数类型)。 + - **value_real** - 复数常量的实部(针对复数类型)。 + - **value_imag** - 复数常量的虚部(针对复数类型)。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + + 输出: + - **output** - 填充完成后的数据地址。 + + 支持平台: + ``FT78NE`` + ``MT7004`` + + .. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_constant_of_shape_s(int8_t* output, int start, int end, int8_t value, int core_mask) +.. c:function:: void i16_constant_of_shape_s(int16_t* output, int start, int end, int16_t value, int core_mask) +.. c:function:: void i32_constant_of_shape_s(int32_t* output, int start, int end, int32_t value, int core_mask) +.. c:function:: void fp_constant_of_shape_s(float* output, int start, int end, float value, int core_mask) +.. c:function:: void dp_constant_of_shape_s(double* output, int start, int end, double value, int core_mask) +.. c:function:: void c64_constant_of_shape_s(float* output, int start, int end, float value_real, float value_imag, int core_mask) +.. c:function:: void c128_constant_of_shape_s(double* output, int start, int end, double value_real, double value_imag, int core_mask) + + **C调用示例(Float32):** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + #include + + int main(int argc, char* argv[]) { + // output在DDR空间 + float *output = (float *)0xA0000000; + int start = 0; + int end = 16000; + float value = 1.5f; + int core_mask = 0xff; + + // 多核并行填充 + fp_constant_of_shape_s(output, start, end, value, core_mask); + + return 0; + } + + **C调用示例(Complex64):** + + .. code-block:: c + :linenos: + :emphasize-lines: 13 + + #include + + int main(int argc, char* argv[]) { + // output在DDR空间,c64类型通常使用float*指针访问 + float *output = (float *)0xA0000000; + int start = 0; + int end = 1000; // 1000个复数元素 + float val_r = 0.5f; + float val_i = -0.5f; + int core_mask = 0xff; + + // 注意:c64接口需分别传入实部和虚部 + c64_constant_of_shape_s(output, start, end, val_r, val_i, core_mask); + + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_constant_of_shape_p(int8_t* output, int start, int end, int8_t value) +.. c:function:: void i16_constant_of_shape_p(int16_t* output, int start, int end, int16_t value) +.. c:function:: void i32_constant_of_shape_p(int32_t* output, int start, int end, int32_t value) +.. c:function:: void fp_constant_of_shape_p(float* output, int start, int end, float value) +.. c:function:: void dp_constant_of_shape_p(double* output, int start, int end, double value) +.. c:function:: void c64_constant_of_shape_p(float* output, int start, int end, float value_real, float value_imag) +.. c:function:: void c128_constant_of_shape_p(double* output, int start, int end, double value_real, double value_imag) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + #include + + int main(int argc, char* argv[]) { + // output在L2空间 + float *output = (float *)0x10810000; + int start = 0; + int end = 1024; + float value = 3.14f; + + fp_constant_of_shape_p(output, start, end, value); + + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/conv2d.rst.txt b/master/html/_sources/functionlib/dsplib/conv2d.rst.txt index 0c0e537..7b56584 100644 --- a/master/html/_sources/functionlib/dsplib/conv2d.rst.txt +++ b/master/html/_sources/functionlib/dsplib/conv2d.rst.txt @@ -15,7 +15,7 @@ Conv2d - :math:`j` 对应输出通道,其范围为 :math:`[0, C_{out}-1]`,其中 :math:`C_{out}` 为输出通道数,该值也等于卷积核的个数。 - :math:`k` 对应输入通道数,其范围为 :math:`[0, C_{in}-1]`,其中 :math:`C_{in}` 为输入通道数,该值也等于卷积核的通道数。 -因此,上面的公式中,:math:`bias(C_{out_j})` 为第 :math:`j` 个输出通道的偏置,:math:`weight(C_{out_j}, k)` 表示第 :math:`j` 个卷积核在第 :math:`k` 个输入通道的卷积核切片,:math:`X(N_i, k)` 为特征图第 :math:`i` 个 batch 第 :math:`k` 个输入通道的切片。卷积核 shape 为 :math:`(\text{kernel_size}[0], \text{kernel_size}[1])`,其中 kernel_size[0] 和 kernel_size[1] 是卷积核的高度和宽度。若考虑到输入输出通道以及 group,则完整卷积核的 shape 为 :math:`(C_{out}, \text{kernel_size}[0], \text{kernel_size}[1], C_{in}/\text{group})`,其中 group 是分组卷积时在通道上分割输入 :math:`x` 的组数。 +因此,上面的公式中,:math:`bias(C_{out_j})` 为第 :math:`j` 个输出通道的偏置,:math:`weight(C_{out_j}, k)` 表示第 :math:`j` 个卷积核在第 :math:`k` 个输入通道的卷积核切片,:math:`X(N_i, k)` 为特征图第 :math:`i` 个 batch 第 :math:`k` 个输入通道的切片。卷积核 shape 为 :math:`(\text{kernel\_size}[0], \text{kernel\_size}[1])`,其中 kernel_size[0] 和 kernel_size[1] 是卷积核的高度和宽度。若考虑到输入输出通道以及 group,则完整卷积核的 shape 为 :math:`(C_{out}, \text{kernel\_size}[0], \text{kernel\_size}[1], C_{in}/\text{group})`,其中 group 是分组卷积时在通道上分割输入 :math:`x` 的组数。 输入: - **input_x** - 输入数据的地址 diff --git a/master/html/_sources/functionlib/dsplib/cos.rst.txt b/master/html/_sources/functionlib/dsplib/cos.rst.txt new file mode 100644 index 0000000..c3a8a33 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/cos.rst.txt @@ -0,0 +1,88 @@ +Cos +================= + + + +对输入数组逐元素计算余弦值(cosine)。 + +.. math:: + + dst_i = \cos(src_i) + +其中输入角度以弧度(radian)为单位。 + +输入: + - **src_data** - 输入数据地址。 + - **length** - 计算长度。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **dst_data** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp, dp, int8, int16, int32 类型 + - MT7004 支持 hp, fp, int16, int32 类型 + - 当输入类型为 int8 / int16 / int32 时,输出类型统一为 fp(float) + - 输入数值将被解释为弧度值 + +**共享存储版本:** + +.. c:function:: void i8_cos_s(int8_t* src_data, float* dst_data, int length, int core_mask) +.. c:function:: void i16_cos_s(int16_t* src_data, float* dst_data, int length, int core_mask) +.. c:function:: void i32_cos_s(int* src_data, float* dst_data, int length, int core_mask) +.. c:function:: void hp_cos_s(half* src_data, half* dst_data, int length, int core_mask) +.. c:function:: void fp_cos_s(float* src_data, float* dst_data, int length, int core_mask) +.. c:function:: void dp_cos_s(double* src_data, double* dst_data, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; // input在DDR空间 + float *output = (float *)0xC0000000; + int length = 1024; + int core_mask = 0xff; + + fp_cos_s(input0, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_cos_p(int8_t* src_data, float* dst_data, int length) +.. c:function:: void i16_cos_p(int16_t* src_data, float* dst_data, int length) +.. c:function:: void i32_cos_p(int* src_data, float* dst_data, int length) +.. c:function:: void hp_cos_p(half* src_data, half* dst_data, int length) +.. c:function:: void fp_cos_p(float* src_data, float* dst_data, int length) +.. c:function:: void dp_cos_p(double* src_data, double* dst_data, int length) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0x10810000; // input在L2空间 + float *output = (float *)0x10820000; + int length = 1024; + + fp_cos_p(input0, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/cumsum.rst.txt b/master/html/_sources/functionlib/dsplib/cumsum.rst.txt new file mode 100644 index 0000000..426930e --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/cumsum.rst.txt @@ -0,0 +1,102 @@ +Cumsum +================= + +沿指定轴计算张量的累积和 + +对于输入张量,沿指定轴计算累积和。支持独占(exclusive)和包含(inclusive)两种模式。 + +.. math:: + + \text{output}[i] = \begin{cases} + 0, & \text{if } i = 0 \text{ and exclusive} = \text{True} \\ + \sum_{j=0}^{i-1} \text{input}[j], & \text{if } i > 0 \text{ and exclusive} = \text{True} \\ + \text{input}[0], & \text{if } i = 0 \text{ and exclusive} = \text{False} \\ + \sum_{j=0}^{i} \text{input}[j], & \text{if } i > 0 \text{ and exclusive} = \text{False} + \end{cases} + +输入: + - **input** - 输入数据地址。 + - **out_dim** - 输出维度(层数)。 + - **axis_dim** - 累积轴的维度大小。 + - **inner_dim** - 内部维度大小。 + - **exclusive** - 是否使用独占模式。1表示独占模式,0表示包含模式。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + - 独占模式(exclusive=1):第一个元素为0,第i个元素为前i-1个元素之和 + - 包含模式(exclusive=0):第一个元素为输入的第一个元素,第i个元素为前i个元素之和 + +**共享存储版本:** + +.. c:function:: void i8_cumsum_s(int8_t* output, int8_t* input, int out_dim, int axis_dim, int inner_dim, int exclusive, int core_mask) +.. c:function:: void i16_cumsum_s(int16_t* output, int16_t* input, int out_dim, int axis_dim, int inner_dim, int exclusive, int core_mask) +.. c:function:: void i32_cumsum_s(int32_t* output, int32_t* input, int out_dim, int axis_dim, int inner_dim, int exclusive, int core_mask) +.. c:function:: void hp_cumsum_s(half* output, half* input, int out_dim, int axis_dim, int inner_dim, int exclusive, int core_mask) +.. c:function:: void fp_cumsum_s(float* output, float* input, int out_dim, int axis_dim, int inner_dim, int exclusive, int core_mask) +.. c:function:: void dp_cumsum_s(double* output, double* input, int out_dim, int axis_dim, int inner_dim, int exclusive, int core_mask) +.. c:function:: void c64_cumsum_s(float (*output)[2], float (*input)[2], int out_dim, int axis_dim, int inner_dim, int exclusive, int core_mask) +.. c:function:: void c128_cumsum_s(double (*output)[2], double (*input)[2], int out_dim, int axis_dim, int inner_dim, int exclusive, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; //input在DDR空间 + float *output = (float *)0xB0000000; //output在DDR空间 + int out_dim = 8; // 输出维度 + int axis_dim = 16; // 累积轴维度 + int inner_dim = 16; // 内部维度 + int exclusive = 0; // 包含模式 + int core_mask = 0xff; + fp_cumsum_s(output, input, out_dim, axis_dim, inner_dim, exclusive, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_cumsum_p(int8_t* output, int8_t* input, int out_dim, int axis_dim, int inner_dim, int exclusive) +.. c:function:: void i16_cumsum_p(int16_t* output, int16_t* input, int out_dim, int axis_dim, int inner_dim, int exclusive) +.. c:function:: void i32_cumsum_p(int32_t* output, int32_t* input, int out_dim, int axis_dim, int inner_dim, int exclusive) +.. c:function:: void hp_cumsum_p(half* output, half* input, int out_dim, int axis_dim, int inner_dim, int exclusive) +.. c:function:: void fp_cumsum_p(float* output, float* input, int out_dim, int axis_dim, int inner_dim, int exclusive) +.. c:function:: void dp_cumsum_p(double* output, double* input, int out_dim, int axis_dim, int inner_dim, int exclusive) +.. c:function:: void c64_cumsum_p(float (*output)[2], float (*input)[2], int out_dim, int axis_dim, int inner_dim, int exclusive) +.. c:function:: void c128_cumsum_p(double (*output)[2], double (*input)[2], int out_dim, int axis_dim, int inner_dim, int exclusive) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10810000; //input在L2空间 + float *output = (float *)0x10850000; //output在L2空间 + int out_dim = 8; // 输出维度 + int axis_dim = 16; // 累积轴维度 + int inner_dim = 16; // 内部维度 + int exclusive = 0; // 包含模式 + fp_cumsum_p(output, input, out_dim, axis_dim, inner_dim, exclusive); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/customextractfeatures.rst.txt b/master/html/_sources/functionlib/dsplib/customextractfeatures.rst.txt new file mode 100644 index 0000000..b8ce741 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/customextractfeatures.rst.txt @@ -0,0 +1,131 @@ +CustomExtractFeatures +======================= + + +对输入字符串序列逐条进行特征提取,生成对应的离散标签(label)和权重(weight)。 + +该算子主要用于文本特征工程,包含以下逻辑: + +- 对黑名单字符串进行过滤 +- 对非黑名单字符串计算哈希特征 +- 根据字符串中空格数量生成权重 + + +.. math:: + + \text{label}_i = + \begin{cases} + 0, & \text{if } s_i \in \text{blacklist} \\ + \operatorname{hash}(s_i) \bmod K, & \text{otherwise} + \end{cases} + +.. math:: + + \text{weight}_i = + \begin{cases} + 0, & \text{if } s_i \in \text{blacklist} \\ + \text{space\_count}(s_i) + 1, & \text{otherwise} + \end{cases} + +其中: + +- :math:`s_i` 表示第 :math:`i` 条输入字符串 +- :math:`K` 为固定的哈希空间大小(默认 :math:`10^6`) +- ``blacklist`` = {``""``, ``""``, ``" "``} + + +输入: + - **string_pointers** - 指向字符串首地址的指针数组。 + - **string_lengths** - 各字符串对应的长度数组。 + - **num_strings** - 输入字符串的数量。 + - **core_mask** - 核掩码。 + +输出: + - **output_labels** - 输出标签数组地址(int32)。 + - **output_weights** - 输出权重数组地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型: + - fp32, fp64 + - int8, int16, int32 + - cplx64, cplx128 + - MT7004 支持的数据类型: + - fp16, fp32 + - int16, int32 + - cplx64 + - 当 ``num_strings == 0`` 时,输出的 ``label`` 和 ``weight`` 被置为 0 + - 黑名单字符串不会参与哈希计算 + + +**共享存储版本:** + +.. c:function:: void fp_extract_features_s(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, float* output_weights, int core_mask) +.. c:function:: void dp_extract_features_s(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, double* output_weights, int core_mask) +.. c:function:: void i8_extract_features_s(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, int8_t* output_weights, int core_mask) +.. c:function:: void i16_extract_features_s(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, int16_t* output_weights, int core_mask) +.. c:function:: void i32_extract_features_s(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, int32_t* output_weights, int core_mask) +.. c:function:: void c64_extract_features_s(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, float* output_weights, int core_mask) +.. c:function:: void c128_extract_features_s(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, double* output_weights, int core_mask) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + // FT78NE 多核示例 + #include + #include + + int main(int argc, char* argv[]) { + char* strings[] = {"hello world", "", "test data"}; + int lengths[] = {11, 3, 9}; + int num_strings = 3; + + int *labels = (int *)0xA0000000; + float *weights = (float *)0xB0000000; + + int core_mask = 0xff; + + fp_extract_features_s(strings, lengths, num_strings, labels, weights, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_extract_features_p(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, float* output_weights) +.. c:function:: void dp_extract_features_p(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, double* output_weights) +.. c:function:: void i8_extract_features_p(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, int8_t* output_weights) +.. c:function:: void i16_extract_features_p(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, int16_t* output_weights) +.. c:function:: void i32_extract_features_p(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, int32_t* output_weights) +.. c:function:: void c64_extract_features_p(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, float* output_weights) +.. c:function:: void c128_extract_features_p(char** string_pointers, int* string_lengths, int num_strings, int* output_labels, double* output_weights) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + // MT7004 单核示例 + #include + #include + + int main(int argc, char* argv[]) { + char* strings[] = {"example text"}; + int lengths[] = {12}; + int num_strings = 1; + + int *labels = (int *)0x10000000; + float *weights = (float *)0x11000000; + + fp_extract_features_p(strings, lengths, num_strings, labels, weights); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/customnormalize.rst.txt b/master/html/_sources/functionlib/dsplib/customnormalize.rst.txt new file mode 100644 index 0000000..2c41439 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/customnormalize.rst.txt @@ -0,0 +1,89 @@ +Customnormalize +================= + +对输入字符串进行一系列自定义的文本标准化处理。 + +该算子按顺序执行以下操作: +1. 将所有大写字母转换为小写字母。 +2. 去除字符串首尾的空白字符 (space, ``\t``, ``\n``, ``\v``, ``\f``, ``\r``)。 +3. 删除字符串中预定义的一组标点符号 (例如 ``.*()\"``)。 +4. 标准化缩写词,例如,将 ``we 're`` 转换为 ``we're``。 +5. 展开常见的英文缩写词 (例如, ``n't`` -> `` not``, ``'ll`` -> `` will``, ``i'm`` -> ``i am`` 等)。 +6. 标准化问号和感叹号,例如合并连续的符号 (``!!!`` -> ``!``) 并在符号和单词之间添加空格 (``Hello?`` -> ``Hello ?``)。 +7. 去除字符串首尾预定义的另一组字符 (例如 ``[\\s,:;\\-&'\"]+``)。 +8. 再次去除字符串首尾的空白字符。 +9. 如果处理后的字符串长度超过300个字符,则将其截断为300个字符。 +10. 在字符串首部添加前缀 `` ``,尾部添加后缀 `` ``。 + +输入: + - **str** - 输入字符串的地址。 + - **str_len** - 输入字符串的长度。 + - **tmp_str** - 用于中间计算的临时缓冲区的地址,其大小应足以容纳处理过程中的字符串。 + - **params** - 一个 ``long long`` 类型的数组,其中每个元素是指向标准化操作所需的配置字符串或参数的指针。 + - **core_mask** - 核掩码 (仅共享存储版本需要)。 + +输出: + - **result** - 存储标准化后字符串的输出缓冲区的地址。 + - **result_len** - 指向一个 ``int`` 变量的指针,用于存储结果字符串的长度。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - 该算子不区分数据类型 + +**共享存储版本:** + +.. c:function:: void customnormalize_s(char *str, int str_len, char *result, int *result_len, char *tmp_str, long long *params, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + #include + #include + #include "customnormalize.h" + + int main() { + char *str = (char *)0xA0000000; // str in DDR + char *result = (char *)0xB0000000; // result in DDR + char *tmp_str = (char *)0xC0000000; // tmp_str in DDR + int str_len = 50; // 假设长度 + int result_len = 0; + long long params[20]; // 假设参数已填充 + int core_mask = 0xff; + + customnormalize_s(str, str_len, result, &result_len, tmp_str, params, core_mask); + + return 0; + } + +**私有存储版本:** + +.. c:function:: void customnormalize_p(char *str, int str_len, char *result, int *result_len, char *tmp_str, long long *params) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + #include + #include + #include "customnormalize.h" + + int main() { + char *str = (char *)0x10000000; // str in L2 + char *result = (char *)0x10001000; // result in L2 + char *tmp_str = (char *)0x10002000; // tmp_str in L2 + int str_len = 50; // 假设长度 + int result_len = 0; + long long params[20]; // 假设参数已填充 + + customnormalize_p(str, str_len, result, &result_len, tmp_str, params); + + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/custompredict.rst.txt b/master/html/_sources/functionlib/dsplib/custompredict.rst.txt new file mode 100644 index 0000000..ecc72f9 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/custompredict.rst.txt @@ -0,0 +1,77 @@ +CustomPredict +================= + +根据置信度(weight)对候选标签(label)进行排序和筛选,以生成最终的预测结果。 + +输入: + - **input** - ``LabelInfo`` 结构体数组的地址。每个结构体包含一个整数 ``label`` 和一个浮点数 ``weight``。 + - **input_size** - 输入数组中的元素数量。 + - **output_num** - 期望输出的预测结果数量(Top-K 中的 K)。 + - **weight_threshold** - 一个浮点数阈值,用于过滤掉置信度过低的预测结果。 + - **core_mask** - 核掩码 (仅共享存储版本需要)。 + +输出: + - **output_label** - 存储最终预测标签的整数数组地址。 + - **output_weight** - 存储最终预测权重的浮点数数组地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - 该算子不区分数据类型,但其处理的 ``LabelInfo`` 结构体具有固定的成员类型(int, float)。 + +**共享存储版本:** + +.. c:function:: void custompredict_s(LabelInfo * input, int input_size, int *output_label, float *output_weight, int output_num, float weight_threshold, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + #include + #include "custompredict.h" + + int main() { + LabelInfo *input = (LabelInfo *)0xA0000000; // input in DDR + int *output_label = (int *)0xB0000000; // output_label in DDR + float *output_weight = (float *)0xC0000000; // output_weight in DDR + + int input_size = 100; // 假设值 + int output_num = 10; + float weight_threshold = 0.5f; + int core_mask = 0xff; + + custompredict_s(input, input_size, output_label, output_weight, output_num, weight_threshold, core_mask); + + return 0; + } + +**私有存储版本:** + +.. c:function:: void custompredict_p(LabelInfo * input, int input_size, int *output_label, float *output_weight, int output_num, float weight_threshold) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + #include + #include "custompredict.h" + + int main() { + LabelInfo *input = (LabelInfo *)0x10000000; // input in L2 + int *output_label = (int *)0x10001000; // output_label in L2 + float *output_weight = (float *)0x10002000; // output_weight in L2 + + int input_size = 100; // 假设值 + int output_num = 10; + float weight_threshold = 0.5f; + + custompredict_p(input, input_size, output_label, output_weight, output_num, weight_threshold); + + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/deconvgradfilter.rst.txt b/master/html/_sources/functionlib/dsplib/deconvgradfilter.rst.txt new file mode 100644 index 0000000..f465cf2 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/deconvgradfilter.rst.txt @@ -0,0 +1,97 @@ +DeconvGradFilter +================= + + + +计算反卷积(Deconvolution / Transposed Convolution)算子的权重梯度,用于反向传播阶段。 +该算子根据输出梯度 ``dy`` 与输入特征 ``x``,通过 ``im2row + GEMM`` 的方式累加得到卷积核梯度 ``dw``,并支持分组(group)计算。 + +.. math:: + + \frac{\partial W}{\partial L} + = + \sum_{b=0}^{B-1} + \text{Im2Row}(dY_b) \cdot X_b + +其中每个 Group 独立计算,最终在 Group 维度上拼接。 + +输入: + - **dy_data** - 输出特征梯度地址,形状为 ``[batch, out_h, out_w, out_c]``。 + - **x_data** - 输入特征地址,形状为 ``[batch, in_h, in_w, in_c]``。 + - **param** - 参数数组地址,用于描述反卷积计算相关参数与工作空间。 + - ``param[1]`` : in_h + - ``param[2]`` : in_w + - ``param[3]`` : in_c + - ``param[4]`` : batch + - ``param[5]`` : out_h + - ``param[6]`` : out_w + - ``param[7]`` : out_c + - ``param[8]`` : kernel_h + - ``param[9]`` : kernel_w + - ``param[16]`` : group + - ``param[17]`` : im2row 工作缓冲区地址 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **dw_data** - 权重梯度输出地址,布局为 ``[group, out_c/group * k_h * k_w, in_c/group]``。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 仅支持 fp 类型 + - MT7004 支持 hp, fp 类型 + - 输入与输出数据格式为 NHWC + +**共享存储版本:** + +.. c:function:: void hp_deconvgradfilter_s(half* dy_data, half* x_data, half* dw_data, long long* param, int core_mask) +.. c:function:: void fp_deconvgradfilter_s(float* dy_data, float* x_data, float* dw_data, long long* param, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *dy_data = (float *)0xA0000000; + float *x_data = (float *)0xA1000000; + float *dw_data = (float *)0xC0000000; + long long *param = (long long *)0xA2000000; + int core_mask = 0xff; + + fp_deconvgradfilter_s(dy_data, x_data, dw_data, param, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void hp_deconvgradfilter_p(half* dy_data, half* x_data, half* dw_data, long long* param) +.. c:function:: void fp_deconvgradfilter_p(float* dy_data, float* x_data, float* dw_data, long long* param) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *dy_data = (float *)0x10810000; // L2空间 + float *x_data = (float *)0x10820000; + float *dw_data = (float *)0x10830000; + long long *param = (long long *)0x10840000; + + fp_deconvgradfilter_p(dy_data, x_data, dw_data, param); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/detection_post_process.rst.txt b/master/html/_sources/functionlib/dsplib/detection_post_process.rst.txt new file mode 100644 index 0000000..aa13d1c --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/detection_post_process.rst.txt @@ -0,0 +1,156 @@ +DetectionPostProcess +====================== + +DetectionPostProcess 算子用于目标检测模型的后处理阶段,对网络预测的候选框和置信度进行解码、筛选和非极大值抑制(NMS),输出最终检测结果。 +其主要功能包括: +1. 根据 anchor 信息对候选框进行解码; +2. 对各类别的候选框执行 NMS 操作; +3. 输出选中的检测框、类别及分数。 + +输入: + - **input_boxes** - 检测框坐标数据地址,形状为 ``[num_boxes, 4]``。 + - **input_scores** - 每个检测框对应的置信度分数,形状为 ``[num_boxes, num_classes_with_bg_]``。 + - **anchors** - Anchor 坐标数据地址,形状为 ``[num_boxes, 4]``。 + - **num_boxes** - 候选框数量。 + - **num_classes_with_bg** - 含背景类在内的类别数量。 + - **core_mask (int, 可选)** - 核掩码(仅适用于共享存储版本)。 + - **param** - 算子参数结构体,包含 NMS 阈值、检测数量限制、坐标缩放因子等。 + + **结构体定义:** + + .. code-block:: c + :linenos: + + typedef struct { + bool use_regular_nms; + int num_classes; + int max_detections; + int max_classes_per_detection; // Fast NMS使用 + int detections_per_class; // Regular NMS使用 + float nms_score_threshold; + float nms_iou_threshold; + float y_scale; + float x_scale; + float h_scale; + float w_scale; + int num_boxes; + int num_classes_with_bg; + + void *decoded_boxes; + uint8_t *nms_candidate; + int32_t *selected; + float *scores; + int32_t *indexes; + float *all_class_scores; + int32_t *all_class_indexes; + int32_t *single_class_indexes; + + // INT8 量化参数(仅在 Int8 模式下使用) + float boxes_scale; + int32_t boxes_zero_point; + float scores_scale; + int32_t scores_zero_point; + + } DetectionPostProcessParameter; +输出: + - **output_boxes** - 输出检测框坐标。 + - **output_classes** - 输出检测框类别索引。 + - **output_scores** - 输出检测框对应的置信度。 + - **output_num** - 实际输出的检测框数量。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp32, int8 + - MT7004 支持 fp16, fp32 + +**共享存储版本:** + +.. c:function:: void fp_detection_post_process_s(const float *input_boxes, const float *input_scores, const float *anchors, float *output_boxes, float *output_classes, float *output_scores, float *output_num, DetectionPostProcessParameter *param, int core_mask) +.. c:function:: void i8_detection_post_process_s(const int8_t *input_boxes, const int8_t *input_scores, const float *anchors, float *output_boxes, float *output_classes, float *output_scores, float *output_num, DetectionPostProcessParameter *param, int core_mask) +.. c:function:: void hp_detection_post_process_s(const half *input_boxes, const half *input_scores, const half *anchors, half *output_boxes, float *output_classes, half *output_scores, float *output_num, DetectionPostProcessParameter *param, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 30 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float *input_boxes = (float *)0xA0000000; + float *input_scores = (float *)0xA1000000; + float *anchors = (float *)0xA2000000; + float *output_boxes = (float *)0xA3000000; + float *output_classes = (float *)0xA4000000; + float *output_scores = (float *)0xA5000000; + float *output_num = (float *)0xA6000000; + DetectionPostProcessParameter* param = (DetectionPostProcessParameter*)0xA7000000; + + param->use_regular_nms = true; + param->num_classes = 3; + param->max_detections = 50; + param->max_classes_per_detection = 1; + param->detections_per_class = 50; + param->nms_score_threshold = 0.1f; + param->nms_iou_threshold = 0.5f; + param->y_scale = 10.0f; + param->x_scale = 10.0f; + param->h_scale = 5.0f; + param->w_scale = 5.0f; + param->num_boxes = 100; + param->num_classes_with_bg = 4; + + int core_mask = 0xff; + + fp_detection_post_process_s(input_boxes, input_scores, anchors, output_boxes, output_classes, output_scores, output_num, param, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_detection_post_process_p(const float *input_boxes, const float *input_scores, const float *anchors, float *output_boxes, float *output_classes, float *output_scores, float *output_num, DetectionPostProcessParameter *param) +.. c:function:: void i8_detection_post_process_p(const int8_t *input_boxes, const int8_t *input_scores, const float *anchors, float *output_boxes, float *output_classes, float *output_scores, float *output_num, DetectionPostProcessParameter *param) +.. c:function:: void hp_detection_post_process_p(const half *input_boxes, const half *input_scores, const half *anchors, half *output_boxes, float *output_classes, half *output_scores, float *output_num, DetectionPostProcessParameter *param) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 29 + + //MT7004示例 + #include + + int main(int argc, char* argv[]) { + DetectionPostProcessParameter param; + + param.use_regular_nms = 1; + param.num_classes = 3; + param.max_detections = 50; + param.max_classes_per_detection = 1; + param.detections_per_class = 50; + param.nms_score_threshold = 0.1f; + param.nms_iou_threshold = 0.5f; + param.y_scale = 10.0f; + param.x_scale = 10.0f; + param.h_scale = 5.0f; + param.w_scale = 5.0f; + param.num_boxes = 1917; + param.num_classes_with_bg = 4; + + float *input_boxes = (float *)0xA0000000; + float *input_scores = (float *)0xA1000000; + float *anchors = (float *)0xA2000000; + float *output_boxes = (float *)0xA3000000; + float *output_classes = (float *)0xA4000000; + float *output_scores = (float *)0xA5000000; + float *output_num = (float *)0xA6000000; + + fp_detection_post_process_p(input_boxes, input_scores, anchors, output_boxes, output_classes, output_scores, output_num, param); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/div_fusion.rst.txt b/master/html/_sources/functionlib/dsplib/div_fusion.rst.txt new file mode 100644 index 0000000..1d68155 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/div_fusion.rst.txt @@ -0,0 +1,90 @@ +DivFusion +================= +对输入逐元素做除法运算,并对实数类型结果应用 ReLU激活。 + +.. math:: + + \text{对于实数类型:}\quad output_i = \max\left(\frac{input0_i}{input1_i}, 0\right) + +.. math:: + + \text{对于复数类型:}\quad output_i = \frac{input0_i}{input1_i} + +输入: + - **input0** - 被除数输入数据地址。 + - **input1** - 除数输入数据地址。 + - **length** - 计算长度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - 对于复数类型(cplx64 / cplx128)不应用 ReLU,仅返回复数除法结果。 + - 若除数元素为 0,结果为 Inf/NaN 或未定义,需由上层处理。 + +**共享存储版本:** + +.. c:function:: void i8_div_fusion_s(int8_t* input0, int8_t* input1, int8_t* output, int length, int core_mask) +.. c:function:: void i16_div_fusion_s(int16_t* input0, int16_t* input1, int16_t* output, int length, int core_mask) +.. c:function:: void i32_div_fusion_s(int32_t* input0, int32_t* input1, int32_t* output, int length, int core_mask) +.. c:function:: void hp_div_fusion_s(half* input0, half* input1, half* output, int length, int core_mask) +.. c:function:: void fp_div_fusion_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void dp_div_fusion_s(double* input0, double* input1, double* output, int length, int core_mask) +.. c:function:: void c64_div_fusion_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void c128_div_fusion_s(double* input0, double* input1, double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例(共享存储) + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; // input0 在 DDR 空间 + float *input1 = (float *)0xA1000000; // input1 在 DDR 空间 + float *output = (float *)0xB0000000; // 输出在 DDR 空间 + int length = 1024; + int core_mask = 0xff; + fp_div_fusion_s(input0, input1, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_div_fusion_p(int8_t* input0, int8_t* input1, int8_t* output, int length) +.. c:function:: void i16_div_fusion_p(int16_t* input0, int16_t* input1, int16_t* output, int length) +.. c:function:: void i32_div_fusion_p(int32_t* input0, int32_t* input1, int32_t* output, int length) +.. c:function:: void hp_div_fusion_p(half* input0, half* input1, half* output, int length) +.. c:function:: void fp_div_fusion_p(float* input0, float* input1, float* output, int length) +.. c:function:: void dp_div_fusion_p(double* input0, double* input1, double* output, int length) +.. c:function:: void c64_div_fusion_p(float* input0, float* input1, float* output, int length) +.. c:function:: void c128_div_fusion_p(double* input0, double* input1, double* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 9 + + //MT7004 示例 + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0x10000000; + float *input1 = (float *)0x10001000; + float *output = (float *)0x10002000; + int length = 1024; + fp_div_fusion_p(input0, input1, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/divgrad.rst.txt b/master/html/_sources/functionlib/dsplib/divgrad.rst.txt new file mode 100644 index 0000000..88439b2 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/divgrad.rst.txt @@ -0,0 +1,161 @@ +Divgrad +================= + + +计算逐元素除法操作 (`Y = x1 / x2`) 的梯度。 + +.. math:: + + dx_1 = \frac{\partial L}{\partial x_1} = \frac{\partial L}{\partial Y} \cdot \frac{1}{x_2} = \frac{dy}{x_2} + +.. math:: + + dx_2 = \frac{\partial L}{\partial x_2} = \frac{\partial L}{\partial Y} \cdot \frac{-x_1}{x_2^2} = - \frac{dy \cdot x_1}{x_2^2} + +Divgrad1l版本专门用于 `x1` 张量维度大于或等于 `x2` 张量的广播场景。Divgrad2l版本专门用于 `x2` 张量维度大于或等于 `x1` 张量的广播场景。 + +输入: + - **dy** - 来自后一层的上游梯度张量。 + - **x1** - 前向传播时的第一个输入张量(被除数)。 + - **x2** - 前向传播时的第二个输入张量(除数)。 + - **large_shape** - `x1` 和 `x2` 中维度较大的张量的形状。 + - **small_shape** - `x1` 和 `x2` 中维度较小的张量的形状。 + - **out_shape** - 输出张量 `dx1` 和 `dx2` 的形状。 + - **ndims** - 张量的维度数。 + - **large_strides** - 维度较大张量的步长信息。 + - **small_strides** - 维度较小张量的步长信息。 + - **out_strides** - 输出张量的步长信息。 + - **large_multiples** - 维度较大张量的广播倍数。 + - **small_multiples** - 维度较小张量的广播倍数。 + - **tile_data0** - 临时工作空间地址。 + - **tile_data1** - 临时工作空间地址。 + - **tile_data2** - 临时工作空间地址。 + - **indices** - 用于广播计算的临时索引空间地址。 + - **core_mask** - 核掩码。 + +输出: + - **dx1** - 写入计算出的对 `x1` 的梯度。 + - **dx2** - 写入计算出的对 `x2` 的梯度。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void fp_graddiv_s(float* dy, float* x1, float* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, float* dx1, float* dx2, float* tile_data0, float* tile_data1, float* tile_data2, int* indices, int core_mask) +.. c:function:: void hp_graddiv_s(half* dy, half* x1, half* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, half* dx1, half* dx2, half* tile_data0, half* tile_data1, half* tile_data2, int* indices, int core_mask) +.. c:function:: void fp_graddiv1l_s(float* dy, float* x1, float* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, float* dx1, float* dx2, float* tile_data0, float* tile_data1, float* tile_data2, int* indices, int core_mask) +.. c:function:: void hp_graddiv1l_s(half* dy, half* x1, half* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, half* dx1, half* dx2, half* tile_data0, half* tile_data1, half* tile_data2, int* indices, int core_mask) +.. c:function:: void fp_graddiv2l_s(float* dy, float* x1, float* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, float* dx1, float* dx2, float* tile_data0, float* tile_data1, float* tile_data2, int* indices, int core_mask) +.. c:function:: void hp_graddiv2l_s(half* dy, half* x1, half* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, half* dx1, half* dx2, half* tile_data0, half* tile_data1, half* tile_data2, int* indices, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 39 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *dy = (float *)0xA1000000; + float *dx1 = (float *)0xA2000000; + float *dx2 = (float *)0xA3000000; + float *x1_data = (float *)0xA4000000; + float *x2_data = (float *)0xA5000000; + float *tile_data0 = (float *)0xA6000000; + float *tile_data1 = (float *)0xA7000000; + float *tile_data2 = (float *)0xA8000000; + + long long ndims = 4; + long long dy_size; + long long x1_size; + long long x2_size; + + int *large_strides = (int *)0xAB000000; + int *small_strides = (int *)0xAB100000; + int *out_strides = (int *)0xAB200000; + int *large_multiples = (int *)0xAB300000; + int *small_multiples = (int *)0xAB400000; + int *indices = (int *)0xAB500000; + int *large_shape = (int *)0xAB600000; + int *small_shape = (int *)0xAB700000; + int *out_shape = (int *)0xAB800000; + + large_shape[0] = 12; large_shape[1] = 14; large_shape[2] = 3; large_shape[3] = 5; + small_shape[0] = 12; small_shape[1] = 14; small_shape[2] = 3; small_shape[3] = 5; + out_shape[0] = 12; out_shape[1] = 14; out_shape[2] = 3; out_shape[3] = 5; + + int core_mask = 0xff; + + dy_size = out_shape[0] * out_shape[1] * out_shape[2] * out_shape[3]; + x1_size = large_shape[0] * large_shape[1] * large_shape[2] * large_shape[3]; + x2_size = small_shape[0] * small_shape[1] * small_shape[2] * small_shape[3]; + + fp_graddiv_s(dy, x1, x2, large_shape, small_shape, out_shape, ndims, large_strides, small_strides, out_strides, large_multiples, small_multiples, dx1, dx2, tile_data0, tile_data1, tile_data2, indices, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_graddiv_p(float* dy, float* x1, float* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, float* dx1, float* dx2, float* tile_data0, float* tile_data1, float* tile_data2, int* indices) +.. c:function:: void hp_graddiv_p(half* dy, half* x1, half* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, half* dx1, half* dx2, half* tile_data0, half* tile_data1, half* tile_data2) +.. c:function:: void fp_graddiv1l_p(float* dy, float* x1, float* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, float* dx1, float* dx2, float* tile_data0, float* tile_data1, float* tile_data2, int* indices) +.. c:function:: void hp_graddiv1l_p(half* dy, half* x1, half* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, half* dx1, half* dx2, half* tile_data0, half* tile_data1, half* tile_data2, int* indices) +.. c:function:: void fp_graddiv2l_p(float* dy, float* x1, float* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, float* dx1, float* dx2, float* tile_data0, float* tile_data1, float* tile_data2, int* indices) +.. c:function:: void hp_graddiv2l_p(half* dy, half* x1, half* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, half* dx1, half* dx2, half* tile_data0, half* tile_data1, half* tile_data2, int* indices) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 37 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *dy = (float *)0x10000000; + float *dx1 = (float *)0x12000000; + float *dx2 = (float *)0x13000000; + float *x1_data = (float *)0x14000000; + float *x2_data = (float *)0x15000000; + float *tile_data0 = (float *)0x16000000; + float *tile_data1 = (float *)0x17000000; + float *tile_data2 = (float *)0x18000000; + + long long ndims = 4; + long long dy_size; + long long x1_size; + long long x2_size; + + int *large_strides = (int *)0x1B000000; + int *small_strides = (int *)0x1B100000; + int *out_strides = (int *)0x1B200000; + int *large_multiples = (int *)0x1B300000; + int *small_multiples = (int *)0x1B400000; + int *indices = (int *)0x1B500000; + int *large_shape = (int *)0x1B600000; + int *small_shape = (int *)0x1B700000; + int *out_shape = (int *)0x1B800000; + + large_shape[0] = 12; large_shape[1] = 14; large_shape[2] = 3; large_shape[3] = 5; + small_shape[0] = 12; small_shape[1] = 14; small_shape[2] = 3; small_shape[3] = 5; + out_shape[0] = 12; out_shape[1] = 14; out_shape[2] = 3; out_shape[3] = 5; + + dy_size = out_shape[0] * out_shape[1] * out_shape[2] * out_shape[3]; + x1_size = large_shape[0] * large_shape[1] * large_shape[2] * large_shape[3]; + x2_size = small_shape[0] * small_shape[1] * small_shape[2] * small_shape[3]; + + fp_graddiv_p(dy, x1, x2, large_shape, small_shape, out_shape, ndims, large_strides, small_strides, out_strides, large_multiples, small_multiples, dx1, dx2, tile_data0, tile_data1, tile_data2, indices); + return 0; + } + + \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/dropout.rst.txt b/master/html/_sources/functionlib/dsplib/dropout.rst.txt new file mode 100644 index 0000000..097bf20 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/dropout.rst.txt @@ -0,0 +1,86 @@ +Dropout +================= + + + +在训练期间对输入张量应用 Dropout 操作。它根据给定的 `mask` 将输入张量中的部分元素置零,并对剩余元素进行缩放。 + +.. math:: + + \text{output}_i = \text{input}_i \cdot \text{mask}_i \cdot \text{scale} + +输入: + - **input** - 输入张量的数据地址。 + - **scale** - 缩放因子。 + - **length** - 输入张量的总元素数量。 + - **mask** - 预先生成的掩码张量的数据地址,其元素为0或1,大小与`input`相同。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出张量的数据地址,其大小与`input`相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void fp_dropout_s(float* input, float scale, int length, float* output, float mask, int core_mask) +.. c:function:: void hp_dropout_s(half* input, half scale, int length, half* output, half* mask, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input 在DDR空间 + float *output = (float *)0xB0000000; // output + float *mask = (float *)0xC0000000; // pre-generated mask + + int length = 4096; + // 假设 dropout 概率 p = 0.2 + float scale = 1.0f / (1.0f - 0.2f); // scale = 1.25 + int core_mask = 0xff; + + fp_dropout_s(input, scale, length, output, mask, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_dropout_p(float* input, float scale, int length, float* output, float mask) +.. c:function:: void hp_dropout_p(half* input, half scale, int length, half* output, half mask) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; // input 在L2空间 + float *output = (float *)0x11000000; // output + float *mask = (float *)0x12000000; // pre-generated mask + + int length = 1024; + // 假设 dropout 概率 p = 0.5 + float scale = 1.0f / (1.0f - 0.5f); // scale = 2.0 + + fp_dropout_p(input, scale, length, output, mask); + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/dropoutgrad.rst.txt b/master/html/_sources/functionlib/dsplib/dropoutgrad.rst.txt new file mode 100644 index 0000000..ffaebeb --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/dropoutgrad.rst.txt @@ -0,0 +1,89 @@ +Dropoutgrad +================= + + +计算 Dropout 操作的梯度。 + +.. math:: + + dx_i = dy_i \cdot \text{mask}_i \cdot \text{scale} + +其中 :math:`dy_i` 是来自后一层的上游梯度,:math:`\text{mask}_i` 是前向传播时使用的同一个掩码,:math:`\text{scale}` 是前向传播时使用的同一个缩放因子。 + +输入: + - **input** - 上游梯度张量的数据地址 (dy)。 + - **scale** - 前向传播时使用的缩放因子。 + - **length** - 张量的总元素数量。 + - **mask** - 前向传播时使用的掩码张量的数据地址。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出的梯度张量的数据地址 (dx)。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + + +**共享存储版本:** + +.. c:function:: void fp_dropoutgrad_s(float* input, float scale, int length, float* output, float mask, int core_mask) +.. c:function:: void hp_dropoutgrad_s(half* input, half scale, int length, half* output, half mask, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *dy = (float *)0xA0000000; // Upstream gradient (dy), DDR + float *dx = (float *)0xB0000000; // Output gradient (dx) + float *mask = (float *)0xC0000000; // Mask from forward pass + + int length = 4096; + // 假设前向传播时 dropout 概率 p = 0.2 + float scale = 1.0f / (1.0f - 0.2f); // scale = 1.25 + int core_mask = 0xff; + + fp_dropoutgrad_s(dy, scale, length, dx, mask, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_dropoutgrad_p(float* input, float scale, int length, float* output, float mask) +.. c:function:: void hp_dropoutgrad_p(half* input, half scale, int length, half* output, half mask) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *dy = (float *)0x10000000; // Upstream gradient (dy), L2 + float *dx = (float *)0x11000000; // Output gradient (dx) + float *mask = (float *)0x12000000; // Mask from forward pass + + int length = 1024; + // 假设前向传播时 dropout 概率 p = 0.5 + float scale = 1.0f / (1.0f - 0.5f); // scale = 2.0 + + fp_dropoutgrad_p(dy, scale, length, dx, mask); + return 0; + } + + \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/dsplib_index.rst.txt b/master/html/_sources/functionlib/dsplib/dsplib_index.rst.txt index b63f4c0..2b214a1 100644 --- a/master/html/_sources/functionlib/dsplib/dsplib_index.rst.txt +++ b/master/html/_sources/functionlib/dsplib/dsplib_index.rst.txt @@ -1,6 +1,8 @@ DSP Library C API Reference =========================== +.. rubric:: 算子列表 + .. toctree:: :maxdepth: 1 @@ -14,7 +16,6 @@ DSP Library C API Reference unsqueeze expand_dims leaky_relu - lstm scatter_elements reduce resize @@ -50,3 +51,174 @@ DSP Library C API Reference conv2dbackpropfilterfusion sgd scalefusion + hashtablelookup + neg + neg_grad + not_equal + pow_fusion + power_grad + real_div + div_fusion + reciprocal + uniform_real + random_standard_normal + random_normal + tensor_scatter_add + non_max_suppression + detection_post_process + mfcc + audio_spectrogram + cumsum + smooth1loss + tril + triu + softmax_cross_entropy_with_logits + sparse_softmax_cross_entropy_with_logits + concat + gather + gather_nd + ones_like + reshape + scatter_nd + scatter_nd_update + slice + split + split_with_overlap + stack + tile + adam + constant_of_shape + rank + size + maxpoolfusion + maxpoolgrad + onehot + affine + assign + assignadd + padfusion + sigmoidcrossentropywithlogits + absgrad + addfusion + addgrad + all + argmax + argmin + avgpooling + batchnormgrad + biasadd + biasaddgrad + binarycrossentropy + binarycrossentropygrad + ceil + clip + customnormalize + custompredict + divgrad + dropout + dropoutgrad + elu + rfft + floormod + glu + greater + greaterequal + isfinite + l2norm + layernormgrad + less + lessequal + log1p + lrn + lstm + lstmgrad + lstmgradweight + lstmgraddata + maximumgrad + minimumgrad + mulgrad + priorbox + resizegrad + rsqrt + rsqrtgrad + select + shape + skipgram + smoothl1lossgrad + sparsereshape + sparsesegmentsum + sparsetodense + sqrtgrad + square + squaredifference + stridedslice + stridedslicegrad + subfusion + subgrad + switch + switchlayer + tensorarray + tensorarrayread + tensorarraywrite + tensorlistfromtensor + tensorlistgetitem + tensorlistreserve + tensorlistsetitem + tensorliststack + unique + where + dynamicquant + log + erf + quantdtypecast + customextractfeatures + logicaland + round + loggrad + topkfusion + unsortedsegmentsum + gatherd + fill + sparsefillemptyrows + fullconnection + sqrt + sin + nllloss + nlllossgrad + deconvgradfilter + cos + zeroslike + abs + fftreal + fftimag + batchnorm + instancenorm + lpnormalization + nonzero + allgather + addn + cast + sigmoidcrossentropwithlogitsgrad + flatten + flattengrad + unstack + invertpermutation + logsoftmax + softmax + layernormfusion + prelufusion + reducescatter + transpose + formattranspose + splice + roipooling + activation_grad + fake_quant_with_min_max_vars + fake_quant_with_min_max_vars_per_channel + logical_not + logical_or + lsh_projection + maximum + minimum + mod + mul \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/dynamicquant.rst.txt b/master/html/_sources/functionlib/dsplib/dynamicquant.rst.txt new file mode 100644 index 0000000..e700a46 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/dynamicquant.rst.txt @@ -0,0 +1,138 @@ +DynamicQuant +================= + +将 FP32 输入张量按给定的 scale 和 zero point(zp)动态量化为 INT8 输出张量。 +支持按整张量量化或按指定轴分段量化(per-axis dynamic quantization)。 + +.. math:: + + q_i = \mathrm{clip}\left( \mathrm{round}\left( \frac{x_i}{scale} + zp \right), q_{min}, q_{max} \right) + +其中: + +- :math:`x_i` 为输入浮点值 +- :math:`scale` 为量化比例因子 +- :math:`zp` 为零点(zero point) +- :math:`q_{min} = -128` +- :math:`q_{max} = 127` + +当输入为 :math:`+\infty` 或 :math:`-\infty` 时,输出分别饱和到最大或最小量化值。 + +--- + +输入: + - **real_values** - 输入 FP32 数据地址 + - **element_num** - 输入元素总数 + - **scale** - 量化 scale 数组地址 + - **zp** - 量化 zero point 数组地址 + - **segment_num** - 分段数量(用于按轴量化) + - **axis_num** - 量化轴标识 + - ``0``:整张量量化(per-tensor) + - ``!=0``:按轴分段量化(per-axis) + +输出: + - **quant_values** - 输出 INT8 量化结果地址 + +--- + +支持平台: + ``FT78NE`` + ``MT7004`` + +--- + +.. note:: + - 当前算子仅支持 **FP32\Fp16 → INT8** 的动态量化 + - 当 ``axis_num = 0`` 时,仅使用 ``scale[0]`` 与 ``zp[0]`` 进行整张量量化 + - 当 ``axis_num != 0`` 时,输入按 ``segment_num`` 进行分段,每段使用对应的 ``scale[i]`` 与 ``zp[i]`` + - 分段大小通过 ``UP_DIV(element_num, segment_num)`` 计算,最后一段自动处理剩余元素 + - 量化结果会被限制在 ``[-128, 127]`` 范围内 + +--- + +**私有存储版本:** + +.. c:function:: void fp_QuantData_p(float* real_values, int8_t* quant_values, int element_num, float* scale, int* zp, int segment_num, int axis_num) +.. c:function:: void hp_QuantData_p(half* real_values, half* quant_values, int element_num, half* scale, int* zp, int segment_num, int axis_num) + +--- + +**C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; // FP32 输入 + int8_t *output = (int8_t *)0x10004000; // INT8 输出 + float scale[4] = {0.1f, 0.12f, 0.11f, 0.09f}; + int zp[4] = {0, 0, 0, 0}; + int element_num = 1024; + int segment_num = 4; + int axis_num = 1; + + fp_QuantData_p(input, output, element_num, + scale, zp, segment_num, axis_num); + + return 0; + } + +--- + +**共享存储版本:** + +.. c:function:: void fp_QuantData_s(float* real_values, int8_t* quant_values, int element_num, float* scale, int* zp, int segment_num, int axis_num, int core_mask) +.. c:function:: void hp_QuantData_s(half* real_values, half* quant_values, int element_num, half* scale, int* zp, int segment_num, int axis_num, int core_mask) + +--- + +**C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; // FP32 输入 + int8_t *output = (int8_t *)0x10004000; // INT8 输出 + float scale[4] = {0.1f, 0.12f, 0.11f, 0.09f}; + int zp[4] = {0, 0, 0, 0}; + int element_num = 1024; + int segment_num = 4; + int axis_num = 1, core_mask = 0xff; + + fp_QuantData_s(input, output, element_num, + scale, zp, segment_num, axis_num, core_mask); + + return 0; + } + +--- + +**实现说明:** + +- 当 ``axis_num == 0`` 时: + + - 对整个输入数组执行一次统一量化 + - 等价于 per-tensor quantization + +- 当 ``axis_num != 0`` 时: + + - 输入数据按 ``segment_num`` 均分为多个分段 + - 每个分段使用独立的 ``scale[i]`` 与 ``zp[i]`` + - 等价于 per-axis dynamic quantization + +- 核心量化过程由 ``DoQuantizeFp32ToInt8`` 完成,包括: + + - 反 scale 计算 + - 四舍五入 + - 饱和裁剪 + - INF 特殊值处理 + diff --git a/master/html/_sources/functionlib/dsplib/eltwise.rst.txt b/master/html/_sources/functionlib/dsplib/eltwise.rst.txt index dbae68d..b731d87 100644 --- a/master/html/_sources/functionlib/dsplib/eltwise.rst.txt +++ b/master/html/_sources/functionlib/dsplib/eltwise.rst.txt @@ -7,9 +7,9 @@ Eltwise \mathbf{output_i} = \begin{cases} - \mathbf{Input0_i} \cdot \mathbf{Input1_i}, & \text{if } \text{eltwise_mode} = \text{Eltwise_PROD} \\[6pt] - \mathbf{Input0_i} + \mathbf{Input1_i}, & \text{if } \text{eltwise_mode} = \text{Eltwise_SUM} \\[6pt] - \max(\mathbf{Input0_i}, \mathbf{Input1_i}), & \text{if } \text{eltwise_mode} = \text{Eltwise_MAXIMUM} + \mathbf{Input0_i} \cdot \mathbf{Input1_i}, & \text{if } \text{eltwise\_mode} = \text{Eltwise\_PROD} \\[6pt] + \mathbf{Input0_i} + \mathbf{Input1_i}, & \text{if } \text{eltwise\_mode} = \text{Eltwise\_SUM} \\[6pt] + \max(\mathbf{Input0_i}, \mathbf{Input1_i}), & \text{if } \text{eltwise\_mode} = \text{Eltwise\_MAXIMUM} \end{cases} 输入: diff --git a/master/html/_sources/functionlib/dsplib/elu.rst.txt b/master/html/_sources/functionlib/dsplib/elu.rst.txt new file mode 100644 index 0000000..2e0748e --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/elu.rst.txt @@ -0,0 +1,84 @@ +Elu +================= + + + +逐元素计算指数线性单元 (Exponential Linear Unit, ELU) 激活函数。 + +.. math:: + + \text{output}_i = \begin{cases} \text{input}_i & \text{if } \text{input}_i \ge 0 \\ \alpha \cdot (e^{\text{input}_i} - 1) & \text{if } \text{input}_i < 0 \end{cases} + +其中 :math:`\alpha` (alpha) 是一个可调参数,控制负值的饱和度。 + +输入: + - **input** - 输入张量的数据地址。 + - **alpha** - ELU函数的alpha值。 + - **length** - 输入张量的总元素数量。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出张量的数据地址,其大小与`input`相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int8 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void fp_elu_s(float* input, float* output, float alpha, int length, int core_mask) +.. c:function:: void hp_elu_s(half* input, half* output, half alpha, int length, int core_mask) +.. c:function:: void i8_elu_s(int8_t* input, int8_t* output, int8_t alpha, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input 在DDR空间 + float *output = (float *)0xB0000000; // output + + float alpha = 1.0f; + int length = 4096; + int core_mask = 0xff; + + fp_elu_s(input, output, alpha, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_elu_p(float* input, float* output, float alpha, int length) +.. c:function:: void hp_elu_p(half* input, half* output, half alpha, int length) +.. c:function:: void i8_elu_p(int8_t* input, int8_t* output, int8_t alpha, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; // input 在L2空间 + float *output = (float *)0x11000000; // output + + float alpha = 1.0f; + int length = 1024; + + fp_elu_p(input, output, alpha, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/embeddinglookup.rst.txt b/master/html/_sources/functionlib/dsplib/embeddinglookup.rst.txt index 858cc87..70e6ff7 100644 --- a/master/html/_sources/functionlib/dsplib/embeddinglookup.rst.txt +++ b/master/html/_sources/functionlib/dsplib/embeddinglookup.rst.txt @@ -7,14 +7,14 @@ EmbeddingLookup \forall k \in [1, ids\_size], \quad \begin{cases} - \text{if } \textbf{is_regulated}[i_k] = 0, & + \text{if } \textbf{is\_regulated}[i\_k] = 0, & \begin{cases} - \displaystyle X_{i_k} \leftarrow - X_{i_k} \cdot \frac{\text{max_norm}} - {\sum_{j=1}^{layer\_size\_} X_{i_k, j}} \\[10pt] - \textbf{is_regulated}[i_k] \leftarrow 1 + \displaystyle X_{i\_k} \leftarrow + X_{i\_k} \cdot \frac{\text{max\_norm}} + {\sum_{j=1}^{layer\_size\_} X_{i\_k, j}} \\[10pt] + \textbf{is\_regulated}[i\_k] \leftarrow 1 \end{cases} \\[12pt] - \text{输出向量 } Y_k \leftarrow X_{i_k} + \text{输出向量 } Y_k \leftarrow X_{i\_k} \end{cases} 输入: diff --git a/master/html/_sources/functionlib/dsplib/erf.rst.txt b/master/html/_sources/functionlib/dsplib/erf.rst.txt new file mode 100644 index 0000000..35e6fb4 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/erf.rst.txt @@ -0,0 +1,86 @@ +Erf +================= + + +逐元素计算误差函数(Error Function, erf)。 + +误差函数在概率论与统计中广泛使用,其定义如下: + +.. math:: + + \text{output}_i = \operatorname{erf}(\text{input}_i) + = \frac{2}{\sqrt{\pi}} \int_{0}^{\text{input}_i} e^{-t^2} \, dt + + +输入: + - **input** - 输入张量的数据地址。 + - **length** - 输入张量的总元素数量。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出张量的数据地址,其大小与 ``input`` 相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型:fp32, fp64 + - MT7004 支持的数据类型:fp16, fp32 + + +**共享存储版本:** + +.. c:function:: void fp_erf_s(float* input, float* output, int length, int core_mask) +.. c:function:: void dp_erf_s(double* input, double* output, int length, int core_mask) +.. c:function:: void hp_erf_s(half* input, half* output, int length, int core_mask) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + // C6678 多核示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input 在 DDR 空间 + float *output = (float *)0xB0000000; // output 在 DDR 空间 + + int length = 4096; + int core_mask = 0xff; + + fp_erf_s(input, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_erf_p(float* input, float* output, int length) +.. c:function:: void dp_erf_p(double* input, double* output, int length) +.. c:function:: void hp_erf_p(half* input, half* output, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + // MT7004 单核示例 + #include + #include + + int main(int argc, char* argv[]) { + half *input = (half *)0x10000000; // input 在 L2 空间 + half *output = (half *)0x10001000; // output 在 L2 空间 + + int length = 1024; + + hp_erf_p(input, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/expfusion.rst.txt b/master/html/_sources/functionlib/dsplib/expfusion.rst.txt index 9c67ae1..92d5f94 100644 --- a/master/html/_sources/functionlib/dsplib/expfusion.rst.txt +++ b/master/html/_sources/functionlib/dsplib/expfusion.rst.txt @@ -3,38 +3,38 @@ ExpFusion - 传入一个数组,逐元素计算其乘上输入因子(可选择)后的指数值,再将指数值乘上输出因子后输出。 +传入一个数组,逐元素计算其乘上输入因子(可选择)后的指数值,再将指数值乘上输出因子后输出。 - .. math:: +.. math:: - dst_i = \exp(src_i \cdot s_{in}) \cdot s_{out} - \quad \text{where} \quad - s_{in} = - \begin{cases} - 1, & scale = 1 \\ - in\_scale, & scale \neq 1 - \end{cases} + dst_i = \exp(src_i \cdot s_{in}) \cdot s_{out} + \quad \text{where} \quad + s_{in} = + \begin{cases} + 1, & scale = 1 \\ + in\_scale, & scale \neq 1 + \end{cases} - \quad s_{out} = out\_scale + \quad s_{out} = out\_scale - 输入: - - **src_data** - 输入数据地址。 - - **length** - 计算长度。 - - **in_scale** - 输入缩放因子,当scale != 1时启用。 - - **out_scale** - 输出缩放因子。 - - **scale** - 输入缩放因子启用控制。 - - **core_mask** - 核掩码(仅适用于共享存储版本)。 +输入: + - **src_data** - 输入数据地址。 + - **length** - 计算长度。 + - **in_scale** - 输入缩放因子,当scale != 1时启用。 + - **out_scale** - 输出缩放因子。 + - **scale** - 输入缩放因子启用控制。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 - 输出: - - **dst_data** - 计算结果地址。 +输出: + - **dst_data** - 计算结果地址。 - 支持平台: - ``FT78NE`` - ``MT7004`` +支持平台: + ``FT78NE`` + ``MT7004`` - .. note:: - - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 - - MT7004 支持fp16, fp32, int16, int32, cplx64 +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 **共享存储版本:** @@ -47,26 +47,26 @@ ExpFusion .. c:function:: void c64_expfusion_s(float* src_data, float* dst_data, int length, float in_scale, float out_scale, int scale, int core_mask) .. c:function:: void c128_expfusion_s(double* src_data, double* dst_data, int length, float in_scale, float out_scale, int scale, int core_mask) - **C调用示例:** +**C调用示例:** - .. code-block:: c - :linenos: - :emphasize-lines: 12 +.. code-block:: c + :linenos: + :emphasize-lines: 12 - //FT78NE示例 - #include - #include - - int main(int argc, char* argv[]) { - float *input0 = (float *)0xA0000000; //input在DDR空间 - float *output = (float *)0xC0000000; - int length = 1000; - float in_scale = 0.5, out_scale = 1.2; - int scale = 1; - int core_mask = 0xff; - fp_expfusion_s( input0, output, length, in_scale, out_scale, scale,core_mask); - return 0; - } + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; //input在DDR空间 + float *output = (float *)0xC0000000; + int length = 1000; + float in_scale = 0.5, out_scale = 1.2; + int scale = 1; + int core_mask = 0xff; + fp_expfusion_s( input0, output, length, in_scale, out_scale, scale,core_mask); + return 0; + } **私有存储版本:** @@ -81,21 +81,21 @@ ExpFusion .. c:function:: void c128_expfusion_p(double* src_data, double* dst_data, int length, float in_scale, float out_scale, int scale) - **C调用示例:** +**C调用示例:** - .. code-block:: c - :linenos: - :emphasize-lines: 10 +.. code-block:: c + :linenos: + :emphasize-lines: 10 - //FT78NE示例 - #include - #include - int main(int argc, char* argv[]) { - float *input0 = (float *)0x10810000; //input在L2空间 - float *output = (float *)0x10820000; - int length = 1000; - float in_scale = 0.5, out_scale = 1.2; - int scale = 1; - fp_expfusion_p( input0, output, length, in_scale, out_scale, scale); - return 0; - } \ No newline at end of file + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input0 = (float *)0x10810000; //input在L2空间 + float *output = (float *)0x10820000; + int length = 1000; + float in_scale = 0.5, out_scale = 1.2; + int scale = 1; + fp_expfusion_p( input0, output, length, in_scale, out_scale, scale); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/fake_quant_with_min_max_vars.rst.txt b/master/html/_sources/functionlib/dsplib/fake_quant_with_min_max_vars.rst.txt new file mode 100644 index 0000000..4aca1c3 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/fake_quant_with_min_max_vars.rst.txt @@ -0,0 +1,86 @@ +FakeQuantWithMinMaxVars +======================= + +对输入数据执行逐元素伪量化运算。该算子通过给定的最小/最大值(min_val/max_val)计算缩放因子(scale)和零点(zero_point),将浮点输入模拟量化到指定的整数范围(quant_min/quant_max),然后再将其反量化回浮点数。 + +.. math:: + + scale = \frac{max\_val - min\_val}{quant\_max - quant\_min} + +.. math:: + + output_i = \left( \text{round} \left( \frac{\text{clamp}(input_i, nudge\_min, nudge\_max) - nudge\_min}{scale} \right) \right) \times scale + nudge\_min + +输入: + - **src** - 输入数据地址。 + - **min_val** - 浮点范围的最小值。 + - **max_val** - 浮点范围的最大值。 + - **length** - 计算长度。 + - **quant_min** - 量化后的整数最小值(例如 0 或 -128)。 + - **quant_max** - 量化后的整数最大值(例如 255 或 127)。 + - **symmetric** - 是否使用对称量化(bool 类型)。若为 true,则范围调整为关于 0 对称。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 伪量化后的计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持:fp32 (fp) + - MT7004 支持:fp16 (hp), fp32 (fp) + - 该算子内部包含 "Nudge" 逻辑,即会自动调整零点(Zero Point)使其为整数,并根据调整后的零点重新计算实际使用的浮点范围(nudge_min/nudge_max)。 + +**共享存储版本:** + +.. c:function:: void fp_fake_quant_with_min_max_vars_s(float* src, float min_val, float max_val, float* output, int length, int quant_min, int quant_max, bool symmetric, int core_mask) +.. c:function:: void hp_fake_quant_with_min_max_vars_s(half* src, half min_val, half max_val, half* output, int length, int quant_min, int quant_max, bool symmetric, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 13 + + // FT78NE 示例:fp32 类型共享存储多核计算 + #include + #include + #include "78NE/utils.h" + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; + float *output = (float *)0xB0000000; + float min_v = -10.0f; + float max_v = 10.0f; + int length = 960001; + int core_mask = 0b1011; + fp_fake_quant_with_min_max_vars_s(input, min_v, max_v, output, length, 0, 255, false, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_fake_quant_with_min_max_vars_p(float* src, float min_val, float max_val, float* output, int length, int quant_min, int quant_max, bool symmetric) +.. c:function:: void hp_fake_quant_with_min_max_vars_p(half* src, half min_val, half max_val, half* output, int length, int quant_min, int quant_max, bool symmetric) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + // MT7004 示例:fp16 (half) 类型私有存储单核计算 + #include + #include + + int main(int argc, char* argv[]) { + half *input = (half *)0x10000000; + half *output = (half *)0x10001000; + half min_v = (half)-5.0f; + half max_v = (half)5.0f; + int length = 1024; + hp_fake_quant_with_min_max_vars_p(input, min_v, max_v, output, length, 0, 255, true); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/fake_quant_with_min_max_vars_per_channel.rst.txt b/master/html/_sources/functionlib/dsplib/fake_quant_with_min_max_vars_per_channel.rst.txt new file mode 100644 index 0000000..fa89b43 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/fake_quant_with_min_max_vars_per_channel.rst.txt @@ -0,0 +1,98 @@ +FakeQuantWithMinMaxVarsPerChannel +================================= + +对输入数据执行按通道(Per-Channel)的逐元素伪量化运算。该算子将输入数据划分为 ``channel_num`` 个等长的通道,每个通道根据其对应的最小/最大值(min_val[c] / max_val[c])独立计算缩放因子和零点,进行模拟量化与反量化。 + +.. math:: + + channel\_size = \frac{length}{channel\_num} + +.. math:: + + \text{对于通道 } c: \quad scale_c = \frac{max\_val_c - min\_val_c}{quant\_max - quant\_min} + +.. math:: + + output_{c,i} = \text{FakeQuant}(input_{c,i}, scale_c, nudge\_min_c) + +输入: + - **src** - 输入数据地址。 + - **min_val** - 每个通道最小值组成的数组地址。 + - **max_val** - 每个通道最大值组成的数组地址。 + - **length** - 输入数据总长度(需能被通道数整除)。 + - **quant_min** - 量化后的整数最小值。 + - **quant_max** - 量化后的整数最大值。 + - **symmetric** - 是否使用对称量化。 + - **channel_num** - 通道数量。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 伪量化后的计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持:fp32 (fp) + - MT7004 支持:fp16 (hp), fp32 (fp) + - 输入数据的总长度 ``length`` 必须可以被 ``channel_num`` 整除。 + - 每个通道的逻辑(包括 Nudge 零点调整)与单变量版本的伪量化一致。 + +**共享存储版本:** + +.. c:function:: void fp_fake_quant_with_min_max_vars_per_channel_s(float* src, float* min_val, float* max_val, float* output, int length, int quant_min, int quant_max, bool symmetric, int channel_num, int core_mask) +.. c:function:: void hp_fake_quant_with_min_max_vars_per_channel_s(half* src, half* min_val, half* max_val, half* output, int length, int quant_min, int quant_max, bool symmetric, int channel_num, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 15 + + // FT78NE 示例:fp32 类型共享存储多核计算 + #include + #include + #include "78NE/utils.h" + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; + float *min_arr = (float *)0xA1000000; + float *max_arr = (float *)0xA1001000; + float *output = (float *)0xB0000000; + int length = 960000; + int channel_num = 100; + int core_mask = 0b1011; + + fp_fake_quant_with_min_max_vars_per_channel_s(input, min_arr, max_arr, output, + length, 0, 255, false, channel_num, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_fake_quant_with_min_max_vars_per_channel_p(float* src, float* min_val, float* max_val, float* output, int length, int quant_min, int quant_max, bool symmetric, int channel_num) +.. c:function:: void hp_fake_quant_with_min_max_vars_per_channel_p(half* src, half* min_val, half* max_val, half* output, int length, int quant_min, int quant_max, bool symmetric, int channel_num) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 14 + + // MT7004 示例:fp16 (half) 类型私有存储单核计算 + #include + #include + + int main(int argc, char* argv[]) { + half *input = (half *)0x10000000; + half *min_arr = (half *)0x10008000; + half *max_arr = (half *)0x10008100; + half *output = (half *)0x10009000; + int length = 2000; + int channel_num = 10; + + hp_fake_quant_with_min_max_vars_per_channel_p(input, min_arr, max_arr, output, + length, 0, 255, true, channel_num); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/fftimag.rst.txt b/master/html/_sources/functionlib/dsplib/fftimag.rst.txt new file mode 100644 index 0000000..88af4c7 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/fftimag.rst.txt @@ -0,0 +1,104 @@ +FFTImag +========================= + +对输入复数序列虚数部分执行一维快速傅里叶变换(FFT)或逆变换(IFFT)。 +内部基于分治 FFT 算法, +并使用预计算旋转因子(twiddle factor)以提升性能。 +傅里叶变换,可以对参数进行调整,以实现FFT/IFFT/RFFT/IRFFT。 + +数学定义如下: + +.. math:: + + X(k) = \sum_{n=0}^{N-1} x(n)\,e^{-j 2\pi kn / N} \quad (\text{Forward FFT}) + +.. math:: + + x(n) = \sum_{k=0}^{N-1} X(k)\,e^{j 2\pi kn / N} \quad (\text{Inverse FFT}) + +其中 :math:`N` 为 FFT 点数。 + +输入: + - **input** - 输入复数数据地址。 + - **fft_size** - FFT 点数。 + - **dir** - 变换方向: + - ``FFT_FORWARD``:正向 FFT + - ``FFT_INVERSE``:反向 FFT + - **scratch_ptr** - 临时缓冲区地址,用于存放旋转因子及中间计算结果。 + - **twiddle** - 旋转因子地址(仅共享存储版本使用)。 + - **fft_size1** - 第一阶段 FFT 点数(仅共享存储版本使用)。 + - **fft_size2** - 第二阶段 FFT 点数(仅共享存储版本使用)。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **output** - 输出复数序列地址。 + +内部核心计算公式如下: +对于FFT,它计算以下表达式: + +.. math:: + X[\omega_1, \dots, \omega_d] = + \sum_{n_1=0}^{N_1-1} \dots \sum_{n_d=0}^{N_d-1} x[n_1, \dots, n_d] + e^{-j\ 2 \pi \sum_{i=0}^d \frac{\omega_i n_i}{N_i}}, + +其中, :math:`d` = `signal_ndim` 是信号的维度,:math:`N_i` 则是信号第 :math:`i` 个维度的大小。 + +对于IFFT,它计算以下表达式: + +.. math:: + X[\omega_1, \dots, \omega_d] = + \frac{1}{\prod_{i=1}^d N_i} \sum_{n_1=0}^{N_1-1} \dots \sum_{n_d=0}^{N_d-1} x[n_1, \dots, n_d] + e^{\ j\ 2 \pi \sum_{i=0}^d \frac{\omega_i n_i}{N_i}}, + +其中, :math:`d` = `signal_ndim` 是信号的维度,:math:`N_i` 则是信号第 :math:`i` 维的大小。 + +.. note:: + - FFT/IFFT要求complex64或complex128类型的输入,返回complex64或complex128类型的输出。 + - RFFT要求bool, uint8, int8, int16, int32, int64, float32或float64类型的输入, + 返回complex64或complex128类型的输出。 + - IRFFT要求complex64或complex128类型的输入,返回float32或float64类型的输出。 + - 共享存储版本/私有存储版本支持函数及调用见RFFT。 + +参数: + - **signal_ndim** (int) - 表示每个信号中的维数,控制着傅里叶变换的维数,其值只能为1、2或3。 + - **inverse** (bool) - 表示该操作是否为逆变换,用以选择FFT 和 RFFT 或 IFFT 和 IRFFT。 + + - 如果为 ``True`` ,则为IFFT 和 IRFFT。 + - 如果为 ``False`` ,FFT 和 RFFT。 + + - **real** (bool) - 表示该操作是否为实变换,与 `inverse` 共同决定具体的变换模式: + + - `inverse` 为 ``False`` , `real` 为 ``False`` :对应FFT模式。 + - `inverse` 为 ``True`` , `real` 为 ``False`` :对应IFFT模式。 + - `inverse` 为 ``False`` , `real` 为 ``True`` :对应RFFT模式。 + - `inverse` 为 ``True`` , `real` 为 ``True`` :对应IRFFT模式。 + + - **norm** (str,可选) - 表示该操作的规范化方式,可选值:[ ``"backward"`` , ``"forward"`` , ``"ortho"`` ]。默认值: ``"backward"`` 。 + + - "backward",正向变换不缩放,逆变换按 :math:`1/n` 缩放,其中 `n` 表示输入 `x` 的元素数量。。 + - "ortho",正向变换与逆变换均按 :math:`1/\sqrt n` 缩放。 + - "forward",正向变换按 :math:`1/n` 缩放,逆变换不缩放。 + + - **onesided** (bool,可选) - 控制输入是否减半以避免冗余。默认值: ``True`` 。 + - **signal_sizes** (tuple,可选) - 原始信号的大小(RFFT变换之前的信号,不包含batch这一维),只有在IRFFT模式下和设置 `onesided` 为True时需要该参数,需要满足 + 以下条件。默认值: ``()`` 。 + + - `signal_sizes` 的长度等于IRFFT的 `signal_ndim` : :math:`len(signal\_sizes)=signal\_ndim` 。 + - `signal_sizes` 的最后一个维度除以2等于IRFFT输入的最后一个维度: :math:`signal\_size[-1]/2+1=x.shape[-1]` 。 + - 除了最后一个维度外, `signal_sizes` 的维度与输入shape完全相同: :math:`signal\_sizes[:-1]=x.shape[:-1]` 。 + +异常: + - **TypeError** - 如果FFT/IFFT/IRFF的输入类型不是以下类型之一:complex64、complex128。 + - **TypeError** - 如果输入的类型不是Tensor。 + - **ValueError** - 如果输入 `x` 的维度小于 `signal_ndim` 。 + - **ValueError** - 如果 `signal_ndim` 大于3或小于1。 + - **ValueError** - 如果 `norm` 取值不是"backward"、"forward"或"ortho"。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +类型支持: + - FT78NE:``cplx64``、``cplx128`` + - MT7004:``cplx64`` + diff --git a/master/html/_sources/functionlib/dsplib/fftreal.rst.txt b/master/html/_sources/functionlib/dsplib/fftreal.rst.txt new file mode 100644 index 0000000..42adf86 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/fftreal.rst.txt @@ -0,0 +1,104 @@ +FFTReal +========================= + +对输入复数序列实数部分执行一维快速傅里叶变换(FFT)或逆变换(IFFT)。 +内部基于分治 FFT 算法, +并使用预计算旋转因子(twiddle factor)以提升性能。 +傅里叶变换,可以对参数进行调整,以实现FFT/IFFT/RFFT/IRFFT。 + +数学定义如下: + +.. math:: + + X(k) = \sum_{n=0}^{N-1} x(n)\,e^{-j 2\pi kn / N} \quad (\text{Forward FFT}) + +.. math:: + + x(n) = \sum_{k=0}^{N-1} X(k)\,e^{j 2\pi kn / N} \quad (\text{Inverse FFT}) + +其中 :math:`N` 为 FFT 点数。 + +输入: + - **input** - 输入复数数据地址。 + - **fft_size** - FFT 点数。 + - **dir** - 变换方向: + - ``FFT_FORWARD``:正向 FFT + - ``FFT_INVERSE``:反向 FFT + - **scratch_ptr** - 临时缓冲区地址,用于存放旋转因子及中间计算结果。 + - **twiddle** - 旋转因子地址(仅共享存储版本使用)。 + - **fft_size1** - 第一阶段 FFT 点数(仅共享存储版本使用)。 + - **fft_size2** - 第二阶段 FFT 点数(仅共享存储版本使用)。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **output** - 输出复数序列地址。 + +内部核心计算公式如下: +对于FFT,它计算以下表达式: + +.. math:: + X[\omega_1, \dots, \omega_d] = + \sum_{n_1=0}^{N_1-1} \dots \sum_{n_d=0}^{N_d-1} x[n_1, \dots, n_d] + e^{-j\ 2 \pi \sum_{i=0}^d \frac{\omega_i n_i}{N_i}}, + +其中, :math:`d` = `signal_ndim` 是信号的维度,:math:`N_i` 则是信号第 :math:`i` 个维度的大小。 + +对于IFFT,它计算以下表达式: + +.. math:: + X[\omega_1, \dots, \omega_d] = + \frac{1}{\prod_{i=1}^d N_i} \sum_{n_1=0}^{N_1-1} \dots \sum_{n_d=0}^{N_d-1} x[n_1, \dots, n_d] + e^{\ j\ 2 \pi \sum_{i=0}^d \frac{\omega_i n_i}{N_i}}, + +其中, :math:`d` = `signal_ndim` 是信号的维度,:math:`N_i` 则是信号第 :math:`i` 维的大小。 + +.. note:: + - FFT/IFFT要求complex64或complex128类型的输入,返回complex64或complex128类型的输出。 + - RFFT要求bool, uint8, int8, int16, int32, int64, float32或float64类型的输入, + 返回complex64或complex128类型的输出。 + - IRFFT要求complex64或complex128类型的输入,返回float32或float64类型的输出。 + - 共享存储版本/私有存储版本支持函数及调用见RFFT。 + +参数: + - **signal_ndim** (int) - 表示每个信号中的维数,控制着傅里叶变换的维数,其值只能为1、2或3。 + - **inverse** (bool) - 表示该操作是否为逆变换,用以选择FFT 和 RFFT 或 IFFT 和 IRFFT。 + + - 如果为 ``True`` ,则为IFFT 和 IRFFT。 + - 如果为 ``False`` ,FFT 和 RFFT。 + + - **real** (bool) - 表示该操作是否为实变换,与 `inverse` 共同决定具体的变换模式: + + - `inverse` 为 ``False`` , `real` 为 ``False`` :对应FFT模式。 + - `inverse` 为 ``True`` , `real` 为 ``False`` :对应IFFT模式。 + - `inverse` 为 ``False`` , `real` 为 ``True`` :对应RFFT模式。 + - `inverse` 为 ``True`` , `real` 为 ``True`` :对应IRFFT模式。 + + - **norm** (str,可选) - 表示该操作的规范化方式,可选值:[ ``"backward"`` , ``"forward"`` , ``"ortho"`` ]。默认值: ``"backward"`` 。 + + - "backward",正向变换不缩放,逆变换按 :math:`1/n` 缩放,其中 `n` 表示输入 `x` 的元素数量。。 + - "ortho",正向变换与逆变换均按 :math:`1/\sqrt n` 缩放。 + - "forward",正向变换按 :math:`1/n` 缩放,逆变换不缩放。 + + - **onesided** (bool,可选) - 控制输入是否减半以避免冗余。默认值: ``True`` 。 + - **signal_sizes** (tuple,可选) - 原始信号的大小(RFFT变换之前的信号,不包含batch这一维),只有在IRFFT模式下和设置 `onesided` 为True时需要该参数,需要满足 + 以下条件。默认值: ``()`` 。 + + - `signal_sizes` 的长度等于IRFFT的 `signal_ndim` : :math:`len(signal\_sizes)=signal\_ndim` 。 + - `signal_sizes` 的最后一个维度除以2等于IRFFT输入的最后一个维度: :math:`signal\_size[-1]/2+1=x.shape[-1]` 。 + - 除了最后一个维度外, `signal_sizes` 的维度与输入shape完全相同: :math:`signal\_sizes[:-1]=x.shape[:-1]` 。 + +异常: + - **TypeError** - 如果FFT/IFFT/IRFF的输入类型不是以下类型之一:complex64、complex128。 + - **TypeError** - 如果输入的类型不是Tensor。 + - **ValueError** - 如果输入 `x` 的维度小于 `signal_ndim` 。 + - **ValueError** - 如果 `signal_ndim` 大于3或小于1。 + - **ValueError** - 如果 `norm` 取值不是"backward"、"forward"或"ortho"。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +类型支持: + - FT78NE:``cplx64``、``cplx128`` + - MT7004:``cplx64`` + diff --git a/master/html/_sources/functionlib/dsplib/fill.rst.txt b/master/html/_sources/functionlib/dsplib/fill.rst.txt new file mode 100644 index 0000000..231322c --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/fill.rst.txt @@ -0,0 +1,103 @@ +Fill +================= + + + + 使用给定的常量值填充输出数组。该算子将输入的 **value** 按指定数据类型复制,并在多核环境下利用 DMA 高效地完成填充操作。 + + .. math:: + + dst_i = value + \quad \text{for} \quad i = 0,1,\dots,N-1 + + 输入: + - **value** - 待填充的常量值地址。 + - **param** - Fill 参数结构体指针,描述输出张量的形状与数据类型信息。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + + 输出: + - **output** - 填充结果地址。 + + FillParameter 说明: + FillParameter 用于描述 Fill 算子的输出张量信息,其定义如下: + + .. code-block:: c + + typedef struct FillParameter { + int* shape_; // 张量各维度大小 + int ndim_; // 张量维度数 + int elem_cnt_; // 张量元素总数 + int type_size_; // 单个元素字节大小 + } FillParameter; + + 支持平台: + ``FT78NE`` + ``MT7004`` + + .. note:: + - FT78NE 支持fp, dp, int8, int16, int32, cplx64, cplx128 + - MT7004 支持hp, fp, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_fill_s(int8_t* value, int8_t* output, int core_mask, FillParameter* param) +.. c:function:: void i16_fill_s(int16_t* value, int16_t* output, int core_mask, FillParameter* param) +.. c:function:: void i32_fill_s(int32_t* value, int32_t* output, int core_mask, FillParameter* param) +.. c:function:: void hp_fill_s(half* value, half* output, int core_mask, FillParameter* param) +.. c:function:: void fp_fill_s(float* value, float* output, int core_mask, FillParameter* param) +.. c:function:: void dp_fill_s(double* value, double* output, int core_mask, FillParameter* param) +.. c:function:: void c64_fill_s(float* value, float* output, int core_mask, FillParameter* param) +.. c:function:: void c128_fill_s(double* value, double* output, int core_mask, FillParameter* param) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float value = 1.0f; + float *output = (float *)0xC0000000; + FillParameter param; + param.elem_cnt_ = 1024; + param.type_size_ = sizeof(float); + int core_mask = 0xff; + fp_fill_s(&value, output, core_mask, ¶m); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_fill_p(int8_t* value, int8_t* output, FillParameter* param) +.. c:function:: void i16_fill_p(int16_t* value, int16_t* output, FillParameter* param) +.. c:function:: void i32_fill_p(int32_t* value, int32_t* output, FillParameter* param) +.. c:function:: void hp_fill_p(half* value, half* output, FillParameter* param) +.. c:function:: void fp_fill_p(float* value, float* output, FillParameter* param) +.. c:function:: void dp_fill_p(double* value, double* output, FillParameter* param) +.. c:function:: void c64_fill_p(float* value, float* output, FillParameter* param) +.. c:function:: void c128_fill_p(double* value, double* output, FillParameter* param) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float value = 1.0f; + float *output = (float *)0x10820000; + FillParameter param; + param.elem_cnt_ = 1024; + param.type_size_ = sizeof(float); + fp_fill_p(&value, output, ¶m); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/flatten.rst.txt b/master/html/_sources/functionlib/dsplib/flatten.rst.txt new file mode 100644 index 0000000..a62f1c5 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/flatten.rst.txt @@ -0,0 +1,104 @@ +Flatten +================= + +将多维输入张量按行优先(row-major)顺序展平成一维连续数组。 +该算子仅改变数据的形状,不改变数据内容与顺序,本质上是一次连续内存拷贝操作。 + +数学上可表示为: + +.. math:: + + \text{output} = \text{reshape}(\text{input}, [-1]) + +输入张量的所有元素按照原有存储顺序依次写入输出张量。 + +输入: + - **input** - 输入数据地址。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + - **param** - Flatten 参数结构体指针,包含形状与类型信息。 + +输出: + - **output** - 展平后的输出数据地址。 + +FlattenParameter 结构体说明: + + - **shape_** - 输入张量各维度大小数组。 + - **ndim_** - 输入张量维度数。 + - **elem_cnt_** - 输入张量元素总数。 + - **type_size_** - 单个元素的字节数。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 ``fp32``、``fp64``、``int8``、``int16``、``int32``、``cplx64``、``cplx128`` + - MT7004 支持 ``fp16``、``fp32``、``int16``、``int32``、``cplx64`` + - 该算子不涉及数值计算,仅进行内存搬运 + - 当 input 与 output 地址相同时,算子直接返回,不执行拷贝 + - 当 core_mask 对应的逻辑核无效时,算子直接返回 + +**共享存储版本:** + +.. c:function:: void Flatten(const void* input, void* output, int core_mask, FlattenParameter* param) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 18 + + // FT78NE 示例(共享存储) + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // DDR 空间 + float *output = (float *)0xC0000000; + + int shape[3] = {1, 3, 224 * 224}; + + FlattenParameter param; + param.shape_ = shape; + param.ndim_ = 3; + param.elem_cnt_ = 1 * 3 * 224 * 224; + param.type_size_ = sizeof(float); + + int core_mask = 0xff; + Flatten(input, output, core_mask, ¶m); + + return 0; + } + + +**私有存储版本:** + +该算子在私有存储模式下等价为单核内存拷贝操作, +直接调用 `Flatten` 且 core_mask 设置为单核即可。 + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17 + + // FT78NE 示例(私有存储) + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10810000; // L2 空间 + float *output = (float *)0x10820000; + + int shape[2] = {4, 256}; + + FlattenParameter param; + param.shape_ = shape; + param.ndim_ = 2; + param.elem_cnt_ = 4 * 256; + param.type_size_ = sizeof(float); + + Flatten(input, output, 0x1, ¶m); + + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/flattengrad.rst.txt b/master/html/_sources/functionlib/dsplib/flattengrad.rst.txt new file mode 100644 index 0000000..43347fe --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/flattengrad.rst.txt @@ -0,0 +1,82 @@ +FlattenGrad +================= + +Flatten 算子的反向传播算子,用于将一维梯度按照原始输入张量的形状还原。 +该算子不进行数值计算,仅依据原始形状信息对梯度数据进行内存拷贝与重解释,元素顺序保持不变。 + +.. math:: + + \text{grad\_input} = \text{reshape}(\text{grad\_output}, \text{origin\_shape}) + +输入: + - **input** - 上游梯度(Flatten 输出对应的梯度)地址。 + - **origin_shape** - 原始输入张量的形状数组。 + - **origin_ndim** - 原始输入张量的维度数。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 还原形状后的梯度数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp32 + - MT7004 支持 fp16, fp32 + - 该算子仅进行内存拷贝,不涉及数值运算 + - 输出元素总数等于 origin_shape 各维度之积 + +**共享存储版本:** + +.. c:function:: void fp_flattengrad_s(float* input, float* output, int* origin_shape, int origin_ndim, int core_mask) +.. c:function:: void hp_flattengrad_s(half* input, half* output, int* origin_shape, int origin_ndim, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *grad_flat = (float *)0xA0000000; // 梯度在 DDR + float *grad_out = (float *)0xC0000000; + + int origin_shape[2] = {32, 128}; + int origin_ndim = 2; + int core_mask = 0xff; + + fp_flattengrad_s(grad_flat, grad_out, origin_shape, origin_ndim, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_flattengrad_p(float* input, float* output, int* origin_shape, int origin_ndim) +.. c:function:: void hp_flattengrad_p(half* input, half* output, int* origin_shape, int origin_ndim) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + // MT7004 示例 + #include + #include + + int main(int argc, char* argv[]) { + half *grad_flat = (half *)0x10810000; // 梯度在 L2 + half *grad_out = (half *)0x10820000; + + int origin_shape[3] = {1, 3, 224 * 224}; + int origin_ndim = 3; + + hp_flattengrad_p(grad_flat, grad_out, origin_shape, origin_ndim); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/floormod.rst.txt b/master/html/_sources/functionlib/dsplib/floormod.rst.txt new file mode 100644 index 0000000..8928497 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/floormod.rst.txt @@ -0,0 +1,84 @@ +Floormod +================= + + + +逐元素计算两个输入张量的 floor-modulus。 + +.. math:: + + \text{output}_i = \text{input0}_i - \lfloor \frac{\text{input0}_i}{\text{input1}_i} \rfloor \cdot \text{input1}_i + +其中 :math:`\lfloor \cdot \rfloor` 表示向下取整 (floor) 操作。 + +输入: + - **input0** - 第一个输入张量(被除数)的数据地址。 + - **input1** - 第二个输入张量(除数)的数据地址。 + - **size** - 输入张量的总元素数量。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出张量的数据地址,其大小与输入张量相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void fp_floormod_s(float* input0, float* input1, float* output, int size, int core_mask) +.. c:function:: void hp_floormod_s(half* input0, half* input1, half* output, int size, int core_mask) +.. c:function:: void dp_floormod_s(double* input0, double* input1, double* output, int size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; // input0 在DDR空间 + float *input1 = (float *)0xB0000000; // input1 + float *output = (float *)0xC0000000; // output + + int size = 4096; + int core_mask = 0xff; + + fp_floormod_s(input0, input1, output, size, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_floormod_p(float* input0, float* input1, float* output, int size) +.. c:function:: void hp_floormod_p(half* input0, half* input1, half* output, int size) +.. c:function:: void dp_floormod_p(double* input0, double* input1, double* output, int size) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input0 = (float *)0x10000000; // input0 在L2空间 + float *input1 = (float *)0x11000000; // input1 + float *output = (float *)0x12000000; // output + + int size = 1024; + + fp_floormod_p(input0, input1, output, size); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/formattranspose.rst.txt b/master/html/_sources/functionlib/dsplib/formattranspose.rst.txt new file mode 100644 index 0000000..6733c3c --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/formattranspose.rst.txt @@ -0,0 +1,90 @@ +FormatTranspose +================= + + + +将输入数据从一种存储格式转换为另一种存储格式,如 NCHW ↔ NHWC、NC4HW4、NC8HW8 等,适用于图像或特征图数据。 + +输入: + - **src_data** - 输入数据地址。 + - **src_format** - 输入数据格式标识。 + - **dst_format** - 输出数据格式标识。 + - **batch** - 批大小。 + - **channel** - 通道数。 + - **plane** - 高*宽。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **dst_data** - 格式转换结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp, dp, int8, int16, int32, clx64, cplx128 + - MT7004 支持hp, fp, i16, i32, cplx64 + +**共享存储版本:** + +.. c:function:: void fp_formattranspose_s(int src_format, int dst_format, float* src_data, float* dst_data, int batch, int channel, int plane, int core_mask) +.. c:function:: void hp_formattranspose_s(int src_format, int dst_format, half* src_data, half* dst_data, int batch, int channel, int plane, int core_mask) +.. c:function:: void dp_formattranspose_s(int src_format, int dst_format, double* src_data, double* dst_data, int batch, int channel, int plane, int core_mask) +.. c:function:: void i8_formattranspose_s(int src_format, int dst_format, int8_t* src_data, int8_t* dst_data, int batch, int channel, int plane, int core_mask) +.. c:function:: void i16_formattranspose_s(int src_format, int dst_format, int16_t* src_data, int16_t* dst_data, int batch, int channel, int plane, int core_mask) +.. c:function:: void i32_formattranspose_s(int src_format, int dst_format, int* src_data, int* dst_data, int batch, int channel, int plane, int core_mask) +.. c:function:: void c64_formattranspose_s(int src_format, int dst_format, float* src_data, float* dst_data, int batch, int channel, int plane, int core_mask) +.. c:function:: void c128_formattranspose_s(int src_format, int dst_format, double* src_data, double* dst_data, int batch, int channel, int plane, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + #include + #include + + int main() { + float *input = (float *)0xA0000000; // 输入在DDR空间 + float *output = (float *)0xC0000000; + int batch = 1, channel = 3, plane = 224*224; + int src_format = 1; // NHWC + int dst_format = 0; // NCHW + int core_mask = 0xff; + + fp_formattranspose_s(src_format, dst_format, input, output, batch, channel, plane, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_formattranspose_p(int src_format, int dst_format, float* src_data, float* dst_data, int batch, int channel, int plane) +.. c:function:: void hp_formattranspose_p(int src_format, int dst_format, half* src_data, half* dst_data, int batch, int channel, int plane) +.. c:function:: void dp_formattranspose_p(int src_format, int dst_format, double* src_data, double* dst_data, int batch, int channel, int plane) +.. c:function:: void i8_formattranspose_p(int src_format, int dst_format, int8_t* src_data, int8_t* dst_data, int batch, int channel, int plane) +.. c:function:: void i16_formattranspose_p(int src_format, int dst_format, int16_t* src_data, int16_t* dst_data, int batch, int channel, int plane) +.. c:function:: void i32_formattranspose_p(int src_format, int dst_format, int* src_data, int* dst_data, int batch, int channel, int plane) +.. c:function:: void c64_formattranspose_p(int src_format, int dst_format, float* src_data, float* dst_data, int batch, int channel, int plane) +.. c:function:: void c128_formattranspose_p(int src_format, int dst_format, double* src_data, double* dst_data, int batch, int channel, int plane) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + #include + #include + + int main() { + float *input = (float *)0x10810000; // 输入在L2空间 + float *output = (float *)0x10820000; + int batch = 1, channel = 3, plane = 224*224; + int src_format = 1; // NHWC + int dst_format = 0; // NCHW + + fp_formattranspose_p(src_format, dst_format, input, output, batch, channel, plane); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/fullconnection.rst.txt b/master/html/_sources/functionlib/dsplib/fullconnection.rst.txt new file mode 100644 index 0000000..048e5bc --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/fullconnection.rst.txt @@ -0,0 +1,93 @@ +FullConnection +================= + + + +传入输入矩阵与权重矩阵,执行全连接计算(矩阵乘法),并可选择性地叠加偏置项与激活函数, +最终输出结果矩阵。 + +.. math:: + + dst_{i,j} = \sum_{k=0}^{K-1} A_{i,k} \cdot B_{k,j} + bias_{i,j} + + dst_{i,j} = activation(dst_{i,j}) + +其中激活函数支持 ReLU 与 ReLU6。 + +输入: + - **A** - 输入矩阵地址,形状为 ``M × K``。 + - **B** - 权重矩阵地址,形状为 ``K × N``。 + - **bias** - 偏置矩阵地址,形状为 ``M × N``,可为 ``NULL``。 + - **M** - 输出矩阵行数。 + - **N** - 输出矩阵列数。 + - **K** - 中间维度大小。 + - **activation_type** - 激活函数类型。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **C** - 输出矩阵地址,形状为 ``M × N``。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp, int8 + - MT7004 支持hp, fp + - activation_type 支持 ``ACTIVATION_NONE``、``ACTIVATION_RELU``、``ACTIVATION_RELU6`` + +**共享存储版本:** + +.. c:function:: void i8_fullconnection_s(int8_t* A, int8_t* B, int8_t* C, int8_t* bias, int M, int N, int K, int activation_type, int core_mask) +.. c:function:: void fp_fullconnection_s(float* A, float* B, float* C, float* bias, int M, int N, int K, int activation_type, int core_mask) +.. c:function:: void hp_fullconnection_s(half* A, half* B, half* C, half* bias, int M, int N, int K, int activation_type, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *A = (float *)0xA0000000; + float *B = (float *)0xA0010000; + float *C = (float *)0xC0000000; + float *bias = NULL; + int M = 4, N = 8, K = 16; + int activation_type = ACTIVATION_RELU; + int core_mask = 0xff; + fp_fullconnection_s(A, B, C, bias, M, N, K, activation_type, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_fullconnection_p(int8_t* A, int8_t* B, int8_t* C, int8_t* bias, int M, int N, int K, int activation_type) +.. c:function:: void fp_fullconnection_p(float* A, float* B, float* C, float* bias, int M, int N, int K, int activation_type) +.. c:function:: void hp_fullconnection_p(half* A, half* B, half* C, half* bias, int M, int N, int K, int activation_type) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *A = (float *)0x10810000; + float *B = (float *)0x10820000; + float *C = (float *)0x10830000; + float *bias = NULL; + int M = 4, N = 8, K = 16; + int activation_type = ACTIVATION_RELU6; + fp_fullconnection_p(A, B, C, bias, M, N, K, activation_type); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/fusedbatchnorm.rst.txt b/master/html/_sources/functionlib/dsplib/fusedbatchnorm.rst.txt index 6095913..e7869d5 100644 --- a/master/html/_sources/functionlib/dsplib/fusedbatchnorm.rst.txt +++ b/master/html/_sources/functionlib/dsplib/fusedbatchnorm.rst.txt @@ -38,7 +38,7 @@ FusedBatchNorm .. code-block:: c :linenos: - :emphasize-lines: 15 + :emphasize-lines: 15-17 // FT78NE 多核示例 #include @@ -70,7 +70,7 @@ FusedBatchNorm .. code-block:: c :linenos: - :emphasize-lines: 14 + :emphasize-lines: 14-15 // MT7004 单核示例 #include diff --git a/master/html/_sources/functionlib/dsplib/gather.rst.txt b/master/html/_sources/functionlib/dsplib/gather.rst.txt new file mode 100644 index 0000000..ada27cc --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/gather.rst.txt @@ -0,0 +1,107 @@ +Gather +================= + +沿着给定的轴 ``axis``,根据 ``indices`` 张量提供的索引值,从 ``input`` 张量中收集数据。支持 ``batch_dims`` 指定的批处理维度,即在前 ``batch_dims`` 个维度上,索引和输入是对应的。 + +.. math:: + + \text{output}[i_0, ..., i_{axis-1}, j_0, ..., j_{indices\_ndim-batch\_dims-1}, i_{axis+1}, ..., i_{input\_ndim-1}] = \\ + \text{input}[i_0, ..., i_{axis-1}, \text{indices}[i_0, ..., i_{batch\_dims-1}, j_0, ..., j_{indices\_ndim-batch\_dims-1}], i_{axis+1}, ..., i_{input\_ndim-1}] + +输入: + - **output** - 计算结果输出地址。 + - **input** - 输入源张量数据地址。 + - **input_shape** - 输入张量的形状数组地址。 + - **input_ndim** - 输入张量的维度数量。 + - **indices** - 索引张量数据地址(通常为 int32 类型)。 + - **indices_shape** - 索引张量的形状数组地址。 + - **indices_ndim** - 索引张量的维度数量。 + - **axis** - 沿着哪个轴进行聚集操作。 + - **batch_dims** - 批处理维度数量。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 聚集后的计算结果。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - 索引张量 ``indices`` 内部存储的索引值必须在 ``[0, input_shape[axis])`` 范围内,否则行为未定义。 + - 聚集操作涉及非连续访存,在大规模数据下建议使用共享存储版本并行处理。 + +**共享存储版本:** + +.. c:function:: void i8_gather_s(int8_t* output, int8_t* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask) +.. c:function:: void i16_gather_s(int16_t* output, int16_t* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask) +.. c:function:: void i32_gather_s(int32_t* output, int32_t* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask) +.. c:function:: void hp_gather_s(half* output, half* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask) +.. c:function:: void fp_gather_s(float* output, float* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask) +.. c:function:: void dp_gather_s(double* output, double* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask) +.. c:function:: void c64_gather_s(float* output, float* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask) +.. c:function:: void c128_gather_s(double* output, double* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 17 + + // FT78NE 示例:多核并行聚集操作 + #include + #include "78NE/utils.h" + + int main() { + float *input = (float *)0xA0000000; + int *indices = (int *)0xB0000000; + float *output = (float *)0xC0000000; + int input_shape[] = {16, 800, 80}; + int indices_shape[] = {16, 400}; + int input_ndim = 3; + int indices_ndim = 2; + int axis = 1; + int batch_dims = 1; + int core_mask = 0xFF; // 使用8核并行 + + fp_gather_s(output, input, input_shape, input_ndim, indices, indices_shape, indices_ndim, axis, batch_dims, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_gather_p(int8_t* output, int8_t* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims) +.. c:function:: void i16_gather_p(int16_t* output, int16_t* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims) +.. c:function:: void i32_gather_p(int32_t* output, int32_t* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims) +.. c:function:: void hp_gather_p(half* output, half* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims) +.. c:function:: void fp_gather_p(float* output, float* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims) +.. c:function:: void dp_gather_p(double* output, double* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims) +.. c:function:: void c64_gather_p(float* output, float* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims) +.. c:function:: void c128_gather_p(double* output, double* input, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int axis, int batch_dims) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 15 + + // MT7004 示例:单核聚集操作 + #include + + int main() { + float *input = (float *)0x10000000; + int *indices = (int *)0x10010000; + float *output = (float *)0x10020000; + int input_shape[] = {2, 100, 10}; + int indices_shape[] = {2, 50}; + int input_ndim = 3; + int indices_ndim = 2; + int axis = 1; + int batch_dims = 1; + + fp_gather_p(output, input, input_shape, input_ndim, indices, indices_shape, indices_ndim, axis, batch_dims); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/gather_nd.rst.txt b/master/html/_sources/functionlib/dsplib/gather_nd.rst.txt new file mode 100644 index 0000000..d996f73 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/gather_nd.rst.txt @@ -0,0 +1,97 @@ +GatherNd +================= + +根据索引张量中的坐标,从输入张量中收集切片或元素。 + +GatherNd 允许根据 ``indices`` 提供的多维索引,在 ``input`` 张量的指定轴上进行切片提取。如果 ``indices`` 的最后一个维度长度为 ``K``,则它代表从 ``input`` 的前 ``K`` 个维度中提取对应的子张量(切片)。 + +输入: + - **input** - 输入数据张量地址。 + - **output** - 计算结果张量地址。 + - **input_shape** - 输入张量的形状数组地址。 + - **input_ndim** - 输入张量的维度数。 + - **indices** - 索引张量地址(类型固定为 int32)。 + - **indices_shape** - 索引张量的形状数组地址。 + - **indices_ndim** - 索引张量的维度数。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 收集后的数据存放地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - 索引张量 (indices) 在所有平台上均使用 int32 类型。 + - 坐标索引必须在输入张量维度的合法范围内,否则行为未定义。 + +**共享存储版本:** + +.. c:function:: void i8_gather_nd_s(int8_t* input, int8_t* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int core_mask) +.. c:function:: void i16_gather_nd_s(int16_t* input, int16_t* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int core_mask) +.. c:function:: void i32_gather_nd_s(int* input, int* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int core_mask) +.. c:function:: void hp_gather_nd_s(half* input, half* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int core_mask) +.. c:function:: void fp_gather_nd_s(float* input, float* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int core_mask) +.. c:function:: void dp_gather_nd_s(double* input, double* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int core_mask) +.. c:function:: void c64_gather_nd_s(float* input, float* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int core_mask) +.. c:function:: void c128_gather_nd_s(double* input, double* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 15 + + // FT78NE 示例(共享存储) + #include + #include "78NE/utils.h" + + int main() { + float *input = (float *)0xA0000000; // 输入在 DDR 空间 + float *output = (float *)0xB0000000; // 输出在 DDR 空间 + int *indices = (int *)0xC0000000; // 索引在 DDR 空间 + int input_shape[] = {10, 10, 5}; + int indices_shape[] = {3, 2}; // 提取3个坐标,每个坐标深度为2 + int input_ndim = 3; + int indices_ndim = 2; + int core_mask = 0xFF; + + fp_gather_nd_s(input, output, input_shape, input_ndim, indices, indices_shape, indices_ndim, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_gather_nd_p(int8_t* input, int8_t* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim) +.. c:function:: void i16_gather_nd_p(int16_t* input, int16_t* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim) +.. c:function:: void i32_gather_nd_p(int* input, int* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim) +.. c:function:: void hp_gather_nd_p(half* input, half* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim) +.. c:function:: void fp_gather_nd_p(float* input, float* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim) +.. c:function:: void dp_gather_nd_p(double* input, double* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim) +.. c:function:: void c64_gather_nd_p(float* input, float* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim) +.. c:function:: void c128_gather_nd_p(double* input, double* output, int* input_shape, int input_ndim, int* indices, int* indices_shape, int indices_ndim) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 13 + + // MT7004 示例(私有存储) + #include + + int main() { + float *input = (float *)0x10000000; + float *output = (float *)0x10010000; + int *indices = (int *)0x10020000; + int input_shape[] = {4, 5, 6}; + int indices_shape[] = {2, 2, 2}; + int input_ndim = 3; + int indices_ndim = 3; + + fp_gather_nd_p(input, output, input_shape, input_ndim, indices, indices_shape, indices_ndim); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/gatherd.rst.txt b/master/html/_sources/functionlib/dsplib/gatherd.rst.txt new file mode 100644 index 0000000..14cd24a --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/gatherd.rst.txt @@ -0,0 +1,117 @@ +GatherD +========= + +按照给定的维度 ``dim`` 和索引张量 ``index``,从输入张量中按元素位置 +抽取数据,生成新的输出张量。 + +该算子等价于在指定维度上执行逐元素 Gather 操作,其输出形状与 +``index`` 张量形状一致。 + +.. math:: + + \text{output}[i_0, \dots, i_n] + = + \text{input}_x[i_0, \dots, i_{dim-1}, \text{index}[i_0, \dots, i_n], i_{dim+1}, \dots, i_n] + +输入: + - **input_x** - 输入张量的数据地址。 + 数据类型需与所调用的 GatherD 接口类型一致。 + + - **dim** - 指定进行 Gather 操作的维度索引,取值范围为 + ``[0, input_shape_size)``。 + + - **index** - 索引张量的数据地址,类型为 ``int*``, + 用于指定在 ``dim`` 维度上的取值位置。 + + - **input_shape** - 输入张量各维度大小数组地址。 + + - **input_shape_size** - 输入张量的维度数量。 + + - **index_shape** - 索引张量的形状数组地址, + 其维度数量与 ``input_shape_size`` 相同。 + + - **core_mask** - 核掩码(仅共享存储版本使用)。 + +输出: + - **output** - 输出张量的数据地址, + 其形状与 ``index_shape`` 保持一致, + 数据类型与 ``input_x`` 相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - ``index`` 中的取值应满足 + ``0 <= index[...] < input_shape[dim]``。 + - 输出张量的元素个数等于 ``index_shape`` 各维度之积。 + - 该算子不对索引顺序进行任何排序或检查。 + +**共享存储版本:** + +.. c:function:: void fp_gatherd_s(float* input_x, int dim, int* index, float* output, int* input_shape, int input_shape_size, int* index_shape, int core_mask) +.. c:function:: void dp_gatherd_s(double* input_x, int dim, int* index, double* output, int* input_shape, int input_shape_size, int* index_shape, int core_mask) +.. c:function:: void i8_gatherd_s(int8_t* input_x, int dim, int* index, int8_t* output, int* input_shape, int input_shape_size, int* index_shape, int core_mask) +.. c:function:: void i16_gatherd_s(int16_t* input_x, int dim, int* index, int16_t* output, int* input_shape, int input_shape_size, int* index_shape, int core_mask) +.. c:function:: void i32_gatherd_s(int32_t* input_x, int dim, int* index, int32_t* output, int* input_shape, int input_shape_size, int* index_shape, int core_mask) +.. c:function:: void c64_gatherd_s(float* input_x, int dim, int* index, float* output, int* input_shape, int input_shape_size, int* index_shape, int core_mask) +.. c:function:: void c128_gatherd_s(double* input_x, int dim, int* index, double* output, int* input_shape, int input_shape_size, int* index_shape, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input_x = (float *)0xA0000000; // input_x 在 DDR 空间 + float *output = (float *)0xB0000000; + int *index = (int *)0xA1000000; + + int input_shape[] = {4, 8, 16}; + int index_shape[] = {4, 8, 16}; + int input_shape_size = 3; + int dim = 1; + int core_mask = 0xff; + + fp_gatherd_s(input_x, dim, index, output, input_shape, input_shape_size, index_shape, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_gatherd_p(float* input_x, int dim, int* index, float* output, int* input_shape, int input_shape_size, int* index_shape) +.. c:function:: void dp_gatherd_p(double* input_x, int dim, int* index, double* output, int* input_shape, int input_shape_size, int* index_shape) +.. c:function:: void i8_gatherd_p(int8_t* input_x, int dim, int* index, int8_t* output, int* input_shape, int input_shape_size, int* index_shape) +.. c:function:: void i16_gatherd_p(int16_t* input_x, int dim, int* index, int16_t* output, int* input_shape, int input_shape_size, int* index_shape) +.. c:function:: void i32_gatherd_p(int32_t* input_x, int dim, int* index, int32_t* output, int* input_shape, int input_shape_size, int* index_shape) +.. c:function:: void c64_gatherd_p(float* input_x, int dim, int* index, float* output, int* input_shape, int input_shape_size, int* index_shape) +.. c:function:: void c128_gatherd_p(double* input_x, int dim, int* index, double* output, int* input_shape, int input_shape_size, int* index_shape) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + // MT7004 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input_x = (float *)0x10000000; // input_x 在 L2 空间 + float *output = (float *)0x10010000; + int *index = (int *)0x10020000; + + int input_shape[] = {2, 4}; + int index_shape[] = {2, 4}; + int input_shape_size = 2; + int dim = 0; + + fp_gatherd_p(input_x, dim, index, output, input_shape, input_shape_size, index_shape); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/glu.rst.txt b/master/html/_sources/functionlib/dsplib/glu.rst.txt new file mode 100644 index 0000000..e99d872 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/glu.rst.txt @@ -0,0 +1,106 @@ +GLU +================= + +Gated Linear Unit(门控线性单元)算子。该算子将输入张量在指定维度(``split_dim``)上分割成两个相等的部分(A和B),然后对第二部分(B)应用Sigmoid激活函数,并将其与第一部分(A)逐元素相乘。 + +.. math:: + + \text{out} = A \otimes \sigma(B) + +其中,A和B是输入张量沿 ``split_dim`` 维度分割后的两个子张量,:math:`\sigma` 是Sigmoid函数,:math:`\otimes` 表示逐元素乘法。 + +输入: + - **in_data** - 输入张量的数据地址。 + - **split_data** - 一个指针数组,用于存放分割后的子张量地址(作为临时缓冲区)。 + - **out_data** - 输出张量的数据地址。 + - **ndim** - 输入张量的维度数量。 + - **split_dim** - 执行分割操作的目标维度轴。 + - **input_shape** - 指向一个整数数组的指针,该数组描述了输入张量的形状。 + - **num_split** - 分割的数量,对于GLU操作,此值应为2。 + - **split_sizes** - 指向一个整数数组的指针,该数组描述了每个子张量在 ``split_dim`` 维度上的大小。 + - **strides** - 指向一个整数数组的指针,用于存放为张量索引预先计算好的步长。 + - **len** - 输出张量中的元素总数。 + - **core_mask** - 核掩码 (仅共享存储版本需要)。 + +输出: + - **out_data** - 存储GLU计算结果的张量。其形状与输入张量相同,但在 ``split_dim`` 维度上的大小减半。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE支持fp32和int8类型。 + - MT7004支持fp16和fp32类型。 + +**共享存储版本:** + +.. c:function:: void i8_glu_s(int8_t* in_data, int8_t** split_data, int8_t* out_data, int ndim, int split_dim, int* input_shape, int num_split, int* split_sizes, int* strides, int len, int core_mask) +.. c:function:: void hp_glu_s(half* in_data, half** split_data, half* out_data, int ndim, int split_dim, int* input_shape, int num_split, int* split_sizes, int* strides, int len, int core_mask) +.. c:function:: void fp_glu_s(float* in_data, float** split_data, float* out_data, int ndim, int split_dim, int* input_shape, int num_split, int* split_sizes, int* strides, int len, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 21 + + // 7004平台, fp32示例 + #include + #include "glu.h" + + int main(int argc, char* argv[]) { + float *in_data = (float *)0xA0000000; // input在DDR空间 + float *out_data = (float *)0xC0000000; // output在DDR空间 + float *split_data_buf[2]; // 临时缓冲区指针 + // ... (需要为split_data_buf分配内存) + + // 假设张量属性已定义 + int ndim = 2; + int split_dim = 1; + int input_shape[] = {2, 4}; + int num_split = 2; + int split_sizes[] = {2, 2}; + int len = 4; + int strides[2]; // 需要预先计算 + int core_mask = 0xff; + + fp_glu_s(in_data, split_data_buf, out_data, ndim, split_dim, input_shape, num_split, split_sizes, strides, len, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_glu_p(int8_t* in_data, int8_t** split_data, int8_t* out_data, int ndim, int split_dim, int* input_shape, int num_split, int* split_sizes, int* strides, int len) +.. c:function:: void hp_glu_p(half* in_data, half** split_data, half* out_data, int ndim, int split_dim, int* input_shape, int num_split, int* split_sizes, int* strides, int len) +.. c:function:: void fp_glu_p(float* in_data, float** split_data, float* out_data, int ndim, int split_dim, int* input_shape, int num_split, int* split_sizes, int* strides, int len) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 20 + + // 7004平台, fp32示例 + #include + #include "glu.h" + + int main(int argc, char* argv[]) { + float *in_data = (float *)0x10000000; // input在L2空间 + float *out_data = (float *)0x10001000; // output在L2空间 + float *split_data_buf[2]; // 临时缓冲区指针 + // ... (需要为split_data_buf分配内存) + + // 假设张量属性已定义 + int ndim = 2; + int split_dim = 1; + int input_shape[] = {2, 4}; + int num_split = 2; + int split_sizes[] = {2, 2}; + int len = 4; + int strides[2]; // 需要预先计算 + + fp_glu_p(in_data, split_data_buf, out_data, ndim, split_dim, input_shape, num_split, split_sizes, strides, len); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/greater.rst.txt b/master/html/_sources/functionlib/dsplib/greater.rst.txt new file mode 100644 index 0000000..5b3180e --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/greater.rst.txt @@ -0,0 +1,98 @@ +Greater +================= + + +逐元素比较两个输入张量,判断 `input1` 的元素是否大于 `input2` 的对应元素。支持广播。 + +.. math:: + + \text{output}_i = (\text{input1}_i > \text{input2}_i) + +输出一个布尔张量,如果比较结果为真,则对应元素为 `true`,否则为 `false`。 + +输入: + - **element_num** - 输出张量的总元素数量。在广播情况下,等于较大输入张量的元素数量。 + - **optimize** - 广播优化标志。若为非0,则启用广播模式。 + - **in_elements_num0** - 第一个输入张量 `input1` 的元素数量。用于广播判断。 + - **input1** - 第一个输入张量的数据地址。 + - **input2** - 第二个输入张量的数据地址。 + - **output** - (输出) 输出的布尔类型张量的数据地址。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 写入比较结果的布尔张量。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, fp64, int8, int16, int32 + - MT7004 支持fp16, fp32, int16, int32 + + +**共享存储版本:** + +.. c:function:: void fp_greater_s(int element_num, int optimize, int in_elements_num0, float *input1, float *input2, bool *output, int core_mask) +.. c:function:: void hp_greater_s(int element_num, int optimize, int in_elements_num0, half *input1, half *input2, bool *output, int core_mask) +.. c:function:: void dp_greater_s(int element_num, int optimize, int in_elements_num0, double *input1, double *input2, bool *output, int core_mask) +.. c:function:: void i32_greater_s(int element_num, int optimize, int in_elements_num0, int32_t *input1, int32_t *input2, bool *output, int core_mask) +.. c:function:: void i16_greater_s(int element_num, int optimize, int in_elements_num0, int16_t *input1, int16_t *input2, bool *output, int core_mask) +.. c:function:: void i8_greater_s(int element_num, int optimize, int in_elements_num0, int8_t *input1, int8_t *input2, bool *output, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input1 = (float *)0xA0000000; // Scalar input, DDR + float *input2 = (float *)0xB0000000; // Tensor input + bool *output = (bool *)0xC0000000; // Output + + // Broadcasting input1 (scalar) > input2 (tensor) + int element_num = 4096; // Size of input2 and output + int optimize = 1; // Enable broadcasting + int in_elements_num0 = 1; // Size of input1 + int core_mask = 0xff; + + fp_greater_s(element_num, optimize, in_elements_num0, input1, input2, output, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_greater_p(int element_num, int optimize, int in_elements_num0, float *input1, float *input2, bool *output) +.. c:function:: void hp_greater_p(int element_num, int optimize, int in_elements_num0, half *input1, half *input2, bool *output) +.. c:function:: void i32_greater_p(int element_num, int optimize, int in_elements_num0, int32_t *input1, int32_t *input2, bool *output) +.. c:function:: void i16_greater_p(int element_num, int optimize, int in_elements_num0, int16_t *input1, int16_t *input2, bool *output) +.. c:function:: void i8_greater_p(int element_num, int optimize, int in_elements_num0, int8_t *input1, int8_t *input2, bool *output) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input1 = (float *)0x10000000; // Tensor input, L2 + float *input2 = (float *)0x11000000; // Scalar input + bool *output = (bool *)0x12000000; // Output + + // Broadcasting input1 (tensor) > input2 (scalar) + int element_num = 1024; // Size of input1 and output + int optimize = 1; // Enable broadcasting + int in_elements_num0 = 1024; // Size of input1 + + fp_greater_p(element_num, optimize, in_elements_num0, input1, input2, output); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/greaterequal.rst.txt b/master/html/_sources/functionlib/dsplib/greaterequal.rst.txt new file mode 100644 index 0000000..2587d57 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/greaterequal.rst.txt @@ -0,0 +1,98 @@ +Greaterequal +================= + + + +逐元素比较两个输入张量,判断 `input1` 的元素是否大于或等于 `input2` 的对应元素。支持广播。 + +.. math:: + + \text{output}_i = (\text{input1}_i \ge \text{input2}_i) + +输出一个布尔张量,如果比较结果为真,则对应元素为 `true`,否则为 `false`。 + +输入: + - **element_num** - 输出张量的总元素数量。在广播情况下,等于较大输入张量的元素数量。 + - **optimize** - 广播优化标志。若为非0,则启用广播模式。 + - **in_elements_num0** - 第一个输入张量 `input1` 的元素数量。用于广播判断。 + - **input1** - 第一个输入张量的数据地址。 + - **input2** - 第二个输入张量的数据地址。 + - **output** - (输出) 输出的布尔类型张量的数据地址。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 写入比较结果的布尔张量。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, fp64, int8, int16, int32 + - MT7004 支持fp16, fp32, int16, int32 + +**共享存储版本:** + +.. c:function:: void fp_greaterequal_s(int element_num, int optimize, int in_elements_num0, float *input1, float *input2, bool *output, int core_mask) +.. c:function:: void hp_greaterequal_s(int element_num, int optimize, int in_elements_num0, half *input1, half *input2, bool *output, int core_mask) +.. c:function:: void dp_greaterequal_s(int element_num, int optimize, int in_elements_num0, double *input1, double *input2, bool *output, int core_mask) +.. c:function:: void i8_greaterequal_s(int element_num, int optimize, int in_elements_num0, int8_t *input1, int8_t *input2, bool *output, int core_mask) +.. c:function:: void i16_greaterequal_s(int element_num, int optimize, int in_elements_num0, int16_t *input1, int16_t *input2, bool *output, int core_mask) +.. c:function:: void i32_greaterequal_s(int element_num, int optimize, int in_elements_num0, int32_t *input1, int32_t *input2, bool *output, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input1 = (float *)0xA0000000; // Scalar input, DDR + float *input2 = (float *)0xB0000000; // Tensor input + bool *output = (bool *)0xC0000000; // Output + + // Broadcasting input1 (scalar) >= input2 (tensor) + int element_num = 4096; // Size of input2 and output + int optimize = 1; // Enable broadcasting + int in_elements_num0 = 1; // Size of input1 + int core_mask = 0xff; + + fp_greaterequal_s(element_num, optimize, in_elements_num0, input1, input2, output, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_greaterequal_p(int element_num, int optimize, int in_elements_num0, float *input1, float *input2, bool *output) +.. c:function:: void hp_greaterequal_p(int element_num, int optimize, int in_elements_num0, half *input1, half *input2, bool *output) +.. c:function:: void i32_greaterequal_p(int element_num, int optimize, int in_elements_num0, int32_t *input1, int32_t *input2, bool *output) +.. c:function:: void i16_greaterequal_p(int element_num, int optimize, int in_elements_num0, int16_t *input1, int16_t *input2, bool *output) +.. c:function:: void i8_greaterequal_p(int element_num, int optimize, int in_elements_num0, int8_t *input1, int8_t *input2, bool *output) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input1 = (float *)0x10000000; // Tensor input, L2 + float *input2 = (float *)0x11000000; // Scalar input + bool *output = (bool *)0x12000000; // Output + + // Broadcasting input1 (tensor) >= input2 (scalar) + int element_num = 1024; // Size of input1 and output + int optimize = 1; // Enable broadcasting + int in_elements_num0 = 1024; // Size of input1 + + fp_greaterequal_p(element_num, optimize, in_elements_num0, input1, input2, output); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/groupnormfusion.rst.txt b/master/html/_sources/functionlib/dsplib/groupnormfusion.rst.txt index 0947ddc..dca4936 100644 --- a/master/html/_sources/functionlib/dsplib/groupnormfusion.rst.txt +++ b/master/html/_sources/functionlib/dsplib/groupnormfusion.rst.txt @@ -42,7 +42,7 @@ GroupNormFusion .. code-block:: c :linenos: - :emphasize-lines: 17 + :emphasize-lines: 17-19 // FT78NE 多核示例 #include @@ -76,7 +76,7 @@ GroupNormFusion .. code-block:: c :linenos: - :emphasize-lines: 16 + :emphasize-lines: 16-18 // MT7004 单核示例 #include diff --git a/master/html/_sources/functionlib/dsplib/hashtablelookup.rst.txt b/master/html/_sources/functionlib/dsplib/hashtablelookup.rst.txt new file mode 100644 index 0000000..5ff11fe --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/hashtablelookup.rst.txt @@ -0,0 +1,105 @@ +HashtableLookup +================= + +根据输入的键值在已排序的键数组中执行二分查找,返回对应的字符串值以及查找命中标记。 + +虽然名为 `HashtableLookup`,但实际使用二分查找(`bsearch`)算法,而非哈希表。要求 `keys_tensor` 必须已按升序排序。 + +.. math:: + + \forall i \in [0, input\_size), \quad + \begin{cases} + \text{if } \exists j \in [0, keys\_size) \text{ s.t. } keys[j] = input[i], & + \begin{cases} + output[i] \leftarrow values[j] \\ + hits[i] \leftarrow 1 + \end{cases} \\[10pt] + \text{else}, & + \begin{cases} + output[i] \leftarrow \text{空字符串} \\ + hits[i] \leftarrow 0 + \end{cases} + \end{cases} + +输入: + - **input_tensor** - 要查找的键数组地址(int32类型)。 + - **keys_tensor** - 已排序的键数组地址(int32类型,必须按升序排序)。 + - **values_tensor** - 值数组地址(字符串tensor,与keys_tensor一一对应)。 + - **input_size** - 输入键数组的元素个数。 + - **keys_size** - 键数组的元素个数(等于values_tensor中字符串的个数)。 + - **core_mask(可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output_tensor** - 查找结果输出地址(字符串tensor,与input_tensor长度相同)。 + - **hits_tensor** - 命中标记输出地址(uint8类型,1表示找到,0表示未找到)。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int32键类型,字符串值类型 + - MT7004 支持int32键类型,字符串值类型 + - keys_tensor 必须已按升序排序,否则查找结果不正确 + - 使用二分查找算法,时间复杂度为 O(log n) + - 如果查找失败,output_tensor 对应位置为空字符串,hits_tensor 对应位置为0 + +**共享存储版本:** + +.. c:function:: void i32_hashtablelookup_s(int* input_tensor, int* keys_tensor, void* values_tensor, void* output_tensor, uint8_t* hits_tensor, int input_size, int keys_size, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 15-17 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + int *input_tensor = (int *)0xA0000000; //input在DDR空间 + int *keys_tensor = (int *)0xB0000000; //已排序的键数组 + void *values_tensor = (void *)0xC0000000; //字符串值数组 + void *output_tensor = (void *)0xD0000000; //输出字符串数组 + uint8_t *hits_tensor = (uint8_t *)0xE0000000; //命中标记数组 + int input_size = 100; //输入键的个数 + int keys_size = 50; //键值对的个数 + int core_mask = 0xff; + + i32_hashtablelookup_s(input_tensor, keys_tensor, values_tensor, + output_tensor, hits_tensor, input_size, + keys_size, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i32_hashtablelookup_p(int* input_tensor, int* keys_tensor, void* values_tensor, void* output_tensor, uint8_t* hits_tensor, int input_size, int keys_size) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 14-16 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + int *input_tensor = (int *)0x10810000; //input在L2空间 + int *keys_tensor = (int *)0x10820000; //已排序的键数组 + void *values_tensor = (void *)0x10830000; //字符串值数组 + void *output_tensor = (void *)0x10840000; //输出字符串数组 + uint8_t *hits_tensor = (uint8_t *)0x10850000; //命中标记数组 + int input_size = 100; //输入键的个数 + int keys_size = 50; //键值对的个数 + + i32_hashtablelookup_p(input_tensor, keys_tensor, values_tensor, + output_tensor, hits_tensor, input_size, + keys_size); + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/instancenorm.rst.txt b/master/html/_sources/functionlib/dsplib/instancenorm.rst.txt new file mode 100644 index 0000000..a798a0e --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/instancenorm.rst.txt @@ -0,0 +1,111 @@ +InstanceNorm +================= + + + +对输入张量按 **实例(Instance)+ 通道(Channel)** 维度执行归一化操作。 +该算子在每个样本的每个通道内,基于 ``inner_size`` 维度计算均值与方差, +并结合可学习参数 ``gamma`` 与 ``beta`` 完成缩放与偏移。 + +.. math:: + + \mu_{b,c} = \frac{1}{N} \sum_{i=1}^{N} x_{b,c,i} + + \sigma^2_{b,c} = \frac{1}{N} \sum_{i=1}^{N} x_{b,c,i}^2 - \mu_{b,c}^2 + + y_{b,c,i} = \left( \frac{x_{b,c,i} - \mu_{b,c}}{\sqrt{\sigma^2_{b,c} + \epsilon}} \right) + \cdot \gamma_c + \beta_c + +其中: + +- :math:`b` 表示 batch 维度 +- :math:`c` 表示通道维度 +- :math:`i` 表示 ``inner_size`` 维度 +- :math:`\gamma_c`、:math:`\beta_c` 为通道级缩放与偏移参数 + +输入: + - **input** - 输入数据地址,形状为 ``[batch, channel, inner_size]``。 + - **gamma** - 缩放参数地址,长度为 ``channel``。 + - **beta** - 偏移参数地址,长度为 ``channel``。 + - **batch** - batch 数。 + - **channel** - 通道数。 + - **inner_size** - 每个通道内的归一化长度。 + - **epsilon** - 数值稳定因子。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - InstanceNorm 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 ``fp32`` 类型 + - MT7004 支持 ``fp16``、``fp32`` 类型 + - 归一化统计量仅在单个样本、单个通道内计算 + +**共享存储版本:** + +.. c:function:: void fp_instancenorm_s(float* input, float* gamma, float* beta, float* output, int batch, int channel, int inner_size, float epsilon, int core_mask) +.. c:function:: void hp_instancenorm_s(half* input, half* gamma, half* beta, half* output, int batch, int channel, int inner_size, float epsilon, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17-18 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input 在 DDR 空间 + float *output = (float *)0xC0000000; + float *gamma = (float *)0xA1000000; + float *beta = (float *)0xA2000000; + + int batch = 4; + int channel = 64; + int inner_size = 256; + float epsilon = 1e-5f; + int core_mask = 0xff; + + fp_instancenorm_s(input, gamma, beta, output, + batch, channel, inner_size, epsilon, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_instancenorm_p(float* input, float* gamma, float* beta, float* output, int batch, int channel, int inner_size, float epsilon) +.. c:function:: void hp_instancenorm_p(half* input, half* gamma, half* beta, half* output, int batch, int channel, int inner_size, float epsilon) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16-17 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10810000; // input 在 L2 空间 + float *output = (float *)0x10820000; + float *gamma = (float *)0x10830000; + float *beta = (float *)0x10840000; + + int batch = 4; + int channel = 64; + int inner_size = 256; + float epsilon = 1e-5f; + + fp_instancenorm_p(input, gamma, beta, output, + batch, channel, inner_size, epsilon); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/invertpermutation.rst.txt b/master/html/_sources/functionlib/dsplib/invertpermutation.rst.txt new file mode 100644 index 0000000..a468155 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/invertpermutation.rst.txt @@ -0,0 +1,79 @@ +InvertPermutation +================= + + + +计算输入排列的逆排列。对于输入数组 ``input``,输出数组 ``output`` 满足: + +.. math:: + + output[input_i] = i + \quad \text{for } i = 0, 1, \dots, num-1 + +输入: + - **input** - 输入排列数组地址。 + - **num** - 数组长度。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 逆排列数组地址,长度同输入。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32 + - MT7004 支持int16, int32 + +**共享存储版本:** + +.. c:function:: void i8_invertpermutation_s(int8_t* input, int8_t* output, int num, int core_mask) +.. c:function:: void i16_invertpermutation_s(int16_t* input, int16_t* output, int num, int core_mask) +.. c:function:: void i32_invertpermutation_s(int32_t* input, int32_t* output, int num, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + + int main() { + int32_t *input = (int32_t *)0xA0000000; // input在DDR空间 + int32_t *output = (int32_t *)0xC0000000; + int num = 100; + int core_mask = 0xff; + + i32_invertpermutation_s(input, output, num, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_invertpermutation_p(int8_t* input, int8_t* output, int num) +.. c:function:: void i16_invertpermutation_p(int16_t* input, int16_t* output, int num) +.. c:function:: void i32_invertpermutation_p(int32_t* input, int32_t* output, int num) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main() { + int32_t *input = (int32_t *)0x10810000; // input在L2空间 + int32_t *output = (int32_t *)0x10820000; + int num = 100; + + i32_invertpermutation_p(input, output, num); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/isfinite.rst.txt b/master/html/_sources/functionlib/dsplib/isfinite.rst.txt new file mode 100644 index 0000000..a21ec92 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/isfinite.rst.txt @@ -0,0 +1,86 @@ +Isfinite +================= + + +逐元素判断输入数据是否为有限数(既不是无穷大也不是 NaN)。 + +.. math:: + + output_i = \begin{cases} + 1, & \text{if } isfinite(Input_i) \\ + 0, & \text{otherwise} + \end{cases} + +输入: + - Input - 输入数据地址。 + - length - 计算长度(对于复数类型,指复数的个数)。 + - core_mask - 核掩码(仅共享存储版本需要)。 + +输出: + - output - 计算结果地址。0表示不是有限数,1表示是有限数。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_isfinite_s(int8_t* Input, int* output, int length, int core_mask) +.. c:function:: void i16_isfinite_s(int16_t* Input, int* output, int length, int core_mask) +.. c:function:: void i32_isfinite_s(int32_t* Input, int* output, int length, int core_mask) +.. c:function:: void hp_isfinite_s(half* Input, int* output, int length, int core_mask) +.. c:function:: void fp_isfinite_s(float* Input, int* output, int length, int core_mask) +.. c:function:: void dp_isfinite_s(double* Input, int* output, int length, int core_mask) +.. c:function:: void c64_isfinite_s(float* Input, int* output, int length, int core_mask) +.. c:function:: void c128_isfinite_s(double* Input, int* output, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 9 + + //FT78NE示例 + #include + #include // 假设头文件名为 isfinite.h + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; //input在DDR空间 + int *output = (int *)0xC0000000; + int length = 1000; + int core_mask = 0xff; + fp_isfinite_s(input, output, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_isfinite_p(int8_t* Input, int* output, int length) +.. c:function:: void i16_isfinite_p(int16_t* Input, int* output, int length) +.. c:function:: void i32_isfinite_p(int32_t* Input, int* output, int length) +.. c:function:: void hp_isfinite_p(half* Input, int* output, int length) +.. c:function:: void fp_isfinite_p(float* Input, int* output, int length) +.. c:function:: void dp_isfinite_p(double* Input, int* output, int length) +.. c:function:: void c64_isfinite_p(float* Input, int* output, int length) +.. c:function:: void c128_isfinite_p(double* Input, int* output, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 8 + + //FT78NE示例 + #include + #include // 假设头文件名为 isfinite.h + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; //input在L2空间 + int *output = (int *)0x10001000; + int length = 1000; + fp_isfinite_p(input, output, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/l2norm.rst.txt b/master/html/_sources/functionlib/dsplib/l2norm.rst.txt new file mode 100644 index 0000000..7f1388e --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/l2norm.rst.txt @@ -0,0 +1,97 @@ +L2norm +================= + + + +对输入向量进行 L2 归一化,并可选择性地应用 ReLU 或 ReLU6 激活函数。该算子首先用输入向量的 L2 范数(即欧几里得长度)去除向量中的每个元素,然后应用激活函数。 + +.. math:: + + S = \sqrt{\sum_{i=0}^{N-1} Input_i^2} + + \text{temp}_i = \frac{Input_i}{S} + + output_i = \begin{cases} + \min(6, \max(0, \text{temp}_i)), & \text{if } \text{is\_relu6} = 1 \\ + \max(0, \text{temp}_i), & \text{if } \text{is\_relu} = 1 \\ + \text{temp}_i, & \text{otherwise} + \end{cases} + +输入: + - **Input** - 输入数据地址。 + - **sqrt_sum** - 输入向量的 L2 范数(模),需要预先计算好。 + - **length** - 计算长度。 + - **is_relu** - 是否进行 ReLU 操作的标志(0或1)。 + - **is_relu6** - 是否进行 ReLU6 操作的标志(0或1)。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **Output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void hp_l2norm_s(half* Input, half* output, half sqrt_sum, int length, int is_relu, int is_relu6, int core_mask) +.. c:function:: void fp_l2norm_s(float* Input, float* output, float sqrt_sum, int length, int is_relu, int is_relu6, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16 + + //FT78NE示例 + #include + #include + #include // 假设头文件名为 l2norm.h + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; //input在DDR空间 + float *output = (float *)0xC0000000; + int length = 1024; + int core_mask = 0xff; + // 伪代码:用户需要自行计算L2范数 + float sum_of_squares = 0.0f; + for(int i=0; i + #include + #include // 假设头文件名为 l2norm.h + + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; //input在L2空间 + float *output = (float *)0x10002000; + int length = 1024; + // 伪代码:用户需要自行计算L2范数 + float sum_of_squares = 0.0f; + for(int i=0; i + #include + + int main() { + float *src = (float *)0xA0000000; // 输入在DDR空间 + float *gamma = (float *)0xA1000000; + float *beta = (float *)0xA2000000; + float *dst = (float *)0xC0000000; + float *out_mean = (float *)0xD0000000; + float *out_variance = (float *)0xD1000000; + int param_inner_size = 16; + int param_outer_size = 1; + int norm_inner_size = 16; + int norm_outer_size = 2; + float epsilon = 1e-5; + int core_mask = 0xff; + int length = 1024; + + fp_layernormfusion_s(src, gamma, beta, dst, out_mean, out_variance, param_inner_size, param_outer_size, norm_inner_size, norm_outer_size, epsilon, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_layernormfusion_p(float* src_data, float* gamma_data, float* beta_data, float* dst_data, float* out_mean, float* out_variance, int param_inner_size, int param_outer_size, int norm_inner_size, int norm_outer_size, float epsilon) +.. c:function:: void hp_layernormfusion_p(half* src_data, half* gamma_data, half* beta_data, half* dst_data, half* out_mean, half* out_variance, int param_inner_size, int param_outer_size, int norm_inner_size, int norm_outer_size, float epsilon) +.. c:function:: void i8_layernormfusion_p(int8_t* src_data, int8_t* gamma_data, int8_t* beta_data, int8_t* dst_data, float* out_mean, float* out_variance, int param_inner_size, int param_outer_size, int norm_inner_size, int norm_outer_size, float epsilon) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17 + + #include + #include + + int main() { + float *src = (float *)0x10810000; // 输入在L2空间 + float *gamma = (float *)0x10811000; + float *beta = (float *)0x10812000; + float *dst = (float *)0x10820000; + float *out_mean = (float *)0x10821000; + float *out_variance = (float *)0x10822000; + int param_inner_size = 16; + int param_outer_size = 1; + int norm_inner_size = 16; + int norm_outer_size = 2; + float epsilon = 1e-5; + + fp_layernormfusion_p(src, gamma, beta, dst, out_mean, out_variance, param_inner_size, param_outer_size, norm_inner_size, norm_outer_size, epsilon); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/layernormgrad.rst.txt b/master/html/_sources/functionlib/dsplib/layernormgrad.rst.txt new file mode 100644 index 0000000..f112280 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/layernormgrad.rst.txt @@ -0,0 +1,108 @@ +Layernormgrad +================= + + +计算 Layer Normalization 操作的梯度。该算子是 Layer Normalization 的反向传播部分,用于计算损失函数相对于输入 x、以及可学习参数 gamma 和 beta 的梯度。 + +.. math:: + + \text{dg}_i = \sum_{j} \text{dy}_j \cdot \frac{x_j - \mu}{\sqrt{\sigma^2 + \epsilon}} + + \text{db}_i = \sum_{j} \text{dy}_j + + \text{dx}_i = f(\text{dy}, x, \gamma, \mu, \sigma^2) + +其中 :math:\mu 是均值,:math:\sigma^2 是方差,:math:\epsilon 是一个为了防止除零而添加的极小值。dx 的计算较为复杂,它依赖于 dy、x 和 gamma。 + +输入: + - **x** - 前向传播时的输入数据地址。 + - **dy** - 后续层反向传播回来的梯度数据地址。 + - **var** - 前向传播时计算出的方差(variance)地址。 + - **mean** - 前向传播时计算出的均值(mean)地址。 + - **gamma** - 前向传播时使用的可学习缩放参数 :math:\gamma 地址。 + - **param_num** - 特征维度的大小,也是 gamma 和 beta 的大小。 + - **param_size** - 进行独立归一化的单元数量(例如批处理大小 Batch Size)。 + - **block_num** - 块的数量(通常等于 param_size)。 + - **block_size** - 每个块的大小(通常等于 param_num)。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **dx** - 计算出的关于输入 x 的梯度地址。 + - **dg** - 计算出的关于参数 gamma 的梯度地址。 + - **db** - 计算出的关于参数 beta 的梯度地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void hp_layernormgrad_s(half* x, half* dy, half* var, half* mean, half* gamma, int param_num, int param_size, int block_num, int block_size, half* dx, half* dg, half* db, int core_mask) +.. c:function:: void fp_layernormgrad_s(float* x, float* dy, float* var, float* mean, float* gamma, int param_num, int param_size, int block_num, int block_size, float* dx, float* dg, float* db, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 20 + + //FT78NE示例 + #include + #include // 假设头文件名为 layernormgrad.h + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + float *x = (float *)0xA0000000; + float *dy = (float *)0xA1000000; + float *var = (float *)0xA2000000; + float *mean = (float *)0xA3000000; + float *gamma = (float *)0xA4000000; + float *dx = (float *)0xB0000000; + float *dg = (float *)0xB1000000; + float *db = (float *)0xB2000000; + + int param_num = 256; // 特征维度 + int param_size = 64; // Batch Size + int core_mask = 0xff; + + fp_layernormgrad_s(x, dy, var, mean, gamma, param_num, param_size, param_size, param_num, dx, dg, db, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void hp_layernormgrad_p(half* x, half* dy, half* var, half* mean, half* gamma, int param_num, int param_size, int block_num, int block_size, half* dx, half* dg, half* db) +.. c:function:: void fp_layernormgrad_p(float* x, float* dy, float* var, float* mean, float* gamma, int param_num, int param_size, int block_num, int block_size, float* dx, float* dg, float* db) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 19 + + //FT78NE示例 + #include + #include // 假设头文件名为 layernormgrad.h + + int main(int argc, char* argv[]) { + // 假设在L2空间 + float *x = (float *)0x10000000; + float *dy = (float *)0x11000000; + float *var = (float *)0x12000000; + float *mean = (float *)0x13000000; + float *gamma = (float *)0x14000000; + float *dx = (float *)0x15000000; + float *dg = (float *)0x16000000; + float *db = (float *)0x17000000; + + int param_num = 256; // 特征维度 + int param_size = 64; // Batch Size + + fp_layernormgrad_p(x, dy, var, mean, gamma, param_num, param_size, param_size, param_num, dx, dg, db); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/less.rst.txt b/master/html/_sources/functionlib/dsplib/less.rst.txt new file mode 100644 index 0000000..2a33951 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/less.rst.txt @@ -0,0 +1,91 @@ +Less +================= + +逐元素计算第一个输入 (Input0) 的元素是否小于第二个输入 (Input1) 的对应元素。该算子支持广播机制。 + +.. math:: + + output_i = \begin{cases} + \text{True}, & \text{if } Input0_0 < Input1_i \text{ (Input0 is broadcasted)} \\ + \text{True}, & \text{if } Input0_i < Input1_0 \text{ (Input1 is broadcasted)} \\ + \text{True}, & \text{if } Input0_i < Input1_i \text{ (No broadcast)} \\ + \text{False}, & \text{otherwise} + \end{cases} + +输入: + - **Input0** - 第一个输入数据地址。 + - **Input1** - 第二个输入数据地址。 + - **length** - 计算的总长度。 + - **optimize** - 是否启用广播优化的标志。设置为1时启用。 + - **in_elements_num0** - Input0 的元素个数。当 optimize 启用时,用于判断哪个输入是标量。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **Output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64 + - MT7004 支持fp16, fp32, int16, int32 + +**共享存储版本:** + +.. c:function:: void i8_less_s(int8_t* Input0, int8_t* Input1, bool* output, int length, int optimize, int in_elements_num0, int core_mask) +.. c:function:: void i16_less_s(int16_t* Input0, int16_t* Input1, bool* output, int length, int optimize, int in_elements_num0, int core_mask) +.. c:function:: void i32_less_s(int32_t* Input0, int32_t* Input1, bool* output, int length, int optimize, int in_elements_num0, int core_mask) +.. c:function:: void hp_less_s(half* Input0, half* Input1, bool* output, int length, int optimize, int in_elements_num0, int core_mask) +.. c:function:: void fp_less_s(float* Input0, float* Input1, bool* output, int length, int optimize, int in_elements_num0, int core_mask) +.. c:function:: void dp_less_s(double* Input0, double* Input1, bool* output, int length, int optimize, int in_elements_num0, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include // 假设头文件名为 less.h + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; //input在DDR空间 + float *input1 = (float *)0xB0000000; + bool *output = (bool *)0xC0000000; + int length = 1000; + int core_mask = 0xff; + // 不使用广播,optimize=0, in_elements_num0 无意义 + fp_less_s(input0, input1, output, length, 0, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_less_p(int8_t* Input0, int8_t* Input1, bool* output, int length, int optimize, int in_elements_num0) +.. c:function:: void i16_less_p(int16_t* Input0, int16_t* Input1, bool* output, int length, int optimize, int in_elements_num0) +.. c:function:: void i32_less_p(int32_t* Input0, int32_t* Input1, bool* output, int length, int optimize, int in_elements_num0) +.. c:function:: void hp_less_p(half* Input0, half* Input1, bool* output, int length, int optimize, int in_elements_num0) +.. c:function:: void fp_less_p(float* Input0, float* Input1, bool* output, int length, int optimize, int in_elements_num0) +.. c:function:: void dp_less_p(double* Input0, double* Input1, bool* output, int length, int optimize, int in_elements_num0) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include // 假设头文件名为 less.h + int main(int argc, char* argv[]) { + float *scalar_input = (float *)0x10000000; // 标量输入 (input0) + float *array_input = (float *)0x10001000; // 数组输入 (input1) + bool *output = (bool *)0x10002000; + int length = 1000; // 数组的长度 + scalar_input = 5.0f; // 设置标量值 + // 启用广播,比较一个标量和一个数组 + fp_less_p(scalar_input, array_input, output, length, 1, 1); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/lessequal.rst.txt b/master/html/_sources/functionlib/dsplib/lessequal.rst.txt new file mode 100644 index 0000000..4f70f7f --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/lessequal.rst.txt @@ -0,0 +1,91 @@ +Lessequal +================= + +逐元素计算第一个输入 (Input0) 的元素是否小于或等于第二个输入 (Input1) 的对应元素。该算子支持广播机制。 + +.. math:: + + output_i = \begin{cases} + \text{True}, & \text{if } Input0_0 \le Input1_i \text{ (Input0 is broadcasted)} \\ + \text{True}, & \text{if } Input0_i \le Input1_0 \text{ (Input1 is broadcasted)} \\ + \text{True}, & \text{if } Input0_i \le Input1_i \text{ (No broadcast)} \\ + \text{False}, & \text{otherwise} + \end{cases} + +输入: + - **Input0** - 第一个输入数据地址。 + - **Input1** - 第二个输入数据地址。 + - **length** - 计算的总长度。 + - **optimize** - 是否启用广播优化的标志。设置为1时启用。 + - **in_elements_num0** - Input0 的元素个数。当 optimize 启用时,用于判断哪个输入是标量。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **Output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64 + - MT7004 支持fp16, fp32, int16, int32 + +**共享存储版本:** + +.. c:function:: void i8_lessequal_s(int8_t* Input0, int8_t* Input1, bool* output, int length, int optimize, int in_elements_num0, int core_mask) +.. c:function:: void i16_lessequal_s(int16_t* Input0, int16_t* Input1, bool* output, int length, int optimize, int in_elements_num0, int core_mask) +.. c:function:: void i32_lessequal_s(int32_t* Input0, int32_t* Input1, bool* output, int length, int optimize, int in_elements_num0, int core_mask) +.. c:function:: void hp_lessequal_s(half* Input0, half* Input1, bool* output, int length, int optimize, int in_elements_num0, int core_mask) +.. c:function:: void fp_lessequal_s(float* Input0, float* Input1, bool* output, int length, int optimize, int in_elements_num0, int core_mask) +.. c:function:: void dp_lessequal_s(double* Input0, double* Input1, bool* output, int length, int optimize, int in_elements_num0, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include // 假设头文件名为 less.h + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; //input在DDR空间 + float *input1 = (float *)0xB0000000; + bool *output = (bool *)0xC0000000; + int length = 1000; + int core_mask = 0xff; + // 不使用广播,optimize=0, in_elements_num0 无意义 + fp_lessequal_s(input0, input1, output, length, 0, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_lessequal_p(int8_t* Input0, int8_t* Input1, bool* output, int length, int optimize, int in_elements_num0) +.. c:function:: void i16_lessequal_p(int16_t* Input0, int16_t* Input1, bool* output, int length, int optimize, int in_elements_num0) +.. c:function:: void i32_lessequal_p(int32_t* Input0, int32_t* Input1, bool* output, int length, int optimize, int in_elements_num0) +.. c:function:: void hp_lessequal_p(half* Input0, half* Input1, bool* output, int length, int optimize, int in_elements_num0) +.. c:function:: void fp_lessequal_p(float* Input0, float* Input1, bool* output, int length, int optimize, int in_elements_num0) +.. c:function:: void dp_lessequal_p(double* Input0, double* Input1, bool* output, int length, int optimize, int in_elements_num0) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include // 假设头文件名为 less.h + int main(int argc, char* argv[]) { + float *scalar_input = (float *)0x10000000; // 标量输入 (input0) + float *array_input = (float *)0x10001000; // 数组输入 (input1) + bool *output = (bool *)0x10002000; + int length = 1000; // 数组的长度 + scalar_input = 5.0f; // 设置标量值 + // 启用广播,比较一个标量和一个数组 + fp_lessequal_p(scalar_input, array_input, output, length, 1, 1); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/linspace.rst.txt b/master/html/_sources/functionlib/dsplib/linspace.rst.txt index ba87351..1984dc4 100644 --- a/master/html/_sources/functionlib/dsplib/linspace.rst.txt +++ b/master/html/_sources/functionlib/dsplib/linspace.rst.txt @@ -32,7 +32,7 @@ LinSpace .. code-block:: c :linenos: - :emphasize-lines: 10 + :emphasize-lines: 9 #include @@ -54,7 +54,7 @@ LinSpace .. code-block:: c :linenos: - :emphasize-lines: 9 + :emphasize-lines: 8 #include diff --git a/master/html/_sources/functionlib/dsplib/log.rst.txt b/master/html/_sources/functionlib/dsplib/log.rst.txt new file mode 100644 index 0000000..a5a525e --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/log.rst.txt @@ -0,0 +1,85 @@ +Log +================= + +逐元素计算自然对数(以 :math:`e` 为底)的对数函数。 + +.. math:: + + \text{output}_i = \ln(\text{input}_i) + +其中 :math:`\ln(\cdot)` 表示自然对数函数。 +当输入值小于等于 0 时,结果的行为依赖于具体平台和实现(可能产生 ``-inf`` 或 ``NaN``)。 + +输入: + - **input** - 输入张量的数据地址。 + - **length** - 输入张量的总元素数量。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出张量的数据地址,其大小与 ``input`` 相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型:fp32 + - MT7004 支持的数据类型:fp16, fp32 + + +**共享存储版本:** + +.. c:function:: void fp_log_s(float* input, float* output, int length, int core_mask) +.. c:function:: void hp_log_s(half* input, half* output, int length, int core_mask) +.. c:function:: void i16_log_s(int16_t* input, float* output, int length, int core_mask) +.. c:function:: void i32_log_s(int* input, float* output, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + // FT78NE 多核示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input 在 DDR 空间 + float *output = (float *)0xB0000000; // output 在 DDR 空间 + + int length = 4096; + int core_mask = 0xff; + + fp_log_s(input, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_log_p(float* input, float* output, int length) +.. c:function:: void hp_log_p(half* input, half* output, int length) +.. c:function:: void i16_log_p(int16_t* input, float* output, int length) +.. c:function:: void i32_log_p(int* input, float* output, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + // FT78NE 单核示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; // input 在 L2 空间 + float *output = (float *)0x11000000; // output 在 L2 空间 + + int length = 1024; + + fp_log_p(input, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/log1p.rst.txt b/master/html/_sources/functionlib/dsplib/log1p.rst.txt new file mode 100644 index 0000000..4d1eb82 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/log1p.rst.txt @@ -0,0 +1,78 @@ +Log1p +================= + +逐元素计算 log(1 + x) 的值,其中 x 是输入元素。该函数在 x 的值接近于零时,比直接计算 log(1 + x) 能够提供更高的精度。 + +.. math:: + + output_i = \ln(1 + Input_i) + +输入: + - **Input** - 输入数据地址。 + - **length** - 计算长度。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **Output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64 + - MT7004 支持fp16, fp32, int16, int32 + +**共享存储版本:** + +.. c:function:: void i8_log1p_s(int8_t* Input, float* output, int length, int core_mask) +.. c:function:: void i16_log1p_s(int16_t* Input, float* output, int length, int core_mask) +.. c:function:: void i32_log1p_s(int32_t* Input, float* output, int length, int core_mask) +.. c:function:: void hp_log1p_s(half* Input, half* output, int length, int core_mask) +.. c:function:: void fp_log1p_s(float* Input, float* output, int length, int core_mask) +.. c:function:: void dp_log1p_s(double* Input, double* output, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 9 + + //FT78NE示例 + #include + #include // 假设头文件名为 log1p.h + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; //input在DDR空间 + float *output = (float *)0xC0000000; + int length = 1000; + int core_mask = 0xff; + fp_log1p_s(input, output, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_log1p_p(int8_t* Input, float* output, int length) +.. c:function:: void i16_log1p_p(int16_t* Input, float* output, int length) +.. c:function:: void i32_log1p_p(int32_t* Input, float* output, int length) +.. c:function:: void hp_log1p_p(half* Input, half* output, int length) +.. c:function:: void fp_log1p_p(float* Input, float* output, int length) +.. c:function:: void dp_log1p_p(double* Input, double* output, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 8 + + //FT78NE示例 + #include + #include // 假设头文件名为 log1p.h + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; //input在L2空间 + float *output = (float *)0x10001000; + int length = 1000; + fp_log1p_p(input, output, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/loggrad.rst.txt b/master/html/_sources/functionlib/dsplib/loggrad.rst.txt new file mode 100644 index 0000000..6b3fb7e --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/loggrad.rst.txt @@ -0,0 +1,93 @@ +LogGrad +================= + + +计算对数函数(Log)的梯度。 + +该算子用于反向传播阶段,依据链式法则, +将上游梯度与 Log 输入张量进行逐元素相除, +其数学表达式如下: + +.. math:: + + \text{output}_i = \frac{\text{input0}_i}{\text{input1}_i} + +其中: + - ``input0`` 表示上游梯度(dY) + - ``input1`` 表示 Log 算子的输入(X) + + +输入: + - **input0** - 上游梯度张量的数据地址。 + - **input1** - Log 算子前向输入张量的数据地址。 + - **length** - 输入张量的总元素数量。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出梯度张量的数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型:fp32 + - MT7004 支持的数据类型:fp16, fp32 + - 当 ``input1`` 中存在 0 或极小值时,结果可能产生 ``±∞`` 或 ``NaN``,需由上层框架保证输入合法性 + + +**共享存储版本:** + +.. c:function:: void fp_log_grad_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void hp_log_grad_s(half* input0, half* input1, half* output, int length, int core_mask) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + // FT78NE 多核示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; // 上游梯度 + float *input1 = (float *)0xA0100000; // Log 前向输入 + float *output = (float *)0xB0000000; // 输出梯度 + + int length = 4096; + int core_mask = 0xff; + + fp_log_grad_s(input0, input1, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_log_grad_p(float* input0, float* input1, float* output, int length) +.. c:function:: void hp_log_grad_p(half* input0, half* input1, half* output, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + // MT7004 单核示例 + #include + #include + + int main(int argc, char* argv[]) { + half *input0 = (half *)0x10000000; + half *input1 = (half *)0x10010000; + half *output = (half *)0x10020000; + + int length = 1024; + + hp_log_grad_p(input0, input1, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/logical_not.rst.txt b/master/html/_sources/functionlib/dsplib/logical_not.rst.txt new file mode 100644 index 0000000..165e8fc --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/logical_not.rst.txt @@ -0,0 +1,81 @@ +LogicalNot +================= + +对输入数据执行逐元素逻辑非(Logical NOT)运算。对于输入中的每个元素,如果元素值为 0(即为 False),则输出结果为 1(或该类型的 True 值);如果元素值为非 0(即为 True),则输出为 0。 + +.. math:: + + output_i = \neg (input_i \neq 0) + +输入: + - **input** - 输入数据地址。 + - **length** - 计算长度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持:int8 (i8), int16 (i16), int32 (i32), fp32 (fp), fp64 (dp) + - MT7004 支持:int16 (i16), int32 (i32), fp16 (hp), fp32 (fp) + - 输出结果的数据类型通常与输入数据类型保持一致。 + - 逻辑判断准则:0 值视为 False,任何非 0 值均视为 True。 + +**共享存储版本:** + +.. c:function:: void i8_logical_not_s(int8_t* input, int8_t* output, int length, int core_mask) +.. c:function:: void i16_logical_not_s(int16_t* input, int16_t* output, int length, int core_mask) +.. c:function:: void i32_logical_not_s(int32_t* input, int32_t* output, int length, int core_mask) +.. c:function:: void hp_logical_not_s(half* input, half* output, int length, int core_mask) +.. c:function:: void fp_logical_not_s(float* input, float* output, int length, int core_mask) +.. c:function:: void dp_logical_not_s(double* input, double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + // FT78NE 示例(共享存储多核并行) + #include + #include "78NE/utils.h" + + int main(int argc, char* argv[]) { + float *in = (float *)0xA0000000; // 输入在共享存储空间 + float *out = (float *)0xB0000000; // 输出在共享存储空间 + int length = 960001; + int core_mask = 0b1011; // 使用指定的核心掩码 + fp_logical_not_s(in, out, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_logical_not_p(int8_t* input, int8_t* output, int length) +.. c:function:: void i16_logical_not_p(int16_t* input, int16_t* output, int length) +.. c:function:: void i32_logical_not_p(int32_t* input, int32_t* output, int length) +.. c:function:: void hp_logical_not_p(half* input, half* output, int length) +.. c:function:: void fp_logical_not_p(float* input, float* output, int length) +.. c:function:: void dp_logical_not_p(double* input, double* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 9 + + // MT7004 示例(私有存储单核) + #include + + int main(int argc, char* argv[]) { + // 输入和输出均位于私有存储空间 + int *in = (int *)0x10000000; + int *out = (int *)0x10001000; + int length = 1024; + i32_logical_not_p(in, out, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/logical_or.rst.txt b/master/html/_sources/functionlib/dsplib/logical_or.rst.txt new file mode 100644 index 0000000..72912f0 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/logical_or.rst.txt @@ -0,0 +1,84 @@ +LogicalOr +================= + +对两个输入数据执行逐元素逻辑或(Logical OR)运算。对于输入中的每个元素,如果两个对应的输入元素中至少有一个不为 0(即为 True),则输出结果为 1(或该类型的 True 值);如果两者均为 0,则输出为 0。 + +.. math:: + + output_i = (input0_i \neq 0) \lor (input1_i \neq 0) + +输入: + - **input0** - 第一个输入数据地址。 + - **input1** - 第二个输入数据地址。 + - **length** - 计算长度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持:int8 (i8), int16 (i16), int32 (i32), fp32 (fp), fp64 (dp) + - MT7004 支持:int16 (i16), int32 (i32), fp16 (hp), fp32 (fp) + - 输出结果的数据类型通常与输入数据类型保持一致。 + - 逻辑判断准则:非 0 值视为 True,0 值视为 False。 + +**共享存储版本:** + +.. c:function:: void i8_logical_or_s(int8_t* input0, int8_t* input1, int8_t* output, int length, int core_mask) +.. c:function:: void i16_logical_or_s(int16_t* input0, int16_t* input1, int16_t* output, int length, int core_mask) +.. c:function:: void i32_logical_or_s(int32_t* input0, int32_t* input1, int32_t* output, int length, int core_mask) +.. c:function:: void hp_logical_or_s(half* input0, half* input1, half* output, int length, int core_mask) +.. c:function:: void fp_logical_or_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void dp_logical_or_s(double* input0, double* input1, double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + // FT78NE 示例(共享存储多核并行) + #include + #include "78NE/utils.h" + + int main(int argc, char* argv[]) { + int32_t *in0 = (int32_t *)0xA0000000; // 输入0在共享存储空间 + int32_t *in1 = (int32_t *)0xA1000000; // 输入1在共享存储空间 + int32_t *out = (int32_t *)0xB0000000; // 输出在共享存储空间 + int length = 960001; + int core_mask = 0b1011; // 指定参加计算的核心 + i32_logical_or_s(in0, in1, out, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_logical_or_p(int8_t* input0, int8_t* input1, int8_t* output, int length) +.. c:function:: void i16_logical_or_p(int16_t* input0, int16_t* input1, int16_t* output, int length) +.. c:function:: void i32_logical_or_p(int32_t* input0, int32_t* input1, int32_t* output, int length) +.. c:function:: void hp_logical_or_p(half* input0, half* input1, half* output, int length) +.. c:function:: void fp_logical_or_p(float* input0, float* input1, float* output, int length) +.. c:function:: void dp_logical_or_p(double* input0, double* input1, double* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + // MT7004 示例(私有存储单核) + #include + + int main(int argc, char* argv[]) { + // 输入和输出均位于私有存储空间 + float *in0 = (float *)0x10000000; + float *in1 = (float *)0x10001000; + float *out = (float *)0x10002000; + int length = 1024; + fp_logical_or_p(in0, in1, out, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/logicaland.rst.txt b/master/html/_sources/functionlib/dsplib/logicaland.rst.txt new file mode 100644 index 0000000..31cbbec --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/logicaland.rst.txt @@ -0,0 +1,101 @@ +LogicalAnd +================= + + +逐元素执行逻辑与(Logical AND)运算。 + +对输入张量的对应元素先进行布尔化判断,再执行逻辑与运算,输出结果为 0 或 1, +并以与输入相同的数据类型返回。 + +.. math:: + + \text{output}_i = + \begin{cases} + 1, & \text{if } (\text{input0}_i \neq 0) \land (\text{input1}_i \neq 0) \\ + 0, & \text{otherwise} + \end{cases} + + +输入: + - **input0** - 第一个输入张量的数据地址。 + - **input1** - 第二个输入张量的数据地址。 + - **length** - 输入张量的总元素数量。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出张量的数据地址,其大小与 ``input0``、``input1`` 相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型:fp32, fp64, int8, int16, int32 + - MT7004 支持的数据类型:fp16, fp32, int16, int32 + - 输入值在参与逻辑运算前会被转换为布尔值(非 0 为 true,0 为 false) + - 输出结果仅为 0 或 1 + + +**共享存储版本:** + +.. c:function:: void fp_and_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void dp_and_s(double* input0, double* input1, double* output, int length, int core_mask) +.. c:function:: void i8_and_s(int8_t* input0, int8_t* input1, int8_t* output, int length, int core_mask) +.. c:function:: void i16_and_s(int16_t* input0, int16_t* input1, int16_t* output, int length, int core_mask) +.. c:function:: void i32_and_s(int32_t* input0, int32_t* input1, int32_t* output, int length, int core_mask) +.. c:function:: void hp_and_s(half* input0, half* input1, half* output, int length, int core_mask) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + // FT78NE 多核示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; // input0 在 DDR 空间 + float *input1 = (float *)0xA0010000; // input1 在 DDR 空间 + float *output = (float *)0xB0000000; // output 在 DDR 空间 + + int length = 4096; + int core_mask = 0xff; + + fp_and_s(input0, input1, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_and_p(float* input0, float* input1, float* output, int length) +.. c:function:: void dp_and_p(double* input0, double* input1, double* output, int length) +.. c:function:: void i8_and_p(int8_t* input0, int8_t* input1, int8_t* output, int length) +.. c:function:: void i16_and_p(int16_t* input0, int16_t* input1, int16_t* output, int length) +.. c:function:: void i32_and_p(int32_t* input0, int32_t* input1, int32_t* output, int length) +.. c:function:: void hp_and_p(half* input0, half* input1, half* output, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + // MT7004 单核示例 + #include + #include + + int main(int argc, char* argv[]) { + half *input0 = (half *)0x10000000; // input0 在 L2 空间 + half *input1 = (half *)0x10002000; // input1 在 L2 空间 + half *output = (half *)0x10010000; // output 在 L2 空间 + + int length = 1024; + + hp_and_p(input0, input1, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/logsoftmax.rst.txt b/master/html/_sources/functionlib/dsplib/logsoftmax.rst.txt new file mode 100644 index 0000000..2ae0eeb --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/logsoftmax.rst.txt @@ -0,0 +1,94 @@ +LogSoftmax +================= + + + +对输入数组沿指定维度进行 Log-Softmax 计算,输出每个元素的对数概率值。 + +.. math:: + + \text{output}_{i} = \log\frac{\exp(\text{input}_{i})}{\sum_j \exp(\text{input}_j)} + \quad \text{for elements along the given axis} + +输入: + - **input_ptr** - 输入数据地址。 + - **axis** - 归一化的轴。 + - **n_dim** - 输入张量维度。 + - **inner_size** - 内部尺寸(轴之后的元素个数)。 + - **outter_size** - 外部尺寸(轴之前的元素个数)。 + - **axis_size** - 归一化轴的元素数量。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + - **sum_data** - 中间累加存储地址(用于存放指数和)。 + +输出: + - **output_ptr** - Log-Softmax 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp, int8 + - MT7004 支持hp, fp + +**共享存储版本:** + +.. c:function:: void fp_logsoftmax_s(float* input_ptr, float* output_ptr, float* sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size, int core_mask) +.. c:function:: void hp_logsoftmax_s(half* input_ptr, half* output_ptr, half* sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size, int core_mask) +.. c:function:: void i8_logsoftmax_s(int8_t* input_ptr, int8_t* output_ptr, float* sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16 + + //FT78NE示例 + #include + #include + + int main() { + float *input = (float *)0xA0000000; // input在DDR空间 + float *output = (float *)0xC0000000; + float *sum_data = (float *)0xD0000000; + int axis = 1; + int n_dim = 3; + int inner_size = 4; + int outter_size = 2; + int axis_size = 3; + int core_mask = 0xff; + + fp_logsoftmax_s(input, output, sum_data, axis, n_dim, inner_size, outter_size, axis_size, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_logsoftmax_p(float* input_ptr, float* output_ptr, float* sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size) +.. c:function:: void hp_logsoftmax_p(half* input_ptr, half* output_ptr, half* sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size) +.. c:function:: void i8_logsoftmax_p(int8_t* input_ptr, int8_t* output_ptr, float* sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + //FT78NE示例 + #include + #include + + int main() { + float *input = (float *)0x10810000; // input在L2空间 + float *output = (float *)0x10820000; + float *sum_data = (float *)0x10830000; + int axis = 1; + int n_dim = 3; + int inner_size = 4; + int outter_size = 2; + int axis_size = 3; + + fp_logsoftmax_p(input, output, sum_data, axis, n_dim, inner_size, outter_size, axis_size); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/lpnormalization.rst.txt b/master/html/_sources/functionlib/dsplib/lpnormalization.rst.txt new file mode 100644 index 0000000..3c415da --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/lpnormalization.rst.txt @@ -0,0 +1,113 @@ +LpNormalization +================= + + + +对输入张量按 **实例(Instance)+ 通道(Channel)** 维度执行 Lp 归一化操作。 +该算子在每个样本的每个通道内,基于 ``inner_size`` 维度计算 Lp 范数, +并结合可学习参数 ``gamma`` 与 ``beta`` 完成缩放与偏移。 + +.. math:: + + \text{norm}_{b,c} = \left( \sum_{i=1}^{N} |x_{b,c,i}|^p + \epsilon \right)^{\frac{1}{p}} + + y_{b,c,i} = \frac{x_{b,c,i}}{\text{norm}_{b,c}} \cdot \gamma_c + \beta_c + +其中: + +- :math:`b` 表示 batch 维度 +- :math:`c` 表示通道维度 +- :math:`i` 表示 ``inner_size`` 维度 +- :math:`p` 为范数阶数 +- :math:`\gamma_c`、:math:`\beta_c` 为通道级缩放与偏移参数 + +输入: + - **input** - 输入数据地址,形状为 ``[batch, channel, inner_size]``。 + - **gamma** - 缩放参数地址,长度为 ``channel``。 + - **beta** - 偏移参数地址,长度为 ``channel``。 + - **p** - Lp 范数阶数。 + - **batch** - batch 数。 + - **channel** - 通道数。 + - **inner_size** - 每个通道内的归一化长度。 + - **epsilon** - 数值稳定因子。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - LpNormalization 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 ``fp32`` 类型 + - MT7004 支持 ``fp16``、``fp32`` 类型 + - 归一化统计量仅在单个样本、单个通道内计算 + - ``p`` 为浮点数,可用于 L1、L2 等不同范数形式 + +**共享存储版本:** + +.. c:function:: void fp_lpnorm_s(float* input, float* gamma, float* beta, float* output, float p, int batch, int channel, int inner_size, float epsilon, int core_mask) +.. c:function:: void hp_lpnorm_s(half* input, half* gamma, half* beta, half* output, float p, int batch, int channel, int inner_size, float epsilon, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 18-19 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input 在 DDR 空间 + float *output = (float *)0xC0000000; + float *gamma = (float *)0xA1000000; + float *beta = (float *)0xA2000000; + + int batch = 4; + int channel = 64; + int inner_size = 256; + float p = 2.0f; + float epsilon = 1e-6f; + int core_mask = 0xff; + + fp_lpnorm_s(input, gamma, beta, output, + p, batch, channel, inner_size, epsilon, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_lpnorm_p(float* input, float* gamma, float* beta, float* output, float p, int batch, int channel, int inner_size, float epsilon) +.. c:function:: void hp_lpnorm_p(half* input, half* gamma, half* beta, half* output, float p, int batch, int channel, int inner_size, float epsilon) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17-18 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10810000; // input 在 L2 空间 + float *output = (float *)0x10820000; + float *gamma = (float *)0x10830000; + float *beta = (float *)0x10840000; + + int batch = 4; + int channel = 64; + int inner_size = 256; + float p = 2.0f; + float epsilon = 1e-6f; + + fp_lpnorm_p(input, gamma, beta, output, + p, batch, channel, inner_size, epsilon); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/lrn.rst.txt b/master/html/_sources/functionlib/dsplib/lrn.rst.txt new file mode 100644 index 0000000..4f978d7 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/lrn.rst.txt @@ -0,0 +1,87 @@ +Lrn +================= + +执行局部响应归一化 (Local Response Normalization)。 + +.. math:: + + \text{output}_{i,j} = \text{input}_{i,j} \times \left( \text{bias} + \alpha \sum_{k=\max(0, j-d)}^{\min(C-1, j+d)} (\text{input}_{i,k})^2 \right)^{-\beta} + +其中,i 遍历每个 out_size 维度,j 表示当前通道,d 是 depth_radius,C 是总通道数 channel, :math:\alpha 和 :math:\beta 是缩放因子。 + +输入: + - **input** - 输入张量数据地址,其逻辑布局为 (out_size, channel)。 + - **out_size** - 空间/批处理维度的乘积 (例如 N*H*W)。 + - **channel** - 通道数 (C)。 + - **depth_radius** - 归一化窗口的半径。总的窗口大小为 2 * depth_radius + 1。 + - **alpha** - 缩放因子 :math:\alpha。 + - **beta** - 指数 :math:\beta。 + - **bias** - 偏置项。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **Output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void hp_lrn_s(half* input, half* output, int out_size, int channel, int depth_radius, float alpha, float beta, float bias, int core_mask) +.. c:function:: void fp_lrn_s(float* input, float* output, int out_size, int channel, int depth_radius, float alpha, float beta, float bias, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + //FT78NE示例 + #include + #include // 假设头文件名为 lrn.h + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; //input在DDR空间 + float *output = (float *)0xC0000000; + int out_size = 256; // 例如 N*H*W + int channel = 96; + int depth_radius = 5; + float alpha = 0.0001f; + float beta = 0.75f; + float bias = 1.0f; + int core_mask = 0xff; + fp_lrn_s(input, output, out_size, channel, depth_radius, alpha, beta, bias, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void hp_lrn_p(half* input, half* output, int out_size, int channel, int depth_radius, float alpha, float beta, float bias) +.. c:function:: void fp_lrn_p(float* input, float* output, int out_size, int channel, int depth_radius, float alpha, float beta, float bias) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例 + #include + #include // 假设头文件名为 lrn.h + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; //input在L2空间 + float *output = (float *)0x10010000; + int out_size = 256; // 例如 N*H*W + int channel = 96; + int depth_radius = 5; + float alpha = 0.0001f; + float beta = 0.75f; + float bias = 1.0f; + fp_lrn_p(input, output, out_size, channel, depth_radius, alpha, beta, bias); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/lsh_projection.rst.txt b/master/html/_sources/functionlib/dsplib/lsh_projection.rst.txt new file mode 100644 index 0000000..fae3fe1 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/lsh_projection.rst.txt @@ -0,0 +1,100 @@ +LshProjection +================= + +局部敏感哈希(Locality Sensitive Hashing, LSH)投影算子。该算子通过多个哈希组(Hash Groups)对输入特征进行处理,每组生成一个指定位宽(bits_per_hash)的哈希签名(int32)。 + +内部逻辑基于 FNV1a 哈希算法和加权评分机制,将高维特征映射为低维的离散哈希值。 + +计算过程: + 1. 对于每个哈希组 $i$,循环执行 $j$ 次($j < bits\_per\_hash$)。 + 2. 每次根据特定的哈希种子 $seed_{i,j}$ 计算特征与权重的加权评分,并通过评分符号决定一个 Bit 位(0 或 1)。 + 3. 将生成的 Bit 位拼接成一个完整的 32 位整型哈希签名。 + +输入: + - **hash_seed** - 哈希种子数组地址(float 类型)。 + - **feature** - 输入特征向量地址(int32 类型)。 + - **weight** - 权重向量地址(类型随算子名而定,若为 NULL 则不加权)。 + - **hash_group_num** - 生成的哈希组数量(即输出结果的个数)。 + - **bits_per_hash** - 每组哈希签名的有效位数(通常 $\le 32$)。 + - **feature_num** - 特征向量的维度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 存储生成的哈希签名地址(int32 数组)。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持权重类型:int8 (i8), int16 (i16), int32 (i32), fp32 (fp), fp64 (dp) + - MT7004 支持权重类型:int16 (i16), int32 (i32), fp16 (hp), fp32 (fp) + - 特征输入(feature)在所有平台上固定为 **int32** 类型。 + - 输出结果(output)在所有平台上固定为 **int32** 类型。 + +**共享存储版本:** + +.. c:function:: void i8_lsh_projection_s(const float* hash_seed, const int32_t* feature, const int8_t* weight, int32_t* output, int hash_group_num, int bits_per_hash, int feature_num, int core_mask) +.. c:function:: void i16_lsh_projection_s(const float* hash_seed, const int32_t* feature, const int16_t* weight, int32_t* output, int hash_group_num, int bits_per_hash, int feature_num, int core_mask) +.. c:function:: void i32_lsh_projection_s(const float* hash_seed, const int32_t* feature, const int32_t* weight, int32_t* output, int hash_group_num, int bits_per_hash, int feature_num, int core_mask) +.. c:function:: void hp_lsh_projection_s(const float* hash_seed, const int32_t* feature, const half* weight, int32_t* output, int hash_group_num, int bits_per_hash, int feature_num, int core_mask) +.. c:function:: void fp_lsh_projection_s(const float* hash_seed, const int32_t* feature, const float* weight, int32_t* output, int hash_group_num, int bits_per_hash, int feature_num, int core_mask) +.. c:function:: void dp_lsh_projection_s(const float* hash_seed, const int32_t* feature, const double* weight, int32_t* output, int hash_group_num, int bits_per_hash, int feature_num, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 15 + + // FT78NE 示例:fp32 权重,多核共享存储 + #include "78NE/utils.h" + + int main() { + float* hash_seed = (float*)0xA0000000; + int32_t* feature = (int32_t*)0xA1000000; + float* weight = (float*)0xA2000000; + int32_t* output = (int32_t*)0xB0000000; + + int hash_group_num = 128; + int bits_per_hash = 16; + int feature_num = 64; + int core_mask = 0xFF; + + fp_lsh_projection_s(hash_seed, feature, weight, output, + hash_group_num, bits_per_hash, feature_num, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_lsh_projection_p(const float* hash_seed, const int32_t* feature, const int8_t* weight, int32_t* output, int hash_group_num, int bits_per_hash, int feature_num) +.. c:function:: void i16_lsh_projection_p(const float* hash_seed, const int32_t* feature, const int16_t* weight, int32_t* output, int hash_group_num, int bits_per_hash, int feature_num) +.. c:function:: void i32_lsh_projection_p(const float* hash_seed, const int32_t* feature, const int32_t* weight, int32_t* output, int hash_group_num, int bits_per_hash, int feature_num) +.. c:function:: void hp_lsh_projection_p(const float* hash_seed, const int32_t* feature, const half* weight, int32_t* output, int hash_group_num, int bits_per_hash, int feature_num) +.. c:function:: void fp_lsh_projection_p(const float* hash_seed, const int32_t* feature, const float* weight, int32_t* output, int hash_group_num, int bits_per_hash, int feature_num) +.. c:function:: void dp_lsh_projection_p(const float* hash_seed, const int32_t* feature, const double* weight, int32_t* output, int hash_group_num, int bits_per_hash, int feature_num) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 13 + + // MT7004 示例:fp16 (hp) 权重,私有存储单核 + #include + + int main() { + float* hash_seed = (float*)0x10000000; + int32_t* feature = (int32_t*)0x10001000; + half* weight = (half*)0x10002000; + int32_t* output = (int32_t*)0x10003000; + + int hash_group_num = 64; + int bits_per_hash = 8; + int feature_num = 32; + + hp_lsh_projection_p(hash_seed, feature, weight, output, + hash_group_num, bits_per_hash, feature_num); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/lstm.rst.txt b/master/html/_sources/functionlib/dsplib/lstm.rst.txt index f693278..117be50 100644 --- a/master/html/_sources/functionlib/dsplib/lstm.rst.txt +++ b/master/html/_sources/functionlib/dsplib/lstm.rst.txt @@ -25,13 +25,13 @@ LSTM 输入: - - **input** - 输入序列数据,形状为 :math:`(seq_len, batch, input_size)`,即每个时间步的输入特征。 - - **weight_i** - 输入到各门 :math:`(input、forget、cell、output)` 的权重矩阵,大小为 4 * hidden_size * input_size。 - - **weight_h** - 上一隐藏状态到各门的权重矩阵,大小为 :math:`4 * hidden_size * hidden_size` + - **input** - 输入序列数据,形状为 :math:`(seq\_len, batch, input\_size)`,即每个时间步的输入特征。 + - **weight_i** - 输入到各门 :math:`(input, forget, cell, output)` 的权重矩阵,大小为 4 * hidden_size * input_size。 + - **weight_h** - 上一隐藏状态到各门的权重矩阵,大小为 :math:`4 * hidden\_size * hidden\_size` - **input_bias** - 输入部分的偏置项,对应 4 个门的偏置。 - - **state_bias** - 隐藏状态部分的偏置项(也是 :math:`4 * hidden_size`),与 input_bias 一起求和形成总偏置。 - - **hidden_state** - 当前批次初始隐藏状态输入( :math:`h₀` ),执行后更新为最后时刻的隐藏状态输出( :math:`hₜ`) - - **cell_state** - 当前批次初始细胞状态输入( :math:`c₀`),执行后更新为最后时刻的细胞状态输出( :math:`cₜ`)。 + - **state_bias** - 隐藏状态部分的偏置项(也是 :math:`4 * hidden\_size`),与 input_bias 一起求和形成总偏置。 + - **hidden_state** - 当前批次初始隐藏状态输入( :math:`h_0` ),执行后更新为最后时刻的隐藏状态输出( :math:`h_t`) + - **cell_state** - 当前批次初始细胞状态输入( :math:`c_0`),执行后更新为最后时刻的细胞状态输出( :math:`c_t`)。 - **buffer** - 临时工作区指针数组(中间计算缓存,如门值、激活结果、临时矩阵等,用于优化性能)。 - **LstmParameter** - LSTM 配置参数结构体,包含输入大小、隐藏层维度、序列长度、是否双向等信息。 - **core_mask** - 核掩码(仅适用于共享存储版本)。 @@ -70,11 +70,12 @@ LSTM .. note:: - FT78NE 支持fp32 - - MT7004 支持fp32 + - MT7004 支持fp32、fp16 **共享存储版本:** .. c:function:: void fp_Lstm_s(float *output, const float *input, const float *weight_i, const float *weight_h, const float *input_bias,const float *state_bias, float *hidden_state, float *cell_state, float *buffer[9],const LstmParameter *lstm_param, int core_mask) +.. c:function:: void hp_Lstm_s(half *output, const half *input, const half *weight_i, const half *weight_h, const half *input_bias,const half *state_bias, half *hidden_state, half *cell_state, half *buffer[9],const LstmParameter *lstm_param, int core_mask) **C调用示例:** @@ -130,8 +131,9 @@ LSTM **私有存储版本:** .. c:function:: void fp_Lstm_p(float *output, const float *input, const float *weight_i, const float *weight_h, const float *input_bias, const float *state_bias, float *hidden_state, float *cell_state, float *buffer[9], const LstmParameter *lstm_param) - - **C调用示例:** +.. c:function:: void hp_Lstm_p(half *output, const half *input, const half *weight_i, const half *weight_h, const half *input_bias,const half *state_bias, half *hidden_state, half *cell_state, half *buffer[9],const LstmParameter *lstm_param) + + **C调用示例:** .. code-block:: c :linenos: diff --git a/master/html/_sources/functionlib/dsplib/lstmgrad.rst.txt b/master/html/_sources/functionlib/dsplib/lstmgrad.rst.txt new file mode 100644 index 0000000..e866c32 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/lstmgrad.rst.txt @@ -0,0 +1,88 @@ +LstmGrad +================= + +计算 LSTM 网络的梯度,包括对输入、隐藏状态、细胞状态以及门控的梯度反向传播。 + +.. math:: + + dH_t &= dY_t + dH_{t+1} \\ + dC_t &= dC_{t+1} \odot f_{t+1} + dH_t \odot o_t \odot (1 - \tanh^2(C_t)) \\ + dX_t &= dA_t \cdot W^T \\ + dW &= \sum_t dA_t \cdot X_t^T \\ + dU &= \sum_t dA_t \cdot H_{t-1}^T \\ + dA_t &= dH_t \odot o_t \odot (1 - \tanh^2(C_t)) \odot g'_t + +其中: + +- \(dH_t\) 表示隐藏状态的梯度。 +- \(dC_t\) 表示细胞状态的梯度。 +- \(dX_t\) 表示输入梯度。 +- \(dW, dU\) 分别表示输入权重和隐藏状态权重的梯度。 +- \(dA_t\) 表示门控单元梯度。 +- \(f_t, o_t, C_t, g_t\) 分别为遗忘门、输出门、细胞状态、输入门的前向值。 +- \(\odot\) 表示元素逐乘。 + +输入: + - **params** - 静态参数数组,包含 LSTM 网络配置、权重、状态指针等。 + - **dynamic_params** - 动态参数数组,用于存储运行时指针及中间梯度。 + +输出: + - **dX_** - 输入梯度。 + - **dH_** - 隐藏状态梯度。 + - **dC_** - 细胞状态梯度。 + - **dA_tmp_** - 门控梯度中间缓存。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp + - MT7004 支持 hp, fp + +**共享存储版本:** + +.. c:function:: void fp_lstmgrad_s(long long *params, long long *dynamic_params, int core_mask) +.. c:function:: void hp_lstmgrad_s(long long *params, long long *dynamic_params, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + #include + #include + + int main() { + long long params[32]; + long long dynamic_params[32]; + int core_mask = 0xff; + + // 初始化 params 和 dynamic_params + fp_lstmgrad_s(params, dynamic_params, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_lstmgrad_p(long long *params, long long *dynamic_params) +.. c:function:: void hp_lstmgrad_p(long long *params, long long *dynamic_params) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 9 + + #include + #include + + int main() { + long long params[32]; + long long dynamic_params[32]; + + // 初始化 params 和 dynamic_params + fp_lstmgrad_p(params, dynamic_params); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/lstmgraddata.rst.txt b/master/html/_sources/functionlib/dsplib/lstmgraddata.rst.txt new file mode 100644 index 0000000..dd6bb99 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/lstmgraddata.rst.txt @@ -0,0 +1,88 @@ +LstmGradData +================= + +计算 LSTM 网络中每个时间步的输入梯度和隐藏状态梯度,支持单向和双向 LSTM。 + +.. math:: + + dH_t &= dY_t + dH_{t+1} \\ + dC_t &= dC_{t+1} \odot f_{t+1} + dH_t \odot o_t \odot (1 - \tanh^2(C_t)) \\ + dX_t &= dA_t \cdot W^T \\ + dW &= \sum_t dA_t \cdot X_t^T \\ + dU &= \sum_t dA_t \cdot H_{t-1}^T \\ + dA_t &= dH_t \odot o_t \odot (1 - \tanh^2(C_t)) \odot g'_t + +其中: + +- \(dH_t\) 表示隐藏状态的梯度。 +- \(dC_t\) 表示细胞状态的梯度。 +- \(dX_t\) 表示输入梯度。 +- \(dW, dU\) 分别表示输入权重和隐藏状态权重的梯度。 +- \(dA_t\) 表示门控单元梯度。 +- \(f_t, o_t, C_t, g_t\) 分别为遗忘门、输出门、细胞状态、输入门的前向值。 +- \(\odot\) 表示元素逐乘。 + +输入: + - **params** - 静态参数数组,包含 LSTM 网络配置、权重、状态指针等。 + - **dynamic_params** - 动态参数数组,用于存储运行时指针及中间梯度。 + +输出: + - **dX_** - 输入梯度。 + - **dH_** - 隐藏状态梯度。 + - **dC_** - 细胞状态梯度。 + - **dA_tmp_** - 门控梯度中间缓存。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp + - MT7004 支持 hp, fp + +**共享存储版本:** + +.. c:function:: void fp_lstmgraddata_s(long long *params, long long *dynamic_params, int core_mask) +.. c:function:: void hp_lstmgraddata_s(long long *params, long long *dynamic_params, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + #include + #include + + int main() { + long long params[32]; + long long dynamic_params[32]; + int core_mask = 0xff; + + // 初始化 params 和 dynamic_params + fp_lstmgraddata_s(params, dynamic_params, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_lstmgraddata_p(long long *params, long long *dynamic_params) +.. c:function:: void hp_lstmgraddata_p(long long *params, long long *dynamic_params) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 9 + + #include + #include + + int main() { + long long params[32]; + long long dynamic_params[32]; + + // 初始化 params 和 dynamic_params + fp_lstmgraddata_p(params, dynamic_params); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/lstmgradweight.rst.txt b/master/html/_sources/functionlib/dsplib/lstmgradweight.rst.txt new file mode 100644 index 0000000..7a00120 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/lstmgradweight.rst.txt @@ -0,0 +1,88 @@ +LstmGradWeight +================= + +计算 LSTM 网络的权重梯度,包括输入权重 W、隐藏权重 U 和偏置 b 的反向传播梯度。 + +.. math:: + + dH_t &= dY_t + dH_{t+1} \\ + dC_t &= dC_{t+1} \odot f_{t+1} + dH_t \odot o_t \odot (1 - \tanh^2(C_t)) \\ + dX_t &= dA_t \cdot W^T \\ + dW &= \sum_t dA_t \cdot X_t^T \\ + dU &= \sum_t dA_t \cdot H_{t-1}^T \\ + dA_t &= dH_t \odot o_t \odot (1 - \tanh^2(C_t)) \odot g'_t + +其中: + +- \(dH_t\) 表示隐藏状态的梯度。 +- \(dC_t\) 表示细胞状态的梯度。 +- \(dX_t\) 表示输入梯度。 +- \(dW, dU\) 分别表示输入权重和隐藏状态权重的梯度。 +- \(dA_t\) 表示门控单元梯度。 +- \(f_t, o_t, C_t, g_t\) 分别为遗忘门、输出门、细胞状态、输入门的前向值。 +- \(\odot\) 表示元素逐乘。 + +输入: + - **params** - 静态参数数组,包含 LSTM 网络配置、权重、状态指针等。 + - **dynamic_params** - 动态参数数组,用于存储运行时指针及中间梯度。 + +输出: + - **dX_** - 输入梯度。 + - **dH_** - 隐藏状态梯度。 + - **dC_** - 细胞状态梯度。 + - **dA_tmp_** - 门控梯度中间缓存。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp + - MT7004 支持 hp, fp + +**共享存储版本:** + +.. c:function:: void fp_lstmgradweight_s(long long *params, long long *dynamic_params, int core_mask) +.. c:function:: void hp_lstmgradweight_s(long long *params, long long *dynamic_params, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + #include + #include + + int main() { + long long params[32]; + long long dynamic_params[32]; + int core_mask = 0xff; + + // 初始化 params 和 dynamic_params + fp_lstmgradweight_s(params, dynamic_params, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_lstmgradweight_p(long long *params, long long *dynamic_params) +.. c:function:: void hp_lstmgradweight_p(long long *params, long long *dynamic_params) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 9 + + #include + #include + + int main() { + long long params[32]; + long long dynamic_params[32]; + + // 初始化 params 和 dynamic_params + fp_lstmgradweight_p(params, dynamic_params); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/maximum.rst.txt b/master/html/_sources/functionlib/dsplib/maximum.rst.txt new file mode 100644 index 0000000..8b0d21d --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/maximum.rst.txt @@ -0,0 +1,83 @@ +Maximum +================= + +对两个输入数据执行逐元素取最大值操作。对于每一对对应的输入元素,比较其大小,并将较大者存入输出地址。 + +.. math:: + + output_i = \max(input0_i, input1_i) + +输入: + - **input0** - 第一个输入数据地址。 + - **input1** - 第二个输入数据地址。 + - **length** - 计算长度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持:int8 (i8), int16 (i16), int32 (i32), fp32 (fp), fp64 (dp) + - MT7004 支持:int16 (i16), int32 (i32), fp16 (hp), fp32 (fp) + - 两个输入数据与输出数据的数据类型必须一致。 + +**共享存储版本:** + +.. c:function:: void i8_maximum_s(int8_t* input0, int8_t* input1, int8_t* output, int length, int core_mask) +.. c:function:: void i16_maximum_s(int16_t* input0, int16_t* input1, int16_t* output, int length, int core_mask) +.. c:function:: void i32_maximum_s(int32_t* input0, int32_t* input1, int32_t* output, int length, int core_mask) +.. c:function:: void hp_maximum_s(half* input0, half* input1, half* output, int length, int core_mask) +.. c:function:: void fp_maximum_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void dp_maximum_s(double* input0, double* input1, double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + // FT78NE 示例(共享存储多核并行) + #include + #include "78NE/utils.h" + + int main(int argc, char* argv[]) { + float *in0 = (float *)0xA0000000; // 输入0在共享存储空间 + float *in1 = (float *)0xA1000000; // 输入1在共享存储空间 + float *out = (float *)0xB0000000; // 输出在共享存储空间 + int length = 960001; + int core_mask = 0xFF; // 使用所有核心 + fp_maximum_s(in0, in1, out, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_maximum_p(int8_t* input0, int8_t* input1, int8_t* output, int length) +.. c:function:: void i16_maximum_p(int16_t* input0, int16_t* input1, int16_t* output, int length) +.. c:function:: void i32_maximum_p(int32_t* input0, int32_t* input1, int32_t* output, int length) +.. c:function:: void hp_maximum_p(half* input0, half* input1, half* output, int length) +.. c:function:: void fp_maximum_p(float* input0, float* input1, float* output, int length) +.. c:function:: void dp_maximum_p(double* input0, double* input1, double* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + // MT7004 示例(私有存储单核) + #include + + int main(int argc, char* argv[]) { + // 输入与输出均位于芯片私有存储空间 + int *in0 = (int *)0x10000000; + int *in1 = (int *)0x10001000; + int *out = (int *)0x10002000; + int length = 1024; + i32_maximum_p(in0, in1, out, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/maximumgrad.rst.txt b/master/html/_sources/functionlib/dsplib/maximumgrad.rst.txt new file mode 100644 index 0000000..93f1684 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/maximumgrad.rst.txt @@ -0,0 +1,98 @@ +Maximumgrad +================= + +计算逐元素 Maximum 操作的梯度。该算子是 Maximum 算子的反向传播部分。梯度 dy 将被路由到在前向传播中值较大的那个输入。 + +.. math:: + + \text{dx0}_i = \begin{cases} + \text{dy}_i, & \text{if } \text{Input0}_i > \text{Input1}_i \\ + 0, & \text{otherwise} + \end{cases} + + \text{dx1}_i = \begin{cases} + \text{dy}_i, & \text{if } \text{Input1}_i \ge \text{Input0}_i \\ + 0, & \text{otherwise} + \end{cases} + +输入: + - **Input0** - 前向传播时的第一个输入数据地址。 + - **Input1** - 前向传播时的第二个输入数据地址。 + - **dy** - 后续层反向传播回来的梯度数据地址。 + - **Input0_dims** - Input0 的维度信息数组。 + - **Input1_dims** - Input1 的维度信息数组。 + - **num_dims** - 输入张量的维度数量。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **dx0** - 计算出的关于 Input0 的梯度地址。 + - **dx1** - 计算出的关于 Input1 的梯度地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void hp_maximumgrad_s(half* Input0, half* Input1, half* dy, int* Input0_dims, int* Input1_dims, int num_dims, half* dx0, half* dx1, int core_mask) +.. c:function:: void fp_maximumgrad_s(float* Input0, float* Input1, float* dy, int* Input0_dims, int* Input1_dims, int num_dims, float* dx0, float* dx1, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17 + + //FT78NE示例 + #include + #include // 假设头文件名为 maximumgrad.h + + int main(int argc, char* argv[]) { + // 假设在DDR空间,且形状相同 + float *input0 = (float *)0xA0000000; + float *input1 = (float *)0xA1000000; + float *dy = (float *)0xA2000000; + float *dx0 = (float *)0xB0000000; + float *dx1 = (float *)0xB1000000; + + int dims[] = {4, 256}; + int num_dims = 2; + int core_mask = 0xff; + + fp_maximumgrad_s(input0, input1, dy, dims, dims, num_dims, dx0, dx1, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void hp_maximumgrad_p(half* Input0, half* Input1, half* dy, int* Input0_dims, int* Input1_dims, int num_dims, half* dx0, half* dx1) +.. c:function:: void fp_maximumgrad_p(float* Input0, float* Input1, float* dy, int* Input0_dims, int* Input1_dims, int num_dims, float* dx0, float* dx1) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16 + + //FT78NE示例 + #include + #include // 假设头文件名为 maximumgrad.h + + int main(int argc, char* argv[]) { + // 假设在L2空间,且形状相同 + float *input0 = (float *)0x10000000; + float *input1 = (float *)0x11000000; + float *dy = (float *)0x12000000; + float *dx0 = (float *)0x13000000; + float *dx1 = (float *)0x14000000; + + int dims[] = {4, 256}; + int num_dims = 2; + + fp_maximumgrad_p(input0, input1, dy, dims, dims, num_dims, dx0, dx1); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/maxpoolfusion.rst.txt b/master/html/_sources/functionlib/dsplib/maxpoolfusion.rst.txt new file mode 100644 index 0000000..9597ce6 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/maxpoolfusion.rst.txt @@ -0,0 +1,235 @@ +MaxPoolFusion +================= + + + 对输入张量执行最大池化操作 + + .. math:: + + \text{output}_{b, h_o, w_o, c} = + \operatorname{clip}\Bigg( + \max_{h_i, w_i \in \mathcal{W}(h_o, w_o)} + \Big( + \text{input}_{b,\; h_i,\; w_i,\; c} + \Big),\; + \text{minf},\; \text{maxf} + \Bigg) + + 其中,窗口区域 :math:`\mathcal{W}(h_o, w_o)` 的定义如下: + + .. math:: + + h_i = h_o \cdot \text{stride}_h - \text{pad}_u + \Delta h + + w_i = w_o \cdot \text{stride}_w - \text{pad}_l + \Delta w + + \Delta h \in [0,\ \text{win}_h - 1],\quad + \Delta w \in [0,\ \text{win}_w - 1] + + 有效窗口点满足: + + .. math:: + + 0 \le h_i < \text{in}_h,\qquad + 0 \le w_i < \text{in}_w + + 原始窗口起点定义为: + + .. math:: + + h_{\text{start}} = h_o \cdot \text{stride}_h - \text{pad}_u + + .. math:: + + w_{\text{start}} = w_o \cdot \text{stride}_w - \text{pad}_l + + 合法采样范围为: + + .. math:: + + \Delta h \in + \Big[ + \max(0,\ -h_{\text{start}}),\; + \min(\text{win}_h,\ \text{in}_h - h_{\text{start}}) + \Big) + + .. math:: + + \Delta w \in + \Big[ + \max(0,\ -w_{\text{start}}),\; + \min(\text{win}_w,\ \text{in}_w - w_{\text{start}}) + \Big) + + 最大池化计算: + + .. math:: + + v_{\max} = + \max_{\Delta h,\ \Delta w}\; + \text{input}_{b,\; + h_{\text{start}} + \Delta h,\; + w_{\text{start}} + \Delta w,\; + c} + + 最终输出: + + .. math:: + + \text{output}_{b, h_o, w_o, c} = + \min\big(\max(v_{\max},\ \text{minf}),\ \text{maxf}\big) + + + + 输入: + - **input** - 输入张量指针,采用 **NHWC 格式**,形状为 :math:`[batch,\ in\_h,\ in\_w,\ channel]` + - **in_w** - 输入张量的宽度 (W) + - **in_h** - 输入张量的高度 (H) + - **win_w** - 池化窗口的宽度,即窗口在 W 方向的大小 + - **win_h** - 池化窗口的高度,即窗口在 H 方向的大小 + - **output_w** - 输出特征图的宽度 + - **output_h** - 输出特征图的高度 + - **batch** - 批次大小,即输入中的 batch 数 + - **channel** - 通道数 C ,每个池化位置都分别对 C 个通道独立执行最大池化与裁剪 + - **stride_w** - 池化窗口在 W 方向的步长 + - **stride_h** - 池化窗口在 H 方向的步长 + - **pad_l** - 输入特征图左侧的填充大小 + - **pad_u** - 输入特征图上侧的填充大小 + - **minf** - 输出结果的下界值。池化结果会执行 :math:`\max(v,\ \text{minf})` + - **maxf** - 输出结果的上界值。池化结果会执行 :math:`\min(v,\ \text{maxf})` + - **core_mask** - 核心掩码,指定使用的计算核心 + + 输出: + - **output** - 输出张量指针,采用 **NHWC 格式**,形状为 :math:`[batch,\ output\_h,\ output\_w,\ channel]`。 + + + 支持平台: + ``FT78NE`` + ``MT7004`` + + .. note:: + - FT78NE 支持fp32, fp64 + - MT7004 支持fp16, fp32 + - 调用时将除 core_mask 外的参数打包通过 long long params 数组传入,顺序为: + input, output, in_w, in_h, win_w, win_h, output_w, output_h, batch, channel, + stride_w, stride_h, pad_l, pad_u, minf, maxf + +**共享存储版本:** + +.. c:function:: void hp_maxpool_fusion_s(long long *params, int core_mask) +.. c:function:: void fp_maxpool_fusion_s(long long *params, int core_mask) +.. c:function:: void dp_maxpool_fusion_s(long long *params, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 45 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float* input_ptr = (float*)0xA0000000; + float* output_ptr = (float*)0xB0000000; + float* check_ptr = (float*)0xC0000000; + int in_w = 32; + int in_h = 32; + int win_w = 6; + int win_h = 6; + int batch = 4; + int channel = 2; + int stride_w = 4; + int stride_h = 4; + int pad_l = 0; + int pad_u = 0; + float minf = 0.0f; + float maxf = 50.0f; + + // 根据标准公式计算输出尺寸 + int dividor = in_w + pad_l * 2 - win_w; + int output_w = (dividor + stride_w - 1) / stride_w + 1; + int dividor2 = in_h + pad_u * 2 - win_h; + int output_h = (dividor2 + stride_h - 1) / stride_h + 1; + + long long params[16]; + params[0] = (long long)input_ptr; + params[1] = (long long)output_ptr; + params[2] = (long long)in_w; + params[3] = (long long)in_h; + params[4] = (long long)win_w; + params[5] = (long long)win_h; + params[6] = (long long)output_w; + params[7] = (long long)output_h; + params[8] = (long long)batch; + params[9] = (long long)channel; + params[10] = (long long)stride_w; + params[11] = (long long)stride_h; + params[12] = (long long)pad_l; + params[13] = (long long)pad_u; + params[14] = (long long)&minf; + params[15] = (long long)&maxf; + int core_mask = 0x0f; + fp_maxpool_fusion_s(params, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void hp_maxpool_fusion_p(long long *params) +.. c:function:: void fp_maxpool_fusion_p(long long *params) +.. c:function:: void dp_maxpool_fusion_p(long long *params) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 44 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float* input_ptr = (float*)0xA0000000; + float* output_ptr = (float*)0xB0000000; + float* check_ptr = (float*)0xC0000000; + int in_w = 32; + int in_h = 32; + int win_w = 6; + int win_h = 6; + int batch = 4; + int channel = 2; + int stride_w = 4; + int stride_h = 4; + int pad_l = 0; + int pad_u = 0; + float minf = 0.0f; + float maxf = 50.0f; + + // 根据标准公式计算输出尺寸 + int dividor = in_w + pad_l * 2 - win_w; + int output_w = (dividor + stride_w - 1) / stride_w + 1; + int dividor2 = in_h + pad_u * 2 - win_h; + int output_h = (dividor2 + stride_h - 1) / stride_h + 1; + + long long params[16]; + params[0] = (long long)input_ptr; + params[1] = (long long)output_ptr; + params[2] = (long long)in_w; + params[3] = (long long)in_h; + params[4] = (long long)win_w; + params[5] = (long long)win_h; + params[6] = (long long)output_w; + params[7] = (long long)output_h; + params[8] = (long long)batch; + params[9] = (long long)channel; + params[10] = (long long)stride_w; + params[11] = (long long)stride_h; + params[12] = (long long)pad_l; + params[13] = (long long)pad_u; + params[14] = (long long)&minf; + params[15] = (long long)&maxf; + fp_maxpool_fusion_p(params); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/maxpoolgrad.rst.txt b/master/html/_sources/functionlib/dsplib/maxpoolgrad.rst.txt new file mode 100644 index 0000000..6841365 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/maxpoolgrad.rst.txt @@ -0,0 +1,209 @@ +MaxPoolGrad +================= + + 描述 MaxPool 的反向传播(梯度)计算。该算子将上游梯度(dy)只回传到前向最大池化过程中被选为最大值的位置;其它位置的梯度为 0。 + + 数学定义: + + .. math:: + + \text{output}_{b,\ h_i,\ w_i,\ c} = + \begin{cases} + \text{dy}_{b,\ h_o,\ w_o,\ c}, & + \text{if } (h_i,\ w_i) + = \displaystyle \arg\max_{(h,w)\in\mathcal{W}(h_o,w_o)} + \text{input}_{b,\ h,\ w,\ c}, \\ + 0, & \text{otherwise}. + \end{cases} + + 其中,:math:`\mathcal{W}(h_o, w_o)` 表示输出位置 :math:`(h_o, w_o)` 对应的池化窗口区域。窗口像素位置 :math:`(h, w)` 可表示为: + + .. math:: + + h = h_o \cdot \text{stride}_h - \text{pad}_u + \Delta h + + .. math:: + + w = w_o \cdot \text{stride}_w - \text{pad}_l + \Delta w + + .. math:: + + \Delta h \in [0,\ \text{win}_h - 1], \qquad + \Delta w \in [0,\ \text{win}_w - 1] + + 并且仅当采样点落在输入有效范围内时会被考虑: + + .. math:: + + 0 \le h < \text{in}_h, \qquad 0 \le w < \text{in}_w. + + 实现细节说明: + - 前向池化使用窗口 :math:`\text{win}_h \times \text{win}_w`,步长为 :math:`\text{stride}_h`, :math:`\text{stride}_w`,并且在边界处使用 pad(pad\_u, pad\_l)。 + + - 反向传播时,输出梯度 tensor(即需要写入的输入梯度)在每个 batch 开始前先被初始化为 0(代码中有一次整体清零)。 + + - 对于每个输出像素 :math:`(h_o,w_o)` 以及每个通道 c: + + - 在对应的输入窗口中找到前向最大值的位置 :math:`(h^*,w^*)`; + + - 将上游梯度 :math:`\text{dy}_{b,h_o,w_o,c}` 累加到该位置::math:`\text{output}_{b,h^*,w^*,c} \mathrel{+}= \text{dy}_{b,h_o,w_o,c}`。 + + - 其他位置梯度保持 0。 + + 输入: + - **input** - 输入张量指针,采用 **NHWC 格式**,形状为 :math:`[batch,\ in\_h,\ in\_w,\ channel]` + - **dy** - 上游梯度张量指针,采用 **NHWC 格式**,形状为 :math:`[batch,\ output\_h,\ output\_w,\ channel]` + - **in_w** - 输入张量的宽度 (W) + - **in_h** - 输入张量的高度 (H) + - **win_w** - 池化窗口的宽度,即窗口在 W 方向的大小 + - **win_h** - 池化窗口的高度,即窗口在 H 方向的大小 + - **output_w** - 输出特征图的宽度 + - **output_h** - 输出特征图的高度 + - **batch** - 批次大小,即输入中的 batch 数 + - **channel** - 通道数 C ,每个池化位置都分别对 C 个通道独立执行最大池化与裁剪 + - **stride_w** - 池化窗口在 W 方向的步长 + - **stride_h** - 池化窗口在 H 方向的步长 + - **pad_l** - 输入特征图左侧的填充大小 + - **pad_u** - 输入特征图上侧的填充大小 + - **minf** - 输出结果的下界值。池化结果会执行 :math:`\max(v,\ \text{minf})` + - **maxf** - 输出结果的上界值。池化结果会执行 :math:`\min(v,\ \text{maxf})` + - **core_mask** - 核心掩码,指定使用的计算核心 + + 输出: + - **output** - 输出张量指针,采用 **NHWC 格式**,形状为 :math:`[batch,\ in\_h,\ in\_w,\ channel]`。 + + + 支持平台: + ``FT78NE`` + ``MT7004`` + + .. note:: + - FT78NE 支持fp32, fp64 + - MT7004 支持fp16, fp32 + - 调用时将除 core_mask 外的参数打包通过 long long params 数组传入,顺序为: + input, dy, output, in_w, in_h, win_w, win_h, output_w, output_h, batch, channel, + stride_w, stride_h, pad_l, pad_u, minf, maxf + +**共享存储版本:** + +.. c:function:: void hp_maxpool_grad_s(long long *params, int core_mask) +.. c:function:: void fp_maxpool_grad_s(long long *params, int core_mask) +.. c:function:: void dp_maxpool_grad_s(long long *params, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 47 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + double* input_ptr = (double*)0xA0000000; + double* dy_ptr = (double*)0xB0000000; + double* output_ptr = (double*)0xC0000000; + double* check_ptr = (double*)0xD0000000; + int in_w = gin_w; + int in_h = gin_h; + int win_w = 6; + int win_h = 6; + int batch = gbatch; + int channel = 2; + int stride_w = 4; + int stride_h = 4; + int pad_l = 1; + int pad_u = 1; + double minf = 0.0f; + double maxf = 50.0f; + + // 根据标准公式计算输出尺寸 + int dividor = in_w + pad_l*2 - win_w; + int output_w = (dividor + stride_w - 1) / stride_w + 1; + int dividor2 = in_h + pad_u*2 - win_h; + int output_h = (dividor2 + stride_h - 1) / stride_h + 1; + + long long params[17]; + params[0] = (long long)input_ptr; + params[1] = (long long)dy_ptr; + params[2] = (long long)output_ptr; + params[3] = (long long)in_w; + params[4] = (long long)in_h; + params[5] = (long long)win_w; + params[6] = (long long)win_h; + params[7] = (long long)output_w; + params[8] = (long long)output_h; + params[9] = (long long)batch; + params[10] = (long long)channel; + params[11] = (long long)stride_w; + params[12] = (long long)stride_h; + params[13] = (long long)pad_l; + params[14] = (long long)pad_u; + params[15] = (long long)&minf; //注意这里传指针,不能直接强制转换成long long + params[16] = (long long)&maxf; + int core_mask = 0x0f; + fp_maxpool_grad_s(params, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void hp_maxpool_grad_p(long long *params) +.. c:function:: void fp_maxpool_grad_p(long long *params) +.. c:function:: void dp_maxpool_grad_p(long long *params) + + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 46 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + double* input_ptr = (double*)0xA0000000; + double* dy_ptr = (double*)0xB0000000; + double* output_ptr = (double*)0xC0000000; + double* check_ptr = (double*)0xD0000000; + int in_w = gin_w; + int in_h = gin_h; + int win_w = 6; + int win_h = 6; + int batch = gbatch; + int channel = 2; + int stride_w = 4; + int stride_h = 4; + int pad_l = 1; + int pad_u = 1; + double minf = 0.0f; + double maxf = 50.0f; + + // 根据标准公式计算输出尺寸 + int dividor = in_w + pad_l*2 - win_w; + int output_w = (dividor + stride_w - 1) / stride_w + 1; + int dividor2 = in_h + pad_u*2 - win_h; + int output_h = (dividor2 + stride_h - 1) / stride_h + 1; + + long long params[17]; + params[0] = (long long)input_ptr; + params[1] = (long long)dy_ptr; + params[2] = (long long)output_ptr; + params[3] = (long long)in_w; + params[4] = (long long)in_h; + params[5] = (long long)win_w; + params[6] = (long long)win_h; + params[7] = (long long)output_w; + params[8] = (long long)output_h; + params[9] = (long long)batch; + params[10] = (long long)channel; + params[11] = (long long)stride_w; + params[12] = (long long)stride_h; + params[13] = (long long)pad_l; + params[14] = (long long)pad_u; + params[15] = (long long)&minf; //注意这里传指针,不能直接强制转换成long long + params[16] = (long long)&maxf; + fp_maxpool_grad_p(params); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/mfcc.rst.txt b/master/html/_sources/functionlib/dsplib/mfcc.rst.txt new file mode 100644 index 0000000..bd9a562 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/mfcc.rst.txt @@ -0,0 +1,222 @@ +MFCC +====== + +计算梅尔频率倒谱系数(Mel-Frequency Cepstral Coefficients)。 + +.. math:: + + MFCC_i = f(Input_i) + +输入: + - **mfcc\_params** - MFCC 计算相关的配置参数,如采样率、梅尔滤波器数量等。 + - **spec\_params** - 频谱计算参数,定义了FFT窗口大小、重叠长度等。 + - **mfcc\_workspace** - 工作空间参数,包括计算所需的中间缓冲区。 + - **spec\_workspace** - 频谱计算的工作空间,包括FFT的窗口、输入数据等。 + - **core\_mask** (可选) - 核掩码(仅适用于多核版本)。 + +输出: + - **output(mfcc\_params中)** - 计算结果地址,存储MFCC特征。 + - **output_shape(mfcc\_params中)** - 输出数据的形状,描述MFCC特征的维度。 + +**结构体定义:** + .. code-block:: c + :linenos: + + typedef struct { + // 输入/输出 + float* input; // 输入数据地址 + int* input_shape; // 输入数据形状 + float* output; // 输出数据地址 + int* output_shape; // 输出数据形状 + + // 配置参数 + int sample_rate; // 采样率 + int n_mfcc; // MFCC系数数量 + int dct_type; // DCT变换类型 + bool log_mels; // 是否对梅尔频谱取对数 + float f_min; // 最小频率 + float f_max; // 最大频率 + int n_mels; // 梅尔滤波器数量 + NormType norm; // 归一化类型 + NormMode norm_M; // 归一化模式 + MelType mel_scale; // 梅尔尺度类型 + } MfccParam; + + typedef struct { + // 输入 + float* input; // 输入数据地址 + int input_len; // 输入数据长度 + + // 输出 + float* output; // 输出数据地址 + int* output_shape; // 输出数据形状 + + // 配置参数 + int pad; // 填充大小 + WindowType window_type; // 窗函数类型 + int n_fft; // FFT点数 + int hop_length; // 帧移长度 + int win_length; // 窗长度 + float power; // 功率值 + bool normalized; // 是否归一化 + bool center; // 是否中心化 + BorderType pad_mode; // 填充模式 + bool onesided; // 是否单边频谱 + } SpectrogramParam; + + typedef struct { + // 滤波器组计算缓冲区 + float *all_freqs; // 所有频率点 + float *m_pts; // 梅尔频率点 + float *f_pts; // 线性频率点 + float *fb; // 滤波器组 + + // 三角滤波器计算缓冲区 + float *f_diff; // 频率差值 + float *slopes; // 斜率 + float *down_slopes; // 下降斜率 + float *up_slopes; // 上升斜率 + + // DCT变换缓冲区 + float* dct_mat; // DCT矩阵 + + // 中间结果缓冲区 + float* spectrogram_output; // 频谱图输出 + float* mel_spectrogram_output; // 梅尔频谱输出 + } MfccWorkspaceParam; + + typedef struct { + float* fft_window; // FFT窗函数缓冲区 + float* fft_window_later; // 后续FFT窗缓冲区 + float* input_data_pad; // 填充后的输入数据 + float* input_data; // 输入数据缓冲区 + float* input_win; // 加窗输入数据 + float* exp_complex; // 复数指数缓冲区 + float* spec_f; // 频谱频率缓冲区 + float* output_onsided; // 单边输出缓冲区 + } WorkspaceParam; +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp32 + - MT7004 支持 fp32, fp16 + +**共享存储版本:** + +.. c:function:: void fp_mfcc_s(const MfccParam* mfcc_params, SpectrogramParam* spec_params, MfccWorkspaceParam* mfcc_workspace, WorkspaceParam* spec_workspace, int core_mask) +.. c:function:: void hp_mfcc_s(const MfccParam* mfcc_params, SpectrogramParam* spec_params, MfccWorkspaceParam* mfcc_workspace, WorkspaceParam* spec_workspace, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 45 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float* input_data = (float*)0x81000000; + float* output_mfcc = (float*)0x82000000; + int input_shape[2] = {1, 4000}; + int output_shape[2] = {0, 0, 0}; + MfccParam* mfcc_params = (MfccParam*)0x83100000; + SpectrogramParam* spec_params = (SpectrogramParam*)0x83200000; + MfccWorkspaceParam* mfcc_workspace = (MfccWorkspaceParam*)0x83300000; + WorkspaceParam* spec_workspace = (WorkspaceParam*)0x83400000; + + mfcc_params->input = input_data; + mfcc_params->input_shape = input_shape; + mfcc_params->output = output_mfcc; + mfcc_params->output_shape = output_shape; + mfcc_params->sample_rate = 800; + mfcc_params->n_mfcc = 6; + mfcc_params->dct_type = 2; + mfcc_params->log_mels = true; + mfcc_params->f_min = 0.0f; + mfcc_params->f_max = 400.0f; + mfcc_params->n_mels = 8; + mfcc_params->norm = NORM_SLANEY; + mfcc_params->norm_M = NORM_MODE_ORTHO; + mfcc_params->mel_scale = MEL_HTK; + + // 结构体 2: SpectrogramParam + spec_params->pad = 0; + spec_params->window_type = kHann; + spec_params->n_fft = 32; + spec_params->hop_length = 16; + spec_params->win_length = 32; + spec_params->power = 2.0f; + spec_params->normalized = false; + spec_params->center = false; + spec_params->pad_mode = kConstant; + spec_params->onesided = true; + + int core_mask = 0xff; + //为mfcc_workspace和spec_workspace里每个中间缓冲区指针分配地址 + //... + + fp_mfcc_s(mfcc_params, spec_params, mfcc_workspace, spec_workspace, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_mfcc_p(const MfccParam* mfcc_params, SpectrogramParam* spec_params, MfccWorkspaceParam* mfcc_workspace, WorkspaceParam* spec_workspace) +.. c:function:: void hp_mfcc_p(const MfccParam* mfcc_params, SpectrogramParam* spec_params, MfccWorkspaceParam* mfcc_workspace, WorkspaceParam* spec_workspace) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 45 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + MfccParam mfcc_params; + SpectrogramParam spec_params; + MfccWorkspaceParam mfcc_workspace; + WorkspaceParam spec_workspace; + + float* input_data = (float*)0x10810000; + float* output_mfcc = (float*)0x10820000; + int input_shape[2] = {1, 4000}; + int output_shape[2] = {0, 0, 0}; + + mfcc_params.input = input_data; + mfcc_params.input_shape = input_shape; + mfcc_params.output = output_mfcc; + mfcc_params.output_shape = output_shape; + mfcc_params.sample_rate = 800; + mfcc_params.n_mfcc = 6; + mfcc_params.dct_type = 2; + mfcc_params.log_mels = true; + mfcc_params.f_min = 0.0f; + mfcc_params.f_max = 400.0f; + mfcc_params.n_mels = 8; + mfcc_params.norm = NORM_SLANEY; + mfcc_params.norm_M = NORM_MODE_ORTHO; + mfcc_params.mel_scale = MEL_HTK; + + // 结构体 2: SpectrogramParam + spec_params.pad = 0; + spec_params.window_type = kHann; + spec_params.n_fft = 32; + spec_params.hop_length = 16; + spec_params.win_length = 32; + spec_params.power = 2.0f; + spec_params.normalized = false; + spec_params.center = false; + spec_params.pad_mode = kConstant; + spec_params.onesided = true; + + //为mfcc_workspace和spec_workspace里每个中间缓冲区指针分配地址 + //... + + fp_mfcc_p(&mfcc_params, &spec_params, &mfcc_workspace, &spec_workspace); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/minimum.rst.txt b/master/html/_sources/functionlib/dsplib/minimum.rst.txt new file mode 100644 index 0000000..4b1be03 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/minimum.rst.txt @@ -0,0 +1,83 @@ +Minimum +================= + +对两个输入数据执行逐元素取最小值操作。对于每一对对应的输入元素,比较其大小,并将较小者存入输出地址。 + +.. math:: + + output_i = \min(input0_i, input1_i) + +输入: + - **input0** - 第一个输入数据地址。 + - **input1** - 第二个输入数据地址。 + - **length** - 计算长度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持:int8 (i8), int16 (i16), int32 (i32), fp32 (fp), fp64 (dp) + - MT7004 支持:int16 (i16), int32 (i32), fp16 (hp), fp32 (fp) + - 两个输入数据与输出数据的数据类型必须一致。 + +**共享存储版本:** + +.. c:function:: void i8_minimum_s(int8_t* input0, int8_t* input1, int8_t* output, int length, int core_mask) +.. c:function:: void i16_minimum_s(int16_t* input0, int16_t* input1, int16_t* output, int length, int core_mask) +.. c:function:: void i32_minimum_s(int32_t* input0, int32_t* input1, int32_t* output, int length, int core_mask) +.. c:function:: void hp_minimum_s(half* input0, half* input1, half* output, int length, int core_mask) +.. c:function:: void fp_minimum_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void dp_minimum_s(double* input0, double* input1, double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + // FT78NE 示例(共享存储多核并行) + #include + #include "78NE/utils.h" + + int main(int argc, char* argv[]) { + double *in0 = (double *)0xA0000000; // 输入0在共享存储空间 + double *in1 = (double *)0xA1000000; // 输入1在共享存储空间 + double *out = (double *)0xB0000000; // 输出在共享存储空间 + int length = 960001; + int core_mask = 0xFF; // 使用所有核心并行计算 + dp_minimum_s(in0, in1, out, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_minimum_p(int8_t* input0, int8_t* input1, int8_t* output, int length) +.. c:function:: void i16_minimum_p(int16_t* input0, int16_t* input1, int16_t* output, int length) +.. c:function:: void i32_minimum_p(int32_t* input0, int32_t* input1, int32_t* output, int length) +.. c:function:: void hp_minimum_p(half* input0, half* input1, half* output, int length) +.. c:function:: void fp_minimum_p(float* input0, float* input1, float* output, int length) +.. c:function:: void dp_minimum_p(double* input0, double* input1, double* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + // MT7004 示例(私有存储单核) + #include + + int main(int argc, char* argv[]) { + // 输入与输出均位于芯片私有存储空间 + half *in0 = (half *)0x10000000; + half *in1 = (half *)0x10001000; + half *out = (half *)0x10002000; + int length = 1024; + hp_minimum_p(in0, in1, out, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/minimumgrad.rst.txt b/master/html/_sources/functionlib/dsplib/minimumgrad.rst.txt new file mode 100644 index 0000000..121d5b9 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/minimumgrad.rst.txt @@ -0,0 +1,98 @@ +Minimumgrad +================= + +计算逐元素 Minimum 操作的梯度。该算子是 Minimum 算子的反向传播部分。梯度 dy 将被路由到在前向传播中值较小的那个输入。 + +.. math:: + + \text{dx0}_i = \begin{cases} + \text{dy}_i, & \text{if } \text{Input0}_i < \text{Input1}_i \\ + 0, & \text{otherwise} + \end{cases} + + \text{dx1}_i = \begin{cases} + \text{dy}_i, & \text{if } \text{Input1}_i \le \text{Input0}_i \\ + 0, & \text{otherwise} + \end{cases} + +输入: + - **Input0** - 前向传播时的第一个输入数据地址。 + - **Input1** - 前向传播时的第二个输入数据地址。 + - **dy** - 后续层反向传播回来的梯度数据地址。 + - **Input0_dims** - Input0 的维度信息数组。 + - **Input1_dims** - Input1 的维度信息数组。 + - **num_dims** - 输入张量的维度数量。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **dx0** - 计算出的关于 Input0 的梯度地址。 + - **dx1** - 计算出的关于 Input1 的梯度地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void hp_minimumgrad_s(half* Input0, half* Input1, half* dy, int* Input0_dims, int* Input1_dims, int num_dims, half* dx0, half* dx1, int core_mask) +.. c:function:: void fp_minimumgrad_s(float* Input0, float* Input1, float* dy, int* Input0_dims, int* Input1_dims, int num_dims, float* dx0, float* dx1, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17 + + //FT78NE示例 + #include + #include // 假设头文件名为 minimumgrad.h + + int main(int argc, char* argv[]) { + // 假设在DDR空间,且形状相同 + float *input0 = (float *)0xA0000000; + float *input1 = (float *)0xA1000000; + float *dy = (float *)0xA2000000; + float *dx0 = (float *)0xB0000000; + float *dx1 = (float *)0xB1000000; + + int dims[] = {4, 256}; + int num_dims = 2; + int core_mask = 0xff; + + fp_minimumgrad_s(input0, input1, dy, dims, dims, num_dims, dx0, dx1, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void hp_minimumgrad_p(half* Input0, half* Input1, half* dy, int* Input0_dims, int* Input1_dims, int num_dims, half* dx0, half* dx1) +.. c:function:: void fp_minimumgrad_p(float* Input0, float* Input1, float* dy, int* Input0_dims, int* Input1_dims, int num_dims, float* dx0, float* dx1) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16 + + //FT78NE示例 + #include + #include // 假设头文件名为 minimumgrad.h + + int main(int argc, char* argv[]) { + // 假设在L2空间,且形状相同 + float *input0 = (float *)0x10000000; + float *input1 = (float *)0x11000000; + float *dy = (float *)0x12000000; + float *dx0 = (float *)0x13000000; + float *dx1 = (float *)0x14000000; + + int dims[] = {4, 256}; + int num_dims = 2; + + fp_minimumgrad_p(input0, input1, dy, dims, dims, num_dims, dx0, dx1); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/mod.rst.txt b/master/html/_sources/functionlib/dsplib/mod.rst.txt new file mode 100644 index 0000000..74169d6 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/mod.rst.txt @@ -0,0 +1,84 @@ +Mod +================= + +对两个输入数据执行逐元素取模(取余)操作。对于整数类型,执行标准的 C 语言 ``%`` 运算;对于浮点类型,执行类似于 ``fmod`` 的余数运算。 + +.. math:: + + output_i = input0_i \pmod{input1_i} + +输入: + - **input0** - 第一个输入数据地址(被除数)。 + - **input1** - 第二个输入数据地址(除数)。 + - **length** - 计算长度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持:int8 (i8), int16 (i16), int32 (i32), fp32 (fp), fp64 (dp) + - MT7004 支持:int16 (i16), int32 (i32), fp16 (hp), fp32 (fp) + - 浮点数取模运算遵循标准 C 库函数 ``fmod`` 的行为。 + - 若除数元素为 0,结果为未定义行为,需由上层逻辑保证除数非 0。 + +**共享存储版本:** + +.. c:function:: void i8_mod_s(int8_t* input0, int8_t* input1, int8_t* output, int length, int core_mask) +.. c:function:: void i16_mod_s(int16_t* input0, int16_t* input1, int16_t* output, int length, int core_mask) +.. c:function:: void i32_mod_s(int32_t* input0, int32_t* input1, int32_t* output, int length, int core_mask) +.. c:function:: void hp_mod_s(half* input0, half* input1, half* output, int length, int core_mask) +.. c:function:: void fp_mod_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void dp_mod_s(double* input0, double* input1, double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + // FT78NE 示例(共享存储多核并行) + #include + #include "78NE/utils.h" + + int main(int argc, char* argv[]) { + int32_t *in0 = (int32_t *)0xA0000000; // 输入0在共享存储空间 + int32_t *in1 = (int32_t *)0xA1000000; // 输入1在共享存储空间 + int32_t *out = (int32_t *)0xB0000000; // 输出在共享存储空间 + int length = 10000; + int core_mask = 0xFF; // 使用所有核心进行并行取模计算 + i32_mod_s(in0, in1, out, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_mod_p(int8_t* input0, int8_t* input1, int8_t* output, int length) +.. c:function:: void i16_mod_p(int16_t* input0, int16_t* input1, int16_t* output, int length) +.. c:function:: void i32_mod_p(int32_t* input0, int32_t* input1, int32_t* output, int length) +.. c:function:: void hp_mod_p(half* input0, half* input1, half* output, int length) +.. c:function:: void fp_mod_p(float* input0, float* input1, float* output, int length) +.. c:function:: void dp_mod_p(double* input0, double* input1, double* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + // MT7004 示例(私有存储单核) + #include + + int main(int argc, char* argv[]) { + // 输入与输出均位于私有存储空间 + float *in0 = (float *)0x10000000; + float *in1 = (float *)0x10001000; + float *out = (float *)0x10002000; + int length = 512; + fp_mod_p(in0, in1, out, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/mul.rst.txt b/master/html/_sources/functionlib/dsplib/mul.rst.txt new file mode 100644 index 0000000..3db9cb3 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/mul.rst.txt @@ -0,0 +1,91 @@ +Mul +================= + +对两个输入数据执行逐元素乘法运算。支持实数类型和复数类型。 + +.. math:: + + \text{对于实数类型:}\quad output_i = input0_i \times input1_i + +.. math:: + + \text{对于复数类型:}\quad (a+bi) \times (c+di) = (ac - bd) + (ad + bc)i + +输入: + - **input0** - 第一个输入数据地址。 + - **input1** - 第二个输入数据地址。 + - **length** - 计算长度(对于复数,指复数的个数)。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持:int8 (i8), int16 (i16), int32 (i32), fp32 (fp), fp64 (dp), cplx64 (c64), cplx128 (c128) + - MT7004 支持:int16 (i16), int32 (i32), fp16 (hp), fp32 (fp), cplx64 (c64) + - 复数类型(cplx64/cplx128)在内存中以实部、虚部交替存储,运算遵循复数乘法公式。 + +**共享存储版本:** + +.. c:function:: void i8_mul_s(int8_t* input0, int8_t* input1, int8_t* output, int length, int core_mask) +.. c:function:: void i16_mul_s(int16_t* input0, int16_t* input1, int16_t* output, int length, int core_mask) +.. c:function:: void i32_mul_s(int32_t* input0, int32_t* input1, int32_t* output, int length, int core_mask) +.. c:function:: void hp_mul_s(half* input0, half* input1, half* output, int length, int core_mask) +.. c:function:: void fp_mul_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void dp_mul_s(double* input0, double* input1, double* output, int length, int core_mask) +.. c:function:: void c64_mul_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void c128_mul_s(double* input0, double* input1, double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + // FT78NE 示例:复数类型 cplx64 共享存储多核计算 + #include + #include "78NE/utils.h" + + int main(int argc, char* argv[]) { + float *in0 = (float *)0xA0000000; // 输入0 (包含 real, imag) + float *in1 = (float *)0xA1000000; // 输入1 + float *out = (float *)0xB0000000; // 输出 + int num_complex = 480000; // 复数个数 + int core_mask = 0xFF; + c64_mul_s(in0, in1, out, num_complex, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_mul_p(int8_t* input0, int8_t* input1, int8_t* output, int length) +.. c:function:: void i16_mul_p(int16_t* input0, int16_t* input1, int16_t* output, int length) +.. c:function:: void i32_mul_p(int32_t* input0, int32_t* input1, int32_t* output, int length) +.. c:function:: void hp_mul_p(half* input0, half* input1, half* output, int length) +.. c:function:: void fp_mul_p(float* input0, float* input1, float* output, int length) +.. c:function:: void dp_mul_p(double* input0, double* input1, double* output, int length) +.. c:function:: void c64_mul_p(float* input0, float* input1, float* output, int length) +.. c:function:: void c128_mul_p(double* input0, double* input1, double* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + // MT7004 示例:fp16 (half) 类型私有存储单核计算 + #include + + int main(int argc, char* argv[]) { + // 输入与输出均位于私有存储空间 + half *in0 = (half *)0x10000000; + half *in1 = (half *)0x10001000; + half *out = (half *)0x10002000; + int length = 1024; + hp_mul_p(in0, in1, out, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/mulgrad.rst.txt b/master/html/_sources/functionlib/dsplib/mulgrad.rst.txt new file mode 100644 index 0000000..1f6c304 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/mulgrad.rst.txt @@ -0,0 +1,158 @@ +Mulgrad +================= + + +计算逐元素乘法 (Mul) 操作的梯度。该算子是 Mul 算子的反向传播(backward pass)部分。梯度的计算遵循链式法则。 + +.. math:: + + \text{dx0}_i = \text{dy}_i \times \text{Input1}_i + + \text{dx1}_i = \text{dy}_i \times \text{Input0}_i + +其中 dx0 和 dx1 分别是损失函数对前向输入 Input0 和 Input1 的梯度。 + +Gradmul1L版本专门用于 `x1` 张量维度大于或等于 `x2` 张量的广播场景。Gradmul2l版本专门用于 `x2` 张量维度大于或等于 `x1` 张量的广播场景。 + +输入: + - **dy** - 来自后一层的上游梯度张量。 + - **x1** - 前向传播时的第一个输入张量(被除数)。 + - **x2** - 前向传播时的第二个输入张量(除数)。 + - **large_shape** - `x1` 和 `x2` 中维度较大的张量的形状。 + - **small_shape** - `x1` 和 `x2` 中维度较小的张量的形状。 + - **out_shape** - 输出张量 `dx1` 和 `dx2` 的形状。 + - **ndims** - 张量的维度数。 + - **large_strides** - 维度较大张量的步长信息。 + - **small_strides** - 维度较小张量的步长信息。 + - **out_strides** - 输出张量的步长信息。 + - **large_multiples** - 维度较大张量的广播倍数。 + - **small_multiples** - 维度较小张量的广播倍数。 + - **tile_data0** - 临时工作空间地址。 + - **tile_data1** - 临时工作空间地址。 + - **indices** - 用于广播计算的临时索引空间地址。 + - **core_mask** - 核掩码。 + +输出: + - **dx1** - 写入计算出的对 `x1` 的梯度。 + - **dx2** - 写入计算出的对 `x2` 的梯度。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void fp_gradmul_s(float* dy, float* x1, float* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, float* dx1, float* dx2, float* tile_data0, float* tile_data1, int* indices, int core_mask) +.. c:function:: void hp_gradmul_s(half* dy, half* x1, half* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, half* dx1, half* dx2, half* tile_data0, half* tile_data1, int* indices, int core_mask) +.. c:function:: void fp_gradmul1l_s(float* dy, float* x1, float* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, float* dx1, float* dx2, float* tile_data0, float* tile_data1, int* indices, int core_mask) +.. c:function:: void hp_gradmul1l_s(half* dy, half* x1, half* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, half* dx1, half* dx2, half* tile_data0, half* tile_data1, int* indices, int core_mask) +.. c:function:: void fp_gradmul2l_s(float* dy, float* x1, float* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, float* dx1, float* dx2, float* tile_data0, float* tile_data1, int* indices, int core_mask) +.. c:function:: void hp_gradmul2l_s(half* dy, half* x1, half* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, half* dx1, half* dx2, half* tile_data0, half* tile_data1, int* indices, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 38 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *dy = (float *)0xA1000000; + float *dx1 = (float *)0xA2000000; + float *dx2 = (float *)0xA3000000; + float *x1_data = (float *)0xA4000000; + float *x2_data = (float *)0xA5000000; + float *tile_data0 = (float *)0xA6000000; + float *tile_data1 = (float *)0xA7000000; + + long long ndims = 4; + long long dy_size; + long long x1_size; + long long x2_size; + + int *large_strides = (int *)0xAB000000; + int *small_strides = (int *)0xAB100000; + int *out_strides = (int *)0xAB200000; + int *large_multiples = (int *)0xAB300000; + int *small_multiples = (int *)0xAB400000; + int *indices = (int *)0xAB500000; + int *large_shape = (int *)0xAB600000; + int *small_shape = (int *)0xAB700000; + int *out_shape = (int *)0xAB800000; + + large_shape[0] = 12; large_shape[1] = 14; large_shape[2] = 3; large_shape[3] = 5; + small_shape[0] = 12; small_shape[1] = 14; small_shape[2] = 3; small_shape[3] = 5; + out_shape[0] = 12; out_shape[1] = 14; out_shape[2] = 3; out_shape[3] = 5; + + int core_mask = 0xff; + + dy_size = out_shape[0] * out_shape[1] * out_shape[2] * out_shape[3]; + x1_size = large_shape[0] * large_shape[1] * large_shape[2] * large_shape[3]; + x2_size = small_shape[0] * small_shape[1] * small_shape[2] * small_shape[3]; + + fp_gradmul_s(dy, x1, x2, large_shape, small_shape, out_shape, ndims, large_strides, small_strides, out_strides, large_multiples, small_multiples, dx1, dx2, tile_data0, tile_data1, indices, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_gradmul_p(float* dy, float* x1, float* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, float* dx1, float* dx2, float* tile_data0, float* tile_data1, int* indices) +.. c:function:: void hp_gradmul_p(half* dy, half* x1, half* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, half* dx1, half* dx2, half* tile_data0, half* tile_data1) +.. c:function:: void fp_gradmul1l_p(float* dy, float* x1, float* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, float* dx1, float* dx2, float* tile_data0, float* tile_data1, int* indices) +.. c:function:: void hp_gradmul1l_p(half* dy, half* x1, half* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, half* dx1, half* dx2, half* tile_data0, half* tile_data1, int* indices) +.. c:function:: void fp_gradmul2l_p(float* dy, float* x1, float* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, float* dx1, float* dx2, float* tile_data0, float* tile_data1, int* indices) +.. c:function:: void hp_gradmul2l_p(half* dy, half* x1, half* x2, int* large_shape, int* small_shape, int* out_shape, int ndims, int* large_strides, int* small_strides, int* out_strides, int* large_multiples, int* small_multiples, half* dx1, half* dx2, half* tile_data0, half* tile_data1, int* indices) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 36 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *dy = (float *)0x10000000; + float *dx1 = (float *)0x12000000; + float *dx2 = (float *)0x13000000; + float *x1_data = (float *)0x14000000; + float *x2_data = (float *)0x15000000; + float *tile_data0 = (float *)0x16000000; + float *tile_data1 = (float *)0x17000000; + + long long ndims = 4; + long long dy_size; + long long x1_size; + long long x2_size; + + int *large_strides = (int *)0x1B000000; + int *small_strides = (int *)0x1B100000; + int *out_strides = (int *)0x1B200000; + int *large_multiples = (int *)0x1B300000; + int *small_multiples = (int *)0x1B400000; + int *indices = (int *)0x1B500000; + int *large_shape = (int *)0x1B600000; + int *small_shape = (int *)0x1B700000; + int *out_shape = (int *)0x1B800000; + + large_shape[0] = 12; large_shape[1] = 14; large_shape[2] = 3; large_shape[3] = 5; + small_shape[0] = 12; small_shape[1] = 14; small_shape[2] = 3; small_shape[3] = 5; + out_shape[0] = 12; out_shape[1] = 14; out_shape[2] = 3; out_shape[3] = 5; + + dy_size = out_shape[0] * out_shape[1] * out_shape[2] * out_shape[3]; + x1_size = large_shape[0] * large_shape[1] * large_shape[2] * large_shape[3]; + x2_size = small_shape[0] * small_shape[1] * small_shape[2] * small_shape[3]; + + fp_gradmul_p(dy, x1, x2, large_shape, small_shape, out_shape, ndims, large_strides, small_strides, out_strides, large_multiples, small_multiples, dx1, dx2, tile_data0, tile_data1, indices); + return 0; + } + + \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/neg.rst.txt b/master/html/_sources/functionlib/dsplib/neg.rst.txt new file mode 100644 index 0000000..2165f5f --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/neg.rst.txt @@ -0,0 +1,81 @@ +Neg +================= +逐元素计算输入数据的取负结果。 + +.. math:: + + output_i = -Input_i + +输入: + - **Input** - 输入数据地址。 + - **length** - 计算长度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_neg_s(int8_t* Input, int8_t* output, int length, int core_mask) +.. c:function:: void i16_neg_s(int16_t* Input, int16_t* output, int length, int core_mask) +.. c:function:: void i32_neg_s(int32_t* Input, int32_t* output, int length, int core_mask) +.. c:function:: void hp_neg_s(half* Input, half* output, int length, int core_mask) +.. c:function:: void fp_neg_s(float* Input, float* output, int length, int core_mask) +.. c:function:: void dp_neg_s(double* Input, double* output, int length, int core_mask) +.. c:function:: void c64_neg_s(float* Input, float* output, int length, int core_mask) +.. c:function:: void c128_neg_s(double* Input, double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 9 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; //input在DDR空间 + float *output = (float *)0xB0000000; + int length = 1000; + int core_mask = 0xff; + fp_neg_s(input, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_neg_p(int8_t* Input, int8_t* output, int length) +.. c:function:: void i16_neg_p(int16_t* Input, int16_t* output, int length) +.. c:function:: void i32_neg_p(int32_t* Input, int32_t* output, int length) +.. c:function:: void hp_neg_p(half* Input, half* output, int length) +.. c:function:: void fp_neg_p(float* Input, float* output, int length) +.. c:function:: void dp_neg_p(double* Input, double* output, int length) +.. c:function:: void c64_neg_p(float* Input, float* output, int length) +.. c:function:: void c128_neg_p(double* Input, double* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 8 + + //MT7004示例 + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; //input在L2空间 + float *output = (float *)0x10001000; + int length = 1000; + fp_neg_p(input, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/neg_grad.rst.txt b/master/html/_sources/functionlib/dsplib/neg_grad.rst.txt new file mode 100644 index 0000000..c8bba1a --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/neg_grad.rst.txt @@ -0,0 +1,83 @@ +NegGrad +================= +逐元素计算输入数据的取负梯度结果。 + +.. math:: + + output_i = -Input_i + +输入: + - **Input** - 输入数据地址。 + - **length** - 计算长度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + + +**共享存储版本:** + +.. c:function:: void i8_neg_grad_s(int8_t* Input, int8_t* output, int length, int core_mask) +.. c:function:: void i16_neg_grad_s(int16_t* Input, int16_t* output, int length, int core_mask) +.. c:function:: void i32_neg_grad_s(int32_t* Input, int32_t* output, int length, int core_mask) +.. c:function:: void hp_neg_grad_s(half* Input, half* output, int length, int core_mask) +.. c:function:: void fp_neg_grad_s(float* Input, float* output, int length, int core_mask) +.. c:function:: void dp_neg_grad_s(double* Input, double* output, int length, int core_mask) +.. c:function:: void c64_neg_grad_s(float* Input, float* output, int length, int core_mask) +.. c:function:: void c128_neg_grad_s(double* Input, double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 9 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; //input在DDR空间 + float *output = (float *)0xB0000000; + int length = 1000; + int core_mask = 0xff; + fp_neg_grad_s(input, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_neg_grad_p(int8_t* Input, int8_t* output, int length) +.. c:function:: void i16_neg_grad_p(int16_t* Input, int16_t* output, int length) +.. c:function:: void i32_neg_grad_p(int32_t* Input, int32_t* output, int length) +.. c:function:: void hp_neg_grad_p(half* Input, half* output, int length) +.. c:function:: void fp_neg_grad_p(float* Input, float* output, int length) +.. c:function:: void dp_neg_grad_p(double* Input, double* output, int length) +.. c:function:: void c64_neg_grad_p(float* Input, float* output, int length) +.. c:function:: void c128_neg_grad_p(double* Input, double* output, int length) + + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 8 + + //MT7004示例 + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; //input在L2空间 + float *output = (float *)0x10001000; + int length = 1000; + fp_neg_grad_p(input, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/nllloss.rst.txt b/master/html/_sources/functionlib/dsplib/nllloss.rst.txt new file mode 100644 index 0000000..e6b17b7 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/nllloss.rst.txt @@ -0,0 +1,111 @@ +NLLLoss +================= + + + +对输入的对数概率(log-probabilities)和目标标签计算负对数似然损失(Negative Log Likelihood Loss)。 + +该算子通常用于分类任务中,输入为已经取对数的概率值(例如 LogSoftmax 的输出)。 + +.. math:: + + \text{loss}_i = - \log p_{i, y_i} \cdot w_{y_i} + +其中: + +- :math:`p_{i, y_i}` 表示第 :math:`i` 个样本在真实类别 :math:`y_i` 上的预测概率 +- :math:`w_{y_i}` 表示对应类别的权重 + +根据 ``reduction_type`` 的不同,对 batch 维度的损失进行不同方式的归约。 + +输入: + - **log_probs** - 输入的对数概率数据地址,形状为 ``[batch_size, class_num]``。 + - **labels** - 真实标签索引地址,形状为 ``[batch_size]``。 + - **weight** - 类别权重数组地址,形状为 ``[class_num]``。 + - **batch_size** - batch 大小。 + - **class_num** - 类别数量。 + - **reduction_type** - 损失归约方式: + - ``0``:None,不做归约,逐样本输出 + - ``1``:Sum,对 batch 内损失求和 + - ``2``:Mean,对 batch 内损失按权重和求平均 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **loss** - 损失输出地址: + - 当 ``reduction_type = 0`` 时,输出长度为 ``batch_size`` + - 当 ``reduction_type = 1`` 或 ``2`` 时,仅使用 ``loss[0]`` + - **total_weight** - 所有样本权重之和地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp, int8 + - MT7004 支持 hp, fp + - 输入 ``log_probs`` 应已是对数概率值 + - ``labels`` 中的索引需满足 ``0 <= label < class_num`` + +**共享存储版本:** + +.. c:function:: void i8_nllloss_s(const int8_t* log_probs, const int* labels, const int8_t* weight, int32_t* loss, int32_t* total_weight, int batch_size, int class_num, int reduction_type, int core_mask) +.. c:function:: void hp_nllloss_s(const half* log_probs, const int* labels, const half* weight, half* loss, half* total_weight, int batch_size, int class_num, int reduction_type, int core_mask) +.. c:function:: void fp_nllloss_s(const float* log_probs, const int* labels, const float* weight, float* loss, float* total_weight, int batch_size, int class_num, int reduction_type, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16-17 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *log_probs = (float *)0xA0000000; // [batch_size, class_num] + int *labels = (int *)0xA0001000; // [batch_size] + float *weight = (float *)0xA0002000; // [class_num] + float *loss = (float *)0xC0000000; + float *total_w = (float *)0xC0001000; + int batch_size = 32; + int class_num = 1000; + int reduction_type = 2; // Mean + int core_mask = 0xff; + + fp_nllloss_s(log_probs, labels, weight, loss, total_w, + batch_size, class_num, reduction_type, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_nllloss_p(const int8_t* log_probs, const int* labels, const int8_t* weight, int32_t* loss, int32_t* total_weight, int batch_size, int class_num, int reduction_type) +.. c:function:: void hp_nllloss_p(const half* log_probs, const int* labels, const half* weight, half* loss, half* total_weight, int batch_size, int class_num, int reduction_type) +.. c:function:: void fp_nllloss_p(const float* log_probs, const int* labels, const float* weight, float* loss, float* total_weight, int batch_size, int class_num, int reduction_type) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15-16 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *log_probs = (float *)0x10810000; // L2空间 + int *labels = (int *)0x10820000; + float *weight = (float *)0x10830000; + float *loss = (float *)0x10840000; + float *total_w = (float *)0x10850000; + int batch_size = 32; + int class_num = 1000; + int reduction_type = 1; // Sum + + fp_nllloss_p(log_probs, labels, weight, loss, total_w, + batch_size, class_num, reduction_type); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/nlllossgrad.rst.txt b/master/html/_sources/functionlib/dsplib/nlllossgrad.rst.txt new file mode 100644 index 0000000..77834fe --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/nlllossgrad.rst.txt @@ -0,0 +1,120 @@ +NLLLossGrad +================= + + + +对 NLLLoss(Negative Log Likelihood Loss)算子的反向传播过程进行计算,得到输入 logits 的梯度。 + +该算子根据前向 NLLLoss 的 ``reduction_type``,对上游梯度进行对应方式的反向分发,仅在真实类别索引处产生非零梯度,其余位置梯度为 0。 + +.. math:: + + \frac{\partial L}{\partial x_{i,j}} = + \begin{cases} + - g_i \cdot w_{y_i}, & j = y_i,\ \text{reduction = none} \\ + - g \cdot w_{y_i}, & j = y_i,\ \text{reduction = sum} \\ + - g \cdot \dfrac{w_{y_i}}{\sum w}, & j = y_i,\ \text{reduction = mean} \\ + 0, & j \neq y_i + \end{cases} + +其中: + +- :math:`g_i` 表示逐样本损失梯度 +- :math:`g` 表示归约后的标量损失梯度 +- :math:`y_i` 表示第 :math:`i` 个样本的真实类别索引 +- :math:`w_{y_i}` 表示对应类别权重 + +输入: + - **logits** - 前向输入 logits 地址,形状为 ``[batch, class_num]`` (仅用于尺寸信息)。 + - **loss_grad** - 上游损失梯度地址: + - ``reduction_type = 0 (none)`` 时,形状为 ``[batch]`` + - ``reduction_type = 1 / 2 (sum / mean)`` 时,仅使用 ``loss_grad[0]`` + - **labels** - 真实标签索引地址,形状为 ``[batch]``。 + - **weight** - 类别权重数组地址,形状为 ``[class_num]``。 + - **total_weight** - 权重和地址(仅 ``reduction_type = mean`` 时使用)。 + - **batch** - batch 大小。 + - **class_num** - 类别数量。 + - **reduction_type** - 损失归约方式: + - ``0``:Sum + - ``1``:Mean + - ``2``:None + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **logits_grad** - logits 的梯度输出地址,形状为 ``[batch, class_num]``。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 仅支持 fp 类型 + - MT7004 支持 hp, fp 类型 + - 输出梯度在非真实类别位置恒为 0 + - ``labels`` 中索引需满足 ``0 <= label < class_num`` + +**共享存储版本:** + +.. c:function:: void hp_nlllossgrad_s(half* logits, half* loss_grad, int* labels, half* weight, half* total_weight, half* logits_grad, int batch, int class_num, int reduction_type, int core_mask) +.. c:function:: void fp_nlllossgrad_s(float* logits, float* loss_grad, int* labels, float* weight, float* total_weight, float* logits_grad, int batch, int class_num, int reduction_type, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 18-19 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *logits = (float *)0xA0000000; // [batch, class_num] + float *loss_grad = (float *)0xA0001000; // 上游梯度 + int *labels = (int *)0xA0002000; // [batch] + float *weight = (float *)0xA0003000; // [class_num] + float *total_weight = (float *)0xA0004000; + float *logits_grad = (float *)0xC0000000; + + int batch = 32; + int class_num = 1000; + int reduction_type = 1; // Mean + int core_mask = 0xff; + + fp_nlllossgrad_s(logits, loss_grad, labels, weight, total_weight, + logits_grad, batch, class_num, reduction_type, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void hp_nlllossgrad_p(half* logits, half* loss_grad, int* labels, half* weight, half* total_weight, half* logits_grad, int batch, int class_num, int reduction_type) +.. c:function:: void fp_nlllossgrad_p(float* logits, float* loss_grad, int* labels, float* weight, float* total_weight, float* logits_grad, int batch, int class_num, int reduction_type) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17-18 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *logits = (float *)0x10810000; // L2空间 + float *loss_grad = (float *)0x10820000; + int *labels = (int *)0x10830000; + float *weight = (float *)0x10840000; + float *total_weight = (float *)0x10850000; + float *logits_grad = (float *)0x10860000; + + int batch = 32; + int class_num = 1000; + int reduction_type = 2; // None + + fp_nlllossgrad_p(logits, loss_grad, labels, weight, total_weight, + logits_grad, batch, class_num, reduction_type); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/non_max_suppression.rst.txt b/master/html/_sources/functionlib/dsplib/non_max_suppression.rst.txt new file mode 100644 index 0000000..f7a84e0 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/non_max_suppression.rst.txt @@ -0,0 +1,151 @@ +NonMaxSuppression +=================== +对检测框进行非极大值抑制(Non-Maximum Suppression, NMS),用于在目标检测中选取得分较高且重叠度低的边界框,并去除那些重叠度较高的低得分框。其目的是减少冗余边界框,提高目标检测的准确性。 + +.. math:: + + \text{对于每个类别 } c, \text{在同一批次下保留置信度较高且 IoU 小于阈值的框:} + + \text{若 } \mathrm{IoU}(box_i, box_j) > \text{iou\_threshold} \Rightarrow \text{抑制 } box_j, + +.. math:: + IoU=\frac{intersec\_area}{(cand.get\_area() + box.get\_area() - intersec\_area)} + +输入: + - **NmsParam** - 输入参数结构体。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + + **结构体定义:** + + .. code-block:: c + :linenos: + + typedef struct { + float* boxes; // 形状为 (batch, num_boxes, 4) + float* score; // 形状为 (batch, class, num_boxes) + int* output; // 输出缓冲区 + float* candidates; // 候选框临时缓冲区 + int batch_num; // 批次数量 + int class_num; // 类别数量 + int box_num; // 每个类别的框数量 + int center_point_box; // 0: corner box, 1: center point box + bool simple_out; // true: 仅输出index, false: 输出 batch, class, index + int max_output_per_class; // 每个类别最大输出框数 + float iou_threshold; // IoU 阈值 + float score_threshold; // 分数阈值 + } NmsParamFp32; + typedef struct { + int8_t* boxes; // 形状为 (batch, num_boxes, 4) + int8_t* score; // 形状为 (batch, class, num_boxes) + int* output; // 输出缓冲区 + float* candidates; // 候选框临时缓冲区 + int batch_num; // 批次数量 + int class_num; // 类别数量 + int box_num; // 每个类别的框数量 + int center_point_box; // 0: corner box, 1: center point box + bool simple_out; // true: 仅输出index, false: 输出 batch, class, index + int max_output_per_class; // 每个类别最大输出框数 + float iou_threshold; // IoU 阈值 + int8_t score_threshold; // 分数阈值 + } NmsParamInt8; + typedef struct { + float16* boxes; + float16* score; + int* output; + float16* candidates; + uint64_t batch_num; + uint64_t class_num; + uint64_t box_num; + uint64_t center_point_box; + uint64_t simple_out; + uint64_t max_output_per_class; + float iou_threshold_bits; + float score_threshold_bits; + } NmsParamFp16; +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp32, int8 + - MT7004 支持 fp16, fp32 + - MT7004中使用结构体作为参数传入。 + +**共享存储版本:** + +.. c:function:: void i8_non_max_suppression_s(NmsParamInt8* param, int core_mask) +.. c:function:: void fp_non_max_suppression_s(NmsParamFp32* param, int core_mask) +.. c:function:: void hp_non_max_suppression_s(NmsParamFp16* param, int core_mask) + + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 24 + + //MT7004示例 + #include + + int main(int argc, char* argv[]) { + float *boxes = (float *)0xA0000000; + float *score = (float *)0xA1000000; + int *output = (int *)0xA2000000; + NmsParamFp32* param = (NmsParamFp32*)0xA3000000; + + param->boxes = boxes; + param->score = score; + param->output = output; + param->candidates = candidates; + param->batch_num = 1; + param->class_num = 3; + param->box_num = 100; + param->center_point_box = 0; + param->simple_out = 1; + param->max_output_per_class = 50; + param->iou_threshold_bits = 0.5; + param->score_threshold_bits = 0.1; + + int core_mask = 0xff; + fp_non_max_suppression_s(param, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_non_max_suppression_p(NmsParamInt8* param) +.. c:function:: void fp_non_max_suppression_p(NmsParamFp32* param) +.. c:function:: void hp_non_max_suppression_p(NmsParamFp16* param) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 23 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float *boxes = (float *)0x1000000; + float *score = (float *)0xA1000000; + int *output = (int *)0xA2000000; + NmsParamFp32* param = (NmsParamFp32*)0xA3000000; + + param->boxes = boxes; + param->score = score; + param->output = output; + param->candidates = candidates; + param->batch_num = 1; + param->class_num = 3; + param->box_num = 100; + param->center_point_box = 0; + param->simple_out = 1; + param->max_output_per_class = 50; + param->iou_threshold_bits = 0.5; + param->score_threshold_bits = 0.1; + + fp_non_max_suppression_s(param); + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/nonzero.rst.txt b/master/html/_sources/functionlib/dsplib/nonzero.rst.txt new file mode 100644 index 0000000..c0b9bda --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/nonzero.rst.txt @@ -0,0 +1,119 @@ +NonZero +================= + + + +查找输入张量中 **非零元素的位置索引**。 +该算子按线性顺序遍历输入张量,对于满足“非零”判定条件的元素, +计算其在各维度上的索引,并顺序写入输出索引张量。 + +对于浮点类型,非零的判定标准为: + +.. math:: + + |x| > \epsilon + +其中 :math:`\epsilon` 为平台定义的极小阈值(如 ``FLOAT_EPS``), +用于避免数值误差导致的误判。 + +输入: + - **input** - 输入数据地址,按一维连续内存存储。 + - **dim_strides** - 各维度步长数组,长度为 ``input_rank``, + 用于将线性索引映射为多维索引。 + - **shape** - 输入张量的形状数组,长度为 ``input_rank`` (当前实现中主要用于描述维度信息)。 + - **input_rank** - 输入张量的维度数。 + - **length** - 输入张量的元素总数。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 非零元素索引输出地址, + 按 ``[non_zero_num, input_rank]`` 形式顺序存储。 + - **non_zero_num** - 非零元素个数指针,函数执行结束后保存最终非零元素数量。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 ``fp32``、``fp64``、``int8``、``int16``、``int32``、``cplx64``、``cplx128`` 类型 + - MT7004 支持 ``fp16``、``fp32``、``int16``、``int32``、``cplx64`` 类型 + - 输出索引按照输入线性遍历顺序排列 + - ``non_zero_num`` 在调用前需初始化为 0 + +**共享存储版本:** + +.. c:function:: void fp_nonzero_s(float* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length, int core_mask) +.. c:function:: void dp_nonzero_s(double* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length, int core_mask) +.. c:function:: void i8_nonzero_s(int8_t* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length, int core_mask) +.. c:function:: void i16_nonzero_s(int16_t* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length, int core_mask) +.. c:function:: void i32_nonzero_s(int32_t* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length, int core_mask) +.. c:function:: void c64_nonzero_s(cplx64* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length, int core_mask) +.. c:function:: void c128_nonzero_s(cplx128* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 18-20 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; + int *output = (int *)0xC0000000; + int *non_zero_num = (int *)0xA1000000; + int *dim_strides = (int *)0xA2000000; + int *shape = (int *)0xA3000000; + + int input_rank = 3; + int length = 1024; + int core_mask = 0xff; + + non_zero_num[0] = 0; + + fp_nonzero_s(input, output, non_zero_num, + dim_strides, shape, input_rank, + length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_nonzero_p(float* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length) +.. c:function:: void dp_nonzero_p(double* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length) +.. c:function:: void i8_nonzero_p(int8_t* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length) +.. c:function:: void i16_nonzero_p(int16_t* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length) +.. c:function:: void i32_nonzero_p(int32_t* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length) +.. c:function:: void c64_nonzero_p(cplx64* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length) +.. c:function:: void c128_nonzero_p(cplx128* input, int* output, int* non_zero_num, int* dim_strides, int* shape, int input_rank, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17-18 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10810000; // L2 空间 + int *output = (int *)0x10820000; + int *non_zero_num = (int *)0x10830000; + int *dim_strides = (int *)0x10840000; + int *shape = (int *)0x10850000; + + int input_rank = 3; + int length = 1024; + + non_zero_num[0] = 0; + + fp_nonzero_p(input, output, non_zero_num, + dim_strides, shape, input_rank, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/not_equal.rst.txt b/master/html/_sources/functionlib/dsplib/not_equal.rst.txt new file mode 100644 index 0000000..f21db52 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/not_equal.rst.txt @@ -0,0 +1,88 @@ +NotEqual +================= + +逐元素计算两个输入是否不相等 + +.. math:: + + output_i = \begin{cases} + \text{True}, & \text{if } Input0_i \neq Input1_i \\ + \text{False}, & \text{if } Input0_i = Input1_i + \end{cases} + +输入: + - **Input0** - 第一个输入数据地址。 + - **Input1** - 第二个输入数据地址。 + - **length** - 计算长度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_not_equal_s(int8_t* Input0, int8_t* Input1, bool* output, int length, int core_mask) +.. c:function:: void i16_not_equal_s(int16_t* Input0, int16_t* Input1, bool* output, int length, int core_mask) +.. c:function:: void i32_not_equal_s(int* Input0, int* Input1, bool* output, int length, int core_mask) +.. c:function:: void hp_not_equal_s(half* Input0, half* Input1, bool* output, int length, int core_mask) +.. c:function:: void fp_not_equal_s(float* Input0, float* Input1, bool* output, int length, int core_mask) +.. c:function:: void dp_not_equal_s(double* Input0, double* Input1, bool* output, int length, int core_mask) +.. c:function:: void c64_not_equal_s(float* Input0, float* Input1, bool* output, int length, int core_mask) +.. c:function:: void c128_not_equal_s(double* Input0, double* Input1, bool* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; //input在DDR空间 + float *input1 = (float *)0xB0000000; + bool *output = (bool *)0xC0000000; + int length = 1000; + int core_mask = 0xff; + fp_not_equal_s(input0, input1, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_not_equal_p(int8_t* Input0, int8_t* Input1, bool* output, int length) +.. c:function:: void i16_not_equal_p(int16_t* Input0, int16_t* Input1, bool* output, int length) +.. c:function:: void i32_not_equal_p(int32_t* Input0, int32_t* Input1, bool* output, int length) +.. c:function:: void hp_not_equal_p(half* Input0, half* Input1, bool* output, int length) +.. c:function:: void fp_not_equal_p(float* Input0, float* Input1, bool* output, int length) +.. c:function:: void dp_not_equal_p(double* Input0, double* Input1, bool* output, int length) +.. c:function:: void c64_not_equal_p(float* Input0, float* Input1, bool* output, int length) +.. c:function:: void c128_not_equal_p(double* Input0, double* Input1, bool* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 9 + + //MT7004示例 + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0x10000000; + float *input1 = (float *)0x10001000; + bool *output = (bool *)0xC0000000; + int length = 1000; + fp_not_equal_p(input0, input1, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/onehot.rst.txt b/master/html/_sources/functionlib/dsplib/onehot.rst.txt new file mode 100644 index 0000000..e9cd886 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/onehot.rst.txt @@ -0,0 +1,115 @@ +OneHot +================= + + 根据输入的索引值,在指定轴上生成独热编码(one-hot encoding)。 + + .. math:: + + output_{i_1, i_2, \dots, i_{axis}, \dots, i_n} = + \begin{cases} + on\_value, & \text{if } i_{axis} = indices_{j} \\ + off\_value, & \text{otherwise} + \end{cases} + + 其中,:math:`indices_{j}` 为输入索引张量的元素,索引 :math:`j` 与输出下标 + :math:`(i_1, \dots, i_{axis-1}, i_{axis+1}, \dots, i_n)` 一一对应。 + :math:`depth` 表示 one-hot 向量的长度,:math:`axis` 表示新维度插入的位置。 + + 当启用 ``support_neg_index`` 时,若 :math:`indices_{j} < 0`,则执行如下修正: + + .. math:: + + indices_{j} = indices_{j} + depth + + 输入: + - **on_off** - 包含**on_value**和**off_value**,表示独热编码中“热”和“冷”位置的值。 + - **axis** - 指定生成独热编码的轴。 + - **depth** - 独热编码的深度。 + - **support_neg_index** - 是否支持负索引。 + - **indices_shape_size** - 索引形状的维度大小。 + - **indices_shape** - 索引的形状数组地址。 + - **indices** - 索引值地址。 + - **core_mask** - 核心掩码,指定使用的计算核心。 + + 输出: + - **output** - 生成的独热编码结果地址。 + + 支持平台: + ``FT78NE`` + ``MT7004`` + + .. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + - MT6678 调用时将 axis/depth/support_neg_index/indices_shape_size打包通过 int_param 数组传入 + +**共享存储版本:** + +.. c:function:: void i8_onehot_s(int8_t *on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, int8_t *output, int core_mask) +.. c:function:: void i16_onehot_s(int16_t *on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, int16_t *output, int core_mask) +.. c:function:: void i32_onehot_s(int *on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, int *output, int core_mask) +.. c:function:: void hp_onehot_s(half *on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, half *output, int core_mask) +.. c:function:: void fp_onehot_s(float *on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, float *output, int core_mask) +.. c:function:: void dp_onehot_s(double *on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, double *output, int core_mask) +.. c:function:: void c64_onehot_s(float* on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, float *output, int core_mask) +.. c:function:: void c128_onehot_s(double* on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, double *output, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float on_off[2] = {1.0, 0.0}; + int axis=1, depth=4, indices_shape_size=2; + int support_neg_index=1; + int int_param[4] = {axis, depth, support_neg_index, indices_shape_size}; + int indices_shape[2] = {3, 3}; + int *indices = (int *)0xA0000000; // indices在DDR空间 + float *output = (float*)0xB0000000; // indices_shape[0] * depth * indices_shape[1] + int core_mask = 0xff; + fp_onehot_p(on_off, int_param, indices_shape, indices, output, core_mask); + // 7004调用方式: + // fp_onehot_p(on_off, axis, depth, support_neg_index, indices_shape_size, indices_shape, indices, output, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_onehot_p(int8_t *on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, int8_t *output) +.. c:function:: void i16_onehot_p(int16_t *on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, int16_t *output) +.. c:function:: void i32_onehot_p(int *on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, int *output) +.. c:function:: void hp_onehot_p(half *on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, half *output) +.. c:function:: void fp_onehot_p(float *on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, float *output) +.. c:function:: void dp_onehot_p(double *on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, double *output) +.. c:function:: void c64_onehot_p(float* on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, float *output) +.. c:function:: void c128_onehot_p(double* on_off, int axis, int depth, int support_neg_index, int indices_shape_size, int *indices_shape, int *indices, double *output) + + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float on_off[2] = {1.0, 0.0}; + int axis=1, depth=4, indices_shape_size=2; + int support_neg_index=1; + int int_param[4] = {axis, depth, support_neg_index, indices_shape_size}; + int indices_shape[2] = {3, 3}; + int *indices = (int *)0x10000000; // indices在L2空间 + float *output = (float*)0x10001000; // indices_shape[0] * depth * indices_shape[1] + fp_onehot_p(on_off, int_param, indices_shape, indices, output); + // 7004调用方式: + // fp_onehot_p(on_value, off_value, axis, depth, support_neg_index, indices_shape_size, indices_shape, indices, output); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/ones_like.rst.txt b/master/html/_sources/functionlib/dsplib/ones_like.rst.txt new file mode 100644 index 0000000..25236e9 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/ones_like.rst.txt @@ -0,0 +1,87 @@ +OnesLike +================= + +对输出数组的所有元素填充数值 1。对于复数类型,实部填充 1.0,虚部填充 0.0。 + +.. math:: + + \text{对于实数类型:}\quad output_i = 1 + +.. math:: + + \text{对于复数类型:}\quad output_i = 1 + 0i + +输入: + - **output** - 待填充的目标内存地址。 + - **length** - 处理的元素个数(对于复数类型,指复数的个数)。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 填充完成后的结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 int16, int32, fp16, fp32, cplx64 + - 复数类型(cplx64 / cplx128)在内存中以连续的 [实部, 虚部] 形式存储,OnesLike 将其设置为 [1.0, 0.0]。 + - 共享存储版本在内部使用 DMA 加速和“加倍拷贝法”以提高填充效率。 + +**共享存储版本:** + +.. c:function:: void i8_ones_like_s(int8_t* output, int length, int core_mask) +.. c:function:: void i16_ones_like_s(int16_t* output, int length, int core_mask) +.. c:function:: void i32_ones_like_s(int32_t* output, int length, int core_mask) +.. c:function:: void hp_ones_like_s(half* output, int length, int core_mask) +.. c:function:: void fp_ones_like_s(float* output, int length, int core_mask) +.. c:function:: void dp_ones_like_s(double* output, int length, int core_mask) +.. c:function:: void c64_ones_like_s(float* output, int length, int core_mask) +.. c:function:: void c128_ones_like_s(double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 9 + + //FT78NE示例(共享存储) + #include + #include "78NE/utils.h" + + int main(int argc, char* argv[]) { + float *output = (float *)0xB0000000; // 输出在 DDR 空间 + int length = 960001; + int core_mask = 0x0B; // 使用核心 0, 1, 3 + fp_ones_like_s(output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_ones_like_p(int8_t* output, int length) +.. c:function:: void i16_ones_like_p(int16_t* output, int length) +.. c:function:: void i32_ones_like_p(int32_t* output, int length) +.. c:function:: void hp_ones_like_p(half* output, int length) +.. c:function:: void fp_ones_like_p(float* output, int length) +.. c:function:: void dp_ones_like_p(double* output, int length) +.. c:function:: void c64_ones_like_p(float* output, int length) +.. c:function:: void c128_ones_like_p(double* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 7 + + //MT7004 示例(私有存储) + #include + + int main(int argc, char* argv[]) { + float *output = (float *)0x10002000; + int length = 1024; + fp_ones_like_p(output, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/padfusion.rst.txt b/master/html/_sources/functionlib/dsplib/padfusion.rst.txt new file mode 100644 index 0000000..2260e03 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/padfusion.rst.txt @@ -0,0 +1,188 @@ +PadFusion +================= +通过指定的填充模式和大小对输入张量进行填充,支持常数填充、反射填充和对称填充三种模式。 + +输入: + - **input** - 输入张量地址。 + - **input_shape** - 输入张量形状数组(不超过4维,不足时从后往前补0)。 + - **output_shape** - 输出张量形状数组(不超过4维,不足时从后往前补0)。 + - **paddings** - 填充大小数组(长度为 (2 × 输入张量维数),不足时从后往前补0)。 + - **padding_mode** - 填充模式:Constant=0, Reflect=1, Symmetric=2。 + - **constant_value** - 常量填充时的填充值(仅Constant模式使用)。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 输出数据地址。 + - **formated_input_shape** - 格式化后的输入形状数组地址。 + - **formated_output_shape** - 格式化后的输出形状数组地址。 + - **formated_paddings** - 格式化后的填充数组地址。 + - **in_strides** - 输入张量步长数组地址。 + - **out_strides** - 输出张量步长数组地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型:int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持的数据类型:fp16, fp32, int16, int32, cplx64 + +**填充模式说明:** + - ``kConstant = 0`` - 常数填充,使用指定的 constant_value 进行填充 + - ``kReflect = 1`` - 反射填充,使用张量边缘的值(不包含边界值)填充输入张量。例如,向 [1, 2, 3, 4] 的两边分别填充2个元素,结果为 [3, 2, 1, 2, 3, 4, 3, 2]。 + - ``kSymmetric = 2`` - 对称填充,使用张量边缘的值(包含边界值)填充输入张量。例如,向 [1, 2, 3, 4] 的两边分别填充2个元素,结果为 [2, 1, 1, 2, 3, 4, 4, 3]。 + +**共享存储版本:** + +.. c:function:: void i8_padfusion_s(long long* params, int core_mask) +.. c:function:: void i16_padfusion_s(long long* params, int core_mask) +.. c:function:: void i32_padfusion_s(long long* params, int core_mask) +.. c:function:: void fp_padfusion_s(long long* params, int core_mask) +.. c:function:: void dp_padfusion_s(long long* params, int core_mask) +.. c:function:: void c64_padfusion_s(long long* params, int core_mask) +.. c:function:: void c128_padfusion_s(long long* params, int core_mask) +.. c:function:: void hp_padfusion_s(long long* params, int core_mask) + +**参数数组结构:** + +.. code-block:: c + :linenos: + + long long params[12]; + params[0] = (long long)input; // 输入数据地址 + params[1] = (long long)output; // 输出数据地址 + params[2] = (long long)input_shape; // 输入形状数组 + params[3] = (long long)output_shape; // 输出形状数组 + params[4] = (long long)paddings; // 填充数组 + params[5] = (long long)padding_mode; // 填充模式 + params[6] = (long long)constant_value; // 常数填充值的*地址* + params[7] = (long long)formated_input_shape; // 格式化输入形状 + params[8] = (long long)formated_output_shape; // 格式化输出形状 + params[9] = (long long)formated_paddings; // 格式化填充数组 + params[10] = (long long)in_strides; // 输入步长数组 + params[11] = (long long)out_strides; // 输出步长数组 + +**C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 49 + + // FT78NE 多核示例 + #include + #include + + int main(void) { + srand(time(0)); + + // 输入参数设置 + int input_shape[4] = {23, 31, 29, 28}; + int paddings[8] = {3, 2, 3, 2, 1, 2, 0, 2}; + int padding_mode = 2; // kSymmetric + double constant_value[2] = {1.0, 0.0}; + int core_mask = 0xff; + + // 内存分配(DDR空间) + double* input = (double*)0x81000000; + double* output = (double*)0x82000000; + int* formated_input_shape = (int*)0x84000000; + int* formated_output_shape = (int*)0x85000000; + int* formated_paddings = (int*)0x86000000; + int* in_strides = (int*)0x87000000; + int* out_strides = (int*)0x88000000; + int* output_shape = (int*)0x89000000; + + // 计算输出形状 + for (int i = 0; i < 4; ++i) { + output_shape[i] = input_shape[i] + paddings[i * 2] + paddings[i * 2 + 1]; + } + + // 初始化input + // ... 省略初始化input数据代码 ... + + // 准备参数数组 + long long params[12]; + params[0] = (long long)input; + params[1] = (long long)output; + params[2] = (long long)input_shape; + params[3] = (long long)output_shape; + params[4] = (long long)paddings; + params[5] = (long long)padding_mode; + params[6] = (long long)constant_value; + params[7] = (long long)formated_input_shape; + params[8] = (long long)formated_output_shape; + params[9] = (long long)formated_paddings; + params[10] = (long long)in_strides; + params[11] = (long long)out_strides; + + // 执行 PadFusion 操作 + c128_padfusion_s(params, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_padfusion_p(long long* params) +.. c:function:: void i16_padfusion_p(long long* params) +.. c:function:: void i32_padfusion_p(long long* params) +.. c:function:: void fp_padfusion_p(long long* params) +.. c:function:: void dp_padfusion_p(long long* params) +.. c:function:: void c64_padfusion_p(long long* params) +.. c:function:: void c128_padfusion_p(long long* params) +.. c:function:: void hp_padfusion_p(long long* params) + +**C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 47 + + // MT7004 单核示例 + #include + #include + + + int main(void) { + // 输入参数设置 + int input_shape[4] = {4, 8, 4, 8}; + int paddings[8] = {1, 1, 1, 1, 1, 1, 1, 1}; + int padding_mode = 0; // kConstant + float constant_value = 0.0f; + + // 内存分配(L2空间) + float* input = (float*)0x10000000; + float* output = (float*)0x10100000; + int* output_shape = (int*)0x10200000; + int* formated_input_shape = (int*)0x10300000; + int* formated_output_shape = (int*)0x10400000; + int* formated_paddings = (int*)0x10500000; + int* in_strides = (int*)0x10600000; + int* out_strides = (int*)0x10700000; + + // 计算输出形状 + for (int i = 0; i < 4; ++i) { + output_shape[i] = input_shape[i] + paddings[i * 2] + paddings[i * 2 + 1]; + } + + // 初始化input + // ... 省略初始化input数据代码 ... + + // 准备参数数组 + long long params[12]; + params[0] = (long long)input; + params[1] = (long long)output; + params[2] = (long long)input_shape; + params[3] = (long long)output_shape; + params[4] = (long long)paddings; + params[5] = (long long)padding_mode; + params[6] = (long long)&constant_value; + params[7] = (long long)formated_input_shape; + params[8] = (long long)formated_output_shape; + params[9] = (long long)formated_paddings; + params[10] = (long long)in_strides; + params[11] = (long long)out_strides; + + // 执行 PadFusion 操作 + fp_padfusion_p(params); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/pow_fusion.rst.txt b/master/html/_sources/functionlib/dsplib/pow_fusion.rst.txt new file mode 100644 index 0000000..8def4ed --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/pow_fusion.rst.txt @@ -0,0 +1,95 @@ +PowFusion +================= +先对输入按线性变换,然后逐元素计算幂运算,支持指数广播。 + +.. math:: + + \text{if broadcast: } output_i = (scale \times Input_i + shift)^{exponent_0} \\ + \text{else: } output_i = (scale \times Input_i + shift)^{exponent_i} + +输入: + - **Input** - 输入数据地址。 + - **exponent** - 指数数据地址;当 **broadcast** 为 True 时读取 `exponent[0]` 作为标量。 + - **length_in** - 输入长度。 + - **scale** - 线性变换比例系数。 + - **shift** - 线性变换偏移值。 + - **broadcast** - 是否将指数作为标量广播。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp32, fp64, int8, int16, int32 + - MT7004 支持 fp32, fp16, int16, int32 + - 当指数为整数(即 fabs(exp - (int)exp) < 1e-6)时,内部使用优化的整数次幂实现以提高性能。 + - 对于负底数与非整数指数或其它非法值(如 0^negative),结果可能为未定义或产生 NaN/Inf,上层应负责必要的数值检查与处理。 + +**共享存储版本:** + +.. c:function:: void i8_pow_fusion_s(int8_t* Input, int8_t* exponent, int8_t* output, int length_in, int8_t scale, int8_t shift, bool broadcast, int core_mask) +.. c:function:: void i16_pow_fusion_s(int16_t* Input, int16_t* exponent, int16_t* output, int length_in, int scale, int shift, bool broadcast, int core_mask) +.. c:function:: void i32_pow_fusion_s(int32_t* Input, int32_t* exponent, int32_t* output, int length_in, int scale, int shift, bool broadcast, int core_mask) +.. c:function:: void hp_pow_fusion_s(half* Input, half* exponent, half* output, int length_in, float scale, float shift, bool broadcast, int core_mask) +.. c:function:: void fp_pow_fusion_s(float* Input, float* exponent, float* output, int length_in, float scale, float shift, bool broadcast, int core_mask) +.. c:function:: void dp_pow_fusion_s(double* Input, double* exponent, double* output, int length_in, double scale, double shift, bool broadcast, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 14 + + // FT78NE 共享存储示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input 在 DDR 空间 + float *exponent = (float *)0xA0100000; // exponent 在 DDR 空间(或标量) + float *output = (float *)0xB0000000; + int length_in = 1024; + float scale = 1.0f; + float shift = 0.0f; + bool broadcast = false; + int core_mask = 0xff; + fp_pow_fusion_s(input, exponent, output, length_in, scale, shift, broadcast, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_pow_fusion_p(int8_t* Input, int8_t* exponent, int8_t* output, int length_in, int8_t scale, int8_t shift, bool broadcast) +.. c:function:: void i16_pow_fusion_p(int16_t* Input, int16_t* exponent, int16_t* output, int length_in, int scale, int shift, bool broadcast) +.. c:function:: void i32_pow_fusion_p(int32_t* Input, int32_t* exponent, int32_t* output, int length_in, int scale, int shift, bool broadcast) +.. c:function:: void hp_pow_fusion_p(half* Input, half* exponent, half* output, int length_in, float scale, float shift, bool broadcast) +.. c:function:: void fp_pow_fusion_p(float* Input, float* exponent, float* output, int length_in, float scale, float shift, bool broadcast) +.. c:function:: void dp_pow_fusion_p(double* Input, double* exponent, double* output, int length_in, double scale, double shift, bool broadcast) + + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 13 + + // MT7004 私有存储示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; + float *exponent = (float *)0x10001000; + float *output = (float *)0x10002000; + int length_in = 1024; + float scale = 1.0f; + float shift = 0.0f; + bool broadcast = false; + fp_pow_fusion_p(input, exponent, output, length_in, scale, shift, broadcast); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/power_grad.rst.txt b/master/html/_sources/functionlib/dsplib/power_grad.rst.txt new file mode 100644 index 0000000..dd76241 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/power_grad.rst.txt @@ -0,0 +1,79 @@ +PowerGrad +================= +计算 Power的梯度。 +对每个输入元素执行线性变换,并根据公式计算梯度结果。 + +.. math:: + + output_i = power \times scale \times Input1_i \times (scale \times Input2_i + shift)^{(power - 1)} + +输入: + - **Input1** - 第一个输入数据地址,对应前向传播的输入。 + - **Input2** - 第二个输入数据地址,对应前向传播的输入。 + - **length** - 输入长度。 + - **power** - 幂指数。 + - **scale** - 缩放系数。 + - **shift** - 偏移值。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 梯度计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp32 + - MT7004 支持 fp32, fp16 + - 若 **scale** 为 0,则输出恒为 0。 + +**共享存储版本:** + +.. c:function:: void fp_power_grad_s(float* Input1, float* Input2, float* output, int length, float power, float scale, float shift, int core_mask) +.. c:function:: void hp_power_grad_s(half* Input1, half* Input2, half* output, int length, float power, float scale, float shift, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float *input1 = (float *)0xA0000000; // input1 在 DDR 空间 + float *input2 = (float *)0xA1000000; // input2 在 DDR 空间 + float *output = (float *)0xB0000000; // 输出结果在 DDR 空间 + int length = 1024; + float power = 2.0f, scale = 0.5f, shift = 1.0f; + int core_mask = 0xff; + fp_power_grad_s(input1, input2, output, length, power, scale, shift, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_power_grad_p(float* Input1, float* Input2, float* output, int length, float power, float scale, float shift) +.. c:function:: void hp_power_grad_p(half* Input1, half* Input2, half* output, int length, float power, float scale, float shift) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + //MT7004示例 + #include + + int main(int argc, char* argv[]) { + float *input1 = (float *)0x10000000; + float *input2 = (float *)0x10001000; + float *output = (float *)0x10002000; + int length = 1024; + float power = 2.0f, scale = 0.5f, shift = 1.0f; + fp_power_grad_p(input1, input2, output, length, power, scale, shift); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/prelufusion.rst.txt b/master/html/_sources/functionlib/dsplib/prelufusion.rst.txt new file mode 100644 index 0000000..91c7b2d --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/prelufusion.rst.txt @@ -0,0 +1,84 @@ +PReLUFusion +================= + +对输入数组逐元素执行 PReLU 激活函数。对于每个元素,若小于等于 0,则乘以斜率参数 slope,否则保持原值。 + +.. math:: + + \text{dst}_i = + \begin{cases} + \text{src}_i \cdot \text{slope}, & \text{if } \text{src}_i \le 0 \\ + \text{src}_i, & \text{otherwise} + \end{cases} + +输入: + - **src_data** - 输入数据地址。 + - **slope** - PReLU 斜率参数。 + - **start** - 起始索引。 + - **end** - 结束索引。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **dst_data** - 输出数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp, int8 + - MT7004 支持hp, fp + +**共享存储版本:** + +.. c:function:: void fp_prelufusion_s(float* src_data, float* dst_data, float slope, int start, int end, int core_mask) +.. c:function:: void hp_prelufusion_s(half* src_data, half* dst_data, half slope, int start, int end, int core_mask) +.. c:function:: void i8_prelufusion_s(int8_t* src_data, int8_t* dst_data, float slope, int start, int end, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + #include + #include + + int main() { + float *src = (float *)0xA0000000; // 输入在DDR空间 + float *dst = (float *)0xC0000000; + float slope = 0.25; + int start = 0; + int end = 999; + int core_mask = 0xff; + + fp_prelufusion_s(src, dst, slope, start, end, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_prelufusion_p(float* src_data, float* dst_data, float slope, int start, int end) +.. c:function:: void hp_prelufusion_p(half* src_data, half* dst_data, half slope, int start, int end) +.. c:function:: void i8_prelufusion_p(int8_t* src_data, int8_t* dst_data, float slope, int start, int end) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + #include + #include + + int main() { + float *src = (float *)0x10810000; // 输入在L2空间 + float *dst = (float *)0x10820000; + float slope = 0.25; + int start = 0; + int end = 999; + + fp_prelufusion_p(src, dst, slope, start, end); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/priorbox.rst.txt b/master/html/_sources/functionlib/dsplib/priorbox.rst.txt new file mode 100644 index 0000000..8207c0f --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/priorbox.rst.txt @@ -0,0 +1,100 @@ +Priorbox +================= + +根据输入的特征图尺寸、步长和预设的候选框配置,逐元素计算先验框(Prior Boxes),通常用于目标检测模型。 + +该算子遍历特征图的每一个网格中心点,并围绕该中心点生成一系列具有不同尺寸和宽高比的候选框。生成的坐标 ``[xmin, ymin, xmax, ymax]`` 经过归一化处理。 + +输入: + - **fmap_h** - 当前特征图的高度。 + - **fmap_w** - 当前特征图的宽度。 + - **step_h** - 计算先验框在原图上坐标时的垂直缩放比例。 + - **step_w** - 计算先验框在原图上坐标时的水平缩放比例。 + - **offset** - 中心点偏移量,通常为0.5,表示取网格的正中心。 + - **min_sizes** - 定义基础先验框尺寸的浮点数数组。 + - **min_sizes_size** - ``min_sizes`` 数组的长度。 + - **max_sizes** - 可选的浮点数数组,用于生成额外的正方形先验框。 + - **max_sizes_size** - ``max_sizes`` 数组的长度。 + - **different_aspect_ratios** - 定义不同宽高比的浮点数数组。 + - **different_aspect_ratios_size** - ``different_aspect_ratios`` 数组的长度。 + - **core_mask** - 核掩码 (仅共享存储版本需要)。 + +输出: + - **output** - 用于存储最终生成的先验框坐标的数组。 + - **output_size** - 指向一个整数的指针,函数执行后,该整数将记录写入 ``output`` 数组的浮点数总数。 + +支持平台: + ``6678`` + ``7004`` + +.. note:: + - 6678支持fp32类型。 + - 7004支持fp16和fp32类型。 + +**共享存储版本:** + +.. c:function:: int fp_priorbox_s(int fmap_h, int fmap_w, float step_h, float step_w, float offset, float *min_sizes, int min_sizes_size, float *max_sizes, int max_sizes_size, float *different_aspect_ratios, int different_aspect_ratios_size, float *output, int *output_size, int core_mask) +.. c:function:: int hp_priorbox_s(int fmap_h, int fmap_w, half step_h, half step_w, half offset, half *min_sizes, int min_sizes_size, half *max_sizes, int max_sizes_size, half *different_aspect_ratios, int different_aspect_ratios_size, half *output, int *output_size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 22 + + #include "priorbox.h" + + int main() { + // DDR memory pointers + float *min_sizes = (float *)0xA0000000; + float *max_sizes = (float *)0xA0001000; + float *ratios = (float *)0xA0002000; + float *output = (float *)0xB0000000; + int output_size = 0; + + // Parameters + int fmap_h = 19, fmap_w = 19; + float step_h = 16.0f, step_w = 16.0f; + float offset = 0.5f; + int min_sizes_size = 1; + int max_sizes_size = 1; + int ratios_size = 2; + int core_mask = 0xff; + + // (假设 min_sizes, max_sizes, ratios 已在DDR中填充数据) + + fp_priorbox_s(fmap_h, fmap_w, step_h, step_w, offset, min_sizes, min_sizes_size, max_sizes, max_sizes_size, ratios, ratios_size, output, &output_size, core_mask); + + return 0; + } + +**私有存储版本:** + +.. c:function:: int fp_priorbox_p(int fmap_h, int fmap_w, float step_h, float step_w, float offset, float *min_sizes, int min_sizes_size, float *max_sizes, int max_sizes_size, float *different_aspect_ratios, int different_aspect_ratios_size, float *output, int *output_size) +.. c:function:: int hp_priorbox_p(int fmap_h, int fmap_w, half step_h, half step_w, half offset, half *min_sizes, int min_sizes_size, half *max_sizes, int max_sizes_size, half *different_aspect_ratios, int different_aspect_ratios_size, half *output, int *output_size) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16 + + #include "priorbox.h" + + int main() { + // L2 memory arrays + float min_sizes_data[] = {30.0f}; + float max_sizes_data[] = {60.0f}; + float ratios_data[] = {2.0f, 0.5f}; + float output_data[4 * 19 * 19 * (1 + 1 + 2)]; // 足够大的空间 + int output_size = 0; + + // Parameters + int fmap_h = 19, fmap_w = 19; + float step_h = 16.0f, step_w = 16.0f; + float offset = 0.5f; + + fp_priorbox_p(fmap_h, fmap_w, step_h, step_w, offset, min_sizes_data, 1, max_sizes_data, 1, ratios_data, 2, output_data, &output_size); + + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/quantdtypecast.rst.txt b/master/html/_sources/functionlib/dsplib/quantdtypecast.rst.txt new file mode 100644 index 0000000..e1a072f --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/quantdtypecast.rst.txt @@ -0,0 +1,113 @@ +QuantDTypeCast +================= + + +逐元素执行量化与反量化的数据类型转换操作,用于在浮点数与整型量化表示之间进行转换。 + +- **Quantize**:将 fp32/fp16 数据量化为 int8 +- **Dequantize**:将 int8 数据反量化为 fp32/fp16 + + +.. math:: + + \text{Quantize:}\quad + q_i = \operatorname{clip}\Bigl(\operatorname{round}\bigl(\frac{x_i}{\text{scale}} + \text{zp}\bigr),\ q_{\min},\ q_{\max}\Bigr) + +.. math:: + + \text{Dequantize:}\quad + x_i = (q_i - \text{zp}) \times \text{scale} + +其中: + +- :math:`x_i` 为输入浮点值 +- :math:`q_i` 为量化后的整型值 +- :math:`\text{scale}` 为量化比例因子 +- :math:`\text{zp}` 为零点(zero point) +- :math:`q_{\min}, q_{\max}` 为量化数据类型的取值范围(int8 对应 -128 到 127) + + +输入: + - **input** - 输入数据地址。 + - **scale** - 量化或反量化所使用的比例因子。 + - **zp** - 零点(zero point)。 + - **length** - 输入数据的元素个数。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出数据地址,其大小与 ``input`` 相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型: + - Quantize:fp32 → int8 + - Dequantize:int8 → fp32 + - MT7004 支持的数据类型: + - Quantize:fp32/fp16 → int8 + - Dequantize:int8 → fp32/fp16 + - 当输入值为 ``+∞`` 或 ``-∞`` 时,Quantize 结果分别饱和到 ``q_max`` 或 ``q_min`` + + +**共享存储版本:** + +.. c:function:: void fp_to_i8_quant_s(float* input, int8_t* output, float scale, int zp, int length, int core_mask) +.. c:function:: void i8_to_fp_dequant_s(int8_t* input, float* output, float scale, int zp, int length, int core_mask) +.. c:function:: void hp_to_i8_quant_s(half* input, int8_t* output, half scale, int zp, int length, int core_mask) +.. c:function:: void i8_to_hp_dequant_s(int8_t* input, half* output, half scale, int zp, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + // FT78NE 多核示例(Quantize) + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input 在 DDR 空间 + int8_t *output = (int8_t *)0xB0000000; // output 在 DDR 空间 + + float scale = 0.05f; + int zp = 0; + int length = 4096; + int core_mask = 0xff; + + fp_to_i8_quant_s(input, output, scale, zp, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_to_i8_quant_p(float* input, int8_t* output, float scale, int zp, int length) +.. c:function:: void i8_to_fp_dequant_p(int8_t* input, float* output, float scale, int zp, int length) +.. c:function:: void hp_to_i8_quant_p(half* input, int8_t* output, half scale, int zp, int length) +.. c:function:: void i8_to_hp_dequant_p(int8_t* input, half* output, half scale, int zp, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + // MT7004 单核示例(Dequantize) + #include + #include + + int main(int argc, char* argv[]) { + int8_t *input = (int8_t *)0x10000000; // input 在 L2 空间 + float *output = (float *)0x11000000; // output 在 L2 空间 + + float scale = 0.05f; + int zp = 0; + int length = 1024; + + i8_to_fp_dequant_p(input, output, scale, zp, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/random_normal.rst.txt b/master/html/_sources/functionlib/dsplib/random_normal.rst.txt new file mode 100644 index 0000000..7ffa3f2 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/random_normal.rst.txt @@ -0,0 +1,79 @@ +RandomNormal +================= + +生成服从指定均值和标准差的正态分布随机数序列。 + +.. math:: + + output_i \sim \mathcal{N}(\text{mean}, \text{scale}^2) + +输入: + - **length** - 输出数据长度。 + - **mean** - 正态分布的均值。 + - **scale** - 正态分布的标准差。 + - **seed** - 随机数种子,用于控制生成序列的随机性。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 生成的随机数结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp32 + - MT7004 支持 fp32, fp16 + - 输出服从 :math:`\mathcal{N}(\text{mean}, \text{scale}^2)` 分布。 + - 相同的随机种子会生成确定性一致的输出序列。 + + +**共享存储版本:** + +.. c:function:: void fp_random_normal_s(float* output, int length, float mean, float scale, unsigned int seed, int core_mask) +.. c:function:: void hp_random_normal_s(half* output, int length, float mean, float scale, unsigned int seed, int core_mask) + + **C 调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + // FT78NE 示例 + #include + + int main(int argc, char* argv[]) { + float *output = (float *)0xA0000000; // output 在 DDR 空间 + int length = 1024; + float mean = 0.0f; + float scale = 1.0f; + unsigned int seed = 1234; + int core_mask = 0xff; + fp_random_normal_s(output, length, mean, scale, seed, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_random_normal_p(float* output, int length, float mean, float scale, unsigned int seed) +.. c:function:: void hp_random_normal_p(half* output, int length, float mean, float scale, unsigned int seed) + + **C 调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + // MT7004 示例 + #include + + int main(int argc, char* argv[]) { + float *output = (float *)0x10010000; + int length = 1024; + float mean = 0.0f; + float scale = 1.0f; + unsigned int seed = 1234; + fp_random_normal_p(output, length, mean, scale, seed); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/random_standard_normal.rst.txt b/master/html/_sources/functionlib/dsplib/random_standard_normal.rst.txt new file mode 100644 index 0000000..7f2bf77 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/random_standard_normal.rst.txt @@ -0,0 +1,72 @@ +RandomStandardNormal +====================== + +生成服从标准正态分布 :math:`\mathcal{N}(0, 1)` 的随机数序列。 + +.. math:: + + output_i \sim \mathcal{N}(0, 1) + +输入: + - **length** - 输出数据长度。 + - **seed** - 随机数种子,用于控制生成序列的随机性。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 生成的标准正态分布随机数地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp32 + - MT7004 支持 fp32, fp16 + - 相同的种子可生成相同的随机数序列(确定性行为)。 + - 随机数生成使用 Box–Muller 算法实现。 + +**共享存储版本:** + +.. c:function:: void fp_random_standard_normal_s(float* output, int length, unsigned int seed, int core_mask) +.. c:function:: void hp_random_standard_normal_s(half* output, int length, unsigned int seed, int core_mask) + + **C 调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 9 + + // FT78NE 示例 + #include + + int main(int argc, char* argv[]) { + float *output = (float *)0xA0000000; // output 在 DDR 空间 + int length = 1024; + unsigned int seed = 1234; + int core_mask = 0xff; + fp_random_standard_normal_s(output, length, seed, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_random_standard_normal_p(float* output, int length, unsigned int seed) +.. c:function:: void hp_random_standard_normal_p(half* output, int length, unsigned int seed) + + **C 调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 8 + + // MT7004 示例 + #include + + int main(int argc, char* argv[]) { + float *output = (float *)0x10010000; + int length = 1024; + unsigned int seed = 1234; + fp_random_standard_normal_p(output, length, seed); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/range.rst.txt b/master/html/_sources/functionlib/dsplib/range.rst.txt index f5e7db7..75c0d94 100644 --- a/master/html/_sources/functionlib/dsplib/range.rst.txt +++ b/master/html/_sources/functionlib/dsplib/range.rst.txt @@ -36,7 +36,7 @@ Range .. code-block:: c :linenos: - :emphasize-lines: 11 + :emphasize-lines: 10 #include #include @@ -63,7 +63,7 @@ Range .. code-block:: c :linenos: - :emphasize-lines: 10 + :emphasize-lines: 9 #include #include diff --git a/master/html/_sources/functionlib/dsplib/rank.rst.txt b/master/html/_sources/functionlib/dsplib/rank.rst.txt new file mode 100644 index 0000000..3a6005b --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/rank.rst.txt @@ -0,0 +1,64 @@ +Rank +================= + + 获取输入张量的秩(维数),并将该值写入输出地址。 + + 输入: + - **output** - 输出数据的地址,用于存储秩的结果。 + - **n** - 输入张量的秩(维数)。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + + 输出: + - **output** - 存储秩数值的地址。 + + 支持平台: + ``FT78NE`` + ``MT7004`` + + .. note:: + - 由于该算子对于不同数据类型的具体实现一致,因此统一使用 ``rank_s`` 和 ``rank_p`` 命名,不再区分数据类型前缀(如 ``fp_``, ``i8_`` 等)。 + - 支持的数据类型包括:int8, int16, int32, fp32, fp64, cplx64, cplx128。 + +**共享存储版本:** + +.. c:function:: void rank_s(int* output, int n, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 8 + + #include + + int main(int argc, char* argv[]) { + int n = 4; // 假设张量的秩为4 + int *output = (int *)0xA0000000; + int core_mask = 0xff; + + rank_s(output, n, core_mask); + + return 0; + } + + +**私有存储版本:** + +.. c:function:: void rank_p(int* output, int n) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 7 + + #include + + int main(int argc, char* argv[]) { + int n = 3; // 假设张量的秩为3 + int *output = (int *)0x10810000; + + rank_p(output, n); + + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/real_div.rst.txt b/master/html/_sources/functionlib/dsplib/real_div.rst.txt new file mode 100644 index 0000000..c0bf170 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/real_div.rst.txt @@ -0,0 +1,85 @@ +RealDiv +================= +逐元素计算两个输入的除法。 + +.. math:: + + output_i = \frac{input0_i}{input1_i} + +输入: + - **input0** - 被除数输入数据地址。 + - **input1** - 除数输入数据地址。 + - **length** - 计算长度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - 若除数元素为 0,则输出结果为无穷大或未定义值,需由上层逻辑处理。 + +**共享存储版本:** + +.. c:function:: void i8_real_div_s(int8_t* input0, int8_t* input1, int8_t* output, int length, int core_mask) +.. c:function:: void i16_real_div_s(int16_t* input0, int16_t* input1, int16_t* output, int length, int core_mask) +.. c:function:: void i32_real_div_s(int32_t* input0, int32_t* input1, int32_t* output, int length, int core_mask) +.. c:function:: void hp_real_div_s(half* input0, half* input1, half* output, int length, int core_mask) +.. c:function:: void fp_real_div_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void dp_real_div_s(double* input0, double* input1, double* output, int length, int core_mask) +.. c:function:: void c64_real_div_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void c128_real_div_s(double* input0, double* input1, double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; // input0 在 DDR 空间 + float *input1 = (float *)0xA1000000; // input1 在 DDR 空间 + float *output = (float *)0xB0000000; // 输出结果在 DDR 空间 + int length = 1024; + int core_mask = 0xff; + fp_real_div_s(input0, input1, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_real_div_p(int8_t* input0, int8_t* input1, int8_t* output, int length) +.. c:function:: void i16_real_div_p(int16_t* input0, int16_t* input1, int16_t* output, int length) +.. c:function:: void i32_real_div_p(int32_t* input0, int32_t* input1, int32_t* output, int length) +.. c:function:: void hp_real_div_p(half* input0, half* input1, half* output, int length) +.. c:function:: void fp_real_div_p(float* input0, float* input1, float* output, int length) +.. c:function:: void dp_real_div_p(double* input0, double* input1, double* output, int length) +.. c:function:: void c64_real_div_p(float* input0, float* input1, float* output, int length) +.. c:function:: void c128_real_div_p(double* input0, double* input1, double* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 9 + + //MT7004 示例 + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0x10000000; + float *input1 = (float *)0x10001000; + float *output = (float *)0x10002000; + int length = 1024; + fp_real_div_p(input0, input1, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/reciprocal.rst.txt b/master/html/_sources/functionlib/dsplib/reciprocal.rst.txt new file mode 100644 index 0000000..d1cd809 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/reciprocal.rst.txt @@ -0,0 +1,82 @@ +Reciprocal +================= +逐元素计算输入数据的倒数。 + +.. math:: + + output_i = \frac{1}{Input_i} + +输入: + - **Input** - 输入数据地址。 + - **length** - 计算长度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - 当输入为 0 时,输出结果为无穷大或未定义值,需由上层逻辑处理。 + +**共享存储版本:** + +.. c:function:: void i8_reciprocal_s(int8_t* Input, float* output, int length, int core_mask) +.. c:function:: void i16_reciprocal_s(int16_t* Input, float* output, int length, int core_mask) +.. c:function:: void i32_reciprocal_s(int32_t* Input, float* output, int length, int core_mask) +.. c:function:: void hp_reciprocal_s(half* Input, half* output, int length, int core_mask) +.. c:function:: void fp_reciprocal_s(float* Input, float* output, int length, int core_mask) +.. c:function:: void dp_reciprocal_s(double* Input, double* output, int length, int core_mask) +.. c:function:: void c64_reciprocal_s(float* Input, float* output, int length, int core_mask) +.. c:function:: void c128_reciprocal_s(double* Input, double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 9 + + //FT78NE示例 + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; //input在DDR空间 + float *output = (float *)0xB0000000; + int length = 1000; + int core_mask = 0xff; + fp_reciprocal_s(input, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_reciprocal_p(int8_t* Input, float* output, int length) +.. c:function:: void i16_reciprocal_p(int16_t* Input, float* output, int length) +.. c:function:: void i32_reciprocal_p(int32_t* Input, float* output, int length) +.. c:function:: void hp_reciprocal_p(half* Input, half* output, int length) +.. c:function:: void fp_reciprocal_p(float* Input, float* output, int length) +.. c:function:: void dp_reciprocal_p(double* Input, double* output, int length) +.. c:function:: void c64_reciprocal_p(float* Input, float* output, int length) +.. c:function:: void c128_reciprocal_p(double* Input, double* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 8 + + //MT7004示例 + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; + float *output = (float *)0x10001000; + int length = 1000; + fp_reciprocal_p(input, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/reducescatter.rst.txt b/master/html/_sources/functionlib/dsplib/reducescatter.rst.txt new file mode 100644 index 0000000..16d2287 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/reducescatter.rst.txt @@ -0,0 +1,86 @@ +ReduceScatter +================= + + + +对输入数组进行指定类型的分布式归约操作(Reduce),并将结果分散到各输出位置。支持 ReduceSum、ReduceMean、ReduceMax 和 ReduceMin。 + +输入: + - **input_data** - 输入数据地址。 + - **data_size** - 数据长度。 + - **reduce_type** - 归约类型: + - 0: ReduceSum + - 1: ReduceMean + - 2: ReduceMax + - 3: ReduceMin + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output_data** - 输出数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp, dp, int8, int16, int32 + - MT7004 支持hp, fp, i16, i32 + +**共享存储版本:** + +.. c:function:: void fp_reducescatter_s(float* input_data, float* output_data, int data_size, int reduce_type, int core_mask) +.. c:function:: void hp_reducescatter_s(half* input_data, half* output_data, int data_size, int reduce_type, int core_mask) +.. c:function:: void dp_reducescatter_s(double* input_data, double* output_data, int data_size, int reduce_type, int core_mask) +.. c:function:: void i8_reducescatter_s(int8_t* input_data, int8_t* output_data, int data_size, int reduce_type, int core_mask) +.. c:function:: void i16_reducescatter_s(int16_t* input_data, int16_t* output_data, int data_size, int reduce_type, int core_mask) +.. c:function:: void i32_reducescatter_s(int* input_data, int* output_data, int data_size, int reduce_type, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + #include + #include + + int main() { + float *input = (float *)0xA0000000; // 输入在DDR空间 + float *output = (float *)0xC0000000; + int data_size = 1024; + int reduce_type = 0; // ReduceSum = 4; + int core_mask = 0xff; + + fp_reducescatter_s(input, output, data_size, reduce_type, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_reducescatter_p(float* input_data, float* output_data, int data_size, int reduce_type) +.. c:function:: void hp_reducescatter_p(half* input_data, half* output_data, int data_size, int reduce_type) +.. c:function:: void dp_reducescatter_p(double* input_data, double* output_data, int data_size, int reduce_type) +.. c:function:: void i8_reducescatter_p(int8_t* input_data, int8_t* output_data, int data_size, int reduce_type) +.. c:function:: void i16_reducescatter_p(int16_t* input_data, int16_t* output_data, int data_size, int reduce_type) +.. c:function:: void i32_reducescatter_p(int* input_data, int* output_data, int data_size, int reduce_type) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + #include + #include + + int main() { + float *input = (float *)0x10810000; // 输入在L2空间 + float *output = (float *)0x10820000; + int data_size = 1024; + int reduce_type = 0; // ReduceSum + = 4; + + fp_reducescatter_p(input, output, data_size, reduce_type); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/reshape.rst.txt b/master/html/_sources/functionlib/dsplib/reshape.rst.txt new file mode 100644 index 0000000..c70cd2f --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/reshape.rst.txt @@ -0,0 +1,84 @@ +Reshape +================= + +对输入张量进行重塑操作。在底层实现上,由于张量形状仅由参数定义,该算子执行从输入地址到输出地址的连续数据拷贝。 + +.. math:: + + output_i = input_i + +输入: + - **input** - 输入数据起始地址。 + - **length** - 需拷贝的元素个数。对于复数类型,length 表示复数的个数。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 输出数据起始地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, c64, c128 + - MT7004 支持 fp16, fp32, int16, int32, c64 + - 对于复数类型(c64 / c128),算子会自动处理实部和虚部的连续拷贝,其迁移字节数是普通类型的两倍。 + +**共享存储版本:** + +.. c:function:: void i8_reshape_s(int8_t* input, int8_t* output, int length, int core_mask) +.. c:function:: void i16_reshape_s(int16_t* input, int16_t* output, int length, int core_mask) +.. c:function:: void i32_reshape_s(int* input, int* output, int length, int core_mask) +.. c:function:: void hp_reshape_s(half* input, half* output, int length, int core_mask) +.. c:function:: void fp_reshape_s(float* input, float* output, int length, int core_mask) +.. c:function:: void dp_reshape_s(double* input, double* output, int length, int core_mask) +.. c:function:: void c64_reshape_s(float* input, float* output, int length, int core_mask) +.. c:function:: void c128_reshape_s(double* input, double* output, int length, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例(共享存储,多核并行拷贝) + #include + #include "78NE/utils.h" + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // DDR 空间 + float *output = (float *)0xB0000000; // DDR 空间 + int length = 960001; + int core_mask = 0x0B; // 使用逻辑核 0, 1, 2 + fp_reshape_s(input, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_reshape_p(int8_t* input, int8_t* output, int length) +.. c:function:: void i16_reshape_p(int16_t* input, int16_t* output, int length) +.. c:function:: void i32_reshape_p(int32_t* input, int32_t* output, int length) +.. c:function:: void hp_reshape_p(half* input, half* output, int length) +.. c:function:: void fp_reshape_p(float* input, float* output, int length) +.. c:function:: void dp_reshape_p(double* input, double* output, int length) +.. c:function:: void c64_reshape_p(float* input, float* output, int length) +.. c:function:: void c128_reshape_p(double* input, double* output, int length) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 8 + + //MT7004 示例(私有存储,单核拷贝) + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10810000; + float *output = (float *)0x10820000; + int length = 1024; + fp_reshape_p(input, output, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/resizegrad.rst.txt b/master/html/_sources/functionlib/dsplib/resizegrad.rst.txt new file mode 100644 index 0000000..747df01 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/resizegrad.rst.txt @@ -0,0 +1,205 @@ +Resizegrad +================= + +计算 Resize 操作的梯度。该算子包含两种实现:最近邻插值梯度(ResizeNearestNeighborGrad)和双线性插值梯度(ResizeBiLinearGrad)。用于将上游梯度从输出尺寸反向传播到输入尺寸。 + +最近邻插值梯度(ResizeNearestNeighborGrad) + + +对于最近邻插值,输入梯度通过最近邻映射反向传播到输出梯度。 + +.. math:: + + out_y = + \begin{cases} + \mathrm{round}(in_y \cdot height\_scale), & \text{if } align\_corners \\ + \lfloor in_y \cdot height\_scale \rfloor, & \text{otherwise} + \end{cases} + +.. math:: + + out_x = + \begin{cases} + \mathrm{round}(in_x \cdot width\_scale), & \text{if } align\_corners \\ + \lfloor in_x \cdot width\_scale \rfloor, & \text{otherwise} + \end{cases} + +.. math:: + + out\_addr[out\_offset] \mathrel{+}= in\_addr[in\_offset] + +其中 `in_addr` 是上游梯度(输出尺寸),`out_addr` 是输入梯度(输入尺寸)。注意使用累加操作(+=),因为多个输入位置可能映射到同一个输出位置。 + +双线性插值梯度(ResizeBiLinearGrad) + + +对于双线性插值,输入梯度通过双线性插值的反向传播分配到4个相邻的输出位置。 + +.. math:: + + in_y = h \cdot height\_scale + +.. math:: + + top_y = \max(\lfloor in_y \rfloor, 0) + +.. math:: + + bottom_y = \min(\lceil in_y \rceil, out\_height - 1) + +.. math:: + + y_{\mathrm{lerp}} = in_y - \lfloor in_y \rfloor + +.. math:: + + inverse\_y\_lerp = 1.0 - y_{\mathrm{lerp}} + +对于 x 维度有类似的公式: + +.. math:: + + in_x = w \cdot width\_scale + +.. math:: + + left_x = \max(\lfloor in_x \rfloor, 0) + +.. math:: + + right_x = \min(\lceil in_x \rceil, out\_width - 1) + +.. math:: + + x_{\mathrm{lerp}} = in_x - \lfloor in_x \rfloor + +.. math:: + + inverse\_x\_lerp = 1.0 - x_{\mathrm{lerp}} + +输入梯度按权重分配到4个相邻位置: + +.. math:: + + out\_addr[top_y, left_x] \mathrel{+}= in\_addr[h, w] \cdot + (inverse\_y\_lerp \cdot inverse\_x\_lerp) + +.. math:: + + out\_addr[top_y, right_x] \mathrel{+}= in\_addr[h, w] \cdot + (inverse\_y\_lerp \cdot x_{\mathrm{lerp}}) + +.. math:: + + out\_addr[bottom_y, left_x] \mathrel{+}= in\_addr[h, w] \cdot + (y_{\mathrm{lerp}} \cdot inverse\_x\_lerp) + +.. math:: + + out\_addr[bottom_y, right_x] \mathrel{+}= in\_addr[h, w] \cdot + (y_{\mathrm{lerp}} \cdot x_{\mathrm{lerp}}) + +输入: + - **in_addr** - 指向上游梯度数据的指针(输出尺寸的梯度)。 + - **out_addr** - 指向输出梯度数据的指针(输入尺寸的梯度),需要初始化为0。 + - **batch_size** - 批次大小。 + - **channel** - 通道数。 + - **format** - 数据格式,0 表示 NHWC,1 表示 NCHW。 + - **align_corners** - 是否对齐角点标志,0 表示不对齐,1 表示对齐。 + - **in_height** - 输入高度。 + - **in_width** - 输入宽度。 + - **out_height** - 输出高度。 + - **out_width** - 输出宽度。 + - **height_scale** - 高度缩放因子,通常为 (out_height - 1) / (in_height - 1) 或 out_height / in_height。 + - **width_scale** - 宽度缩放因子,通常为 (out_width - 1) / (in_width - 1) 或 out_width / in_width。 + +输出: + - **out_addr** - 计算后的输入梯度(输入尺寸的梯度)。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp32 + - MT7004 支持 fp16, fp32 + + +**共享存储版本:** + +.. c:function:: void fp_resizenearestneighborgrad_s(float* in_addr, float* out_addr, int batch_size, int channel, int format, int align_corners, int in_height, int in_width, int out_height, int out_width, float height_scale, float width_scale, int core_mask) +.. c:function:: void hp_resizenearestneighborgrad_s(half* in_addr, half* out_addr, int batch_size, int channel, int format, int align_corners, int in_height, int in_width, int out_height, int out_width, float height_scale, float width_scale, int core_mask) +.. c:function:: void fp_resizebilineargrad_s(float* in_addr, float* out_addr, int batch_size, int channel, int format, int align_corners, int in_height, int in_width, int out_height, int out_width, float height_scale, float width_scale, int core_mask) +.. c:function:: void hp_resizebilineargrad_s(half* in_addr, half* out_addr, int batch_size, int channel, int format, int align_corners, int in_height, int in_width, int out_height, int out_width, float height_scale, float width_scale, int core_mask) + +**C调用示例(最近邻插值梯度):** + +.. code-block:: c + :linenos: + :emphasize-lines: 22-24 + + #include + #include + + int main(int argc, char* argv[]) { + float *in_addr = (float *)0x10010000; + float *out_addr = (float *)0x10020000; + + int batch_size = 4; + int channel = 3; + int format = 1; + int align_corners = 1; + int in_height = 4, in_width = 4; + int out_height = 6, out_width = 6; + int core_mask = 0xff; + + float height_scale = (float)(out_height - 1) / (in_height - 1); + float width_scale = (float)(out_width - 1) / (in_width - 1); + + int output_size = in_height * in_width * channel * batch_size; + memset(out_addr, 0, output_size * sizeof(float)); + + fp_resizenearestneighborgrad_s(in_addr, out_addr, batch_size, channel, + format, align_corners, in_height, in_width, + out_height, out_width, height_scale, width_scale, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_resizenearestneighborgrad_p(float* in_addr, float* out_addr, int batch_size, int channel, int format, int align_corners, int in_height, int in_width, int out_height, int out_width, float height_scale, float width_scale) +.. c:function:: void hp_resizenearestneighborgrad_p(half* in_addr, half* out_addr, int batch_size, int channel, int format, int align_corners, int in_height, int in_width, int out_height, int out_width, float height_scale, float width_scale) +.. c:function:: void fp_resizebilineargrad_p(float* in_addr, float* out_addr, int batch_size, int channel, int format, int align_corners, int in_height, int in_width, int out_height, int out_width, float height_scale, float width_scale) +.. c:function:: void hp_resizebilineargrad_p(half* in_addr, half* out_addr, int batch_size, int channel, int format, int align_corners, int in_height, int in_width, int out_height, int out_width, float height_scale, float width_scale) + +**C调用示例(双线性插值梯度):** + +.. code-block:: c + :linenos: + :emphasize-lines: 21-23 + + #include + #include + + int main(int argc, char* argv[]) { + float *in_addr = (float *)0x10010000; + float *out_addr = (float *)0x10020000; + + int batch_size = 4; + int channel = 3; + int format = 0; + int align_corners = 0; + int in_height = 4, in_width = 4; + int out_height = 6, out_width = 6; + + float height_scale = (float)out_height / in_height; + float width_scale = (float)out_width / in_width; + + int output_size = in_height * in_width * channel * batch_size; + memset(out_addr, 0, output_size * sizeof(float)); + + fp_resizebilineargrad_p(in_addr, out_addr, batch_size, channel, + format, align_corners, in_height, in_width, + out_height, out_width, height_scale, width_scale); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/rfft.rst.txt b/master/html/_sources/functionlib/dsplib/rfft.rst.txt new file mode 100644 index 0000000..40688c6 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/rfft.rst.txt @@ -0,0 +1,158 @@ +RFFT +========================= + +对输入复数序列执行一维快速傅里叶变换(FFT)或逆变换(IFFT)。 +内部基于分治 FFT 算法, +并使用预计算旋转因子(twiddle factor)以提升性能。 +傅里叶变换,可以对参数进行调整,以实现FFT/IFFT/RFFT/IRFFT。 + +数学定义如下: + +.. math:: + + X(k) = \sum_{n=0}^{N-1} x(n)\,e^{-j 2\pi kn / N} \quad (\text{Forward FFT}) + +.. math:: + + x(n) = \sum_{k=0}^{N-1} X(k)\,e^{j 2\pi kn / N} \quad (\text{Inverse FFT}) + +其中 :math:`N` 为 FFT 点数。 + +输入: + - **input** - 输入复数数据地址。 + - **fft_size** - FFT 点数。 + - **dir** - 变换方向: + - ``FFT_FORWARD``:正向 FFT + - ``FFT_INVERSE``:反向 FFT + - **scratch_ptr** - 临时缓冲区地址,用于存放旋转因子及中间计算结果。 + - **twiddle** - 旋转因子地址(仅共享存储版本使用)。 + - **fft_size1** - 第一阶段 FFT 点数(仅共享存储版本使用)。 + - **fft_size2** - 第二阶段 FFT 点数(仅共享存储版本使用)。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **output** - 输出复数序列地址。 + +内部核心计算公式如下: +对于FFT,它计算以下表达式: + +.. math:: + X[\omega_1, \dots, \omega_d] = + \sum_{n_1=0}^{N_1-1} \dots \sum_{n_d=0}^{N_d-1} x[n_1, \dots, n_d] + e^{-j\ 2 \pi \sum_{i=0}^d \frac{\omega_i n_i}{N_i}}, + +其中, :math:`d` = `signal_ndim` 是信号的维度,:math:`N_i` 则是信号第 :math:`i` 个维度的大小。 + +对于IFFT,它计算以下表达式: + +.. math:: + X[\omega_1, \dots, \omega_d] = + \frac{1}{\prod_{i=1}^d N_i} \sum_{n_1=0}^{N_1-1} \dots \sum_{n_d=0}^{N_d-1} x[n_1, \dots, n_d] + e^{\ j\ 2 \pi \sum_{i=0}^d \frac{\omega_i n_i}{N_i}}, + +其中, :math:`d` = `signal_ndim` 是信号的维度,:math:`N_i` 则是信号第 :math:`i` 维的大小。 + +.. note:: + - FFT/IFFT要求complex64或complex128类型的输入,返回complex64或complex128类型的输出。 + - RFFT要求bool, uint8, int8, int16, int32, int64, float32或float64类型的输入, + 返回complex64或complex128类型的输出。 + - IRFFT要求complex64或complex128类型的输入,返回float32或float64类型的输出。 + +参数: + - **signal_ndim** (int) - 表示每个信号中的维数,控制着傅里叶变换的维数,其值只能为1、2或3。 + - **inverse** (bool) - 表示该操作是否为逆变换,用以选择FFT 和 RFFT 或 IFFT 和 IRFFT。 + + - 如果为 ``True`` ,则为IFFT 和 IRFFT。 + - 如果为 ``False`` ,FFT 和 RFFT。 + + - **real** (bool) - 表示该操作是否为实变换,与 `inverse` 共同决定具体的变换模式: + + - `inverse` 为 ``False`` , `real` 为 ``False`` :对应FFT模式。 + - `inverse` 为 ``True`` , `real` 为 ``False`` :对应IFFT模式。 + - `inverse` 为 ``False`` , `real` 为 ``True`` :对应RFFT模式。 + - `inverse` 为 ``True`` , `real` 为 ``True`` :对应IRFFT模式。 + + - **norm** (str,可选) - 表示该操作的规范化方式,可选值:[ ``"backward"`` , ``"forward"`` , ``"ortho"`` ]。默认值: ``"backward"`` 。 + + - "backward",正向变换不缩放,逆变换按 :math:`1/n` 缩放,其中 `n` 表示输入 `x` 的元素数量。。 + - "ortho",正向变换与逆变换均按 :math:`1/\sqrt n` 缩放。 + - "forward",正向变换按 :math:`1/n` 缩放,逆变换不缩放。 + + - **onesided** (bool,可选) - 控制输入是否减半以避免冗余。默认值: ``True`` 。 + - **signal_sizes** (tuple,可选) - 原始信号的大小(RFFT变换之前的信号,不包含batch这一维),只有在IRFFT模式下和设置 `onesided` 为True时需要该参数,需要满足 + 以下条件。默认值: ``()`` 。 + + - `signal_sizes` 的长度等于IRFFT的 `signal_ndim` : :math:`len(signal\_sizes)=signal\_ndim` 。 + - `signal_sizes` 的最后一个维度除以2等于IRFFT输入的最后一个维度: :math:`signal\_size[-1]/2+1=x.shape[-1]` 。 + - 除了最后一个维度外, `signal_sizes` 的维度与输入shape完全相同: :math:`signal\_sizes[:-1]=x.shape[:-1]` 。 + +异常: + - **TypeError** - 如果FFT/IFFT/IRFF的输入类型不是以下类型之一:complex64、complex128。 + - **TypeError** - 如果输入的类型不是Tensor。 + - **ValueError** - 如果输入 `x` 的维度小于 `signal_ndim` 。 + - **ValueError** - 如果 `signal_ndim` 大于3或小于1。 + - **ValueError** - 如果 `norm` 取值不是"backward"、"forward"或"ortho"。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +类型支持: + - FT78NE:``cplx64``、``cplx128`` + - MT7004:``cplx64`` + +**共享存储版本:** + +.. c:function:: void c64_rfft_s(fftw_complex* input, fftw_complex* output, fftw_complex* scratch_ptr, fftw_complex* twiddle, int fft_size1, int fft_size2, char dir, int core_mask) +.. c:function:: void c128_rfft_s(fftw_complex* input, fftw_complex* output, fftw_complex* scratch_ptr, fftw_complex* twiddle, int fft_size1, int fft_size2, char dir, int core_mask) + +**C 调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15-16 + + // FT78NE 示例(共享存储版本) + #include + #include + + int main(int argc, char* argv[]) { + fftw_complex *input = (fftw_complex *)0xA0000000; + fftw_complex *output = (fftw_complex *)0xC0000000; + fftw_complex *scratch = (fftw_complex *)0xA1000000; + fftw_complex *twiddle = (fftw_complex *)0xA2000000; + + int fft_size1 = 32; + int fft_size2 = 32; + int core_mask = 0xff; + + c64_rfft_s(input, output, scratch, twiddle, + fft_size1, fft_size2, FFT_FORWARD, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void c64_rfft_p(fftw_complex* input, fftw_complex* output, fftw_complex* scratch_ptr, int fft_size, char dir) +.. c:function:: void c128_rfft_p(fftw_complex* input, fftw_complex* output, fftw_complex* scratch_ptr, int fft_size, char dir) + +**C 调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12-13 + + // FT78NE 示例(私有存储版本) + #include + #include + + int main(int argc, char* argv[]) { + fftw_complex *input = (fftw_complex *)0x10810000; + fftw_complex *output = (fftw_complex *)0x10820000; + fftw_complex *scratch = (fftw_complex *)0x10830000; + + int fft_size = 1024; + + c64_rfft_p(input, output, scratch, fft_size, FFT_FORWARD); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/roipooling.rst.txt b/master/html/_sources/functionlib/dsplib/roipooling.rst.txt new file mode 100644 index 0000000..b18de4c --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/roipooling.rst.txt @@ -0,0 +1,98 @@ +ROIPooling +================= + + + +对输入特征图按指定 ROI (Region of Interest) 进行池化操作,将每个 ROI 区域划分为固定大小的池化单元,并取每个通道的最大值输出。 + +.. math:: + + \text{pooled\_height} = \left\lceil \frac{\text{roi\_end\_h} - \text{roi\_start\_h} + 1}{\text{pooled\_height}} \right\rceil + + \text{pooled\_width} = \left\lceil \frac{\text{roi\_end\_w} - \text{roi\_start\_w} + 1}{\text{pooled\_width}} \right\rceil + + \text{pooled\_output}[i,j,c] = \max_{h,w \in \text{bin}(i,j)} \text{input}[\text{roi\_start\_h}+h, \text{roi\_start\_w}+w, c] + +其中: + +- \( \text{bin}(i,j) \) 表示第 \(i\) 行、第 \(j\) 列池化单元对应的输入特征图区域。 +- \(c\) 表示通道索引。 + +输入: + - **in_ptr** - 输入特征图地址。 + - **input_n** - 输入批大小。 + - **input_h** - 输入高度。 + - **input_w** - 输入宽度。 + - **input_c** - 输入通道数。 + - **num_rois** - ROI 数量。 + - **scale** - ROI 缩放因子。 + - **pooled_height** - 池化输出高度。 + - **pooled_width** - 池化输出宽度。 + - **roi** - ROI 坐标数组,格式为 [batch_index, x1, y1, x2, y2]。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **out_ptr** - 池化输出地址。 + - **max_c** - 每通道最大值缓冲区,用于计算池化结果。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp, int8 + - MT7004 支持hp, fp + +**共享存储版本:** + +.. c:function:: void fp_roipooling_s(int input_n,int input_h,int input_w,int input_c,int num_rois,float scale,int pooled_height,int pooled_width,const float *in_ptr,float *out_ptr,const float *roi,float *max_c,int core_mask) +.. c:function:: void hp_roipooling_s(int input_n,int input_h,int input_w,int input_c,int num_rois,float scale,int pooled_height,int pooled_width,const half *in_ptr,half *out_ptr,const half *roi,half *max_c,int core_mask) +.. c:function:: void i8_roipooling_s(int input_n,int input_h,int input_w,int input_c,int num_rois,float scale,int pooled_height,int pooled_width,const int8_t *in_ptr,int8_t *out_ptr,const float *roi,int8_t *max_c,int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + #include + #include + + int main() { + float *input = (float *)0xA0000000; // 输入在DDR空间 + float *output = (float *)0xC0000000; + float max_c[64]; // 通道数假设为64 + float roi[10*5]; // 10个ROI示例 + int num_rois = 10; + int core_mask = 0xff; + + fp_roipooling_s(1, 32, 32, 64, num_rois, 1.0f, 7, 7, input, output, roi, max_c, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_roipooling_p(int input_n,int input_h,int input_w,int input_c,int num_rois,float scale,int pooled_height,int pooled_width,const float *in_ptr,float *out_ptr,const float *roi,float *max_c) +.. c:function:: void hp_roipooling_p(int input_n,int input_h,int input_w,int input_c,int num_rois,float scale,int pooled_height,int pooled_width,const half *in_ptr,half *out_ptr,const half *roi,half *max_c) +.. c:function:: void i8_roipooling_p(int input_n,int input_h,int input_w,int input_c,int num_rois,float scale,int pooled_height,int pooled_width,const int8_t *in_ptr,int8_t *out_ptr,const float *roi,int8_t *max_c) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + #include + #include + + int main() { + float *input = (float *)0x10810000; // 输入在L2空间 + float *output = (float *)0x10820000; + float max_c[64]; + float roi[10*5]; + int num_rois = 10; + + fp_roipooling_p(1, 32, 32, 64, num_rois, 1.0f, 7, 7, input, output, roi, max_c); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/round.rst.txt b/master/html/_sources/functionlib/dsplib/round.rst.txt new file mode 100644 index 0000000..0b2646a --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/round.rst.txt @@ -0,0 +1,88 @@ +Round +================= + + +逐元素执行四舍五入(Round to Nearest Integer)运算。 + +该算子对输入张量的每个元素执行就近取整, +当输入值的小数部分恰好为 0.5 时,采用“远离 0”方向取整, +其行为与 C 标准库中的 ``round`` / ``roundf`` 函数一致。 + +.. math:: + + \text{output}_i = \operatorname{round}(\text{input}_i) + + +输入: + - **input** - 输入张量的数据地址。 + - **length** - 输入张量的总元素数量。 + - **core_mask** - 核掩码。 + +输出: + - **output** - 输出张量的数据地址,其大小与 ``input`` 相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型:fp32, fp64 + - MT7004 支持的数据类型:fp16, fp32 + - 当输入为 ``±∞`` 或 ``NaN`` 时,输出结果遵循对应平台数学库的处理规则 + + +**共享存储版本:** + +.. c:function:: void fp_round_s(float* input, float* output, int length, int core_mask) +.. c:function:: void dp_round_s(double* input, double* output, int length, int core_mask) +.. c:function:: void hp_round_s(half* input, half* output, int length, int core_mask) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + // FT78NE 多核示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input 在 DDR 空间 + float *output = (float *)0xB0000000; // output 在 DDR 空间 + + int length = 4096; + int core_mask = 0xff; + + fp_round_s(input, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_round_p(float* input, float* output, int length) +.. c:function:: void dp_round_p(double* input, double* output, int length) +.. c:function:: void hp_round_p(half* input, half* output, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + // MT7004 单核示例 + #include + #include + + int main(int argc, char* argv[]) { + half *input = (half *)0x10000000; // input 在 L2 空间 + half *output = (half *)0x10010000; // output 在 L2 空间 + + int length = 1024; + + hp_round_p(input, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/rsqrt.rst.txt b/master/html/_sources/functionlib/dsplib/rsqrt.rst.txt new file mode 100644 index 0000000..358fa51 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/rsqrt.rst.txt @@ -0,0 +1,86 @@ +Rsqrt +================= + +逐元素计算输入数据的平方根倒数(Reciprocal Square Root)。 + +.. math:: + + \text{dst}_i = \frac{1}{\sqrt{\text{src}_i}} + +对于输入 `src` 中的每个元素,计算其平方根的倒数。 + +输入: + - **src** - 输入数据地址。 + - **length** - 计算长度(对于复数类型,指复数的个数)。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **dst** - 计算结果地址,其大小与 `src` 相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int8, int16, int32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_rsqrt_s(int8_t* src, float* dst, int length, int core_mask) +.. c:function:: void i16_rsqrt_s(int16_t* src, float* dst, int length, int core_mask) +.. c:function:: void i32_rsqrt_s(int32_t* src, float* dst, int length, int core_mask) +.. c:function:: void hp_rsqrt_s(half* src, half* dst, int length, int core_mask) +.. c:function:: void fp_rsqrt_s(float* src, float* dst, int length, int core_mask) +.. c:function:: void dp_rsqrt_s(double* src, double* dst, int length, int core_mask) +.. c:function:: void c64_rsqrt_s(float* src, float* dst, int length, int core_mask) +.. c:function:: void c128_rsqrt_s(double* src, double* dst, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *src = (float *)0xA0000000; // input在DDR空间 + float *dst = (float *)0xB0000000; // output + int length = 1000; + int core_mask = 0xff; + fp_rsqrt_s(src, dst, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_rsqrt_p(int8_t* src, float* dst, int length) +.. c:function:: void i16_rsqrt_p(int16_t* src, float* dst, int length) +.. c:function:: void i32_rsqrt_p(int32_t* src, float* dst, int length) +.. c:function:: void hp_rsqrt_p(half* src, half* dst, int length) +.. c:function:: void fp_rsqrt_p(float* src, float* dst, int length) +.. c:function:: void dp_rsqrt_p(double* src, double* dst, int length) +.. c:function:: void c64_rsqrt_p(float* src, float* dst, int length) +.. c:function:: void c128_rsqrt_p(double* src, double* dst, int length) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 9 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *src = (float *)0x10000000; // input在L2空间 + float *dst = (float *)0x10001000; // output + int length = 1000; + fp_rsqrt_p(src, dst, length); + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/rsqrtgrad.rst.txt b/master/html/_sources/functionlib/dsplib/rsqrtgrad.rst.txt new file mode 100644 index 0000000..452aadd --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/rsqrtgrad.rst.txt @@ -0,0 +1,81 @@ +Rsqrtgrad +================= + +计算 Rsqrt(平方根倒数)操作的梯度。该算子是 Rsqrt 算子的反向传播(backward pass)部分。 + +.. math:: + + \text{output}_i = -\frac{1}{2} \times \text{input2}_i \times \text{input1}_i^3 + +其中 `input1` 是前向传播时 Rsqrt 的输出(即 :math:`y = \frac{1}{\sqrt{x}}`),`input2` 是来自后一层的上游梯度 :math:`dy`,`output` 是对原始输入 :math:`x` 的梯度 :math:`dx`。 + +输入: + - **input1** - 前向传播时 Rsqrt 的输出数据地址(即 :math:`y = \frac{1}{\sqrt{x}}`)。 + - **input2** - 来自后一层的上游梯度数据地址(即 :math:`dy`)。 + - **size** - 计算长度。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **output** - 计算出的对原始输入的梯度数据地址(即 :math:`dx`)。 + +支持平台: + ``MT7004`` + +.. note:: + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void fp_rsqrtgrad_s(float* input1, float* input2, float* output, int size, int core_mask) +.. c:function:: void hp_rsqrtgrad_s(half* input1, half* input2, half* output, int size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + //MT7004示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + float *input1 = (float *)0xA0000000; // Rsqrt的输出 y = 1/sqrt(x) + float *input2 = (float *)0xA1000000; // 上游梯度 dy + float *output = (float *)0xB0000000; // 输出梯度 dx + + int size = 1000; + int core_mask = 0xff; + + fp_rsqrtgrad_s(input1, input2, output, size, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_rsqrtgrad_p(float* input1, float* input2, float* output, int size) +.. c:function:: void hp_rsqrtgrad_p(half* input1, half* input2, half* output, int size) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + //MT7004示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + float *input1 = (float *)0x10000000; // Rsqrt的输出 y = 1/sqrt(x) + float *input2 = (float *)0x10001000; // 上游梯度 dy + float *output = (float *)0x10002000; // 输出梯度 dx + + int size = 1000; + + fp_rsqrtgrad_p(input1, input2, output, size); + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/scatter_nd.rst.txt b/master/html/_sources/functionlib/dsplib/scatter_nd.rst.txt new file mode 100644 index 0000000..228f257 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/scatter_nd.rst.txt @@ -0,0 +1,100 @@ +ScatterNd +================= + +依据指定的索引 ``indices``,将更新值 ``updates`` 累加到输出张量 ``output`` 的对应位置。 + +.. math:: + + output[indices_i] = output[indices_i] + updates_i + +输入: + - **output** - 输出张量的起始地址(计算前作为基础值,计算后存储结果)。 + - **output_shape** - 输出张量的形状数组。 + - **output_ndim** - 输出张量的维度数。 + - **indices** - 索引数据地址,其形状通常为 ``(num_slices, indices_depth)``。 + - **indices_shape** - 索引张量的形状数组。 + - **indices_ndim** - 索引张量的维度数。 + - **updates** - 更新数据地址。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - 该算子在多核实现中由于涉及随机访存写,通常直接在 DDR 空间操作。 + - 张量维度最大支持 8 维。 + +**共享存储版本:** + +.. c:function:: void i8_scatter_nd_s(int8_t* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, int8_t* updates, int core_mask) +.. c:function:: void i16_scatter_nd_s(int16_t* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, int16_t* updates, int core_mask) +.. c:function:: void i32_scatter_nd_s(int32_t* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, int32_t* updates, int core_mask) +.. c:function:: void hp_scatter_nd_s(half* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, half* updates, int core_mask) +.. c:function:: void fp_scatter_nd_s(float* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, float* updates, int core_mask) +.. c:function:: void dp_scatter_nd_s(double* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, double* updates, int core_mask) +.. c:function:: void c64_scatter_nd_s(float* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, float* updates, int core_mask) +.. c:function:: void c128_scatter_nd_s(double* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, double* updates, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例(共享存储) + #include + #include "78NE/utils.h" + + int main() { + float *output = (float *)0xA0000000; // 基础输出张量在 DDR + float *updates = (float *)0xB0000000; // 更新值在 DDR + int *indices = (int *)0xC0000000; // 索引在 DDR + int out_shape[] = {4, 4, 4}; + int ind_shape[] = {5, 2}; + int out_ndim = 3; + int ind_ndim = 2; + int core_mask = 0x0B; + + fp_scatter_nd_s(output, out_shape, out_ndim, indices, ind_shape, ind_ndim, updates, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_scatter_nd_p(int8_t* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, int8_t* updates) +.. c:function:: void i16_scatter_nd_p(int16_t* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, int16_t* updates) +.. c:function:: void i32_scatter_nd_p(int32_t* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, int32_t* updates) +.. c:function:: void hp_scatter_nd_p(half* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, half* updates) +.. c:function:: void fp_scatter_nd_p(float* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, float* updates) +.. c:function:: void dp_scatter_nd_p(double* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, double* updates) +.. c:function:: void c64_scatter_nd_p(float* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, float* updates) +.. c:function:: void c128_scatter_nd_p(double* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, double* updates) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 14 + + //MT7004 示例 + #include + + int main() { + float *output = (float *)0x10810000; + float *updates = (float *)0x10820000; + int *indices = (int *)0x10830000; + int out_shape[] = {4, 4, 4}; + int ind_shape[] = {5, 2}; + int out_ndim = 3; + int ind_ndim = 2; + + fp_scatter_nd_p(output, out_shape, out_ndim, indices, ind_shape, ind_ndim, updates); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/scatter_nd_update.rst.txt b/master/html/_sources/functionlib/dsplib/scatter_nd_update.rst.txt new file mode 100644 index 0000000..24c8574 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/scatter_nd_update.rst.txt @@ -0,0 +1,103 @@ +ScatterNdUpdate +================= + +根据索引(indices)将更新值(updates)散布并更新到输出张量(output)的指定切片中。 + +.. math:: + + output[indices[i]] = updates[i] + +该算子通过 ``indices`` 指定的坐标,定位到 ``output`` 中的特定子部分(切片),并使用 ``updates`` 中对应的值进行覆盖更新。 + +输入: + - **output** - 待更新的输出张量地址(输入/输出)。 + - **output_shape** - 输出张量的形状数组地址。 + - **output_ndim** - 输出张量的维度数。 + - **indices** - 索引张量数据地址,其最后一个维度代表索引深度。 + - **indices_shape** - 索引张量的形状数组地址。 + - **indices_ndim** - 索引张量的维度数。 + - **updates** - 更新数据源地址,其形状必须与索引定位出的切片形状一致。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 更新后的结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - indices 数组的类型固定为 int32。 + - 算子支持张量维度最大为 8 维。 + - 共享存储版本内部使用 DMA 传输加速,直接在 DDR 空间进行切片覆盖。 + +**共享存储版本:** + +.. c:function:: void i8_scatter_nd_update_s(int8_t* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, int8_t* updates, int core_mask) +.. c:function:: void i16_scatter_nd_update_s(int16_t* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, int16_t* updates, int core_mask) +.. c:function:: void i32_scatter_nd_update_s(int* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, int* updates, int core_mask) +.. c:function:: void hp_scatter_nd_update_s(half* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, half* updates, int core_mask) +.. c:function:: void fp_scatter_nd_update_s(float* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, float* updates, int core_mask) +.. c:function:: void dp_scatter_nd_update_s(double* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, double* updates, int core_mask) +.. c:function:: void c64_scatter_nd_update_s(float* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, float* updates, int core_mask) +.. c:function:: void c128_scatter_nd_update_s(double* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, double* updates, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 16 + + // FT78NE 示例(共享存储) + #include + #include "78NE/utils.h" + + int main() { + float *output = (float *)0xA0000000; // 原始张量在 DDR + float *updates = (float *)0xB0000000; // 更新值在 DDR + int *indices = (int *)0xC0000000; // 索引在 DDR + + int out_shape[] = {4, 4, 4}; + int ind_shape[] = {5, 2}; // 更新5个切片,每个索引深度为2 + int out_ndim = 3; + int ind_ndim = 2; + int core_mask = 0xFF; // 使用8核并行 + + fp_scatter_nd_update_s(output, out_shape, out_ndim, indices, ind_shape, ind_ndim, updates, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_scatter_nd_update_p(int8_t* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, int8_t* updates) +.. c:function:: void i16_scatter_nd_update_p(int16_t* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, int16_t* updates) +.. c:function:: void i32_scatter_nd_update_p(int* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, int* updates) +.. c:function:: void hp_scatter_nd_update_p(half* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, half* updates) +.. c:function:: void fp_scatter_nd_update_p(float* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, float* updates) +.. c:function:: void dp_scatter_nd_update_p(double* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, double* updates) +.. c:function:: void c64_scatter_nd_update_p(float* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, float* updates) +.. c:function:: void c128_scatter_nd_update_p(double* output, int* output_shape, int output_ndim, int* indices, int* indices_shape, int indices_ndim, double* updates) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + #include + + int main() { + float *output = (float *)0x10810000; + float *updates = (float *)0x10820000; + int *indices = (int *)0x10830000; + + int out_shape[] = {4, 4, 4}; + int ind_shape[] = {5, 2}; + + // 调用单核版本 + fp_scatter_nd_update_p(output, out_shape, 3, indices, ind_shape, 2, updates); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/select.rst.txt b/master/html/_sources/functionlib/dsplib/select.rst.txt new file mode 100644 index 0000000..04c3458 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/select.rst.txt @@ -0,0 +1,188 @@ +Select +================= + +根据条件张量逐元素选择输入值。对于每个输出位置,如果条件为真(True),则选择 `input0` 的值;否则选择 `input1` 的值。该算子支持广播机制。 + +.. math:: + + \text{output}_i = \begin{cases} + \text{input0}[idx2], & \text{if } \text{condition}[idx1] = \text{True} \\ + \text{input1}[idx3], & \text{if } \text{condition}[idx1] = \text{False} + \end{cases} + +其中,当不需要广播时(`is_broadcast = 0`),`idx1 = idx2 = idx3 = i`;当需要广播时(`is_broadcast = 1`),使用索引映射 `index_list1`、`index_list2`、`index_list3` 来确定各个输入张量的索引。 + +输入: + - **input0** - 第一个输入数据地址。当条件为真时选择此值。 + - **input1** - 第二个输入数据地址。当条件为假时选择此值。 + - **condition** - 条件数据地址(bool类型)。决定选择哪个输入的值。 + - **output_dims** - 输出张量的维度信息数组。 + - **output_dims_num** - 输出张量的维度数。 + - **index_list1** - 条件张量的索引映射数组,用于广播场景。大小为输出总元素数。 + - **index_list2** - input0 的索引映射数组,用于广播场景。大小为输出总元素数。 + - **index_list3** - input1 的索引映射数组,用于广播场景。大小为输出总元素数。 + - **is_broadcast** - 是否需要广播的标志。0 表示不需要广播,1 表示需要广播。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **output** - 输出数据地址,其形状由 `output_dims` 和 `output_dims_num` 确定。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int8, int16, int32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_select_s(int8_t* input0, int8_t* input1, bool* condition, int8_t* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast, int core_mask) +.. c:function:: void i16_select_s(int16_t* input0, int16_t* input1, bool* condition, int16_t* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast, int core_mask) +.. c:function:: void i32_select_s(int32_t* input0, int32_t* input1, bool* condition, int32_t* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast, int core_mask) +.. c:function:: void hp_select_s(half* input0, half* input1, bool* condition, half* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast, int core_mask) +.. c:function:: void fp_select_s(float* input0, float* input1, bool* condition, float* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast, int core_mask) +.. c:function:: void dp_select_s(double* input0, double* input1, bool* condition, double* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast, int core_mask) +.. c:function:: void c64_select_s(float* input0, float* input1, bool* condition, float* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast, int core_mask) +.. c:function:: void c128_select_s(double* input0, double* input1, bool* condition, double* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast, int core_mask) + +**C调用示例(无广播):** + +.. code-block:: c + :linenos: + :emphasize-lines: 34-35 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + float *input0 = (float *)0xA0000000; + float *input1 = (float *)0xA1000000; + bool *condition = (bool *)0xA2000000; + float *output = (float *)0xB0000000; + + // 输出形状 [2, 3, 4] + unsigned long long output_dims[] = {2, 3, 4}; + unsigned long long output_dims_num = 3; + + // 计算总元素数 + unsigned long long total_elements = 2 * 3 * 4; // 24 + + // 索引映射数组(无广播时可以为NULL或与输出索引相同) + unsigned long long *index_list1 = (unsigned long long *)0xC0000000; + unsigned long long *index_list2 = (unsigned long long *)0xC0100000; + unsigned long long *index_list3 = (unsigned long long *)0xC0200000; + + // 初始化索引映射(无广播时直接使用顺序索引) + for (unsigned long long i = 0; i < total_elements; i++) { + index_list1[i] = i; + index_list2[i] = i; + index_list3[i] = i; + } + + long long is_broadcast = 0; // 不需要广播 + int core_mask = 0xff; + + fp_select_s(input0, input1, condition, output, output_dims, output_dims_num, + index_list1, index_list2, index_list3, is_broadcast, core_mask); + return 0; + } + +**C调用示例(有广播):** + +.. code-block:: c + :linenos: + :emphasize-lines: 35-36 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + float *input0 = (float *)0xA0000000; // 形状 [3, 4] + float *input1 = (float *)0xA1000000; // 标量或形状 [1] + bool *condition = (bool *)0xA2000000; // 形状 [2, 3, 4] + float *output = (float *)0xB0000000; // 形状 [2, 3, 4] + + // 输出形状 [2, 3, 4] + unsigned long long output_dims[] = {2, 3, 4}; + unsigned long long output_dims_num = 3; + + // 计算总元素数 + unsigned long long total_elements = 2 * 3 * 4; // 24 + + // 索引映射数组(需要根据广播规则预先计算) + unsigned long long *index_list1 = (unsigned long long *)0xC0000000; + unsigned long long *index_list2 = (unsigned long long *)0xC0100000; + unsigned long long *index_list3 = (unsigned long long *)0xC0200000; + + // 初始化索引映射(示例:需要根据实际广播规则计算) + // 这里假设 condition 和 output 形状相同,input0 需要广播 + for (unsigned long long i = 0; i < total_elements; i++) { + index_list1[i] = i; // condition 索引 + index_list2[i] = i % 12; // input0 索引(假设需要广播) + index_list3[i] = 0; // input1 索引(标量) + } + + long long is_broadcast = 1; // 需要广播 + int core_mask = 0xff; + + fp_select_s(input0, input1, condition, output, output_dims, output_dims_num, + index_list1, index_list2, index_list3, is_broadcast, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_select_p(int8_t* input0, int8_t* input1, bool* condition, int8_t* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast) +.. c:function:: void i16_select_p(int16_t* input0, int16_t* input1, bool* condition, int16_t* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast) +.. c:function:: void i32_select_p(int32_t* input0, int32_t* input1, bool* condition, int32_t* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast) +.. c:function:: void hp_select_p(half* input0, half* input1, bool* condition, half* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast) +.. c:function:: void fp_select_p(float* input0, float* input1, bool* condition, float* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast) +.. c:function:: void dp_select_p(double* input0, double* input1, bool* condition, double* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast) +.. c:function:: void c64_select_p(float* input0, float* input1, bool* condition, float* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast) +.. c:function:: void c128_select_p(double* input0, double* input1, bool* condition, double* output, unsigned long long* output_dims, unsigned long long output_dims_num, unsigned long long* index_list1, unsigned long long* index_list2, unsigned long long* index_list3, long long is_broadcast) + +**C调用示例(私有存储版本):** + +.. code-block:: c + :linenos: + :emphasize-lines: 30-31 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + float *input0 = (float *)0x10000000; + float *input1 = (float *)0x10001000; + bool *condition = (bool *)0x10002000; + float *output = (float *)0x10003000; + + // 输出形状 [2, 3, 4] + unsigned long long output_dims[] = {2, 3, 4}; + unsigned long long output_dims_num = 3; + + unsigned long long total_elements = 2 * 3 * 4; + unsigned long long *index_list1 = (unsigned long long *)0x10004000; + unsigned long long *index_list2 = (unsigned long long *)0x10005000; + unsigned long long *index_list3 = (unsigned long long *)0x10006000; + + // 初始化索引映射(无广播) + for (unsigned long long i = 0; i < total_elements; i++) { + index_list1[i] = i; + index_list2[i] = i; + index_list3[i] = i; + } + + long long is_broadcast = 0; + + fp_select_p(input0, input1, condition, output, output_dims, output_dims_num, + index_list1, index_list2, index_list3, is_broadcast); + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/sgd.rst.txt b/master/html/_sources/functionlib/dsplib/sgd.rst.txt index b4bb87c..3448a96 100644 --- a/master/html/_sources/functionlib/dsplib/sgd.rst.txt +++ b/master/html/_sources/functionlib/dsplib/sgd.rst.txt @@ -2,6 +2,19 @@ SGD ================= 对权重张量执行带动量与权重衰减的随机梯度下降更新。 + .. math:: + + \begin{aligned} + g'_t &= g_t + weight\_decay \cdot w_{t-1} \\ + m_t &= moment \cdot m_{t-1} + (1 - dampening) \cdot g'_t \\ + u_t &= + \begin{cases} + m_t \cdot moment + g'_t, & \text{if nesterov = True} \\ + m_t, & \text{otherwise} + \end{cases} \\ + w_t &= w_{t-1} - learning\_rate \cdot u_t + \end{aligned} + 输入: - **weight** - 待更新权重张量首地址。 - **accumulate** - 动量累积张量首地址。 @@ -34,25 +47,11 @@ SGD .. c:function:: void fp_sgd_s(float *weight, float *accumulate, const float *gradient, float learning_rate, float dampening, float moment, bool nesterov, float weight_decay, int start, int end, int core_mask) - - .. math:: - - \begin{aligned} - g'_t &= g_t + weight\_decay \cdot w_{t-1} \\ - m_t &= moment \cdot m_{t-1} + (1 - dampening) \cdot g'_t \\ - u_t &= - \begin{cases} - m_t \cdot moment + g'_t, & \text{if nesterov = True} \\ - m_t, & \text{otherwise} - \end{cases} \\ - w_t &= w_{t-1} - learning\_rate \cdot u_t - \end{aligned} - **C调用示例:** .. code-block:: c :linenos: - :emphasize-lines: 17 + :emphasize-lines: 17-19 // FT78NE 多核示例 #include @@ -86,7 +85,7 @@ SGD .. code-block:: c :linenos: - :emphasize-lines: 15 + :emphasize-lines: 15-17 // MT7004 单核示例 #include diff --git a/master/html/_sources/functionlib/dsplib/shape.rst.txt b/master/html/_sources/functionlib/dsplib/shape.rst.txt new file mode 100644 index 0000000..5229ad5 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/shape.rst.txt @@ -0,0 +1,81 @@ +Shape +================= + +形状推断函数(Shape Inference Function)。该函数根据输入张量的形状和算子参数,推断输出张量的形状。该函数不区分数据类型,只处理张量的形状信息。 + +如果所有输出张量都是常量(ConstTensor 或 ConstScalar),则直接返回,不进行形状推断。否则,根据算子类型调用相应的形状推断函数。 + +支持的算子类型: + - **Arithmetic_InferShape** - 算术运算的形状推断 + - **Common_InferShape** - 通用算子的形状推断 + - **Softmax_InferShape** - Softmax 算子的形状推断 + - **MaxMinGrad_InferShape** - MaxMin 梯度算子的形状推断 + - **Dropout_InferShape** - Dropout 算子的形状推断 + - **DynamicQuant_InferShape** - 动态量化算子的形状推断 + - **Fft_InferShape** - FFT 算子的形状推断 + - **Flatten_InferShape** - Flatten 算子的形状推断 + - **LayerNorm_InferShape** - LayerNorm 算子的形状推断 + - **LogSoftmax_InferShape** - LogSoftmax 算子的形状推断 + +输入: + - **inputs** - 输入张量数组(TensorC** 类型)。 + - **inputs_size** - 输入张量的数量。 + - **outputs** - 输出张量数组(TensorC** 类型)。 + - **outputs_size** - 输出张量的数量。 + - **param** - 算子参数(OpParameter* 类型),包含算子类型和其他参数信息。 + +输出: + - **outputs** - 输出张量数组,其中的形状信息会被更新。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - 该函数不区分数据类型,适用于所有数据类型 + - 函数会自动检查输出是否为常量,如果是常量则跳过形状推断 + +**共享存储/私有存储版本:** + +.. c:function:: void shape(TensorC** inputs, int inputs_size, TensorC** outputs, int outputs_size, OpParameter* param) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 32 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + TensorC** input_tensors_ptrs = (TensorC**)0x10010000; + TensorC** output_tensors_ptrs = (TensorC**)0x10011000; + + TensorC input0; + TensorC input1; + TensorC output; + + int input0_shape[4] = {1,2,3,4}; + int input1_shape[4] = {1,3,4}; + int output_shape[4]; //不用初始化 + memcpy(input0.shape_, input0_shape, 4 * sizeof(int)); + input0.shape_size_ = 4; + memcpy(input1.shape_, input1_shape, 4 * sizeof(int)); + input1.shape_size_ = 3; + input0.data_type_ = kNumberTypeFloat32; + input1.data_type_ = kNumberTypeFloat32; + input0.format_ = Format_NCHW; + input1.format_ = Format_NCHW; + + input_tensors_ptrs[0] = &input0; + input_tensors_ptrs[1] = &input1; + output_tensors_ptrs[0] = &output; + + ArithmeticParameter param; + param.op_parameter_.type_ = Arithmetic_InferShape; + + shape(input_tensors_ptrs, 2, output_tensors_ptrs, 1, (OpParameter*)¶m); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/sigmoidcrossentropwithlogitsgrad.rst.txt b/master/html/_sources/functionlib/dsplib/sigmoidcrossentropwithlogitsgrad.rst.txt new file mode 100644 index 0000000..38234ba --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/sigmoidcrossentropwithlogitsgrad.rst.txt @@ -0,0 +1,103 @@ +SigmoidCrossEntropyWithLogitsGrad +================================= + +计算 **Sigmoid Cross Entropy With Logits** 的梯度。 +该算子以 logits 和 labels 为输入,输出对 logits 的梯度值。 + +数学表达式为: + +.. math:: + + \sigma(x) = \frac{1}{1 + e^{-x}} + + \quad + + dst_i = \sigma(x_i) - y_i + +其中: + - :math:`x_i` 表示第 *i* 个 logit(Input0) + - :math:`y_i` 表示第 *i* 个标签(Input1) + +为提高数值稳定性,计算中对正负 logits 采用不同形式: + +.. math:: + + \sigma(x) = + \begin{cases} + \dfrac{1}{1 + e^{-x}}, & x > 0 \\ + \dfrac{e^{x}}{1 + e^{x}}, & x \le 0 + \end{cases} + +输入: + - **Input0** - logits 输入数据地址。 + - **Input1** - 标签(labels)数据地址。 + - **length** - 计算长度。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 梯度计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 ``fp32`` 类型 + - MT7004 支持 ``fp16``、``fp32`` 类型 + - 输入 logits 与 labels 必须具有相同长度 + - 输出为对 logits 的梯度,不包含对 labels 的梯度 + +**共享存储版本:** + +.. c:function:: void fp_sigmoidcrossentropywithlogitsgrad_s(float* Input0, float* Input1, float* output, int length, int core_mask) +.. c:function:: void hp_sigmoidcrossentropywithlogitsgrad_s(half* Input0, half* Input1, half* output, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *logits = (float *)0xA0000000; // DDR 空间 + float *labels = (float *)0xA0100000; + float *output = (float *)0xC0000000; + + int length = 1024; + int core_mask = 0xff; + + fp_sigmoidcrossentropywithlogitsgrad_s(logits, labels, output, length, core_mask); + + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_sigmoidcrossentropywithlogitsgrad_p(float* Input0, float* Input1, float* output, int length) +.. c:function:: void hp_sigmoidcrossentropywithlogitsgrad_p(half* Input0, half* Input1, half* output, int length) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + // FT78NE 示例(私有存储) + #include + #include + + int main(int argc, char* argv[]) { + float *logits = (float *)0x10810000; // L2 空间 + float *labels = (float *)0x10820000; + float *output = (float *)0x10830000; + + int length = 1024; + fp_sigmoidcrossentropywithlogitsgrad_p( logits, labels, output, length); + + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/sigmoidcrossentropywithlogits.rst.txt b/master/html/_sources/functionlib/dsplib/sigmoidcrossentropywithlogits.rst.txt new file mode 100644 index 0000000..e36ed69 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/sigmoidcrossentropywithlogits.rst.txt @@ -0,0 +1,88 @@ +SigmoidCrossEntropyWithLogits +================================== + + +计算预测值与真实值之间的sigmoid交叉熵。 + +测量离散分类任务中的分布误差,每个类相互独立,且计算出各个类的交叉熵损失。 + +将输入 logits 设置为 :math:`X`,输入 label 为 :math:`Y`,输出为 :math:`loss`。然后, + +.. math:: + + \begin{aligned} + p &= \text{sigmoid}(X) = \frac{1}{1 + e^{-X}} \\ + loss &= -[Y \cdot \ln(p) + (1 - Y) \cdot \ln(1 - p)] + \end{aligned} + +输入: + - **input0** - 输入 logits 张量地址。 + - **input1** - 输入标签张量地址,与 logits 形状相同。 + - **length** - 张量元素总数。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 输出损失张量地址,与输入张量形状相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型:int8, fp32 + - MT7004 支持的数据类型:fp16, fp32 + +**共享存储版本:** + +.. c:function:: void i8_sigmoidcrossentropywithlogits_s(int8_t* input0, int8_t* input1, int8_t* output, int length, int core_mask) +.. c:function:: void fp_sigmoidcrossentropywithlogits_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void hp_sigmoidcrossentropywithlogits_s(half* input0, half* input1, half* output, int length, int core_mask) + +**C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 13 + + // FT78NE 多核示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; // logits在DDR空间 + float *input1 = (float *)0xB0000000; // label在DDR空间 + float *output = (float *)0xC0000000; // 输出损失在DDR空间 + int length = 1000; + int core_mask = 0xff; + + // 计算 sigmoid 交叉熵损失 + fp_sigmoidcrossentropywithlogits_s(input0, input1, output, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_sigmoidcrossentropywithlogits_p(int8_t* input0, int8_t* input1, int8_t* output, int length) +.. c:function:: void fp_sigmoidcrossentropywithlogits_p(float* input0, float* input1, float* output, int length) +.. c:function:: void hp_sigmoidcrossentropywithlogits_p(half* input0, half* input1, half* output, int length) + +**C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + // MT7004 单核示例 + #include + #include + + int main(int argc, char* argv[]) { + half *input0 = (half *)0x10000000; // logits在L2空间 + half *input1 = (half *)0x10004000; // label在L2空间 + half *output = (half *)0x10008000; // 输出损失在L2空间 + int length = 1000; + + // 计算 sigmoid 交叉熵损失 + hp_sigmoidcrossentropywithlogits_p(input0, input1, output, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/sin.rst.txt b/master/html/_sources/functionlib/dsplib/sin.rst.txt new file mode 100644 index 0000000..596abb3 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/sin.rst.txt @@ -0,0 +1,85 @@ +Sin +================= + + + +传入一个数组,对每个元素逐元素计算其正弦值并输出。 + +.. math:: + + dst_i = \sin(src_i) + +输入角度单位为弧度。 + +输入: + - **src_data** - 输入数据地址。 + - **length** - 计算长度。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **dst_data** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp, dp, int8, int16, int32 + - MT7004 支持 hp, fp, int16, int32 + - 整数类型在计算时会先转换为浮点数,再按对应类型输出 + +**共享存储版本:** + +.. c:function:: void i8_sin_s(int8_t* src_data, float* dst_data, int length, int core_mask) +.. c:function:: void i16_sin_s(int16_t* src_data, float* dst_data, int length, int core_mask) +.. c:function:: void i32_sin_s(int* src_data, float* dst_data, int length, int core_mask) +.. c:function:: void hp_sin_s(half* src_data, half* dst_data, int length, int core_mask) +.. c:function:: void fp_sin_s(float* src_data, float* dst_data, int length, int core_mask) +.. c:function:: void dp_sin_s(double* src_data, double* dst_data, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input在DDR空间 + float *output = (float *)0xC0000000; + int length = 1024; + int core_mask = 0xff; + fp_sin_s(input, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_sin_p(int8_t* src_data, float* dst_data, int length) +.. c:function:: void i16_sin_p(int16_t* src_data, float* dst_data, int length) +.. c:function:: void i32_sin_p(int* src_data, float* dst_data, int length) +.. c:function:: void hp_sin_p(half* src_data, half* dst_data, int length) +.. c:function:: void fp_sin_p(float* src_data, float* dst_data, int length) +.. c:function:: void dp_sin_p(double* src_data, double* dst_data, int length) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 9 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10810000; // input在L2空间 + float *output = (float *)0x10820000; + int length = 1024; + fp_sin_p(input, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/size.rst.txt b/master/html/_sources/functionlib/dsplib/size.rst.txt new file mode 100644 index 0000000..5d9f9bc --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/size.rst.txt @@ -0,0 +1,74 @@ +Size +================= + + 计算输入张量或向量的元素总个数(即形状各维度的乘积),并将结果写入输出地址。 + + 输入: + - **output** - 输出数据的地址,用于存储计算结果。 + - **shape** - 输入张量的形状(维度)数组地址。 + - **n** - 输入张量的维度数(Rank)。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + + 输出: + - **output** - 存储元素总个数的地址。 + + 支持平台: + ``FT78NE`` + ``MT7004`` + + .. note:: + - 由于该算子对于不同数据类型的具体实现一致,因此统一使用 ``size_s`` 和 ``size_p`` 命名,不再区分数据类型前缀(如 ``fp_``, ``i8_`` 等)。 + - 支持的数据类型包括:int8, int16, int32, fp32, fp64, cplx64, cplx128。 + +**共享存储版本:** + +.. c:function:: void size_s(int* output, int* shape, int n, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 13 + + #include + #include + + int main(int argc, char* argv[]) { + int n = 4; + // 假设 shape 为 {2, 3, 4, 5},元素总数为 120 + int *output = (int *)0xA0000000; + int *shape = (int *)0xA0000100; + + // 实际使用中需确保 shape 地址处已存入维度数据 + int core_mask = 0xff; + + size_s(output, shape, n, core_mask); + + return 0; + } + + +**私有存储版本:** + +.. c:function:: void size_p(int* output, int* shape, int n) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + #include + #include + + int main(int argc, char* argv[]) { + int n = 3; + // 假设 shape 为 {10, 10, 4},元素总数为 400 + int *output = (int *)0x10000000; + int *shape = (int *)0x10000040; + + // 实际使用中需确保 shape 地址处已存入维度数据 + size_p(output, shape, n); + + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/skipgram.rst.txt b/master/html/_sources/functionlib/dsplib/skipgram.rst.txt new file mode 100644 index 0000000..dea874d --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/skipgram.rst.txt @@ -0,0 +1,125 @@ +Skipgram +======== + +从输入语句中生成skip-gram。skip-gram是从句子中提取的词语序列,其中相邻词语之间的距离(跳过的词语数量)不超过指定的最大值。此算子主要用于自然语言处理(NLP)任务。 + +输入: + - **sentence** - `StringPack*` 类型,指向输入语句的指针。 + - **words** - `StringPack*` 类型,用于存储从语句中解析出的词语的工作空间。 + - **ngram_size** - `int` 类型,指定每个n-gram中的词语数量。 + - **max_skip_size** - `int` 类型,指定在构成n-gram时可以跳过的最大词语数量。 + - **include_all_ngrams** - `int` 类型,布尔标志。如果为非零,则生成长度从1到 `ngram_size` 的所有n-gram;否则,仅生成长度为 `ngram_size` 的n-gram。 + - **grams** - `StringPack**` 类型,用于存储生成的gram的工作空间。 + - **grams_word_count** - `int*` 类型,用于存储每个gram中词语数量的工作空间。 + - **stack** - `int*` 类型,长度为 `ngram_size` 的临时工作空间。 + - **blank** - `char*` 类型,指向空格字符的指针,用于连接gram中的词语。 + - **output_tensor** - `char*` 类型,最终输出张量的数据地址。 + - **offset** - `int*` 类型,输出参数,用于存储 `output_tensor` 中每个gram的偏移量。 + - **len** - `int*` 类型,输出参数,用于存储 `output_tensor` 中每个gram的长度。 + - **shape** - `int*` 类型,输出参数,用于存储输出张量的维度信息。 + - **core_mask** - (仅限共享版本) 核掩码。 + +输出: + - **output_tensor**、**offset**、**len** 和 **shape** - 这些指针指向的内存区域将被填充,以表示包含生成结果的最终张量。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - 该算子不区分数据类型,直接操作字符数据。 + + +**共享存储版本:** + +.. c:function:: int skipgram_s(StringPack *sentence, StringPack *words, int ngram_size, int max_skip_size, int include_all_ngrams, StringPack **grams, int *grams_word_count, int *stack, char *blank, char *output_tensor, int *offset, int *len, int *shape, int core_mask) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 31-33 + + #include + #include "skipgram.h" // 假设头文件名 + + typedef struct StringPack { + long long len; + char *data; + } StringPack; + + int main(int argc, char* argv[]) { + // 假设输入和工作空间已在DDR中分配 + StringPack* sentence = (StringPack*)0xA0000000; + StringPack* words = (StringPack*)0xA0010000; + StringPack** grams = (StringPack**)0xA0020000; + int* grams_word_count = (int*)0xA0030000; + int* stack = (int*)0xA0040000; + char* output_tensor = (char*)0xB0000000; + int* offset = (int*)0xB0010000; + int* len = (int*)0xB0020000; + int* shape = (int*)0xB0030000; + char blank_char = ' '; + + // 填充sentence内容 + sentence->data = "mindspore signal processing library"; + sentence->len = 33; + + int ngram_size = 2; + int max_skip_size = 1; + int include_all_ngrams = 1; + int core_mask = 0xff; + + skipgram_s(sentence, words, ngram_size, max_skip_size, include_all_ngrams, + grams, grams_word_count, stack, &blank_char, + output_tensor, offset, len, shape, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: int skipgram_p(StringPack *sentence, StringPack *words, int ngram_size, int max_skip_size, int include_all_ngrams, StringPack **grams, int *grams_word_count, int *stack, char *blank, char *output_tensor, int *offset, int *len, int *shape) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 30-32 + + #include + #include "skipgram.h" // 假设头文件名 + + typedef struct StringPack { + long long len; + char *data; + } StringPack; + + int main(int argc, char* argv[]) { + // 假设输入和工作空间已在私有内存中分配 + StringPack* sentence = (StringPack*)0x10001000; + StringPack* words = (StringPack*)0x10002000; + StringPack** grams = (StringPack**)0x10003000; + int* grams_word_count = (int*)0x10004000; + int* stack = (int*)0x10005000; + char* output_tensor = (char*)0x10006000; + int* offset = (int*)0x10007000; + int* len = (int*)0x10008000; + int* shape = (int*)0x10009000; + char blank_char = ' '; + + // 填充sentence内容 + sentence->data = "mindspore signal processing library"; + sentence->len = 33; + + int ngram_size = 2; + int max_skip_size = 1; + int include_all_ngrams = 1; + + skipgram_p(sentence, words, ngram_size, max_skip_size, include_all_ngrams, + grams, grams_word_count, stack, &blank_char, + output_tensor, offset, len, shape); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/slice.rst.txt b/master/html/_sources/functionlib/dsplib/slice.rst.txt new file mode 100644 index 0000000..be9a03d --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/slice.rst.txt @@ -0,0 +1,97 @@ +Slice +================= + +从输入张量中提取一个子集(切片)。根据给定的起始索引(begin)和切片大小(size),在每个维度上截取数据。 + +.. math:: + + output[i_0, i_1, \dots, i_{n-1}] = input[begin_0 + i_0, begin_1 + i_1, \dots, begin_{n-1} + i_{n-1}] + +其中 $n$ 为维度数(ndim),且满足 $0 \le i_k < size_k$。 + +输入: + - **input** - 输入张量数据地址。 + - **input_shape** - 输入张量的形状数组地址。 + - **ndim** - 输入张量的维度数。 + - **begin** - 切片起始索引数组地址(长度为 ndim)。 + - **size** - 切片大小数组地址(长度为 ndim)。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果存储地址(输出张量形状即为 size)。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - 切片操作不改变数据数值,仅改变数据的空间排布,常用于特征提取或张量分解。 + +**共享存储版本:** + +.. c:function:: void i8_slice_s(int8_t* input, int8_t* output, int* input_shape, int ndim, int* begin, int* size, int core_mask) +.. c:function:: void i16_slice_s(int16_t* input, int16_t* output, int* input_shape, int ndim, int* begin, int* size, int core_mask) +.. c:function:: void i32_slice_s(int32_t* input, int32_t* output, int* input_shape, int ndim, int* begin, int* size, int core_mask) +.. c:function:: void hp_slice_s(half* input, half* output, int* input_shape, int ndim, int* begin, int* size, int core_mask) +.. c:function:: void fp_slice_s(float* input, float* output, int* input_shape, int ndim, int* begin, int* size, int core_mask) +.. c:function:: void dp_slice_s(double* input, double* output, int* input_shape, int ndim, int* begin, int* size, int core_mask) +.. c:function:: void c64_slice_s(float* input, float* output, int* input_shape, int ndim, int* begin, int* size, int core_mask) +.. c:function:: void c128_slice_s(double* input, double* output, int* input_shape, int ndim, int* begin, int* size, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 14 + + // FT78NE 示例(多核并行切片) + #include + #include "78NE/utils.h" + + int main() { + float *input = (float *)0xA0000000; + float *output = (float *)0xB0000000; + int input_shape[] = {16, 32, 64, 128}; + int begin[] = {2, 4, 8, 16}; + int size[] = {8, 12, 20, 32}; + int ndim = 4; + int core_mask = 0xFF; // 使用8核并行 + + fp_slice_s(input, output, input_shape, ndim, begin, size, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_slice_p(int8_t* input, int8_t* output, int* input_shape, int ndim, int* begin, int* size) +.. c:function:: void i16_slice_p(int16_t* input, int16_t* output, int* input_shape, int ndim, int* begin, int* size) +.. c:function:: void i32_slice_p(int32_t* input, int32_t* output, int* input_shape, int ndim, int* begin, int* size) +.. c:function:: void hp_slice_p(half* input, half* output, int* input_shape, int ndim, int* begin, int* size) +.. c:function:: void fp_slice_p(float* input, float* output, int* input_shape, int ndim, int* begin, int* size) +.. c:function:: void dp_slice_p(double* input, double* output, int* input_shape, int ndim, int* begin, int* size) +.. c:function:: void c64_slice_p(float* input, float* output, int* input_shape, int ndim, int* begin, int* size) +.. c:function:: void c128_slice_p(double* input, double* output, int* input_shape, int ndim, int* begin, int* size) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + // MT7004 示例(单核私有存储切片) + #include + + int main() { + float *input = (float *)0x10000000; + float *output = (float *)0x10010000; + int input_shape[] = {4, 8, 16, 32}; + int begin[] = {1, 2, 3, 4}; + int size[] = {2, 3, 6, 8}; + int ndim = 4; + + fp_slice_p(input, output, input_shape, ndim, begin, size); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/smooth1loss.rst.txt b/master/html/_sources/functionlib/dsplib/smooth1loss.rst.txt new file mode 100644 index 0000000..331dd61 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/smooth1loss.rst.txt @@ -0,0 +1,85 @@ +SmoothL1Loss +================= + +计算平滑L1损失函数 + +.. math:: + + \text{loss}(x_1, x_2) = \begin{cases} + \frac{(x_1 - x_2)^2}{2\beta}, & \text{if } |x_1 - x_2| < \beta \\ + |x_1 - x_2| - \frac{\beta}{2}, & \text{otherwise} + \end{cases} + +其中 :math:`x_1` 为预测值,:math:`x_2` 为目标值,:math:`\beta` 为平滑参数。 + +输入: + - **predict** - 预测值数据地址。 + - **target** - 目标值数据地址。 + - **length** - 计算长度。 + - **beta** - 平滑参数(FT78NE平台为float值,MT7004平台为half*指针)。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **out** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, fp32 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void i8_smoothl1loss_s(int8_t* out, int8_t* predict, int8_t* target, int length, float beta, int core_mask) +.. c:function:: void fp_smoothl1loss_s(float* out, float* predict, float* target, int length, float beta, int core_mask) +.. c:function:: void hp_smoothl1loss_s(half* out, half* predict, half* target, int length, half* beta, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *predict = (float *)0xA0000000; //predict在DDR空间 + float *target = (float *)0xB0000000; //target在DDR空间 + float *out = (float *)0xC0000000; //out在DDR空间 + int length = 1000; + float beta = 1.0f; + int core_mask = 0xff; + fp_smoothl1loss_s(out, predict, target, length, beta, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_smoothl1loss_p(int8_t* out, int8_t* predict, int8_t* target, int length, float beta) +.. c:function:: void fp_smoothl1loss_p(float* out, float* predict, float* target, int length, float beta) +.. c:function:: void hp_smoothl1loss_p(half* out, half* predict, half* target, int length, half* beta) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *predict = (float *)0x10810000; //predict在L2空间 + float *target = (float *)0x10850000; //target在L2空间 + float *out = (float *)0x108A0000; //out在L2空间 + int length = 1000; + float beta = 1.0f; + fp_smoothl1loss_p(out, predict, target, length, beta); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/smoothl1lossgrad.rst.txt b/master/html/_sources/functionlib/dsplib/smoothl1lossgrad.rst.txt new file mode 100644 index 0000000..86b39f4 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/smoothl1lossgrad.rst.txt @@ -0,0 +1,100 @@ +Smoothl1lossgrad +================= + +计算 Smooth L1 Loss 操作的梯度。该算子是 Smooth L1 Loss 算子的反向传播(backward pass)部分。 + +Smooth L1 Loss 是 L1 Loss 和 L2 Loss 的平滑组合,在损失值较小时使用 L2 Loss,在损失值较大时使用 L1 Loss,以减少异常值的影响。 + +.. math:: + + \text{diff}_i = \text{x1}_i - \text{x2}_i + +.. math:: + + \text{dx1}_i = \begin{cases} + \text{dy}_i, & \text{if } \text{diff}_i > \beta \\ + -\text{dy}_i, & \text{if } \text{diff}_i < -\beta \\ + \frac{\text{diff}_i}{\beta} \times \text{dy}_i, & \text{if } -\beta \leq \text{diff}_i \leq \beta + \end{cases} + +其中 `x1` 是预测值(predict),`x2` 是目标值(target),`dy` 是来自后一层的上游梯度,`dx1` 是对预测值 `x1` 的梯度。`beta` 是平滑参数,控制从 L2 Loss 到 L1 Loss 的过渡点。 + + +输入: + - **dy** - 来自后一层的上游梯度数据地址。 + - **x1** - 前向传播时的预测值数据地址。 + - **x2** - 前向传播时的目标值数据地址。 + - **length** - 计算长度。 + - **beta** - 平滑参数,控制从 L2 Loss 到 L1 Loss 的过渡点。通常取值范围为 0.1 到 1.0。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **dx1** - 计算出的对预测值 `x1` 的梯度数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp16, fp32 + +**共享存储版本:** + +.. c:function:: void fp_smoothl1lossgrad_s(float* dy, float* dx1, float* x1, float* x2, int length, float beta, int core_mask) +.. c:function:: void hp_smoothl1lossgrad_s(half* dy, half* dx1, half* x1, half* x2, int length, half beta, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16 + + //MT7004示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + float *dy = (float *)0xA0000000; // 上游梯度 + float *x1 = (float *)0xA1000000; // 预测值 + float *x2 = (float *)0xA2000000; // 目标值 + float *dx1 = (float *)0xB0000000; // 输出梯度(对 x1 的梯度) + + int length = 1000; + float beta = 1.0f; // 平滑参数 + int core_mask = 0xff; + + fp_smoothl1lossgrad_s(dy, dx1, x1, x2, length, beta, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_smoothl1lossgrad_p(float* dy, float* dx1, float* x1, float* x2, int length, float beta) +.. c:function:: void hp_smoothl1lossgrad_p(half* dy, half* dx1, half* x1, half* x2, int length, half beta) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + //MT7004示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + float *dy = (float *)0x10000000; // 上游梯度 + float *x1 = (float *)0x10001000; // 预测值 + float *x2 = (float *)0x10002000; // 目标值 + float *dx1 = (float *)0x10003000; // 输出梯度(对 x1 的梯度) + + int length = 1000; + float beta = 1.0f; // 平滑参数 + + fp_smoothl1lossgrad_p(dy, dx1, x1, x2, length, beta); + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/softmax.rst.txt b/master/html/_sources/functionlib/dsplib/softmax.rst.txt new file mode 100644 index 0000000..3a1a51c --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/softmax.rst.txt @@ -0,0 +1,94 @@ +Softmax +================= + + + +对输入数组沿指定维度进行 Softmax 计算,输出每个元素的概率值。 + +.. math:: + + \text{output}_{i} = \frac{\exp(\text{input}_{i})}{\sum_j \exp(\text{input}_j)} + \quad \text{for elements along the given axis} + +输入: + - **input_ptr** - 输入数据地址。 + - **axis** - 归一化的轴。 + - **n_dim** - 输入张量维度。 + - **inner_size** - 内部尺寸(轴之后的元素个数)。 + - **outter_size** - 外部尺寸(轴之前的元素个数)。 + - **axis_size** - 归一化轴的元素数量。 + - **sum_data** - 中间累加存储地址(用于存放指数和)。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output_ptr** - Softmax 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp, int8 + - MT7004 支持hp, fp + +**共享存储版本:** + +.. c:function:: void fp_softmax_s(float* input_ptr, float* output_ptr, float* sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size, int core_mask) +.. c:function:: void hp_softmax_s(half* input_ptr, half* output_ptr, half* sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size, int core_mask) +.. c:function:: void i8_softmax_s(int8_t* input_ptr, int8_t* output_ptr, float* sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 16 + + //FT78NE示例 + #include + #include + + int main() { + float *input = (float *)0xA0000000; // input在DDR空间 + float *output = (float *)0xC0000000; + float *sum_data = (float *)0xD0000000; + int axis = 1; + int n_dim = 3; + int inner_size = 4; + int outter_size = 2; + int axis_size = 3; + int core_mask = 0xff; + + fp_softmax_s(input, output, sum_data, axis, n_dim, inner_size, outter_size, axis_size, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_softmax_p(float* input_ptr, float* output_ptr, float* sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size) +.. c:function:: void hp_softmax_p(half* input_ptr, half* output_ptr, half* sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size) +.. c:function:: void i8_softmax_p(int8_t* input_ptr, int8_t* output_ptr, float* sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + //FT78NE示例 + #include + #include + + int main() { + float *input = (float *)0x10810000; // input在L2空间 + float *output = (float *)0x10820000; + float *sum_data = (float *)0x10830000; + int axis = 1; + int n_dim = 3; + int inner_size = 4; + int outter_size = 2; + int axis_size = 3; + + fp_softmax_p(input, output, sum_data, axis, n_dim, inner_size, outter_size, axis_size); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/softmax_cross_entropy_with_logits.rst.txt b/master/html/_sources/functionlib/dsplib/softmax_cross_entropy_with_logits.rst.txt new file mode 100644 index 0000000..eb2cd4c --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/softmax_cross_entropy_with_logits.rst.txt @@ -0,0 +1,125 @@ +SoftmaxCrossEntropyWithLogits +================================= + + 计算 Softmax 交叉熵损失及梯度。 + + 该算子首先对输入 ``logits`` 进行 Softmax 归一化得到概率,然后计算其与 ``labels`` 的交叉熵损失。如果启用了 ``need_grads``,则会计算损失相对于 ``logits`` 的梯度。 + + 算法逻辑如下: + + 1. **Softmax**: + + .. math:: + + p_{i,j} = \frac{e^{x_{i,j}}}{\sum_{k} e^{x_{i,k}}} + + 2. **Cross Entropy Loss**: + + .. math:: + + loss_i = - \sum_{j} y_{i,j} \log(p_{i,j}) + + 3. **Gradients** (当 need_grads=1 时): + + .. math:: + + \frac{\partial loss}{\partial x_{i,j}} = p_{i,j} - y_{i,j} + + 输入: + - **logits** - 输入数据地址(未归一化的对数概率)。形状为 :math:`[batch\_size, num\_of\_classes]`。 + - **labels** - 标签数据地址。形状为 :math:`[batch\_size, num\_of\_classes]`。 + - **probs** - 输出概率地址(Softmax 结果)。 + - **grads** - 输出梯度地址。如果 ``need_grads`` 为 0,可忽略。 + - **output** - 输出损失值地址(通常为标量或每个样本的损失)。 + - **sum_data** - 中间计算缓冲区(Workspace),用于存储行和等临时数据。 + - **batch_size** - 批大小。 + - **num_of_classes** - 类别数量。 + - **need_grads** - 是否需要计算梯度 (0: 不计算, 1: 计算)。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + + 输出: + - **probs** - 更新后的概率分布。 + - **grads** - 计算得到的梯度(如启用)。 + - **output** - 计算得到的交叉熵损失。 + + 支持平台: + ``FT78NE`` + ``MT7004`` + + .. note:: + - **FT78NE** 支持 Fp32 和 Int8 数据类型。 + - **MT7004** 支持 Fp32 和 FP16 数据类型。 + - 输入数据必须是二维矩阵,行优先存储。 + - Int8 版本通常采用混合精度计算:输入/标签为 ``int8_t``,但输出(概率、梯度、损失)为 ``float`` 以保证精度。 + +**共享存储版本:** + +.. c:function:: void fp_softmax_cross_entropy_with_logits_s(float* logits, float* labels, float* probs, float* grads, float* output, float* sum_data, int batch_size, int num_of_classes, int need_grads, int core_mask) +.. c:function:: void hp_softmax_cross_entropy_with_logits_s(float16* logits, float16* labels, float16* probs, float16* grads, float16* output, float16* sum_data, int batch_size, int num_of_classes, int need_grads, int core_mask) +.. c:function:: void i8_softmax_cross_entropy_with_logits_s(int8_t* logits, int8_t* labels, float* probs, float* grads, float* output, float* sum_data, int batch_size, int num_of_classes, int need_grads, int core_mask) + + **C调用示例(FT78NE - Int8):** + + .. code-block:: c + :linenos: + :emphasize-lines: 19-21 + + #include + #include + + int main(int argc, char* argv[]) { + // 假设所有数据均位于DDR空间 + int8_t* logits = (int8_t*)0xC0000000; + int8_t* labels = (int8_t*)0xC1000000; + float* probs = (float*)0xC2000000; + float* grads = (float*)0xC3000000; + float* output = (float*)0xC4000000; + float* sum_data= (float*)0xC5000000; // Workspace + + int batch_size = 128; + int num_of_classes = 1000; + int need_grads = 1; + int core_mask = 0xff; // 使用所有核心 + + // i8版本:输入为int8,输出及中间计算为float + i8_softmax_cross_entropy_with_logits_s(logits, labels, probs, grads, output, + sum_data, batch_size, num_of_classes, + need_grads, core_mask); + + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_softmax_cross_entropy_with_logits_p(float* logits, float* labels, float* probs, float* grads, float* output, float* sum_data, int batch_size, int num_of_classes, int need_grads) +.. c:function:: void hp_softmax_cross_entropy_with_logits_p(float16* logits, float16* labels, float16* probs, float16* grads, float16* output, float16* sum_data, int batch_size, int num_of_classes, int need_grads) +.. c:function:: void i8_softmax_cross_entropy_with_logits_p(int8_t* logits, int8_t* labels, float* probs, float* grads, float* output, float* sum_data, int batch_size, int num_of_classes, int need_grads) + + **C调用示例(MT7004 - FP16):** + + .. code-block:: c + :linenos: + :emphasize-lines: 16-18 + + #include + + int main(int argc, char* argv[]) { + // 假设所有数据均位于AM空间 + float16* logits = (float16*)0x10010000; + float16* labels = (float16*)0x10020000; + float16* probs = (float16*)0x10030000; + float16* grads = (float16*)0x10040000; + float16* output = (float16*)0x10050000; + float16* sum_data=(float16*)0x10060000; + + int batch_size = 32; + int num_of_classes = 512; + int need_grads = 1; + + hp_softmax_cross_entropy_with_logits_p(logits, labels, probs, grads, output, + sum_data, batch_size, num_of_classes, + need_grads); + + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/sparse_softmax_cross_entropy_with_logits.rst.txt b/master/html/_sources/functionlib/dsplib/sparse_softmax_cross_entropy_with_logits.rst.txt new file mode 100644 index 0000000..54a7644 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/sparse_softmax_cross_entropy_with_logits.rst.txt @@ -0,0 +1,140 @@ +SparseSoftmaxCrossEntropyWithLogits +======================================= + + 计算稀疏标签下的 Softmax 交叉熵损失及梯度。 + + 与 SoftmaxCrossEntropyWithLogits 不同,该算子的标签(Labels)是类别的索引(整数),而不是 One-hot 向量。这通常能节省内存并加速计算。 + + 算法逻辑如下: + + 1. **Softmax**: + + .. math:: + + p_{i,j} = \frac{e^{x_{i,j}}}{\sum_{k} e^{x_{i,k}}} + + 2. **Cross Entropy Loss**: + 假设 :math:`y_i` 为第 :math:`i` 个样本的标签索引: + + .. math:: + + loss_i = - \log(p_{i, y_i}) + + 3. **Gradients** (当 is_grad=1 时): + + .. math:: + + \frac{\partial loss}{\partial x_{i,j}} = p_{i,j} - \mathbb{1}(j == y_i) + + 输入: + - **input** - 输入 Logits 地址。形状为 :math:`[N, C]`。 + - **losses** - 输出损失地址。 + - **sum_data** - 中间计算缓冲区(Workspace)。 + - **inner_size** - 内部维度大小。对于二维输入 :math:`[N, C]`,通常为 1。 + - **outter_size** - 外部维度大小。对于二维输入 :math:`[N, C]`,通常为 :math:`N` (Batch Size)。 + - **axis_size** - 轴维度大小。对于二维输入 :math:`[N, C]`,通常为 :math:`C` (Num Classes)。 + - **labels** - 标签索引地址。类型为 int,形状为 :math:`[N]`。 + - **is_grad** - 是否计算梯度 (0: 否, 1: 是)。 + - **output** - 输出梯度地址。如果 ``is_grad`` 为 1,则存储计算出的梯度,形状同输入。 + - **batch_size** - 批大小 (N)。 + - **number_of_classes** - 类别数量 (C)。 + - **partial_losses** - 中间计算缓冲区(Workspace),用于归约计算。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + + 输出: + - **losses** - 计算得到的交叉熵损失。 + - **output** - 计算得到的梯度(若启用)。 + + 支持平台: + ``FT78NE`` + ``MT7004`` + + .. note:: + - **FT78NE** 仅支持 Fp32 数据类型。 + - **MT7004** 支持 Fp32 和 FP16 数据类型。 + - 输入数据必须是二维矩阵。 + - FP16 模式下,labels 依然保持为 int 类型,其余浮点指针变为 float16*。 + +**共享存储版本:** + +.. c:function:: void fp_sparse_softmax_cross_entropy_with_logits_s(float* input, float* losses, float* sum_data, uint64_t inner_size, uint64_t outter_size, uint64_t axis_size, int* labels, uint64_t is_grad, float* output, uint64_t batch_size, uint64_t number_of_classes, float* partial_losses, int core_mask) +.. c:function:: void hp_sparse_softmax_cross_entropy_with_logits_s(float16* input, float16* losses, float16* sum_data, uint64_t inner_size, uint64_t outter_size, uint64_t axis_size, int* labels, uint64_t is_grad, float16* output, uint64_t batch_size, uint64_t number_of_classes, float16* partial_losses, int core_mask) + + **C调用示例(FT78NE - Fp32):** + + .. code-block:: c + :linenos: + :emphasize-lines: 24-29 + + #include + #include + + int main(int argc, char* argv[]) { + // 假设所有数据位于 DDR 空间 + float* input = (float*)0xC0000000; + float* losses = (float*)0xC1000000; + float* sum_data = (float*)0xC2000000; + int* labels = (int*)0xC3000000; + float* output = (float*)0xC4000000; + float* partial_losses = (float*)0xC5000000; + + uint64_t batch_size = 64; + uint64_t number_of_classes = 1000; + + // 针对二维输入 [N, C] 的常用配置 + uint64_t outter_size = batch_size; + uint64_t axis_size = number_of_classes; + uint64_t inner_size = 1; + + uint64_t is_grad = 1; // 计算梯度 + int core_mask = 0xff; + + fp_sparse_softmax_cross_entropy_with_logits_s(input, losses, sum_data, + inner_size, outter_size, axis_size, + labels, is_grad, output, + batch_size, number_of_classes, + partial_losses, core_mask); + + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_sparse_softmax_cross_entropy_with_logits_p(float* input, float* losses, float* sum_data, uint64_t inner_size, uint64_t outter_size, uint64_t axis_size, int* labels, uint64_t is_grad, float* output, uint64_t batch_size, uint64_t number_of_classes, float* partial_losses) +.. c:function:: void hp_sparse_softmax_cross_entropy_with_logits_p(float16* input, float16* losses, float16* sum_data, uint64_t inner_size, uint64_t outter_size, uint64_t axis_size, int* labels, uint64_t is_grad, float16* output, uint64_t batch_size, uint64_t number_of_classes, float16* partial_losses) + + **C调用示例(MT7004 - FP16):** + + .. code-block:: c + :linenos: + :emphasize-lines: 22-26 + + #include + #include + + int main(int argc, char* argv[]) { + // 假设数据位于 AM 空间 + float16* input = (float16*)0x10010000; + float16* losses = (float16*)0x10020000; + float16* sum_data = (float16*)0x10030000; + int* labels = (int*)0x10040000; // 标签仍为 int + float16* output = (float16*)0x10050000; + float16* partial_losses = (float16*)0x10060000; + + uint64_t batch_size = 32; + uint64_t number_of_classes = 100; + + uint64_t outter_size = batch_size; + uint64_t axis_size = number_of_classes; + uint64_t inner_size = 1; + + uint64_t is_grad = 0; // 仅计算 Loss,不计算梯度 + + hp_sparse_softmax_cross_entropy_with_logits_p(input, losses, sum_data, + inner_size, outter_size, axis_size, + labels, is_grad, output, + batch_size, number_of_classes, + partial_losses); + + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/sparsefillemptyrows.rst.txt b/master/html/_sources/functionlib/dsplib/sparsefillemptyrows.rst.txt new file mode 100644 index 0000000..028f4df --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/sparsefillemptyrows.rst.txt @@ -0,0 +1,122 @@ +SparseFillEmptyRows +==================== + + + +对稀疏张量按行进行补全操作。当某一行在输入稀疏表示中不存在非零元素时, +使用给定的 **default_value** 为该行补充一个元素,并生成新的稀疏表示结果。 +同时可选地输出反向索引映射关系。 + +该算子常用于保证稀疏张量在行维度上的完备性。 + +.. math:: + + \text{if row } r \text{ is empty:} \quad + (r, 0, \dots) \rightarrow default\_value + +输入: + - **N** - 输入稀疏元素个数。 + - **rank** - 稀疏张量的秩(索引维度)。 + - **dense_rows** - 稠密行数。 + - **indices_ptr** - 输入稀疏索引数组地址,大小为 ``N × rank``。 + - **values_ptr** - 输入稀疏值数组地址。 + - **default_value** - 用于填充空行的默认值。 + - **scratch_ptr** - 中间缓冲区,用于存放前缀和信息。 + - **output_reverse_index_map_ptr** - 反向索引映射输出地址(可为 NULL)。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **output_y_indices_ptr** - 输出稀疏索引数组地址。 + - **output_y_values_ptr** - 输出稀疏值数组地址。 + - **filled_count** - 每一行填充计数结果。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp, dp, int8, int16, int32, cplx64, cplx128 + - MT7004 支持hp, fp, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_sparsefillemptyrows_s(int N, int rank, int dense_rows, int *indices_ptr, int8_t *values_ptr, int8_t default_value, int *scratch_ptr, int *output_y_indices_ptr, int8_t *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count, int core_mask) +.. c:function:: void i16_sparsefillemptyrows_s(int N, int rank, int dense_rows, int *indices_ptr, int16_t *values_ptr, int16_t default_value, int *scratch_ptr, int *output_y_indices_ptr, int16_t *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count, int core_mask) +.. c:function:: void i32_sparsefillemptyrows_s(int N, int rank, int dense_rows, int *indices_ptr, int32_t *values_ptr, int32_t default_value, int *scratch_ptr, int *output_y_indices_ptr, int32_t *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count, int core_mask) +.. c:function:: void hp_sparsefillemptyrows_s(int N, int rank, int dense_rows, int *indices_ptr, half *values_ptr, half default_value, int *scratch_ptr, int *output_y_indices_ptr, half *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count, int core_mask) +.. c:function:: void fp_sparsefillemptyrows_s(int N, int rank, int dense_rows, int *indices_ptr, float *values_ptr, float default_value, int *scratch_ptr, int *output_y_indices_ptr, float *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count, int core_mask) +.. c:function:: void dp_sparsefillemptyrows_s(int N, int rank, int dense_rows, int *indices_ptr, double *values_ptr, double default_value, int *scratch_ptr, int *output_y_indices_ptr, double *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count, int core_mask) +.. c:function:: void c64_sparsefillemptyrows_s(int N, int rank, int dense_rows, int *indices_ptr, float *values_ptr, float default_value, int *scratch_ptr, int *output_y_indices_ptr, float *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count, int core_mask) +.. c:function:: void c128_sparsefillemptyrows_s(int N, int rank, int dense_rows, int *indices_ptr, double *values_ptr, double default_value, int *scratch_ptr, int *output_y_indices_ptr, double *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17-21 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + int N = 4, rank = 2, dense_rows = 6; + int *indices = (int *)0xA0000000; + float *values = (float *)0xA0010000; + float default_value = 0.0f; + int *scratch = (int *)0xA0020000; + int *out_indices = (int *)0xC0000000; + float *out_values = (float *)0xC0010000; + int *reverse_map = (int *)0xC0020000; + int *filled_count = (int *)0xC0030000; + int core_mask = 0xff; + + fp_sparsefillemptyrows_s( + N, rank, dense_rows, + indices, values, default_value, + scratch, out_indices, out_values, + reverse_map, filled_count, core_mask); + + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_sparsefillemptyrows_p(int N, int rank, int dense_rows, int *indices_ptr, int8_t *values_ptr, int8_t default_value, int *scratch_ptr, int *output_y_indices_ptr, int8_t *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count) +.. c:function:: void i16_sparsefillemptyrows_p(int N, int rank, int dense_rows, int *indices_ptr, int16_t *values_ptr, int16_t default_value, int *scratch_ptr, int *output_y_indices_ptr, int16_t *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count) +.. c:function:: void i32_sparsefillemptyrows_p(int N, int rank, int dense_rows, int *indices_ptr, int32_t *values_ptr, int32_t default_value, int *scratch_ptr, int *output_y_indices_ptr, int32_t *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count) +.. c:function:: void hp_sparsefillemptyrows_p(int N, int rank, int dense_rows, int *indices_ptr, half *values_ptr, half default_value, int *scratch_ptr, int *output_y_indices_ptr, half *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count) +.. c:function:: void fp_sparsefillemptyrows_p(int N, int rank, int dense_rows, int *indices_ptr, float *values_ptr, float default_value, int *scratch_ptr, int *output_y_indices_ptr, float *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count) +.. c:function:: void dp_sparsefillemptyrows_p(int N, int rank, int dense_rows, int *indices_ptr, double *values_ptr, double default_value, int *scratch_ptr, int *output_y_indices_ptr, double *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count) +.. c:function:: void c64_sparsefillemptyrows_p(int N, int rank, int dense_rows, int *indices_ptr, float *values_ptr, float default_value, int *scratch_ptr, int *output_y_indices_ptr, float *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count) +.. c:function:: void c128_sparsefillemptyrows_p(int N, int rank, int dense_rows, int *indices_ptr, double *values_ptr, double default_value, int *scratch_ptr, int *output_y_indices_ptr, double *output_y_values_ptr, int *output_reverse_index_map_ptr, int *filled_count) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15-19 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + int N = 4, rank = 2, dense_rows = 6; + int *indices = (int *)0x10810000; + float *values = (float *)0x10820000; + float default_value = 0.0f; + int *scratch = (int *)0x10830000; + int *out_indices = (int *)0x10840000; + float *out_values = (float *)0x10850000; + int *filled_count = (int *)0x10860000; + + fp_sparsefillemptyrows_p( + N, rank, dense_rows, + indices, values, default_value, + scratch, out_indices, out_values, + NULL, filled_count); + + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/sparsereshape.rst.txt b/master/html/_sources/functionlib/dsplib/sparsereshape.rst.txt new file mode 100644 index 0000000..d685e56 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/sparsereshape.rst.txt @@ -0,0 +1,124 @@ +Sparsereshape +================= + +对稀疏张量进行形状重塑(Reshape)。该算子将稀疏张量的索引从输入形状转换到输出形状,不改变稀疏值本身,只更新索引。该算子不区分数据类型,只处理索引信息。 + + +对于每个稀疏元素: +- 计算其在输入形状中的线性索引: + + :math:`\text{ori\_index} = \sum_{j=0}^{\text{input\_rank}-1} \text{in\_indices}[j] \times \text{in\_stride}[j]` + +- 将线性索引转换为输出形状的多维索引: + + :math:`\text{out\_indices}[j] = \text{ori\_index} / \text{out\_stride}[j]`,然后 :math:`\text{ori\_index} = \text{ori\_index} \% \text{out\_stride}[j]` + +输入: + - **in_indices_ptr** - 输入稀疏张量的索引数组,大小为 `N * input\_rank`,每 `input\_rank` 个元素表示一个非零元素的索引。 + - **in_inshape_ptr** - 输入稀疏张量的形状数组,大小为 `input\_rank`,例如 `[2, 3]` 表示 2×3 的矩阵。 + - **in_outshape_ptr** - 目标输出形状数组,大小为 `output_rank`,例如 `[3, 2]` 表示要将形状转换为 3×2。 + - **out_outshape_ptr** - 输出形状数组,应该与 `in_outshape_ptr` 一致,大小为 `output_rank`。 + - **input_rank** - 输入稀疏张量的维度数。 + - **output_rank** - 输出稀疏张量的维度数。 + - **N** - 稀疏张量中非零元素的数量。 + - **in_stride** - 输入形状的步长数组(临时空间),大小为 `input_rank`,用于中间计算。 + - **out_stride** - 输出形状的步长数组(临时空间),大小为 `output_rank`,用于中间计算。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **out_indices_ptr** - 转换后的索引数组,大小为 `N * output_rank`,每 `output_rank` 个元素表示一个非零元素在输出形状中的索引。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32 + - MT7004 支持fp32 + +**共享存储版本:** + +.. c:function:: void sparsereshape_s(int* in_indices_ptr, int* in_inshape_ptr, int* in_outshape_ptr, int* out_indices_ptr, int* out_outshape_ptr, int input_rank, int output_rank, int N, int* in_stride, int* out_stride, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 31-33 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + int N = 3; // 有3个非零元素 + int input_rank = 2; // 输入是2维 + int output_rank = 2; // 输出也是2维 + + // 输入形状 [2, 3],输出形状 [3, 2] + int in_inshape[] = {2, 3}; + int in_outshape[] = {3, 2}; + int out_outshape[] = {3, 2}; // 应该和 in_outshape 一致 + + // 输入索引:[[0,0], [0,1], [1,2]] + int *in_indices_ptr = (int *)0xA0000000; + in_indices_ptr[0] = 0; in_indices_ptr[1] = 0; // 第一个元素在位置(0,0) + in_indices_ptr[2] = 0; in_indices_ptr[3] = 1; // 第二个元素在位置(0,1) + in_indices_ptr[4] = 1; in_indices_ptr[5] = 2; // 第三个元素在位置(1,2) + + // 输出索引(待填充) + int *out_indices_ptr = (int *)0xB0000000; + + // 临时空间:步长数组 + int *in_stride = (int *)0xC0000000; // 大小为 input_rank + int *out_stride = (int *)0xC0100000; // 大小为 output_rank + + int core_mask = 0xff; + + sparsereshape_s(in_indices_ptr, in_inshape, in_outshape, out_indices_ptr, + out_outshape, input_rank, output_rank, N, in_stride, + out_stride, core_mask); + + return 0; + } + +**私有存储版本:** + +.. c:function:: void sparsereshape_p(int* in_indices_ptr, int* in_inshape_ptr, int* in_outshape_ptr, int* out_indices_ptr, int* out_outshape_ptr, int input_rank, int output_rank, int N, int* in_stride, int* out_stride) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 24-26 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + int N = 3; + int input_rank = 2; + int output_rank = 2; + + int in_inshape[] = {2, 3}; + int in_outshape[] = {3, 2}; + int out_outshape[] = {3, 2}; + + int *in_indices_ptr = (int *)0x10000000; + in_indices_ptr[0] = 0; in_indices_ptr[1] = 0; + in_indices_ptr[2] = 0; in_indices_ptr[3] = 1; + in_indices_ptr[4] = 1; in_indices_ptr[5] = 2; + + int *out_indices_ptr = (int *)0x10001000; + int *in_stride = (int *)0x10002000; + int *out_stride = (int *)0x10003000; + + sparsereshape_p(in_indices_ptr, in_inshape, in_outshape, out_indices_ptr, + out_outshape, input_rank, output_rank, N, in_stride, + out_stride); + + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/sparsesegmentsum.rst.txt b/master/html/_sources/functionlib/dsplib/sparsesegmentsum.rst.txt new file mode 100644 index 0000000..e9f4d37 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/sparsesegmentsum.rst.txt @@ -0,0 +1,157 @@ +Sparsesegmentsum +================= + +对稀疏分段数据进行求和。该算子根据分段ID(segment_ids)将输入数据的分段进行求和,输出除第0维外其他维度与输入相同的张量。 + +算法流程: +1. 计算输入数据的总元素数和每个切片的大小(按第0维切分) +2. 计算输出数据的形状:第0维为 `max(segment_ids) + 1`,其他维度与输入相同 +3. 初始化输出数据为0 +4. 对每个索引,将其对应的数据切片累加到对应的分段中 + +对于每个索引 `i`: +- 获取对应的分段ID:`segment_id = in_segment_ids[i]` +- 获取对应的输入索引:`input_index = in_indices[i]` +- 将输入数据的切片 `in_data[input_index * n : (input_index + 1) * n]` 累加到输出数据的切片 `out_data[segment_id * n : (segment_id + 1) * n]` + +.. math:: + + \text{out\_data\_shape}[0] = \max(\text{in\_segment\_ids}) + 1 + +.. math:: + + \text{out\_data\_shape}[i] = \text{in\_data\_shape}[i], \quad \text{for } i = 1, 2, \ldots, \text{in\_data\_shape\_size} - 1 + +.. math:: + + n = \frac{\prod_{i=0}^{\text{in\_data\_shape\_size}-1} \text{in\_data\_shape}[i]}{\text{in\_data\_shape}[0]} + +.. math:: + + \text{out\_data}[j + \text{segment\_id} \times n] \mathrel{+}= \text{in\_data}[j + \text{input\_index} \times n], \quad \text{for } j = 0, 1, \ldots, n-1 + +其中 `n` 是每个切片的大小(按第0维切分后的元素数)。 + +输入: + - **in_data** - 输入数据数组,形状由 `in_data_shape` 和 `in_data_shape_size` 确定。 + - **in_indices** - 输入索引数组,大小为 `in_indices_size`,每个元素表示输入数据第0维的索引。 + - **in_segment_ids** - 分段ID数组,大小为 `in_indices_size`,与 `in_indices` 一一对应,表示每个索引所属的分段。 + - **in_data_shape** - 输入数据的形状数组,大小为 `in_data_shape_size`。 + - **in_data_shape_size** - 输入数据的维度数。 + - **in_indices_size** - `in_indices` 和 `in_segment_ids` 数组的大小。 + +输出: + - **out_data** - 输出数据数组,第0维大小为 `max(in_segment_ids) + 1`,其他维度与输入相同。 + - **out_data_shape** - 输出数据的形状数组,大小为 `in_data_shape_size`,由算子内部计算。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int16, int32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void fp_sparsesegmentsum_s(float* in_data, float* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape, int core_mask) +.. c:function:: void hp_sparsesegmentsum_s(half* in_data, half* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape, int core_mask) +.. c:function:: void i16_sparsesegmentsum_s(int16_t* in_data, int16_t* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape, int core_mask) +.. c:function:: void i32_sparsesegmentsum_s(int32_t* in_data, int32_t* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape, int core_mask) +.. c:function:: void dp_sparsesegmentsum_s(double* in_data, double* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape, int core_mask) +.. c:function:: void c64_sparsesegmentsum_s(float* in_data, float* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape, int core_mask) +.. c:function:: void c128_sparsesegmentsum_s(double* in_data, double* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 31-33 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + // 输入数据形状 [4, 3, 2],表示4个样本,每个样本3×2的矩阵 + int in_data_shape[] = {4, 3, 2}; + int in_data_shape_size = 3; + + // 输入数据:4个样本的数据 + float *in_data = (float *)0xA0000000; + // in_data包含 4 * 3 * 2 = 24 个元素 + + // 索引数组:选择第0、2、3个样本 + int in_indices[] = {0, 2, 3}; + int in_indices_size = 3; + + // 分段ID:第0个样本属于分段0,第2个样本属于分段1,第3个样本属于分段1 + int in_segment_ids[] = {0, 1, 1}; + + // 输出数据形状(待计算) + int out_data_shape[3]; + + // 输出数据:分段0有1个样本,分段1有2个样本 + // 输出形状应该是 [2, 3, 2](max(segment_ids)+1=2) + float *out_data = (float *)0xB0000000; + + int core_mask = 0xff; + + fp_sparsesegmentsum_s(in_data, out_data, in_indices, in_segment_ids, + in_data_shape, in_data_shape_size, in_indices_size, + out_data_shape, core_mask); + + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_sparsesegmentsum_p(float* in_data, float* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape) +.. c:function:: void hp_sparsesegmentsum_p(half* in_data, half* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape) +.. c:function:: void i16_sparsesegmentsum_p(int16_t* in_data, int16_t* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape) +.. c:function:: void i32_sparsesegmentsum_p(int32_t* in_data, int32_t* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape) +.. c:function:: void dp_sparsesegmentsum_p(double* in_data, double* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape) +.. c:function:: void c64_sparsesegmentsum_p(float* in_data, float* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape) +.. c:function:: void c128_sparsesegmentsum_p(double* in_data, double* out_data, int* in_indices, int* in_segment_ids, int* in_data_shape, int in_data_shape_size, int in_indices_size, int* out_data_shape) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 29-31 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + // 输入数据形状 [4, 3, 2],表示4个样本,每个样本3×2的矩阵 + int in_data_shape[] = {4, 3, 2}; + int in_data_shape_size = 3; + + // 输入数据:4个样本的数据 + float *in_data = (float *)0x10000000; + // in_data包含 4 * 3 * 2 = 24 个元素 + + // 索引数组:选择第0、2、3个样本 + int in_indices[] = {0, 2, 3}; + int in_indices_size = 3; + + // 分段ID:第0个样本属于分段0,第2个样本属于分段1,第3个样本属于分段1 + int in_segment_ids[] = {0, 1, 1}; + + // 输出数据形状(待计算) + int out_data_shape[3]; + + // 输出数据:分段0有1个样本,分段1有2个样本 + // 输出形状应该是 [2, 3, 2](max(segment_ids)+1=2) + float *out_data = (float *)0x10010000; + + fp_sparsesegmentsum_p(in_data, out_data, in_indices, in_segment_ids, + in_data_shape, in_data_shape_size, in_indices_size, + out_data_shape); + + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/sparsetodense.rst.txt b/master/html/_sources/functionlib/dsplib/sparsetodense.rst.txt new file mode 100644 index 0000000..99b5da8 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/sparsetodense.rst.txt @@ -0,0 +1,191 @@ +Sparsetodense +================= + +将稀疏张量转换为密集张量。该算子根据稀疏索引和值,将稀疏元素填充到密集张量的对应位置。支持标量值模式(所有位置使用相同的值)和向量值模式(每个索引对应不同的值)。 + +对于每个稀疏元素,根据其索引计算在密集张量中的线性位置,根据 `is_scalar` 标志,将对应的稀疏值写入密集张量的对应位置 + +.. math:: + + \text{output}[\text{index}] = \begin{cases} + \text{sparse\_values}[0], & \text{if } \text{is\_scalar} = 1 \\ + \text{sparse\_values}[i], & \text{if } \text{is\_scalar} = 0 + \end{cases} + +输入: + - **indices_vec** - 稀疏张量的索引数组,大小为 `sparse_length * 4`,每4个连续的int值表示一个稀疏元素在4维密集张量中的位置坐标 `[dim0, dim1, dim2, dim3]`。 + - **sparse_values** - 稀疏张量的值数组。如果 `is_scalar = 1`,只需要 `sparse_values[0]` 有效;如果 `is_scalar = 0`,需要 `sparse_length` 个值。 + - **output_strides** - 输出密集张量的步长数组,大小为4,用于将多维索引转换为线性索引。`output_strides[0]`, `output_strides[1]`, `output_strides[2]` 对应前3维的步长,第4维的步长为1。 + - **sparse_length** - 稀疏张量中非零元素的数量。 + - **is_scalar** - 是否为标量值标志。1 表示所有稀疏元素使用相同的值(`sparse_values[0]`),0 表示每个索引对应不同的值。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **output** - 输出密集张量的数据数组。输出数组的大小由 `output_strides` 和最大索引值确定。未在 `indices_vec` 中指定的位置保持原值(调用前需要初始化)。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int8, int16, int32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_sparsetodense_s(int* indices_vec, int8_t* sparse_values, int8_t* output, int* output_strides, int sparse_length, int is_scalar, int core_mask) +.. c:function:: void i16_sparsetodense_s(int* indices_vec, int16_t* sparse_values, int16_t* output, int* output_strides, int sparse_length, int is_scalar, int core_mask) +.. c:function:: void i32_sparsetodense_s(int* indices_vec, int32_t* sparse_values, int32_t* output, int* output_strides, int sparse_length, int is_scalar, int core_mask) +.. c:function:: void hp_sparsetodense_s(int* indices_vec, half* sparse_values, half* output, int* output_strides, int sparse_length, int is_scalar, int core_mask) +.. c:function:: void fp_sparsetodense_s(int* indices_vec, float* sparse_values, float* output, int* output_strides, int sparse_length, int is_scalar, int core_mask) +.. c:function:: void dp_sparsetodense_s(int* indices_vec, double* sparse_values, double* output, int* output_strides, int sparse_length, int is_scalar, int core_mask) +.. c:function:: void c64_sparsetodense_s(int* indices_vec, float* sparse_values, float* output, int* output_strides, int sparse_length, int is_scalar, int core_mask) +.. c:function:: void c128_sparsetodense_s(int* indices_vec, double* sparse_values, double* output, int* output_strides, int sparse_length, int is_scalar, int core_mask) + +**C调用示例(向量值模式):** + +.. code-block:: c + :linenos: + :emphasize-lines: 40-41 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + // 输出密集张量形状 [2, 3, 4, 5] + int output_shape[] = {2, 3, 4, 5}; + + // 计算步长:stride0 = 3*4*5 = 60, stride1 = 4*5 = 20, stride2 = 5, stride3 = 1 + int output_strides[4]; + output_strides[0] = 3 * 4 * 5; // 60 + output_strides[1] = 4 * 5; // 20 + output_strides[2] = 5; // 5 + output_strides[3] = 1; // 第4维步长为1(未使用) + + // 稀疏元素:3个非零元素 + int sparse_length = 3; + + // 索引:[[0,0,0,0], [0,1,2,3], [1,2,3,4]] + int *indices_vec = (int *)0xA0000000; + indices_vec[0] = 0; indices_vec[1] = 0; indices_vec[2] = 0; indices_vec[3] = 0; // 位置(0,0,0,0) + indices_vec[4] = 0; indices_vec[5] = 1; indices_vec[6] = 2; indices_vec[7] = 3; // 位置(0,1,2,3) + indices_vec[8] = 1; indices_vec[9] = 2; indices_vec[10] = 3; indices_vec[11] = 4; // 位置(1,2,3,4) + + // 稀疏值:每个索引对应不同的值 + float *sparse_values = (float *)0xA1000000; + sparse_values[0] = 1.0f; + sparse_values[1] = 2.0f; + sparse_values[2] = 3.0f; + + // 输出密集张量(需要预先初始化为0或默认值) + float *output = (float *)0xB0000000; + int output_size = 2 * 3 * 4 * 5; // 120 + memset(output, 0, output_size * sizeof(float)); + + int is_scalar = 0; // 向量值模式 + int core_mask = 0xff; + + fp_sparsetodense_s(indices_vec, sparse_values, output, output_strides, + sparse_length, is_scalar, core_mask); + + return 0; + } + +**C调用示例(标量值模式):** + +.. code-block:: c + :linenos: + :emphasize-lines: 32-33 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + int output_strides[4]; + output_strides[0] = 3 * 4 * 5; // 60 + output_strides[1] = 4 * 5; // 20 + output_strides[2] = 5; // 5 + output_strides[3] = 1; + + int sparse_length = 3; + + // 索引:[[0,0,0,0], [0,1,2,3], [1,2,3,4]] + int *indices_vec = (int *)0xA0000000; + indices_vec[0] = 0; indices_vec[1] = 0; indices_vec[2] = 0; indices_vec[3] = 0; + indices_vec[4] = 0; indices_vec[5] = 1; indices_vec[6] = 2; indices_vec[7] = 3; + indices_vec[8] = 1; indices_vec[9] = 2; indices_vec[10] = 3; indices_vec[11] = 4; + + // 所有位置使用相同的值 + float *sparse_values = (float *)0xA1000000; + sparse_values[0] = 5.0f; // 只有这个值会被使用 + + float *output = (float *)0xB0000000; + int output_size = 2 * 3 * 4 * 5; + memset(output, 0, output_size * sizeof(float)); + + int is_scalar = 1; // 标量值模式 + int core_mask = 0xff; + + fp_sparsetodense_s(indices_vec, sparse_values, output, output_strides, + sparse_length, is_scalar, core_mask); + + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_sparsetodense_p(int* indices_vec, int8_t* sparse_values, int8_t* output, int* output_strides, int sparse_length, int is_scalar) +.. c:function:: void i16_sparsetodense_p(int* indices_vec, int16_t* sparse_values, int16_t* output, int* output_strides, int sparse_length, int is_scalar) +.. c:function:: void i32_sparsetodense_p(int* indices_vec, int32_t* sparse_values, int32_t* output, int* output_strides, int sparse_length, int is_scalar) +.. c:function:: void hp_sparsetodense_p(int* indices_vec, half* sparse_values, half* output, int* output_strides, int sparse_length, int is_scalar) +.. c:function:: void fp_sparsetodense_p(int* indices_vec, float* sparse_values, float* output, int* output_strides, int sparse_length, int is_scalar) +.. c:function:: void dp_sparsetodense_p(int* indices_vec, double* sparse_values, double* output, int* output_strides, int sparse_length, int is_scalar) +.. c:function:: void c64_sparsetodense_p(int* indices_vec, float* sparse_values, float* output, int* output_strides, int sparse_length, int is_scalar) +.. c:function:: void c128_sparsetodense_p(int* indices_vec, double* sparse_values, double* output, int* output_strides, int sparse_length, int is_scalar) + +**C调用示例(私有存储版本):** + +.. code-block:: c + :linenos: + :emphasize-lines: 31-32 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + int output_strides[4]; + output_strides[0] = 3 * 4 * 5; // 60 + output_strides[1] = 4 * 5; // 20 + output_strides[2] = 5; // 5 + output_strides[3] = 1; + + int sparse_length = 3; + + int *indices_vec = (int *)0x10000000; + indices_vec[0] = 0; indices_vec[1] = 0; indices_vec[2] = 0; indices_vec[3] = 0; + indices_vec[4] = 0; indices_vec[5] = 1; indices_vec[6] = 2; indices_vec[7] = 3; + indices_vec[8] = 1; indices_vec[9] = 2; indices_vec[10] = 3; indices_vec[11] = 4; + + float *sparse_values = (float *)0x10001000; + sparse_values[0] = 1.0f; + sparse_values[1] = 2.0f; + sparse_values[2] = 3.0f; + + float *output = (float *)0x10002000; + int output_size = 2 * 3 * 4 * 5; + memset(output, 0, output_size * sizeof(float)); + + int is_scalar = 0; + + fp_sparsetodense_p(indices_vec, sparse_values, output, output_strides, + sparse_length, is_scalar); + + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/splice.rst.txt b/master/html/_sources/functionlib/dsplib/splice.rst.txt new file mode 100644 index 0000000..378ef42 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/splice.rst.txt @@ -0,0 +1,94 @@ +Splice +================= + +对输入数据按给定上下文索引进行拼接操作,将多行特征数据按指定索引映射拼接到输出中。通常用于声学模型或时间序列模型的上下文扩展。 + +输入: + - **src_data** - 输入数据地址。 + - **src_row** - 输入行数。 + - **src_col** - 输入列数。 + - **dst_row** - 输出行数。 + - **dst_col** - 输出列数。 + - **context_dim** - 上下文维度,即每行需要拼接的上下文数量。 + - **forward_indexes** - 上下文索引数组。 + - **forward_indexes_dims** - 上下文索引数组长度。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **dst_data** - 拼接后的输出数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp, dp, int8, int16, int32, clx64, cplx128 + - MT7004 支持hp, fp, i16, i32, cplx64 + +**共享存储版本:** + +.. c:function:: void fp_splice_s(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, float* src_data, float* dst_data, int core_mask) +.. c:function:: void hp_splice_s(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, half* src_data, half* dst_data, int core_mask) +.. c:function:: void dp_splice_s(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, double* src_data, double* dst_data, int core_mask) +.. c:function:: void i8_splice_s(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, int8_t* src_data, int8_t* dst_data, int core_mask) +.. c:function:: void i16_splice_s(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, int16_t* src_data, int16_t* dst_data, int core_mask) +.. c:function:: void i32_splice_s(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, int* src_data, int* dst_data, int core_mask) +.. c:function:: void c64_splice_s(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, float* src_data, float* dst_data, int core_mask) +.. c:function:: void c128_splice_s(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, double* src_data, double* dst_data, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + #include + #include + + int main() { + float *input = (float *)0xA0000000; // 输入在DDR空间 + float *output = (float *)0xC0000000; + int src_row = 100, src_col = 64; + int dst_row = 100, dst_col = 64*3; + int context_dim = 3; + int forward_indexes[300]; // 举例 + int forward_indexes_dims = 300; + int core_mask = 0xff; + + fp_splice_s(src_row, src_col, dst_row, dst_col, context_dim, forward_indexes_dims, forward_indexes, input, output, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_splice_p(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, float* src_data, float* dst_data) +.. c:function:: void hp_splice_p(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, half* src_data, half* dst_data) +.. c:function:: void dp_splice_p(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, double* src_data, double* dst_data) +.. c:function:: void i8_splice_p(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, int8_t* src_data, int8_t* dst_data) +.. c:function:: void i16_splice_p(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, int16_t* src_data, int16_t* dst_data) +.. c:function:: void i32_splice_p(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, int* src_data, int* dst_data) +.. c:function:: void c64_splice_p(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, float* src_data, float* dst_data) +.. c:function:: void c128_splice_p(int src_row, int src_col, int dst_row, int dst_col, int context_dim, int forward_indexes_dims, int* forward_indexes, double* src_data, double* dst_data) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + #include + #include + + int main() { + float *input = (float *)0x10810000; // 输入在L2空间 + float *output = (float *)0x10820000; + int src_row = 100, src_col = 64; + int dst_row = 100, dst_col = 64*3; + int context_dim = 3; + int forward_indexes[300]; // 举例 + int forward_indexes_dims = 300; + + fp_splice_p(src_row, src_col, dst_row, dst_col, context_dim, forward_indexes_dims, forward_indexes, input, output); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/split.rst.txt b/master/html/_sources/functionlib/dsplib/split.rst.txt new file mode 100644 index 0000000..d468f51 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/split.rst.txt @@ -0,0 +1,103 @@ +Split +================= + +将一个张量(Tensor)沿着指定的轴(axis)拆分为多个子张量。子张量在指定轴上的大小由 ``split_sizes`` 数组决定。 + +.. math:: + + \text{input.shape} = [d_0, d_1, \dots, d_{axis}, \dots, d_{n-1}] + +.. math:: + + \text{对于第 } j \text{ 个输出: } output_j\text{.shape} = [d_0, d_1, \dots, split\_sizes[j], \dots, d_{n-1}] + +输入: + - **input** - 输入数据起始地址。 + - **axis** - 指定拆分的维度轴。 + - **input_shape** - 输入张量的形状数组地址。 + - **input_ndim** - 输入张量的维度数。 + - **num_split** - 拆分出的子张量个数。 + - **split_sizes** - 一个数组,包含每个子张量在拆分轴上的长度。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **outputs** - 指针数组地址,其中每个元素指向一个子张量的存储地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - ``split_sizes`` 的元素之和必须等于输入张量在 ``axis`` 维度的长度。 + - 对于复数类型(cplx64 / cplx128),拆分逻辑与实数一致,但需注意地址偏移按复数对计算。 + +**共享存储版本:** + +.. c:function:: void i8_split_s(int8_t* input, int8_t* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes, int core_mask) +.. c:function:: void i16_split_s(int16_t* input, int16_t* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes, int core_mask) +.. c:function:: void i32_split_s(int32_t* input, int32_t* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes, int core_mask) +.. c:function:: void hp_split_s(half* input, half* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes, int core_mask) +.. c:function:: void fp_split_s(float* input, float* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes, int core_mask) +.. c:function:: void dp_split_s(double* input, double* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes, int core_mask) +.. c:function:: void c64_split_s(float* input, float* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes, int core_mask) +.. c:function:: void c128_split_s(double* input, double* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 17 + + //FT78NE示例(共享存储) + #include + #include "78NE/utils.h" + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; + float *out0 = (float *)0xB0000000; + float *out1 = (float *)0xB1000000; + float *outputs[] = { out0, out1 }; + int input_shape[] = { 2, 10, 4 }; + int split_sizes[] = { 6, 4 }; + int axis = 1; + int input_ndim = 3; + int num_split = 2; + int core_mask = 0b1011; + + fp_split_s(input, outputs, axis, input_shape, input_ndim, num_split, split_sizes, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_split_p(int8_t* input, int8_t* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes) +.. c:function:: void i16_split_p(int16_t* input, int16_t* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes) +.. c:function:: void i32_split_p(int32_t* input, int32_t* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes) +.. c:function:: void hp_split_p(half* input, half* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes) +.. c:function:: void fp_split_p(float* input, float* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes) +.. c:function:: void dp_split_p(double* input, double* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes) +.. c:function:: void c64_split_p(float* input, float* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes) +.. c:function:: void c128_split_p(double* input, double* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* split_sizes) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + //MT7004 示例 + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; // 私有存储地址 + float *out0 = (float *)0x10010000; + float *out1 = (float *)0x10020000; + float *outputs[] = { out0, out1 }; + int input_shape[] = { 20, 10 }; + int split_sizes[] = { 10, 10 }; + int axis = 0; + fp_split_p(input, outputs, axis, input_shape, 2, 2, split_sizes); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/split_with_overlap.rst.txt b/master/html/_sources/functionlib/dsplib/split_with_overlap.rst.txt new file mode 100644 index 0000000..8455328 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/split_with_overlap.rst.txt @@ -0,0 +1,103 @@ +SplitWithOverlap +================= + +沿指定轴(axis)将输入张量切分为多个输出张量。与标准 Split 不同,该算子允许通过 `start_indices` 和 `end_indices` 自定义每个输出块的起始和结束位置,从而支持输出块之间的重叠(Overlap)。 + +.. math:: + + \text{对于第 } j \text{ 个输出张量,其在 axis 轴上的第 } k \text{ 个元素对应:} + +.. math:: + + Output[j]_{(\dots, k, \dots)} = Input_{(\dots, start\_indices[j] + k, \dots)} \quad \text{其中 } 0 \le k < (end\_indices[j] - start\_indices[j]) + +输入: + - **input** - 输入张量数据地址。 + - **outputs** - 输出张量地址数组(指针数组)。 + - **axis** - 进行切分的轴索引。 + - **input_shape** - 输入张量的形状数组。 + - **input_ndim** - 输入张量的维度。 + - **num_split** - 输出张量的数量。 + - **start_indices** - 每个输出张量在切分轴上的起始索引数组。 + - **end_indices** - 每个输出张量在切分轴上的结束索引数组。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **outputs** - 各个输出张量中填充了切分后的数据。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - 算子支持不连续切分或有重叠的切分。 + - 每个输出张量在非切分轴上的维度与输入张量保持一致。 + +**共享存储版本:** + +.. c:function:: void i8_split_with_overlap_s(int8_t* input, int8_t* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices, int core_mask) +.. c:function:: void i16_split_with_overlap_s(int16_t* input, int16_t* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices, int core_mask) +.. c:function:: void i32_split_with_overlap_s(int32_t* input, int32_t* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices, int core_mask) +.. c:function:: void hp_split_with_overlap_s(half* input, half* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices, int core_mask) +.. c:function:: void fp_split_with_overlap_s(float* input, float* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices, int core_mask) +.. c:function:: void dp_split_with_overlap_s(double* input, double* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices, int core_mask) +.. c:function:: void c64_split_with_overlap_s(float* input, float* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices, int core_mask) +.. c:function:: void c128_split_with_overlap_s(double* input, double* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 14 + + //FT78NE示例(共享存储) + #include "78NE/utils.h" + + int main() { + float *input = (float *)0xA0000000; + float *out0 = (float *)0xB0000000; + float *out1 = (float *)0xB1000000; + float *outputs[] = {out0, out1}; + int input_shape[] = {8, 200, 10}; + int start_indices[] = {0, 150}; + int end_indices[] = {80, 200}; + int core_mask = 0xFF; + + fp_split_with_overlap_s(input, outputs, 1, input_shape, 3, 2, start_indices, end_indices, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_split_with_overlap_p(int8_t* input, int8_t* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices) +.. c:function:: void i16_split_with_overlap_p(int16_t* input, int16_t* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices) +.. c:function:: void i32_split_with_overlap_p(int32_t* input, int32_t* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices) +.. c:function:: void hp_split_with_overlap_p(half* input, half* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices) +.. c:function:: void fp_split_with_overlap_p(float* input, float* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices) +.. c:function:: void dp_split_with_overlap_p(double* input, double* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices) +.. c:function:: void c64_split_with_overlap_p(float* input, float* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices) +.. c:function:: void c128_split_with_overlap_p(double* input, double* outputs[], int axis, int* input_shape, int input_ndim, int num_split, int* start_indices, int* end_indices) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + //MT7004 示例(私有存储) + #include + + int main() { + float *input = (float *)0x10810000; + float *out0 = (float *)0x10820000; + float *outputs[] = {out0}; + int input_shape[] = {4, 10, 5}; + int start_idx[] = {0}; + int end_idx[] = {5}; + + fp_split_with_overlap_p(input, outputs, 1, input_shape, 3, 1, start_idx, end_idx); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/sqrt.rst.txt b/master/html/_sources/functionlib/dsplib/sqrt.rst.txt new file mode 100644 index 0000000..0c50bca --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/sqrt.rst.txt @@ -0,0 +1,87 @@ +Sqrt +================= + +传入一个数组,对每个元素逐元素计算平方根并输出。 + +.. math:: + + dst_i = \sqrt{src_i} + +当输入值为负数时,结果为 NaN(符合 IEEE 浮点标准)。 + +输入: + - **src_data** - 输入数据地址。 + - **length** - 计算长度。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **dst_data** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp, dp, int8, int16, int32, cplx64, cplx128 + - MT7004 支持 hp, fp, int16, int32, cplx64 + - 复数类型计算规则为:对复数模长取平方根并保持相位不变 + +**共享存储版本:** + +.. c:function:: void i8_sqrt_s(int8_t* src_data, int8_t* dst_data, int length, int core_mask) +.. c:function:: void i16_sqrt_s(int16_t* src_data, int16_t* dst_data, int length, int core_mask) +.. c:function:: void i32_sqrt_s(int* src_data, int* dst_data, int length, int core_mask) +.. c:function:: void hp_sqrt_s(half* src_data, half* dst_data, int length, int core_mask) +.. c:function:: void fp_sqrt_s(float* src_data, float* dst_data, int length, int core_mask) +.. c:function:: void dp_sqrt_s(double* src_data, double* dst_data, int length, int core_mask) +.. c:function:: void c64_sqrt_s(float* src_data, float* dst_data, int length, int core_mask) +.. c:function:: void c128_sqrt_s(double* src_data, double* dst_data, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; + float *output = (float *)0xC0000000; + int length = 1024; + int core_mask = 0xff; + fp_sqrt_s(input, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_sqrt_p(int8_t* src_data, int8_t* dst_data, int length) +.. c:function:: void i16_sqrt_p(int16_t* src_data, int16_t* dst_data, int length) +.. c:function:: void i32_sqrt_p(int* src_data, int* dst_data, int length) +.. c:function:: void hp_sqrt_p(half* src_data, half* dst_data, int length) +.. c:function:: void fp_sqrt_p(float* src_data, float* dst_data, int length) +.. c:function:: void dp_sqrt_p(double* src_data, double* dst_data, int length) +.. c:function:: void c64_sqrt_p(float* src_data, float* dst_data, int length) +.. c:function:: void c128_sqrt_p(double* src_data, double* dst_data, int length) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 9 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10810000; + float *output = (float *)0x10820000; + int length = 1024; + fp_sqrt_p(input, output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/sqrtgrad.rst.txt b/master/html/_sources/functionlib/dsplib/sqrtgrad.rst.txt new file mode 100644 index 0000000..4d01eb7 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/sqrtgrad.rst.txt @@ -0,0 +1,95 @@ +Sqrtgrad +================= + +计算 Sqrt(平方根)操作的梯度。该算子是 Sqrt 算子的反向传播(backward pass)部分。 + +.. math:: + + \text{output}_i = \frac{1}{2} \times \frac{\text{input2}_i}{\text{input1}_i} + +其中 `input1` 是前向传播时 Sqrt 的输出(即 :math:`y = \sqrt{x}`),`input2` 是来自后一层的上游梯度 :math:`dy`,`output` 是对原始输入 :math:`x` 的梯度 :math:`dx`。 + +输入: + - **input1** - 前向传播时 Sqrt 的输出数据地址(即 :math:`y = \sqrt{x}`)。 + - **input2** - 来自后一层的上游梯度数据地址(即 :math:`dy`)。 + - **size** - 计算长度。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **output** - 计算出的对原始输入的梯度数据地址(即 :math:`dx`)。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int8, int16, int32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_sqrtgrad_s(int8_t* input1, int8_t* input2, float* output, int size, int core_mask) +.. c:function:: void i16_sqrtgrad_s(int16_t* input1, int16_t* input2, float* output, int size, int core_mask) +.. c:function:: void i32_sqrtgrad_s(int32_t* input1, int32_t* input2, float* output, int size, int core_mask) +.. c:function:: void hp_sqrtgrad_s(half* input1, half* input2, half* output, int size, int core_mask) +.. c:function:: void fp_sqrtgrad_s(float* input1, float* input2, float* output, int size, int core_mask) +.. c:function:: void dp_sqrtgrad_s(double* input1, double* input2, double* output, int size, int core_mask) +.. c:function:: void c64_sqrtgrad_s(float* input1, float* input2, float* output, int size, int core_mask) +.. c:function:: void c128_sqrtgrad_s(double* input1, double* input2, double* output, int size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + float *input1 = (float *)0xA0000000; // Sqrt的输出 y = sqrt(x) + float *input2 = (float *)0xA1000000; // 上游梯度 dy + float *output = (float *)0xB0000000; // 输出梯度 dx + + int size = 1000; + int core_mask = 0xff; + + fp_sqrtgrad_s(input1, input2, output, size, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_sqrtgrad_p(int8_t* input1, int8_t* input2, float* output, int size) +.. c:function:: void i16_sqrtgrad_p(int16_t* input1, int16_t* input2, float* output, int size) +.. c:function:: void i32_sqrtgrad_p(int32_t* input1, int32_t* input2, float* output, int size) +.. c:function:: void hp_sqrtgrad_p(half* input1, half* input2, half* output, int size) +.. c:function:: void fp_sqrtgrad_p(float* input1, float* input2, float* output, int size) +.. c:function:: void dp_sqrtgrad_p(double* input1, double* input2, double* output, int size) +.. c:function:: void c64_sqrtgrad_p(float* input1, float* input2, float* output, int size) +.. c:function:: void c128_sqrtgrad_p(double* input1, double* input2, double* output, int size) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + float *input1 = (float *)0x10000000; // Sqrt的输出 y = sqrt(x) + float *input2 = (float *)0x10001000; // 上游梯度 dy + float *output = (float *)0x10002000; // 输出梯度 dx + + int size = 1000; + + fp_sqrtgrad_p(input1, input2, output, size); + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/square.rst.txt b/master/html/_sources/functionlib/dsplib/square.rst.txt new file mode 100644 index 0000000..eb290f8 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/square.rst.txt @@ -0,0 +1,86 @@ +Square +================= + +逐元素计算输入数据的平方。 + +.. math:: + + \text{dst}_i = \text{src}_i \times \text{src}_i + +对于输入 `src` 中的每个元素,计算其平方值。 + +输入: + - **src** - 输入数据地址。 + - **length** - 计算长度(对于复数类型,指复数的个数)。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **dst** - 计算结果地址,其大小与 `src` 相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int8, int16, int32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_square_s(int8_t* src, int8_t* dst, int length, int core_mask) +.. c:function:: void i16_square_s(int16_t* src, int16_t* dst, int length, int core_mask) +.. c:function:: void i32_square_s(int32_t* src, int32_t* dst, int length, int core_mask) +.. c:function:: void hp_square_s(half* src, half* dst, int length, int core_mask) +.. c:function:: void fp_square_s(float* src, float* dst, int length, int core_mask) +.. c:function:: void dp_square_s(double* src, double* dst, int length, int core_mask) +.. c:function:: void c64_square_s(float* src, float* dst, int length, int core_mask) +.. c:function:: void c128_square_s(double* src, double* dst, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *src = (float *)0xA0000000; // input在DDR空间 + float *dst = (float *)0xB0000000; // output + int length = 1000; + int core_mask = 0xff; + fp_square_s(src, dst, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_square_p(int8_t* src, int8_t* dst, int length) +.. c:function:: void i16_square_p(int16_t* src, int16_t* dst, int length) +.. c:function:: void i32_square_p(int32_t* src, int32_t* dst, int length) +.. c:function:: void hp_square_p(half* src, half* dst, int length) +.. c:function:: void fp_square_p(float* src, float* dst, int length) +.. c:function:: void dp_square_p(double* src, double* dst, int length) +.. c:function:: void c64_square_p(float* src, float* dst, int length) +.. c:function:: void c128_square_p(double* src, double* dst, int length) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 9 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *src = (float *)0x10000000; // input在L2空间 + float *dst = (float *)0x10001000; // output + int length = 1000; + fp_square_p(src, dst, length); + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/squaredifference.rst.txt b/master/html/_sources/functionlib/dsplib/squaredifference.rst.txt new file mode 100644 index 0000000..f313ce3 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/squaredifference.rst.txt @@ -0,0 +1,89 @@ +Squaredifference +================= + +逐元素计算两个输入数组对应元素的差的平方。 + +.. math:: + + \text{output}_i = (\text{input0}_i - \text{input1}_i)^2 + +对于输入 `input0` 和 `input1` 中对应位置的每个元素,计算它们差的平方值。 + +输入: + - **input0** - 第一个输入数据地址。 + - **input1** - 第二个输入数据地址。 + - **length** - 计算长度(对于复数类型,指复数的个数)。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **output** - 计算结果地址,其大小与输入相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int8, int16, int32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_squaredifference_s(int8_t* input0, int8_t* input1, int8_t* output, int length, int core_mask) +.. c:function:: void i16_squaredifference_s(int16_t* input0, int16_t* input1, int16_t* output, int length, int core_mask) +.. c:function:: void i32_squaredifference_s(int32_t* input0, int32_t* input1, int32_t* output, int length, int core_mask) +.. c:function:: void hp_squaredifference_s(half* input0, half* input1, half* output, int length, int core_mask) +.. c:function:: void fp_squaredifference_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void dp_squaredifference_s(double* input0, double* input1, double* output, int length, int core_mask) +.. c:function:: void c64_squaredifference_s(float* input0, float* input1, float* output, int length, int core_mask) +.. c:function:: void c128_squaredifference_s(double* input0, double* input1, double* output, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; // 第一个输入在DDR空间 + float *input1 = (float *)0xA1000000; // 第二个输入在DDR空间 + float *output = (float *)0xB0000000; // output + int length = 1000; + int core_mask = 0xff; + fp_squaredifference_s(input0, input1, output, length, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_squaredifference_p(int8_t* input0, int8_t* input1, int8_t* output, int length) +.. c:function:: void i16_squaredifference_p(int16_t* input0, int16_t* input1, int16_t* output, int length) +.. c:function:: void i32_squaredifference_p(int32_t* input0, int32_t* input1, int32_t* output, int length) +.. c:function:: void hp_squaredifference_p(half* input0, half* input1, half* output, int length) +.. c:function:: void fp_squaredifference_p(float* input0, float* input1, float* output, int length) +.. c:function:: void dp_squaredifference_p(double* input0, double* input1, double* output, int length) +.. c:function:: void c64_squaredifference_p(float* input0, float* input1, float* output, int length) +.. c:function:: void c128_squaredifference_p(double* input0, double* input1, double* output, int length) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0x10000000; // 第一个输入在L2空间 + float *input1 = (float *)0x10001000; // 第二个输入在L2空间 + float *output = (float *)0x10002000; // output + int length = 1000; + fp_squaredifference_p(input0, input1, output, length); + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/stack.rst.txt b/master/html/_sources/functionlib/dsplib/stack.rst.txt new file mode 100644 index 0000000..9a01a70 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/stack.rst.txt @@ -0,0 +1,109 @@ +Stack +================= + +沿一个新轴对输入张量序列进行堆叠。所有输入张量必须具有相同的形状。 + +.. math:: + + \text{若输入 } num\_inputs \text{ 个形状为 } (d_0, d_1, \dots, d_{n-1}) \text{ 的张量,并在 } axis \text{ 处堆叠:} + +.. math:: + + output\_shape = (d_0, \dots, d_{axis-1}, num\_inputs, d_{axis}, \dots, d_{n-1}) + +输入: + - **inputs** - 指针数组,包含所有输入张量起始地址的数组。 + - **input_shape** - 所有输入张量共用的形状(shape)数组。 + - **num_inputs** - 输入张量的数量。 + - **axis** - 堆叠操作插入新维度的位置。 + - **input_ndim** - 输入张量的维度数(秩)。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 计算结果存储地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - 所有输入张量必须具有完全一致的 `input_shape`。 + - 输出张量的维度将比输入张量多 1。 + +**共享存储版本:** + +.. c:function:: void i8_stack_s(int8_t* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, int8_t* output, int core_mask) +.. c:function:: void i16_stack_s(int16_t* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, int16_t* output, int core_mask) +.. c:function:: void i32_stack_s(int32_t* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, int32_t* output, int core_mask) +.. c:function:: void hp_stack_s(half* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, half* output, int core_mask) +.. c:function:: void fp_stack_s(float* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, float* output, int core_mask) +.. c:function:: void dp_stack_s(double* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, double* output, int core_mask) +.. c:function:: void c64_stack_s(float* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, float* output, int core_mask) +.. c:function:: void c128_stack_s(double* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, double* output, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 20 + + // FT78NE 示例(共享存储) + #include + #include "78NE/utils.h" + + int main() { + // 输入形状为 {4, 10, 8, 12} + int input_shape[] = { 4, 10, 8, 12 }; + int input_ndim = 4; + int num_inputs = 3; + int axis = 1; + int core_mask = 0b1011; + + float *in0 = (float *)0xA0000000; + float *in1 = (float *)0xA2000000; + float *in2 = (float *)0xA4000000; + float *inputs[] = { in0, in1, in2 }; + float *output = (float *)0xB0000000; + // 输出形状将变为 {4, 3, 10, 8, 12} + + fp_stack_s(inputs, input_shape, num_inputs, axis, input_ndim, output, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_stack_p(int8_t* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, int8_t* output) +.. c:function:: void i16_stack_p(int16_t* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, int16_t* output) +.. c:function:: void i32_stack_p(int32_t* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, int32_t* output) +.. c:function:: void hp_stack_p(half* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, half* output) +.. c:function:: void fp_stack_p(float* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, float* output) +.. c:function:: void dp_stack_p(double* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, double* output) +.. c:function:: void c64_stack_p(float* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, float* output) +.. c:function:: void c128_stack_p(double* inputs[], int* input_shape, int num_inputs, int axis, int input_ndim, double* output) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 15 + + // MT7004 示例(私有存储) + #include + + int main() { + int input_shape[] = { 2, 3, 4, 5 }; + int input_ndim = 4; + int num_inputs = 2; + int axis = 0; + + float *in0 = (float *)0x10810000; + float *in1 = (float *)0x10812000; + float *inputs[] = { in0, in1 }; + float *output = (float *)0x10820000; + + fp_stack_p(inputs, input_shape, num_inputs, axis, input_ndim, output); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/stridedslice.rst.txt b/master/html/_sources/functionlib/dsplib/stridedslice.rst.txt new file mode 100644 index 0000000..bf3b308 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/stridedslice.rst.txt @@ -0,0 +1,171 @@ +Stridedslice +================= + +对输入张量进行步长切片(Strided Slice)操作。该算子根据起始位置(begins)、结束位置(ends)和步长(strides)从输入张量中提取子张量。该算子不区分数据类型,适用于所有数据类型。 + +算法支持三种运行模式: +1. **全拷贝模式**(soft_copy_mode = 1):当输出是输入的连续子区域时,使用内存拷贝。 +2. **快速运行模式**(fast_run = 1):优化的快速路径,适用于特定场景。 +3. **普通模式**:逐块拷贝模式,适用于一般情况。 + +对于每个维度 `i`,输出张量的索引范围由 `begins[i]`、`ends[i]` 和 `strides[i]` 决定: + +.. math:: + + \text{output\_shape}[i] = \left\lceil \frac{\text{ends}[i] - \text{begins}[i]}{\text{strides}[i]} \right\rceil + +输入: + - **input** - 输入数据指针(void*)。 + - **in_shape** - 输入张量的形状数组(int*),大小为 `in_shape_size`。 + - **out_shape** - 输出张量的形状数组(int*),大小为 `out_shape_size`。 + - **in_shape_size** - 输入张量的维度数(int)。 + - **out_shape_size** - 输出张量的维度数(int)。 + - **begins** - 起始位置数组(int*),每个维度切片开始的位置。 + - **ends** - 结束位置数组(int*),每个维度切片结束的位置。 + - **strides** - 步长数组(int*),每个维度的步长。 + - **data_type_bytes** - 数据类型所占字节数(int)。 + - **soft_copy_mode** - 全拷贝模式标志(int),1 表示启用,0 表示不启用。 + - **fast_run** - 快速运行模式标志(int),1 表示启用,0 表示不启用。 + - **split_axis** - 策略2:分割轴(int),当输入和输出张量只有1个维度不同时使用。 + - **inner_size** - 策略2:内部大小(int)。 + - **outer** - 策略2:外部大小(int)。 + - **parallel_on_outer** - 策略2:是否在外层并行(int)。 + - **parallel_on_split_axis** - 策略2:是否在分割轴并行(int)。 + - **cal_num_per_thread** - 策略2:每个线程的计算数量(int)。 + - **caled_num** - 策略2:已计算数量(int)。 + - **temp_space** - 临时空间指针(void*)。 + - **inner** - 策略2:内部大小(int),与 `inner_size` 类似。 + +输出: + - **output** - 输出数据指针(void*)。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int8, int16, int32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + - 该算子不区分数据类型,适用于所有数据类型 + - 算子会根据 `soft_copy_mode` 和 `fast_run` 标志自动选择最优的执行路径 + - 策略2相关参数用于优化特定场景(输入和输出张量只有1个维度不同) + +**共享存储版本:** + +.. c:function:: void stridedslice(void* input, void* output, int* in_shape, int* out_shape, int in_shape_size, int out_shape_size, int* begins, int* ends, int* strides, int data_type_bytes, int soft_copy_mode, int fast_run, int split_axis, int inner_size, int outer, int parallel_on_outer, int parallel_on_split_axis, int cal_num_per_thread, int caled_num, void* temp_space, int inner, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 47-50 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + // 输入张量形状 [2, 3, 4, 5] + int in_shape[] = {2, 3, 4, 5}; + int in_shape_size = 4; + + // 输出张量形状 [1, 2, 2, 3] + // 从 [0, 1, 1, 2] 开始,到 [2, 3, 4, 5] 结束,步长为 [1, 1, 2, 1] + int out_shape[] = {1, 2, 2, 3}; + int out_shape_size = 4; + + // 切片参数 + int begins[] = {0, 1, 1, 2}; // 每个维度的起始位置 + int ends[] = {2, 3, 4, 5}; // 每个维度的结束位置 + int strides[] = {1, 1, 2, 1}; // 每个维度的步长 + + // 数据类型:float32,占4字节 + int data_type_bytes = 4; + + // 输入输出数据指针 + float *input = (float *)0xA0000000; + float *output = (float *)0xB0000000; + + // 运行模式 + int soft_copy_mode = 0; // 不启用全拷贝模式 + int fast_run = 0; // 不启用快速运行模式 + + // 策略2参数(不使用时可设为0) + int split_axis = 0; + int inner_size = 0; + int outer = 0; + int parallel_on_outer = 0; + int parallel_on_split_axis = 0; + int cal_num_per_thread = 0; + int caled_num = 0; + int inner = 0; + + // 临时空间 + void *temp_space = (void *)0xC0000000; + + // 核掩码 + + stridedslice(input, output, in_shape, out_shape, in_shape_size, out_shape_size, + begins, ends, strides, data_type_bytes, soft_copy_mode, fast_run, + split_axis, inner_size, outer, parallel_on_outer, parallel_on_split_axis, + cal_num_per_thread, caled_num, temp_space, inner); + + return 0; + } + +**私有存储版本:** + +.. c:function:: void stridedslice(void* input, void* output, int* in_shape, int* out_shape, int in_shape_size, int out_shape_size, int* begins, int* ends, int* strides, int data_type_bytes, int soft_copy_mode, int fast_run, int split_axis, int inner_size, int outer, int parallel_on_outer, int parallel_on_split_axis, int cal_num_per_thread, int caled_num, void* temp_space, int inner) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 37-40 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + int in_shape[] = {2, 3, 4, 5}; + int in_shape_size = 4; + + int out_shape[] = {1, 2, 2, 3}; + int out_shape_size = 4; + + int begins[] = {0, 1, 1, 2}; + int ends[] = {2, 3, 4, 5}; + int strides[] = {1, 1, 2, 1}; + + int data_type_bytes = 4; + + float *input = (float *)0x10000000; + float *output = (float *)0x10010000; + + int soft_copy_mode = 0; + int fast_run = 0; + + // 策略2参数(不使用) + int split_axis = 0; + int inner_size = 0; + int outer = 0; + int parallel_on_outer = 0; + int parallel_on_split_axis = 0; + int cal_num_per_thread = 0; + int caled_num = 0; + int inner = 0; + + void *temp_space = (void *)0x10020000; + + stridedslice(input, output, in_shape, out_shape, in_shape_size, out_shape_size, + begins, ends, strides, data_type_bytes, soft_copy_mode, fast_run, + split_axis, inner_size, outer, parallel_on_outer, parallel_on_split_axis, + cal_num_per_thread, caled_num, temp_space, inner); + + return 0; + } + + diff --git a/master/html/_sources/functionlib/dsplib/stridedslicegrad.rst.txt b/master/html/_sources/functionlib/dsplib/stridedslicegrad.rst.txt new file mode 100644 index 0000000..e837493 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/stridedslicegrad.rst.txt @@ -0,0 +1,118 @@ +Stridedslicegrad +================= + +计算 StridedSlice(步长切片)操作的梯度。该算子是 StridedSlice 算子的反向传播(backward pass)部分。 + +该算子将上游传来的梯度(对应 StridedSlice 输出的形状)映射回原始输入的位置(对应 StridedSlice 输入的形状)。对于输入梯度中的每个元素,根据原始 StridedSlice 操作的 `begins` 和 `strides` 参数,计算其在原始输入中的位置,并将梯度值写入该位置。 + +.. math:: + + \text{output}[\text{idx}] = \text{inputs}[\text{pos}] + +其中 `idx` 是根据 `pos` 在 `in_shape` 中的多维索引、`strides` 和 `begins` 计算出的在 `dx_shape` 中的线性索引。 + + +输入: + - **inputs** - 上游传来的梯度张量数据地址(即 :math:`dy`),形状为 :math:`in\_shape`(原始 StridedSlice 操作的输出形状)。 + - **dx_shape** - 输出梯度张量的形状数组(int*),大小为8,对应原始 StridedSlice 操作的输入形状。对于维度小于8的张量,高位维度形状为1。 + - **strides** - 原始 StridedSlice 操作的步长数组(int*),大小为8。对于维度小于8的张量,高位维度步长为1。 + - **begins** - 原始 StridedSlice 操作的起始索引数组(int*),大小为8。对于维度小于8的张量,高位维度起始索引为0。 + - **in_shape** - 原始 StridedSlice 操作的输出形状数组(int*),大小为8,即输入梯度 `inputs` 的形状。对于维度小于8的张量,高位维度形状为1。 + - **core_mask** - 核掩码(int),仅共享存储版本需要。 + +输出: + - **output** - 输出梯度张量数据地址(即 :math:`dx`),形状为 :math:`dx\_shape`(原始 StridedSlice 操作的输入形状)。该张量在调用前通常被初始化为全零。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - MT7004 支持fp16, fp32 + - FT78NE 支持fp32 + - 输出张量 `output` 在调用前需要预先初始化为全零 + - 形状数组固定为8维,对于维度小于8的张量,高位维度形状为1 + +**共享存储版本:** + +.. c:function:: void hp_stridedslicegrad_s(half* inputs, half* output, int* dx_shape, int* strides, int* begins, int* in_shape, int core_mask) +.. c:function:: void fp_stridedslicegrad_s(float* inputs, float* output, int* dx_shape, int* strides, int* begins, int* in_shape, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 35 + + //MT7004示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + // 原始 StridedSlice 操作: + // 输入形状 [2, 3, 4, 5] + // 输出形状 [1, 2, 2, 3] + // begins = [0, 1, 1, 2], strides = [1, 1, 2, 1] + + // 输出梯度形状(原始输入形状) + int dx_shape[8] = {2, 3, 4, 5, 1, 1, 1, 1}; + + // 输入梯度形状(原始输出形状) + int in_shape[8] = {1, 2, 2, 3, 1, 1, 1, 1}; + + // 原始 StridedSlice 参数 + int begins[8] = {0, 1, 1, 2, 0, 0, 0, 0}; + int strides[8] = {1, 1, 2, 1, 1, 1, 1, 1}; + + // 输入梯度(上游传来的梯度) + float *inputs = (float *)0xA0000000; // 形状为 in_shape + // inputs 包含 1 * 2 * 2 * 3 = 12 个元素 + + // 输出梯度(待计算) + float *output = (float *)0xB0000000; // 形状为 dx_shape + // output 包含 2 * 3 * 4 * 5 = 120 个元素 + + // 初始化输出为全零 + memset(output, 0, 120 * sizeof(float)); + + int core_mask = 0xff; + + fp_stridedslicegrad_s(inputs, output, dx_shape, strides, begins, in_shape, core_mask); + + return 0; + } + +**私有存储版本:** + +.. c:function:: void hp_stridedslicegrad_p(half* inputs, half* output, int* dx_shape, int* strides, int* begins, int* in_shape) +.. c:function:: void fp_stridedslicegrad_p(float* inputs, float* output, int* dx_shape, int* strides, int* begins, int* in_shape) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 19 + + //MT7004示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + int dx_shape[8] = {2, 3, 4, 5, 1, 1, 1, 1}; + int in_shape[8] = {1, 2, 2, 3, 1, 1, 1, 1}; + + int begins[8] = {0, 1, 1, 2, 0, 0, 0, 0}; + int strides[8] = {1, 1, 2, 1, 1, 1, 1, 1}; + + float *inputs = (float *)0x10000000; + float *output = (float *)0x10001000; + + // 初始化输出为全零 + memset(output, 0, 120 * sizeof(float)); + + fp_stridedslicegrad_p(inputs, output, dx_shape, strides, begins, in_shape); + + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/subfusion.rst.txt b/master/html/_sources/functionlib/dsplib/subfusion.rst.txt new file mode 100644 index 0000000..24b3e26 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/subfusion.rst.txt @@ -0,0 +1,185 @@ +Subfusion +================= + +逐元素计算两个输入数组的减法运算,支持三种模式:带缩放因子的减法、减法后应用 ReLU 激活、减法后应用 ReLU6 激活。 + +**模式1 - 带缩放因子的减法(subext):** + +.. math:: + + \text{output}_i = \text{input0}_i - \text{input1}_i \times \alpha + +**模式2 - 减法后应用 ReLU(subrelu):** + +.. math:: + + \text{output}_i = \max(0, \text{input0}_i - \text{input1}_i) + +**模式3 - 减法后应用 ReLU6(subrelu6):** + +.. math:: + + \text{output}_i = \min(\max(0, \text{input0}_i - \text{input1}_i), 6) + +输入: + - **input0** - 第一个输入数据地址。 + - **input1** - 第二个输入数据地址。 + - **alpha** - 缩放因子(仅 subext 模式需要),用于缩放 `input1`。 + - **size** - 计算长度(对于复数类型,指复数的个数)。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **output** - 计算结果地址,其大小与输入相同。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int8, int16, int32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +**subext(带缩放因子):** + +.. c:function:: void hp_subext_s(half* input0, half* input1, half alpha, half* output, int size, int core_mask) +.. c:function:: void fp_subext_s(float* input0, float* input1, float alpha, float* output, int size, int core_mask) +.. c:function:: void dp_subext_s(double* input0, double* input1, double alpha, double* output, int size, int core_mask) +.. c:function:: void c64_subext_s(float* input0, float* input1, float alpha, float* output, int size, int core_mask) +.. c:function:: void c128_subext_s(double* input0, double* input1, double alpha, double* output, int size, int core_mask) + +**subrelu(减法+ReLU):** + +.. c:function:: void i8_subrelu_s(int8_t* input0, int8_t* input1, int8_t* output, int size, int core_mask) +.. c:function:: void i16_subrelu_s(int16_t* input0, int16_t* input1, int16_t* output, int size, int core_mask) +.. c:function:: void i32_subrelu_s(int32_t* input0, int32_t* input1, int32_t* output, int size, int core_mask) +.. c:function:: void hp_subrelu_s(half* input0, half* input1, half* output, int size, int core_mask) +.. c:function:: void fp_subrelu_s(float* input0, float* input1, float* output, int size, int core_mask) +.. c:function:: void dp_subrelu_s(double* input0, double* input1, double* output, int size, int core_mask) +.. c:function:: void c64_subrelu_s(float* input0, float* input1, float* output, int size, int core_mask) +.. c:function:: void c128_subrelu_s(double* input0, double* input1, double* output, int size, int core_mask) + +**subrelu6(减法+ReLU6):** + +.. c:function:: void i8_subrelu6_s(int8_t* input0, int8_t* input1, int8_t* output, int size, int core_mask) +.. c:function:: void i16_subrelu6_s(int16_t* input0, int16_t* input1, int16_t* output, int size, int core_mask) +.. c:function:: void i32_subrelu6_s(int32_t* input0, int32_t* input1, int32_t* output, int size, int core_mask) +.. c:function:: void hp_subrelu6_s(half* input0, half* input1, half* output, int size, int core_mask) +.. c:function:: void fp_subrelu6_s(float* input0, float* input1, float* output, int size, int core_mask) +.. c:function:: void dp_subrelu6_s(double* input0, double* input1, double* output, int size, int core_mask) +.. c:function:: void c64_subrelu6_s(float* input0, float* input1, float* output, int size, int core_mask) +.. c:function:: void c128_subrelu6_s(double* input0, double* input1, double* output, int size, int core_mask) + +**C调用示例(subext):** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; // 第一个输入在DDR空间 + float *input1 = (float *)0xA1000000; // 第二个输入在DDR空间 + float *output = (float *)0xB0000000; // output + float alpha = 0.5f; // 缩放因子 + int size = 1000; + int core_mask = 0xff; + fp_subext_s(input0, input1, alpha, output, size, core_mask); + return 0; + } + +**C调用示例(subrelu):** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; + float *input1 = (float *)0xA1000000; + float *output = (float *)0xB0000000; + int size = 1000; + int core_mask = 0xff; + fp_subrelu_s(input0, input1, output, size, core_mask); + return 0; + } + +**C调用示例(subrelu6):** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; + float *input1 = (float *)0xA1000000; + float *output = (float *)0xB0000000; + int size = 1000; + int core_mask = 0xff; + fp_subrelu6_s(input0, input1, output, size, core_mask); + return 0; + } + +**私有存储版本:** + +**subext(带缩放因子):** + +.. c:function:: void hp_subext_p(half* input0, half* input1, half alpha, half* output, int size) +.. c:function:: void fp_subext_p(float* input0, float* input1, float alpha, float* output, int size) +.. c:function:: void dp_subext_p(double* input0, double* input1, double alpha, double* output, int size) +.. c:function:: void c64_subext_p(float* input0, float* input1, float alpha, float* output, int size) +.. c:function:: void c128_subext_p(double* input0, double* input1, double alpha, double* output, int size) + +**subrelu(减法+ReLU):** + +.. c:function:: void i8_subrelu_p(int8_t* input0, int8_t* input1, int8_t* output, int size) +.. c:function:: void i16_subrelu_p(int16_t* input0, int16_t* input1, int16_t* output, int size) +.. c:function:: void i32_subrelu_p(int32_t* input0, int32_t* input1, int32_t* output, int size) +.. c:function:: void hp_subrelu_p(half* input0, half* input1, half* output, int size) +.. c:function:: void fp_subrelu_p(float* input0, float* input1, float* output, int size) +.. c:function:: void dp_subrelu_p(double* input0, double* input1, double* output, int size) +.. c:function:: void c64_subrelu_p(float* input0, float* input1, float* output, int size) +.. c:function:: void c128_subrelu_p(double* input0, double* input1, double* output, int size) + +**subrelu6(减法+ReLU6):** + +.. c:function:: void i8_subrelu6_p(int8_t* input0, int8_t* input1, int8_t* output, int size) +.. c:function:: void i16_subrelu6_p(int16_t* input0, int16_t* input1, int16_t* output, int size) +.. c:function:: void i32_subrelu6_p(int32_t* input0, int32_t* input1, int32_t* output, int size) +.. c:function:: void hp_subrelu6_p(half* input0, half* input1, half* output, int size) +.. c:function:: void fp_subrelu6_p(float* input0, float* input1, float* output, int size) +.. c:function:: void dp_subrelu6_p(double* input0, double* input1, double* output, int size) +.. c:function:: void c64_subrelu6_p(float* input0, float* input1, float* output, int size) +.. c:function:: void c128_subrelu6_p(double* input0, double* input1, double* output, int size) + +**C调用示例(私有存储版本):** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input0 = (float *)0x10000000; // 第一个输入在L2空间 + float *input1 = (float *)0x10001000; // 第二个输入在L2空间 + float *output = (float *)0x10002000; // output + int size = 1000; + fp_subrelu_p(input0, input1, output, size); + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/subgrad.rst.txt b/master/html/_sources/functionlib/dsplib/subgrad.rst.txt new file mode 100644 index 0000000..8a9ce9f --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/subgrad.rst.txt @@ -0,0 +1,100 @@ +Subgrad +================= + +计算逐元素减法(Sub)操作的梯度。该算子是 Sub 算子的反向传播(backward pass)部分,支持广播。 + +.. math:: + + \text{dx1} = \frac{\partial L}{\partial X1} = \frac{\partial L}{\partial Y} \times 1 = \frac{\partial L}{\partial Y} + +.. math:: + + \text{dx2} = \frac{\partial L}{\partial X2} = \frac{\partial L}{\partial Y} \times (-1) = -\frac{\partial L}{\partial Y} + +其中对于前向操作 :math:`Y = X1 - X2`,`dy` 是来自后一层的上游梯度,`dx1` 和 `dx2` 分别是对 `X1` 和 `X2` 的梯度。 + + +输入: + - **dy** - 上游梯度数据地址(即 :math:`\frac{\partial L}{\partial Y}`)。 + - **x1_dims** - 前向传播时第一个输入 `x1` 的维度信息数组(int*)。 + - **x2_dims** - 前向传播时第二个输入 `x2` 的维度信息数组(int*)。 + - **dy_dims** - 上游梯度 `dy` 的维度信息数组(int*)。 + - **num_dims** - 维度数(int)。 + - **core_mask** - 核掩码(int),仅共享存储版本需要。 + +输出: + - **dx1** - 对 `x1` 的梯度数据地址。 + - **dx2** - 对 `x2` 的梯度数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - MT7004 支持fp16, fp32 + - FT78NE 支持fp32 + - 当输入张量被广播时,算子会自动处理广播维度的梯度累加 + +**共享存储版本:** + +.. c:function:: void hp_subgrad_s(half* dy, int* x1_dims, int* x2_dims, int* dy_dims, int num_dims, half* dx1, half* dx2, int core_mask) +.. c:function:: void fp_subgrad_s(float* dy, int* x1_dims, int* x2_dims, int* dy_dims, int num_dims, float* dx1, float* dx2, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 18 + + //MT7004示例 + #include + #include + + int main(int argc, char* argv[]) { + float *dy = (float *)0xA0000000; // 上游梯度在DDR空间 + float *dx1 = (float *)0xB0000000; // dx1输出 + float *dx2 = (float *)0xC0000000; // dx2输出 + + // 示例:x1形状 [3, 1],x2形状 [1, 4],dy形状 [3, 4] + int x1_dims[] = {3, 1}; + int x2_dims[] = {1, 4}; + int dy_dims[] = {3, 4}; + int num_dims = 2; + + int core_mask = 0xff; + + fp_subgrad_s(dy, x1_dims, x2_dims, dy_dims, num_dims, dx1, dx2, core_mask); + + return 0; + } + +**私有存储版本:** + +.. c:function:: void hp_subgrad_p(half* dy, int* x1_dims, int* x2_dims, int* dy_dims, int num_dims, half* dx1, half* dx2) +.. c:function:: void fp_subgrad_p(float* dy, int* x1_dims, int* x2_dims, int* dy_dims, int num_dims, float* dx1, float* dx2) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + //MT7004示例 + #include + #include + + int main(int argc, char* argv[]) { + float *dy = (float *)0x10000000; // 上游梯度在L2空间 + float *dx1 = (float *)0x10001000; // dx1输出 + float *dx2 = (float *)0x10002000; // dx2输出 + + int x1_dims[] = {3, 1}; + int x2_dims[] = {1, 4}; + int dy_dims[] = {3, 4}; + int num_dims = 2; + + fp_subgrad_p(dy, x1_dims, x2_dims, dy_dims, num_dims, dx1, dx2); + + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/switch.rst.txt b/master/html/_sources/functionlib/dsplib/switch.rst.txt new file mode 100644 index 0000000..d9a27ec --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/switch.rst.txt @@ -0,0 +1,124 @@ +Switch +================= + +根据条件选择输入张量。该算子根据布尔条件 `condition` 的值,选择 `input_x` 或 `input_y` 作为输出。该算子不区分数据类型,适用于所有数据类型。 + +.. math:: + + \text{output} = \begin{cases} + \text{input\_x}, & \text{if } \text{condition} = \text{True} \\ + \text{input\_y}, & \text{if } \text{condition} = \text{False} + \end{cases} + +该算子不复制数据,只是将输出指针指向选中的输入张量。因此,输出张量共享输入张量的数据指针和元数据。 + +输入: + - **input_x** - 第一个输入张量(TensorC* 类型)。当 `condition` 为 True 时被选中。 + - **input_y** - 第二个输入张量(TensorC* 类型)。当 `condition` 为 False 时被选中。 + - **condition** - 条件值(bool 类型),决定选择哪个输入张量。 + +输出: + - **output** - 输出张量指针的指针(TensorC** 类型),指向选中的输入张量。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - 该算子不区分数据类型,适用于所有数据类型 + - 算子不复制数据,输出张量共享输入张量的数据指针 + - 输出张量的所有元数据(形状、数据类型、格式等)与选中的输入张量相同 + +**共享存储版本:** + +.. c:function:: void switch_s(TensorC* input_x, TensorC* input_y, TensorC** output, bool condition) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 32 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + TensorC input_x; + TensorC input_y; + TensorC* output; + + // 初始化 input_x + int x_shape[3] = {2, 3, 4}; + memcpy(input_x.shape_, x_shape, 3 * sizeof(int)); + input_x.shape_size_ = 3; + input_x.data_type_ = kNumberTypeFloat32; + input_x.format_ = Format_NCHW; + input_x.data_ = (void *)0xA0000000; + input_x.category_ = 0; // 非常量 + input_x.shape_changed_ = false; + + // 初始化 input_y + int y_shape[3] = {2, 3, 4}; + memcpy(input_y.shape_, y_shape, 3 * sizeof(int)); + input_y.shape_size_ = 3; + input_y.data_type_ = kNumberTypeFloat32; + input_y.format_ = Format_NCHW; + input_y.data_ = (void *)0xB0000000; + input_y.category_ = 0; + input_y.shape_changed_ = false; + + bool condition = true; // 选择 input_x + + switch_s(&input_x, &input_y, &output, condition); + + return 0; + } + + +**私有存储版本:** + +.. c:function:: void switch_p(TensorC* input_x, TensorC* input_y, TensorC** output, bool condition) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 32 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + TensorC input_x; + TensorC input_y; + TensorC* output; + + // 初始化 input_x + int x_shape[3] = {2, 3, 4}; + memcpy(input_x.shape_, x_shape, 3 * sizeof(int)); + input_x.shape_size_ = 3; + input_x.data_type_ = kNumberTypeFloat32; + input_x.format_ = Format_NCHW; + input_x.data_ = (void *)0x10000000; + input_x.category_ = 0; // 非常量 + input_x.shape_changed_ = false; + + // 初始化 input_y + int y_shape[3] = {2, 3, 4}; + memcpy(input_y.shape_, y_shape, 3 * sizeof(int)); + input_y.shape_size_ = 3; + input_y.data_type_ = kNumberTypeFloat32; + input_y.format_ = Format_NCHW; + input_y.data_ = (void *)0x10001000; + input_y.category_ = 0; + input_y.shape_changed_ = false; + + bool condition = true; // 选择 input_x + + switch_p(&input_x, &input_y, &output, condition); + + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/switchlayer.rst.txt b/master/html/_sources/functionlib/dsplib/switchlayer.rst.txt new file mode 100644 index 0000000..f9eb921 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/switchlayer.rst.txt @@ -0,0 +1,129 @@ +Switchlayer +================= + +根据索引从输入张量数组中选择一个张量,并将其数据复制到输出。该算子不区分数据类型,适用于所有数据类型。 + +.. math:: + + \text{output} = \text{input\_tensors}[\text{index}] + +该算子会将选中的输入张量的数据复制到输出张量中。复制的大小为 `size * type_size` 字节。 + +输入: + - **input_tensors** - 输入张量数组(TensorC** 类型),包含多个待选择的张量。 + - **index** - 选择的索引(int 类型),指定从 `input_tensors` 数组中选择哪个张量。 + - **core_mask** - 核掩码(int),仅共享存储版本需要。 + +输出: + - **output** - 输出张量(TensorC* 类型),包含复制后的数据。输出张量的 `size` 和 `type_size` 应与选中的输入张量相同。 + +TensorC 结构体定义: + - **type_size** - 数据类型大小(long long),单位字节,例如 float32 为 4,float16 为 2。 + - **size** - 元素个数(long long)。 + - **data** - 数据指针(void*)。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - 该算子不区分数据类型,适用于所有数据类型 + - 算子会复制数据,输出张量与输入张量数据独立 + - 调用前需要确保 `output->data` 指向的内存空间足够大(至少 `size * type_size` 字节) + - 选中的输入张量的 `size` 和 `type_size` 应与输出张量匹配 + +**共享存储版本:** + +.. c:function:: void switchlayer_s(TensorC** input_tensors, TensorC* output, int index, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 36 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + TensorC input0, input1, input2; + TensorC output; + + // 初始化 input0 + input0.type_size = 4; // float32 + input0.size = 1000; + input0.data = (void *)0xA0000000; + + // 初始化 input1 + input1.type_size = 4; // float32 + input1.size = 1000; + input1.data = (void *)0xA1000000; + + // 初始化 input2 + input2.type_size = 4; // float32 + input2.size = 1000; + input2.data = (void *)0xA2000000; + + // 初始化 output + output.type_size = 4; // float32 + output.size = 1000; + output.data = (void *)0xB0000000; // 需要预先分配足够的内存 + + // 创建输入张量数组 + TensorC* input_tensors[3] = {&input0, &input1, &input2}; + + int index = 1; // 选择 input1 + int core_mask = 0xff; + + switchlayer_s(input_tensors, &output, index, core_mask); + + // 此时 output.data 包含 input1.data 的副本 + + return 0; + } + +**私有存储版本:** + +.. c:function:: void switchlayer_p(TensorC** input_tensors, TensorC* output, int index) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 30 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + TensorC input0, input1, input2; + TensorC output; + + input0.type_size = 4; // float32 + input0.size = 1000; + input0.data = (void *)0x10000000; + + input1.type_size = 4; + input1.size = 1000; + input1.data = (void *)0x10001000; + + input2.type_size = 4; + input2.size = 1000; + input2.data = (void *)0x10002000; + + output.type_size = 4; + output.size = 1000; + output.data = (void *)0x10003000; // 需要预先分配足够的内存 + + TensorC* input_tensors[3] = {&input0, &input1, &input2}; + + int index = 0; // 选择 input0 + + switchlayer_p(input_tensors, &output, index); + + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/tensor_scatter_add.rst.txt b/master/html/_sources/functionlib/dsplib/tensor_scatter_add.rst.txt new file mode 100644 index 0000000..f318e1d --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/tensor_scatter_add.rst.txt @@ -0,0 +1,101 @@ +TensorScatterAdd +=================== + +在输入张量的指定位置执行加法操作。 +根据给定的 `indices` 和 `updates`,在输入张量中相应的位置将更新值加到原值上,生成新的输出张量。 + +.. math:: + + output[indices] = input + updates + +输入: + - **input** - 输入张量数据地址。 + - **input_shape** - 输入张量形状数组。 + - **input_rank** - 输入张量维度数。 + - **indices** - 指定更新位置的索引数组。 + - **updates** - 更新数据地址。 + - **num_unit** - 每个更新单元的长度。 + - **index_depth** - 索引深度(`indices` 的最后一维长度)。 + - **output_unit_offsets(int*, 可选)** - 单元偏移数组(仅私有版本使用)。 + - **strides(int*, 可选)** - 步长数组(仅私有版本使用)。 + - **core_mask(int, 可选)** - 核掩码(仅共享存储版本使用)。 + +输出: + - **output** - 输出张量数据地址,存放更新后的结果。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void fp_tensor_scatter_add_s(float *input, int *input_shape, int input_rank, int *indices, float *updates, float *output, int num_unit, int index_depth, int core_mask) +.. c:function:: void i32_tensor_scatter_add_s(int32_t *input, int *input_shape, int input_rank, int *indices, int32_t *updates, int32_t *output, int num_unit, int index_depth, int core_mask) +.. c:function:: void i16_tensor_scatter_add_s(int16_t *input, int *input_shape, int input_rank, int *indices, int16_t *updates, int16_t *output, int num_unit, int index_depth, int core_mask) +.. c:function:: void i8_tensor_scatter_add_s(int8_t *input, int *input_shape, int input_rank, int *indices, int8_t *updates, int8_t *output, int num_unit, int index_depth, int core_mask) +.. c:function:: void hp_tensor_scatter_add_s(half *input, int *input_shape, int input_rank, int *indices, half *updates, half *output, int num_unit, int index_depth, int core_mask) +.. c:function:: void dp_tensor_scatter_add_s(double *input, int *input_shape, int input_rank, int *indices, double *updates, double *output, int num_unit, int index_depth, int core_mask) +.. c:function:: void c64_tensor_scatter_add_s(float *input, int *input_shape, int input_rank, int *indices, float *updates, float *output, int num_unit, int index_depth, int core_mask) +.. c:function:: void c128_tensor_scatter_add_s(double *input, int *input_shape, int input_rank, int *indices, double *updates, double *output, int num_unit, int index_depth, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 14 + + // FT78NE 示例 + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; + float *output = (float *)0xA1000000; + int input_shape[2] = {4, 4}; + int input_rank = 2; + int indices[2] = {1, 2}; + float updates[1] = {3.14}; + int num_unit = 1; + int index_depth = 2; + int core_mask = 0xff; + fp_tensor_scatter_add_s(input, input_shape, input_rank, indices, updates, output, num_unit, index_depth, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_tensor_scatter_add_p(float *input, int *input_shape, int input_rank, int *indices, float *updates, float *output, int num_unit, int index_depth, int *output_unit_offsets, int *strides) +.. c:function:: void i32_tensor_scatter_add_p(int32_t *input, int *input_shape, int input_rank, int *indices, int32_t *updates, int32_t *output, int num_unit, int index_depth, int *output_unit_offsets, int *strides) +.. c:function:: void i16_tensor_scatter_add_p(int16_t *input, int *input_shape, int input_rank, int *indices, int16_t *updates, int16_t *output, int num_unit, int index_depth, int *output_unit_offsets, int *strides) +.. c:function:: void i8_tensor_scatter_add_p(int8_t *input, int *input_shape, int input_rank, int *indices, int8_t *updates, int8_t *output, int num_unit, int index_depth, int *output_unit_offsets, int *strides) +.. c:function:: void hp_tensor_scatter_add_p(half *input, int *input_shape, int input_rank, int *indices, half *updates, half *output, int num_unit, int index_depth, int *output_unit_offsets, int *strides) +.. c:function:: void dp_tensor_scatter_add_p(double *input, int *input_shape, int input_rank, int *indices, double *updates, double *output, int num_unit, int index_depth, int *output_unit_offsets, int *strides) +.. c:function:: void c64_tensor_scatter_add_p(float *input, int *input_shape, int input_rank, int *indices, float *updates, float *output, int num_unit, int index_depth, int *output_unit_offsets, int *strides) +.. c:function:: void c128_tensor_scatter_add_p(double *input, int *input_shape, int input_rank, int *indices, double *updates, double *output, int num_unit, int index_depth, int *output_unit_offsets, int *strides) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 15 + + // FT78NE 示例 + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; + float *output = (float *)0x10010000; + int *output_unit_offsets = (int *)0x10020000; + int *strides = (int *)0x10030000; + int input_shape[2] = {4, 4}; + int input_rank = 2; + int indices[2] = {0, 1}; + float updates[1] = {2.71}; + int num_unit = 1; + int index_depth = 2; + fp_tensor_scatter_add_p(input, input_shape, input_rank, indices, updates, output, num_unit, index_depth, output_unit_offsets, strides); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/tensorarray.rst.txt b/master/html/_sources/functionlib/dsplib/tensorarray.rst.txt new file mode 100644 index 0000000..9a9794f --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/tensorarray.rst.txt @@ -0,0 +1,203 @@ +Tensorarray +================= + +张量数组操作,支持从张量数组中读取指定索引的张量,或将张量写入到张量数组的指定索引位置。该算子不区分数据类型,适用于所有数据类型。 + +**TensorArrayRead(读取操作):** + +从张量数组中读取指定索引的张量,并将其数据复制到输出。 + +.. math:: + + \text{output} = \text{tensors}[\text{index}] + +**TensorArrayWrite(写入操作):** + +将输入张量的数据复制到张量数组的指定索引位置。 + +.. math:: + + \text{tensors}[\text{index}] = \text{input} + +两个操作都会复制数据,复制大小为 `size * type_size` 字节。 + +输入(TensorArrayRead): + - **tensors** - 张量数组(Tensor** 类型),包含多个张量。 + - **index** - 读取的索引(int 类型),指定从 `tensors` 数组中读取哪个张量。 + - **core_mask** - 核掩码(int),仅共享存储版本需要。 + +输出(TensorArrayRead): + - **output** - 输出张量(Tensor* 类型),包含复制后的数据。输出张量的 `size` 和 `type_size` 应与选中的输入张量相同。 + +输入(TensorArrayWrite): + - **input** - 输入张量(Tensor* 类型),待写入的数据。 + - **index** - 写入的索引(int 类型),指定写入到 `tensors` 数组的哪个位置。 + - **tensors** - 张量数组(Tensor** 类型),目标数组。 + - **core_mask** - 核掩码(int),仅共享存储版本需要。 + +输出(TensorArrayWrite): + - **tensors[index]** - 张量数组指定位置的数据会被更新。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - 该算子不区分数据类型,适用于所有数据类型 + - 算子会复制数据,输入和输出张量数据独立 + - 调用前需要确保目标内存空间足够大(至少 `size * type_size` 字节) + - 读取和写入时,涉及的张量的 `size` 和 `type_size` 应匹配 + +**共享存储版本:** + +**TensorArrayRead(读取操作):** + +.. c:function:: void tensorarrayread_s(Tensor** tensors, int index, Tensor* output, int core_mask) + +**TensorArrayWrite(写入操作):** + +.. c:function:: void tensorarraywrite_s(Tensor* input, int index, Tensor** tensors, int core_mask) + +**C调用示例(TensorArrayRead):** + +.. code-block:: c + :linenos: + :emphasize-lines: 34 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + Tensor tensor0, tensor1, tensor2; + Tensor output; + + // 初始化张量数组中的张量 + tensor0.type_size = 4; // float32 + tensor0.size = 1000; + tensor0.data = (void *)0xA0000000; + + tensor1.type_size = 4; + tensor1.size = 1000; + tensor1.data = (void *)0xA1000000; + + tensor2.type_size = 4; + tensor2.size = 1000; + tensor2.data = (void *)0xA2000000; + + // 初始化输出张量 + output.type_size = 4; + output.size = 1000; + output.data = (void *)0xB0000000; // 需要预先分配足够的内存 + + // 创建张量数组 + Tensor* tensors[3] = {&tensor0, &tensor1, &tensor2}; + + int index = 1; // 读取 tensor1 + int core_mask = 0xff; + + tensorarrayread_s(tensors, index, &output, core_mask); + + // 此时 output.data 包含 tensor1.data 的副本 + + return 0; + } + +**C调用示例(TensorArrayWrite):** + +.. code-block:: c + :linenos: + :emphasize-lines: 30 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + Tensor input; + Tensor tensor0, tensor1, tensor2; + + // 初始化输入张量 + input.type_size = 4; // float32 + input.size = 1000; + input.data = (void *)0xA0000000; + + // 初始化张量数组中的张量(需要预先分配内存) + tensor0.type_size = 4; + tensor0.size = 1000; + tensor0.data = (void *)0xB0000000; + + tensor1.type_size = 4; + tensor1.size = 1000; + tensor1.data = (void *)0xB0100000; + + tensor2.type_size = 4; + tensor2.size = 1000; + tensor2.data = (void *)0xB0200000; + + // 创建张量数组 + Tensor* tensors[3] = {&tensor0, &tensor1, &tensor2}; + + int index = 1; // 写入到 tensor1 的位置 + int core_mask = 0xff; + + tensorarraywrite_s(&input, index, tensors, core_mask); + + // 此时 tensors[1]->data 包含 input.data 的副本 + + return 0; + } + +**私有存储版本:** + +**TensorArrayRead(读取操作):** + +.. c:function:: void tensorarrayread_p(Tensor** tensors, int index, Tensor* output) + +**TensorArrayWrite(写入操作):** + +.. c:function:: void tensorarraywrite_p(Tensor* input, int index, Tensor** tensors) + +**C调用示例(私有存储版本):** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + Tensor tensor0, tensor1, tensor2; + Tensor output; + + tensor0.type_size = 4; // float32 + tensor0.size = 1000; + tensor0.data = (void *)0x10000000; + + tensor1.type_size = 4; + tensor1.size = 1000; + tensor1.data = (void *)0x10001000; + + tensor2.type_size = 4; + tensor2.size = 1000; + tensor2.data = (void *)0x10002000; + + output.type_size = 4; + output.size = 1000; + output.data = (void *)0x10003000; // 需要预先分配足够的内存 + + Tensor* tensors[3] = {&tensor0, &tensor1, &tensor2}; + + int index = 0; // 读取 tensor0 + + tensorarrayread_p(tensors, index, &output); + + return 0; + } + + diff --git a/master/html/_sources/functionlib/dsplib/tensorarrayread.rst.txt b/master/html/_sources/functionlib/dsplib/tensorarrayread.rst.txt new file mode 100644 index 0000000..4b7eec6 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/tensorarrayread.rst.txt @@ -0,0 +1,123 @@ +Tensorarrayread +================= + +从张量数组中读取指定索引的张量,并将其数据复制到输出。该算子不区分数据类型,适用于所有数据类型。 + +.. math:: + + \text{output\_data} = \text{handle\_data}[\text{index}] + +该算子会将 `handle_data[index]` 指向的数据复制到 `output_data` 中,复制的大小为 `handle_size[index]` 字节。 + +输入: + - **handle_data** - 张量数组的数据指针数组(void** 类型),每个元素指向一个张量的数据。 + - **handle_size** - 每个张量的大小数组(int* 类型),`handle_size[i]` 表示 `handle_data[i]` 指向的数据大小(字节)。 + - **index** - 读取的索引(int 类型),指定从 `handle_data` 数组中读取哪个张量。 + - **core_mask** - 核掩码(int),仅共享存储版本需要。 + +输出: + - **output_data** - 输出数据指针(void* 类型),包含复制后的数据。 + - **output_size** - 输出大小指针(int* 类型),指向存储输出大小的变量。调用后,`*output_size` 会被设置为 `handle_size[index]`。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int16, int32, cplx64 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + - 算子会复制数据,输出数据与输入数据独立 + - 调用前需要确保 `output_data` 指向的内存空间足够大(至少 `handle_size[index]` 字节) + - `index` 必须在 `handle_data` 数组的有效范围内 + +**共享存储版本:** + +.. c:function:: void fp_tensorarrayread_s(void** handle_data, int* handle_size, int index, void* output_data, int* output_size, int core_mask) +.. c:function:: void hp_tensorarrayread_s(void** handle_data, int* handle_size, int index, void* output_data, int* output_size, int core_mask) +.. c:function:: void dp_tensorarrayread_s(void** handle_data, int* handle_size, int index, void* output_data, int* output_size, int core_mask) +.. c:function:: void i8_tensorarrayread_s(void** handle_data, int* handle_size, int index, void* output_data, int* output_size, int core_mask) +.. c:function:: void i16_tensorarrayread_s(void** handle_data, int* handle_size, int index, void* output_data, int* output_size, int core_mask) +.. c:function:: void i32_tensorarrayread_s(void** handle_data, int* handle_size, int index, void* output_data, int* output_size, int core_mask) +.. c:function:: void c64_tensorarrayread_s(void** handle_data, int* handle_size, int index, void* output_data, int* output_size, int core_mask) +.. c:function:: void c128_tensorarrayread_s(void** handle_data, int* handle_size, int index, void* output_data, int* output_size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 25 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + // 张量数组包含3个张量 + float *data0 = (float *)0xA0000000; // 第0个张量的数据 + float *data1 = (float *)0xA1000000; // 第1个张量的数据 + float *data2 = (float *)0xA2000000; // 第2个张量的数据 + + // 每个张量的大小(字节) + int sizes[3] = {1000 * sizeof(float), 1000 * sizeof(float), 1000 * sizeof(float)}; + + // 创建数据指针数组 + void* handle_data[3] = {data0, data1, data2}; + + // 输出数据 + float *output_data = (float *)0xB0000000; // 需要预先分配足够的内存 + int output_size; // 输出大小,调用后会被设置 + + int index = 1; // 读取第1个张量 + int core_mask = 0xff; + + fp_tensorarrayread_s(handle_data, sizes, index, output_data, &output_size, core_mask); + + // 此时 output_data 包含 data1 的副本 + // output_size == sizes[1] == 1000 * sizeof(float) + + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_tensorarrayread_p(void** handle_data, int* handle_size, int index, void* output_data, int* output_size) +.. c:function:: void hp_tensorarrayread_p(void** handle_data, int* handle_size, int index, void* output_data, int* output_size) +.. c:function:: void dp_tensorarrayread_p(void** handle_data, int* handle_size, int index, void* output_data, int* output_size) +.. c:function:: void i8_tensorarrayread_p(void** handle_data, int* handle_size, int index, void* output_data, int* output_size) +.. c:function:: void i16_tensorarrayread_p(void** handle_data, int* handle_size, int index, void* output_data, int* output_size) +.. c:function:: void i32_tensorarrayread_p(void** handle_data, int* handle_size, int index, void* output_data, int* output_size) +.. c:function:: void c64_tensorarrayread_p(void** handle_data, int* handle_size, int index, void* output_data, int* output_size) +.. c:function:: void c128_tensorarrayread_p(void** handle_data, int* handle_size, int index, void* output_data, int* output_size) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 20 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + float *data0 = (float *)0x10000000; + float *data1 = (float *)0x10001000; + float *data2 = (float *)0x10002000; + + int sizes[3] = {1000 * sizeof(float), 1000 * sizeof(float), 1000 * sizeof(float)}; + + void* handle_data[3] = {data0, data1, data2}; + + float *output_data = (float *)0x10003000; // 需要预先分配足够的内存 + int output_size; + + int index = 0; // 读取第0个张量 + + fp_tensorarrayread_p(handle_data, sizes, index, output_data, &output_size); + + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/tensorarraywrite.rst.txt b/master/html/_sources/functionlib/dsplib/tensorarraywrite.rst.txt new file mode 100644 index 0000000..a627f0e --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/tensorarraywrite.rst.txt @@ -0,0 +1,41 @@ +TensorarrayWrite +================= + +将张量写入到张量数组的指定索引位置。该算子不区分数据类型,适用于所有数据类型。 + +.. math:: + + \text{output\_data} = \text{handle\_data}[\text{index}] + +该算子会将 `handle_data[index]` 指向的数据复制到 `output_data` 中,复制的大小为 `handle_size[index]` 字节。 + +输入: + - **handle_data** - 张量数组的数据指针数组(void** 类型),每个元素指向一个张量的数据。 + - **handle_size** - 每个张量的大小数组(int* 类型),`handle_size[i]` 表示 `handle_data[i]` 指向的数据大小(字节)。 + - **index** - 读取的索引(int 类型),指定从 `handle_data` 数组中读取哪个张量。 + - **core_mask** - 核掩码(int),仅共享存储版本需要。 + +输出: + - **output_data** - 输出数据指针(void* 类型),包含复制后的数据。 + - **output_size** - 输出大小指针(int* 类型),指向存储输出大小的变量。调用后,`*output_size` 会被设置为 `handle_size[index]`。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int16, int32, cplx64 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + - 算子会复制数据,输出数据与输入数据独立 + - 调用前需要确保 `output_data` 指向的内存空间足够大(至少 `handle_size[index]` 字节) + - `index` 必须在 `handle_data` 数组的有效范围内 + +**共享存储版本:** + +见TensorArrayRead。 + + +**私有存储版本:** + +见TensorArrayRead。 + diff --git a/master/html/_sources/functionlib/dsplib/tensorlistfromtensor.rst.txt b/master/html/_sources/functionlib/dsplib/tensorlistfromtensor.rst.txt new file mode 100644 index 0000000..e2e56cd --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/tensorlistfromtensor.rst.txt @@ -0,0 +1,121 @@ +Tensorlistfromtensor +====================== + +将输入张量按照第一个维度拆分成多个张量。假设输入张量的形状为 `[N1, N2, N3, ...]`,该算子将输入张量拆分成 `N1` 个张量,每个输出张量的形状为 `[N2, N3, ...]`。 + +.. math:: + + \text{output\_tensors}[i] = \text{input\_tensor}[\text{slice\_at\_dim0} = i] + +其中 `i = 0, 1, \ldots, N1-1`,每个输出张量包含 `N1` 个切片中的一个。 + + +输入: + - **input_tensor_values** - 输入张量的数据指针,大小为 `input_tensor_total_elements` 个元素。 + - **input_tensor_shape** - 输入张量的形状数组(int* 类型),`input_tensor_shape[0]` 表示第一个维度的大小(即输出张量的数量)。 + - **input_tensor_total_elements** - 输入张量的总元素数(int 类型)。 + - **core_mask** - 核掩码(int),仅共享存储版本需要。 + +输出: + - **output_tensors** - 输出张量数组(指针数组),大小为 `input_tensor_shape[0]`。每个元素 `output_tensors[i]` 指向第 `i` 个输出张量的数据。每个输出张量的大小为 `input_tensor_total_elements / input_tensor_shape[0]` 个元素。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp32, int8, int16, int32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + - 算子会复制数据,输出张量与输入张量数据独立 + - 调用前需要确保所有 `output_tensors[i]` 指向的内存空间足够大(至少 `input_tensor_total_elements / input_tensor_shape[0]` 个元素) + - 输出张量的数量等于 `input_tensor_shape[0]` + - 每个输出张量的元素数为 `input_tensor_total_elements / input_tensor_shape[0]` + +**共享存储版本:** + +.. c:function:: void i8_tensorlistfromtensor_s(int8_t* input_tensor_values, int* input_tensor_shape, int8_t** output_tensors, int input_tensor_total_elements, int core_mask) +.. c:function:: void i16_tensorlistfromtensor_s(int16_t* input_tensor_values, int* input_tensor_shape, int16_t** output_tensors, int input_tensor_total_elements, int core_mask) +.. c:function:: void i32_tensorlistfromtensor_s(int32_t* input_tensor_values, int* input_tensor_shape, int32_t** output_tensors, int input_tensor_total_elements, int core_mask) +.. c:function:: void hp_tensorlistfromtensor_s(half* input_tensor_values, int* input_tensor_shape, half** output_tensors, int input_tensor_total_elements, int core_mask) +.. c:function:: void fp_tensorlistfromtensor_s(float* input_tensor_values, int* input_tensor_shape, float** output_tensors, int input_tensor_total_elements, int core_mask) +.. c:function:: void dp_tensorlistfromtensor_s(double* input_tensor_values, int* input_tensor_shape, double** output_tensors, int input_tensor_total_elements, int core_mask) +.. c:function:: void c64_tensorlistfromtensor_s(float* input_tensor_values, int* input_tensor_shape, float** output_tensors, int input_tensor_total_elements, int core_mask) +.. c:function:: void c128_tensorlistfromtensor_s(double* input_tensor_values, int* input_tensor_shape, double** output_tensors, int input_tensor_total_elements, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 26 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + // 输入张量形状 [3, 4, 5],总元素数 = 3 * 4 * 5 = 60 + // 输出3个张量,每个形状 [4, 5],元素数 = 60 / 3 = 20 + + int input_tensor_shape[] = {3, 4, 5}; + int input_tensor_total_elements = 3 * 4 * 5; // 60 + + // 输入张量数据 + float *input_tensor_values = (float *)0xA0000000; + // input_tensor_values 包含 60 个 float 元素 + + // 输出张量数组(需要预先分配内存) + float *output0 = (float *)0xB0000000; // 第0个输出张量,20个元素 + float *output1 = (float *)0xB0100000; // 第1个输出张量,20个元素 + float *output2 = (float *)0xB0200000; // 第2个输出张量,20个元素 + + float* output_tensors[3] = {output0, output1, output2}; + + int core_mask = 0xff; + + fp_tensorlistfromtensor_s(input_tensor_values, input_tensor_shape, + output_tensors, input_tensor_total_elements, core_mask); + + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_tensorlistfromtensor_p(int8_t* input_tensor_values, int* input_tensor_shape, int8_t** output_tensors, int input_tensor_total_elements) +.. c:function:: void i16_tensorlistfromtensor_p(int16_t* input_tensor_values, int* input_tensor_shape, int16_t** output_tensors, int input_tensor_total_elements) +.. c:function:: void i32_tensorlistfromtensor_p(int32_t* input_tensor_values, int* input_tensor_shape, int32_t** output_tensors, int input_tensor_total_elements) +.. c:function:: void hp_tensorlistfromtensor_p(half* input_tensor_values, int* input_tensor_shape, half** output_tensors, int input_tensor_total_elements) +.. c:function:: void fp_tensorlistfromtensor_p(float* input_tensor_values, int* input_tensor_shape, float** output_tensors, int input_tensor_total_elements) +.. c:function:: void dp_tensorlistfromtensor_p(double* input_tensor_values, int* input_tensor_shape, double** output_tensors, int input_tensor_total_elements) +.. c:function:: void c64_tensorlistfromtensor_p(float* input_tensor_values, int* input_tensor_shape, float** output_tensors, int input_tensor_total_elements) +.. c:function:: void c128_tensorlistfromtensor_p(double* input_tensor_values, int* input_tensor_shape, double** output_tensors, int input_tensor_total_elements) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 18-19 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + int input_tensor_shape[] = {3, 4, 5}; + int input_tensor_total_elements = 3 * 4 * 5; + + float *input_tensor_values = (float *)0x10000000; + + float *output0 = (float *)0x10010000; + float *output1 = (float *)0x10011000; + float *output2 = (float *)0x10012000; + + float* output_tensors[3] = {output0, output1, output2}; + + fp_tensorlistfromtensor_p(input_tensor_values, input_tensor_shape, + output_tensors, input_tensor_total_elements); + + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/tensorlistgetitem.rst.txt b/master/html/_sources/functionlib/dsplib/tensorlistgetitem.rst.txt new file mode 100644 index 0000000..317bdaf --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/tensorlistgetitem.rst.txt @@ -0,0 +1,83 @@ +Tensorlistgetitem +================= + +从张量列表中获取指定索引的张量数据。该算子将输入张量列表中的特定元素复制到输出张量中,支持多种数据类型。 + +.. math:: + + \text{output\_tensor} = \text{input\_tensor\_list}[\text{index}] + +其中 `input_tensor_list` 是输入的张量列表,`index` 是要获取的元素索引,`output_tensor` 是输出张量。 + +输入: + - **src** - 输入张量指针,指向要获取的张量数据。 + - **dst** - 输出张量指针,用于存储获取的张量数据。 + - **data_type** - 数据类型对应的字节数,如果为0,表示kTypeUnknown(未知类型)。 + - **length** - 元素个数,默认dst和src元素个数相等。 + - **core_mask** - 核掩码(int),仅共享存储版本需要。 + +输出: + - **dst** - 输出张量指针,存储从输入张量列表获取的数据。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - 该算子不区分具体的数据类型,数据类型信息通过data_type参数传递 + - 当data_type为0(kTypeUnknown)时,算子会将输出张量的内存清零 + - 当data_type不为0时,算子会按字节复制数据 + - 调用前需要确保dst指向的内存空间足够大(至少length个元素) + +**共享存储版本:** + +.. c:function:: void tensorlistgetitem_s(void *src, void *dst, int data_type, int length, int core_mask) + +**C调用示例(共享存储版本):** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + float *src = (float *)0xA0000000; // 输入张量数据 + float *dst = (float *)0xB0000000; // 输出张量数据 + int data_type = 4; // float类型,4字节 + int length = 10; // 10个元素 + int core_mask = 0xff; // 核掩码 + + // 调用共享存储版本的函数 + tensorlistgetitem_s(src, dst, data_type, length, core_mask); + + return 0; + } + +**共享存储版本:** + +.. c:function:: void tensorlistgetitem_p(void *src, void *dst, int data_type, int length) + +**C调用示例(私有存储版本):** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + #include + #include + + int main(int argc, char* argv[]) { + void *src = (void *)0x10000000; + void *dst = (void *)0x10010000; + int data_type = 0; // kTypeUnknown + int length = 10; // 10个元素(以字节为单位) + + // 当data_type为0时,dst将被清零 + tensorlistgetitem_p(src, dst, data_type, length); + + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/tensorlistreserve.rst.txt b/master/html/_sources/functionlib/dsplib/tensorlistreserve.rst.txt new file mode 100644 index 0000000..d2b3de2 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/tensorlistreserve.rst.txt @@ -0,0 +1,64 @@ +Tensorlistreserve +================= + +为张量列表(TensorList)预分配指定数量和形状的张量空间。该算子用于初始化TensorList结构,设置其内部张量的形状信息和TensorList本身的形状。 + +该算子不区分具体的数据类型,主要负责设置TensorList的元数据信息。 + +输入: + - **num_elements** - TensorList中包含的张量数量(int类型)。 + - **element_shape** - 每个张量的形状数组(int*类型),表示TensorList中每个张量的维度信息。 + - **shape_size** - 每个张量的形状大小(int类型),即element_shape数组的长度。 + - **tensor_list_c_element_shape_size** - 输出参数,用于存储TensorList内部每个张量的形状大小(int*类型)。 + - **tensor_list_c_element_shape** - 输出参数,用于存储TensorList内部每个张量的形状(int*类型)。 + - **tensor_c_shape_size** - 输出参数,用于存储TensorList本身的形状大小(int*类型)。 + - **tensor_c_shape** - 输出参数,用于存储TensorList本身的形状(int*类型)。 + +输出: + - **tensor_list_c_element_shape_size** - 被设置为shape_size的值。 + - **tensor_list_c_element_shape** - 被填充为element_shape的值。 + - **tensor_c_shape_size** - 被设置为1,表示TensorList本身是一个1维结构。 + - **tensor_c_shape** - 被设置为num_elements,表示TensorList包含num_elements个张量。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - 该算子不区分具体的数据类型,主要操作TensorList的元数据 + - TensorList中的每个张量必须具有相同的形状(element_shape) + - 调用前需要确保tensor_list_c_element_shape和tensor_c_shape指向的内存空间足够大 + +**函数定义:** + +.. c:function:: void Tensorlistreserve(int num_elements, int *element_shape, int shape_size, int *tensor_list_c_element_shape_size, int *tensor_list_c_element_shape, int *tensor_c_shape_size, int *tensor_c_shape) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17-20 + + #include + #include + + int main(int argc, char* argv[]) { + // 参数设置 + int num_elements = 3; // TensorList包含3个张量 + int element_shape[] = {4, 5}; // 每个张量的形状为[4, 5] + int shape_size = 2; // element_shape数组长度为2 + + // 输出参数 + int tensor_list_c_element_shape_size; + int tensor_list_c_element_shape[2]; // 空间大小应至少为shape_size + int tensor_c_shape_size; + int tensor_c_shape; + + // 调用算子 + Tensorlistreserve(num_elements, element_shape, shape_size, + &tensor_list_c_element_shape_size, + tensor_list_c_element_shape, + &tensor_c_shape_size, + &tensor_c_shape); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/tensorlistsetitem.rst.txt b/master/html/_sources/functionlib/dsplib/tensorlistsetitem.rst.txt new file mode 100644 index 0000000..7b6765c --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/tensorlistsetitem.rst.txt @@ -0,0 +1,114 @@ +Tensorlistsetitem +================= + +将输入的张量(item)替换到张量列表(TensorList)中指定索引位置。该算子创建一个新的张量列表,其中在指定索引位置的张量被替换为输入的新张量,而其他位置的张量保持不变。 + +该算子不区分具体的数据类型,通过copy_size参数指定每个张量的数据量大小。 + +输入: + - **in_data** - 输入张量列表指针(void**类型),指向原始张量列表中的各个张量数据。 + - **in_item** - 输入张量指针(void*类型),表示要替换到张量列表中的新张量数据。 + - **index** - 要替换的张量在列表中的索引位置(int类型)。 + - **tensorlist_size** - 张量列表中包含的张量个数(int类型)。 + - **copy_size** - 每个张量的数据量大小数组(int*类型),以字节为单位,表示每个张量需要复制的字节数。 + - **core_mask** - 核掩码(int类型),仅共享存储版本需要。 + +输出: + - **out_data** - 输出张量列表指针(void**类型),存储替换操作后的张量列表,其中index位置的张量被替换为in_item。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - 该算子不区分具体的数据类型,通过copy_size参数控制复制的字节数 + - 调用前需要确保out_data指向的内存空间足够大,能够存储所有张量数据 + - 索引index必须在有效范围内(0 <= index < tensorlist_size) + - 算子会复制所有张量数据,输出张量列表与输入张量列表数据独立 + +**共享存储版本:** + +.. c:function:: void tensorlistsetitem_s(void** in_data, void* in_item, void** out_data, int index, int tensorlist_size, int* copy_size, int core_mask) + +**C调用示例(共享存储版本):** + +.. code-block:: c + :linenos: + :emphasize-lines: 31 + + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + int tensorlist_size = 3; // 张量列表包含3个张量 + int index = 1; // 替换索引为1的张量 + + // 输入张量列表 + float *in_tensor0 = (float *)0xA0000000; + float *in_tensor1 = (float *)0xA0010000; + float *in_tensor2 = (float *)0xA0020000; + void* in_data[3] = {in_tensor0, in_tensor1, in_tensor2}; + + // 输入item + float *in_item = (float *)0xA0030000; + + // 输出张量列表 + float *out_tensor0 = (float *)0xB0000000; + float *out_tensor1 = (float *)0xB0010000; + float *out_tensor2 = (float *)0xB0020000; + void* out_data[3] = {out_tensor0, out_tensor1, out_tensor2}; + + // 每个张量的数据量大小 + int copy_size[3] = {40, 40, 40}; + + // 核掩码 + int core_mask = 0xff; + + // 调用共享存储版本的函数 + tensorlistsetitem_s(in_data, in_item, out_data, index, tensorlist_size, copy_size, core_mask); + + return 0; + } + +**私有存储版本:** + +.. c:function:: void tensorlistsetitem_p(void** in_data, void* in_item, void** out_data, int index, int tensorlist_size, int* copy_size) + +**C调用示例(私有存储版本):** + +.. code-block:: c + :linenos: + :emphasize-lines: 28 + + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + int tensorlist_size = 3; // 张量列表包含3个张量 + int index = 1; // 替换索引为1的张量 + + // 输入张量列表(假设已初始化) + float *in_tensor0 = (float *)0x10000000; // 第一个张量 + float *in_tensor1 = (float *)0x10001000; // 第二个张量(将被替换) + float *in_tensor2 = (float *)0x10002000; // 第三个张量 + void* in_data[3] = {in_tensor0, in_tensor1, in_tensor2}; + + // 输入item(新张量数据) + float *in_item = (float *)0x10003000; + + // 输出张量列表(需要预先分配内存) + float *out_tensor0 = (float *)0x10004000; + float *out_tensor1 = (float *)0x10005000; + float *out_tensor2 = (float *)0x10006000; + void* out_data[3] = {out_tensor0, out_tensor1, out_tensor2}; + + // 每个张量的数据量大小(假设每个张量有10个float元素,每个float 4字节) + int copy_size[3] = {40, 40, 40}; // 40字节 = 10 * 4 + + // 调用私有存储版本的函数 + tensorlistsetitem_p(in_data, in_item, out_data, index, tensorlist_size, copy_size); + + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/tensorliststack.rst.txt b/master/html/_sources/functionlib/dsplib/tensorliststack.rst.txt new file mode 100644 index 0000000..50d94d3 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/tensorliststack.rst.txt @@ -0,0 +1,116 @@ +Tensorliststack +=============== + +将多个张量(Tensor)堆叠成一个更大的张量。此算子可以处理不同数据类型的张量,将它们按顺序拼接成一个连续的内存块。 + +.. math:: + + \text{output\_data} = [\text{tensor}_1, \text{tensor}_2, \ldots, \text{tensor}_n] + +其中每个张量的数据类型和元素数量可以不同。 + +输入: + - **tensor_num** - 张量数量,tensor_num > 0 + - **tensor_element_nums** - 每个张量的元素数量(int* 类型) + - **tensor_data_type** - 每个张量元素的数据类型,以字节数表示 + - **tensor_data** - 每个张量数据的起始地址(void** 类型) + - **output_data** - 输出结果的数组起始位置(void* 类型) + - **unknown_type_offset** - 未知类型数据在输出结果中的偏移量 + - **core_mask** - 核掩码(int),仅共享存储版本需要 + +输出: + - **output_data** - 堆叠后的张量数据,按输入顺序连续存储 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - 该算子不区分具体的数据类型,数据类型信息通过tensor_data_type参数传递 + - 当tensor_data_type[i]为0(kTypeUnknown)时,算子会将输出内存清零 + - 当tensor_data_type[i]不为0时,算子会按字节复制数据 + - 调用前需要确保output_data指向的内存空间足够大以容纳所有张量数据 + - TensorList中不同的Tensor数据类型可能不同,类型信息已经在算子中包含 + +**共享存储版本:** + +.. c:function:: void tensorliststack_s(int tensor_num, int *tensor_element_nums, int *tensor_data_type, void **tensor_data, void *output_data, int unknown_type_offset, int core_mask) + +**C调用示例(共享存储版本):** + +.. code-block:: c + :linenos: + :emphasize-lines: 27-28 + + //FT78NE示例 + #include + #include + #include + + int main(int argc, char* argv[]) { + // 假设在DDR空间 + int tensor_num = 2; + + // 每个张量的元素数量 + int tensor_element_nums[] = {3, 2}; + + // 每个张量的数据类型(以字节数表示) + int tensor_data_type[] = {4, 8}; // 32位int(4字节), 64位double(8字节) + + // 张量数据 + int *tensor1 = (int *)0xA0000000; + double *tensor2 = (double *)0xA0100000; + + void *tensor_data[] = {tensor1, tensor2}; + + void *output_data = (void *)0xB0000000; // 输出数据 + int unknown_type_offset = 0; + int core_mask = 0xff; + + // 调用共享存储版本的函数 + tensorliststack_s(tensor_num, tensor_element_nums, tensor_data_type, + tensor_data, output_data, unknown_type_offset, core_mask); + + return 0; + } + +**私有存储版本:** + +.. c:function:: void tensorliststack_p(int tensor_num, int *tensor_element_nums, int *tensor_data_type, void **tensor_data, void *output_data, int unknown_type_offset) + +**C调用示例(私有存储版本):** + +.. code-block:: c + :linenos: + :emphasize-lines: 26-27 + + //FT78NE示例 + #include + #include + #include + + int main(int argc, char* argv[]) { + // 假设在L2空间 + int tensor_num = 2; + + // 每个张量的元素数量 + int tensor_element_nums[] = {3, 2}; + + // 每个张量的数据类型(以字节数表示) + int tensor_data_type[] = {4, 8}; // 32位int(4字节), 64位double(8字节) + + // 张量数据 + int *tensor1 = (int *)0x10000000; + double *tensor2 = (double *)0x10100000; + + void *tensor_data[] = {tensor1, tensor2}; + + void *output_data = (void *)0x10200000; // 输出数据 + int unknown_type_offset = 0; + + // 调用私有存储版本的函数 + tensorliststack_p(tensor_num, tensor_element_nums, tensor_data_type, + tensor_data, output_data, unknown_type_offset); + + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/tile.rst.txt b/master/html/_sources/functionlib/dsplib/tile.rst.txt new file mode 100644 index 0000000..5f13c1d --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/tile.rst.txt @@ -0,0 +1,98 @@ +Tile +================= + +沿着指定的维度 ``tile_dim``,将输入张量的基础块重复平铺 ``tile_num`` 次。该算子通过“加倍拷贝法”利用 DMA 传输实现高效的数据复制。 + +.. math:: + + \text{对于输入张量,其在维度 } tile\_dim \text{ 及其之后维度的连续块大小为 } stride \text{ 个元素。} \\ + \text{算子将该块在输出中连续复制 } tile\_num \text{ 次,构造出平铺后的维度效果。} + +输入: + - **input** - 输入张量数据地址。 + - **output** - 输出张量数据地址。 + - **input_shape** - 输入张量的形状数组地址。 + - **tile_dim** - 执行平铺操作的维度索引(0 到 ndim-1)。 + - **tile_num** - 在指定维度上平铺的次数。 + - **stride** - 平铺块的长度。通常定义为从 ``tile_dim`` 维度到最后一个维度所有形状值的乘积。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 填充后的平铺结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + - 对于复数类型(cplx64/cplx128),``stride`` 依然表示复数元素的个数,算子内部会自动处理双倍宽度的内存拷贝。 + - 算子内部使用 DMA 传输,能够有效提升 DDR 到 DDR 的拷贝效率。 + +**共享存储版本:** + +.. c:function:: void i8_tile_s(int8_t* input, int8_t* output, int *input_shape, int tile_dim, int tile_num, int stride, int core_mask) +.. c:function:: void i16_tile_s(int16_t* input, int16_t* output, int *input_shape, int tile_dim, int tile_num, int stride, int core_mask) +.. c:function:: void i32_tile_s(int32_t* input, int32_t* output, int *input_shape, int tile_dim, int tile_num, int stride, int core_mask) +.. c:function:: void hp_tile_s(half* input, half* output, int *input_shape, int tile_dim, int tile_num, int stride, int core_mask) +.. c:function:: void fp_tile_s(float* input, float* output, int *input_shape, int tile_dim, int tile_num, int stride, int core_mask) +.. c:function:: void dp_tile_s(double* input, double* output, int *input_shape, int tile_dim, int tile_num, int stride, int core_mask) +.. c:function:: void c64_tile_s(float* input, float* output, int *input_shape, int tile_dim, int tile_num, int stride, int core_mask) +.. c:function:: void c128_tile_s(double* input, double* output, int *input_shape, int tile_dim, int tile_num, int stride, int core_mask) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 14 + + // FT78NE 示例:多核并行平铺 + #include + #include "78NE/utils.h" + + int main() { + float *input = (float *)0xA0000000; + float *output = (float *)0xB0000000; + int input_shape[] = {16, 20, 16, 24}; + int tile_dim = 2; + int tile_num = 10; + int stride = 16 * 24; // tile_dim[2]*input_shape[3] + int core_mask = 0b1011; + + fp_tile_s(input, output, input_shape, tile_dim, tile_num, stride, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_tile_p(int8_t* input, int8_t* output, int *input_shape, int tile_dim, int tile_num, int stride) +.. c:function:: void i16_tile_p(int16_t* input, int16_t* output, int *input_shape, int tile_dim, int tile_num, int stride) +.. c:function:: void i32_tile_p(int32_t* input, int32_t* output, int *input_shape, int tile_dim, int tile_num, int stride) +.. c:function:: void hp_tile_p(half* input, half* output, int *input_shape, int tile_dim, int tile_num, int stride) +.. c:function:: void fp_tile_p(float* input, float* output, int *input_shape, int tile_dim, int tile_num, int stride) +.. c:function:: void dp_tile_p(double* input, double* output, int *input_shape, int tile_dim, int tile_num, int stride) +.. c:function:: void c64_tile_p(float* input, float* output, int *input_shape, int tile_dim, int tile_num, int stride) +.. c:function:: void c128_tile_p(double* input, double* output, int *input_shape, int tile_dim, int tile_num, int stride) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + // MT7004 示例:单核私有空间平铺 + #include + + int main() { + float *input = (float *)0x10000000; + float *output = (float *)0x10010000; + int input_shape[] = {4, 10, 8, 12}; + int tile_dim = 2; + int tile_num = 5; + int stride = 8 * 12; + + fp_tile_p(input, output, input_shape, tile_dim, tile_num, stride); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/topkfusion.rst.txt b/master/html/_sources/functionlib/dsplib/topkfusion.rst.txt new file mode 100644 index 0000000..13e89bc --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/topkfusion.rst.txt @@ -0,0 +1,139 @@ +TopkFusion +================= + + +在指定维度上选取 Top-K 个最大值,并同时输出对应的索引。 + +该算子在融合实现中同时完成: + - Top-K 值计算 + - 索引提取 + - 可选的结果排序 + +其计算过程为: +在指定维度上,对每个 slice 进行排序或选择,输出前 ``K`` 个最大元素及其原始索引。 + +当 ``sorted = false`` 时,仅保证输出为 Top-K 元素集合, +不保证其在输出中的顺序;当 ``sorted = true`` 时, +输出结果按值从大到小排序。 + + +输入: + - **input** - 输入张量的数据地址。 + 数据类型需与所调用的 TopkFusion 接口类型一致,例如:``fp_*`` 接口对应 ``float*``,``hp_*`` 接口对应 ``half*``,``i16_*`` 接口对应 ``int16_t*``,``i32_*`` 接口对应 ``int32_t*`` + + - **output** - Top-K 值输出张量的数据地址。 + 数据类型与 ``input`` 保持一致。 + + - **output_index** - Top-K 索引输出张量的数据地址,类型固定为 ``int32_t*``。 + + - **parameter** - Top-K 参数结构体指针 ``TopkParameter*``,其定义如下: + + .. code-block:: c + + typedef struct TopkParameter { + // primitive parameter + OpParameter op_parameter_; + int k_; // 需要选取的 Top-K 个数 + int axis_; // 执行 Top-K 的维度 + bool sorted_; // 是否对 Top-K 结果按值排序 + + // other parameter + int dim_size_; // axis 维度长度 + int outer_loop_num_; // axis 之前维度展开后的循环次数 + int inner_loop_num_; // axis 之后维度展开后的循环次数 + void *topk_node_list_; // 临时 TopK 节点缓冲区 + } TopkParameter; + + - **core_mask** - 核掩码(仅共享存储版本使用)。 + + +输出: + - **output** - Top-K 值输出张量的数据地址。 + - **output_index** - Top-K 索引输出张量的数据地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持的数据类型: + fp32, fp64, int8, int16, int32 + - MT7004 支持的数据类型: + fp16, fp32, int16, int32 + - ``output`` 与 ``output_index`` 的布局与输入张量保持一致,仅在 Top-K 维度长度变为 ``K`` + - TopkFusion 算子内部使用 ``void*`` 进行类型复用, + 但调用时 ``input`` 与 ``output`` 的实际数据类型 + 必须与所选接口前缀严格一致。 + + + +**共享存储版本:** + +.. c:function:: void fp_topk_fusion_s(void* input, void* output, int32_t* output_index, TopkParameter* parameter, int core_mask) +.. c:function:: void hp_topk_fusion_s(void* input, void* output, int32_t* output_index, TopkParameter* parameter, int core_mask) +.. c:function:: void i16_topk_fusion_s(void* input, void* output, int32_t* output_index, TopkParameter* parameter, int core_mask) +.. c:function:: void i32_topk_fusion_s(void* input, void* output, int32_t* output_index, TopkParameter* parameter, int core_mask) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 19 + + // FT78NE 多核示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; + float *output = (float *)0xB0000000; + int32_t *output_index = (int32_t *)0xB1000000; + + TopkParameter param; + param.k_ = 5; + param.dim_size_ = 100; + param.outer_loop_num_ = 1; + param.inner_loop_num_ = 1; + param.sorted_ = 1; + + int core_mask = 0xff; + + fp_topk_fusion_s(input, output, output_index, ¶m, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_topk_fusion_p(void* input, void* output, int32_t* output_index, TopkParameter* parameter) +.. c:function:: void hp_topk_fusion_p(void* input, void* output, int32_t* output_index, TopkParameter* parameter) +.. c:function:: void i16_topk_fusion_p(void* input, void* output, int32_t* output_index, TopkParameter* parameter) +.. c:function:: void i32_topk_fusion_p(void* input, void* output, int32_t* output_index, TopkParameter* parameter) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17 + + // MT7004 单核示例 + #include + #include + + int main(int argc, char* argv[]) { + half *input = (half *)0x10000000; + half *output = (half *)0x10010000; + int32_t *output_index = (int32_t *)0x10020000; + + TopkParameter param; + param.k_ = 3; + param.dim_size_ = 64; + param.outer_loop_num_ = 1; + param.inner_loop_num_ = 1; + param.sorted_ = 0; + + hp_topk_fusion_p(input, output, output_index, ¶m); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/transpose.rst.txt b/master/html/_sources/functionlib/dsplib/transpose.rst.txt new file mode 100644 index 0000000..02dd2ca --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/transpose.rst.txt @@ -0,0 +1,92 @@ +Transpose +================= + +对输入数组按照指定维度顺序(perm)进行转置操作,并输出结果数组。 + +输入: + - **in_data** - 输入数据地址。 + - **num_axes** - 数据维度数。 + - **output_shape** - 输出形状数组。 + - **perm** - 转置维度顺序数组。 + - **strides** - 输入数据每维步长。 + - **out_strides** - 输出数据每维步长。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **out_data** - 转置结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持fp, dp, int8, int16, int32, clx64, cplx128 + - MT7004 支持hp, fp, i16, i32, cplx64 + +**共享存储版本:** + +.. c:function:: void fp_transpose_s(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const float* in_data, float* out_data, int core_mask) +.. c:function:: void hp_transpose_s(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const half* in_data, half* out_data, int core_mask) +.. c:function:: void dp_transpose_s(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const double* in_data, double* out_data, int core_mask) +.. c:function:: void i8_transpose_s(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const int8_t* in_data, int8_t* out_data, int core_mask) +.. c:function:: void i16_transpose_s(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const int16_t* in_data, int16_t* out_data, int core_mask) +.. c:function:: void i32_transpose_s(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const int* in_data, int* out_data, int core_mask) +.. c:function:: void c64_transpose_s(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const float* in_data, float* out_data, int core_mask) +.. c:function:: void c128_transpose_s(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const double* in_data, double* out_data, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + #include + #include + + int main() { + float *input = (float *)0xA0000000; // 输入在DDR空间 + float *output = (float *)0xC0000000; + int num_axes = 4; + int output_shape[4] = {1, 3, 224, 224}; + int perm[4] = {0, 2, 3, 1}; + int strides[4] = {150528, 50176, 224, 1}; + int out_strides[4] = {150528, 50176, 224, 1}; + int core_mask = 0xff; + + fp_transpose_s(num_axes, output_shape, perm, strides, out_strides, input, output, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_transpose_p(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const float* in_data, float* out_data) +.. c:function:: void hp_transpose_p(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const half* in_data, half* out_data) +.. c:function:: void dp_transpose_p(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const double* in_data, double* out_data) +.. c:function:: void i8_transpose_p(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const int8_t* in_data, int8_t* out_data) +.. c:function:: void i16_transpose_p(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const int16_t* in_data, int16_t* out_data) +.. c:function:: void i32_transpose_p(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const int* in_data, int* out_data) +.. c:function:: void c64_transpose_p(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const float* in_data, float* out_data) +.. c:function:: void c128_transpose_p(int num_axes, const int* output_shape, int* perm, int* strides, int* out_strides, const double* in_data, double* out_data) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 13 + + #include + #include + + int main() { + float *input = (float *)0x10810000; // 输入在L2空间 + float *output = (float *)0x10820000; + int num_axes = 4; + int output_shape[4] = {1, 3, 224, 224}; + int perm[4] = {0, 2, 3, 1}; + int strides[4] = {150528, 50176, 224, 1}; + int out_strides[4] = {150528, 50176, 224, 1}; + + fp_transpose_p(num_axes, output_shape, perm, strides, out_strides, input, output); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/tril.rst.txt b/master/html/_sources/functionlib/dsplib/tril.rst.txt new file mode 100644 index 0000000..02176aa --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/tril.rst.txt @@ -0,0 +1,136 @@ +Tril +================= + +返回输入张量的下三角部分,其余部分设置为零 + +对于输入形状为 :math:`(*, H, W)` 的张量,返回每个 :math:`H \times W` 矩阵的下三角部分。 + +.. math:: + + \text{output}[i,j] = \begin{cases} + \text{input}[i,j], & \text{if } j \leq i + k \\ + 0, & \text{otherwise} + \end{cases} + +其中 :math:`k` 为对角线偏移量: + - :math:`k = 0`:主对角线(默认) + - :math:`k > 0`:主对角线上方第 k 条对角线 + - :math:`k < 0`:主对角线下方第 k 条对角线 + +输入: + - **src** - 输入数据地址。 + - **k** - 对角线偏移量,默认为 0。 + - **height** - 矩阵高度。 + - **width** - 矩阵宽度。 + - **out_elems** - 输出矩阵的数量(批量大小)。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **dst** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_tril_s(int8_t* dst, int8_t* src, int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void i16_tril_s(int16_t* dst, int16_t* src, int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void i32_tril_s(int32_t* dst, int32_t* src, int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void hp_tril_s(half* dst, half* src, int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void fp_tril_s(float* dst, float* src, int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void dp_tril_s(double* dst, double* src, int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void c64_tril_s(float (*dst)[2], float (*src)[2], int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void c128_tril_s(double (*dst)[2], double (*src)[2], int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; //input在DDR空间 + float *output = (float *)0xB0000000; //output在DDR空间 + int64_t k = 0; // 主对角线 + int64_t height = 4; // 矩阵高度 + int64_t width = 4; // 矩阵宽度 + int64_t out_elems = 1; // 矩阵数量 + int core_mask = 0xff; + fp_tril_s(output, input, core_mask, k, height, width, out_elems); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_tril_p(int8_t* dst, int8_t* src, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void i16_tril_p(int16_t* dst, int16_t* src, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void i32_tril_p(int32_t* dst, int32_t* src, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void hp_tril_p(half* dst, half* src, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void fp_tril_p(float* dst, float* src, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void dp_tril_p(double* dst, double* src, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void c64_tril_p(float (*dst)[2], float (*src)[2], int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void c128_tril_p(double (*dst)[2], double (*src)[2], int64_t k, int64_t height, int64_t width, int64_t out_elems) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10810000; //input在L2空间 + float *output = (float *)0x10850000; //output在L2空间 + int64_t k = 0; // 主对角线 + int64_t height = 4; // 矩阵高度 + int64_t width = 4; // 矩阵宽度 + int64_t out_elems = 1; // 矩阵数量 + fp_tril_p(output, input, k, height, width, out_elems); + return 0; + } + +.. note:: + **示例说明:** + + 对于 4x4 矩阵,k=0 时的下三角输出示例: + + .. code-block:: text + + 输入矩阵: 输出矩阵: + 1 2 3 4 1 0 0 0 + 5 6 7 8 => 5 6 0 0 + 9 10 11 12 9 10 11 0 + 13 14 15 16 13 14 15 16 + + k=1 时(上移一条对角线,包含更多元素): + + .. code-block:: text + + 输入矩阵: 输出矩阵: + 1 2 3 4 1 2 0 0 + 5 6 7 8 => 5 6 7 0 + 9 10 11 12 9 10 11 12 + 13 14 15 16 13 14 15 16 + + k=-1 时(下移一条对角线,更严格的下三角): + + .. code-block:: text + + 输入矩阵: 输出矩阵: + 1 2 3 4 0 0 0 0 + 5 6 7 8 => 5 0 0 0 + 9 10 11 12 9 10 0 0 + 13 14 15 16 13 14 15 0 diff --git a/master/html/_sources/functionlib/dsplib/triu.rst.txt b/master/html/_sources/functionlib/dsplib/triu.rst.txt new file mode 100644 index 0000000..b12017a --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/triu.rst.txt @@ -0,0 +1,129 @@ +Triu +================= + +返回输入张量的上三角部分,其余部分设置为零 + +对于输入形状为 :math:`(*, H, W)` 的张量,返回每个 :math:`H \times W` 矩阵的上三角部分。 + +.. math:: + + \text{output}[i,j] = \begin{cases} + \text{input}[i,j], & \text{if } j \geq i + k \\ + 0, & \text{otherwise} + \end{cases} + +其中 :math:`k` 为对角线偏移量: + - :math:`k = 0`:主对角线(默认) + - :math:`k > 0`:主对角线上方第 k 条对角线 + - :math:`k < 0`:主对角线下方第 k 条对角线 + +输入: + - **src** - 输入数据地址。 + - **k** - 对角线偏移量,默认为 0。 + - **height** - 矩阵高度。 + - **width** - 矩阵宽度。 + - **out_elems** - 输出矩阵的数量(批量大小)。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **dst** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_triu_s(int8_t* dst, int8_t* src, int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void i16_triu_s(int16_t* dst, int16_t* src, int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void i32_triu_s(int32_t* dst, int32_t* src, int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void hp_triu_s(half* dst, half* src, int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void fp_triu_s(float* dst, float* src, int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void dp_triu_s(double* dst, double* src, int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void c64_triu_s(float (*dst)[2], float (*src)[2], int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void c128_triu_s(double (*dst)[2], double (*src)[2], int core_mask, int64_t k, int64_t height, int64_t width, int64_t out_elems) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 13 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; //input在DDR空间 + float *output = (float *)0xB0000000; //output在DDR空间 + int64_t k = 0; // 主对角线 + int64_t height = 4; // 矩阵高度 + int64_t width = 4; // 矩阵宽度 + int64_t out_elems = 1; // 矩阵数量 + int core_mask = 0xff; + fp_triu_s(output, input, core_mask, k, height, width, out_elems); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_triu_p(int8_t* dst, int8_t* src, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void i16_triu_p(int16_t* dst, int16_t* src, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void i32_triu_p(int32_t* dst, int32_t* src, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void hp_triu_p(half* dst, half* src, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void fp_triu_p(float* dst, float* src, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void dp_triu_p(double* dst, double* src, int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void c64_triu_p(float (*dst)[2], float (*src)[2], int64_t k, int64_t height, int64_t width, int64_t out_elems) +.. c:function:: void c128_triu_p(double (*dst)[2], double (*src)[2], int64_t k, int64_t height, int64_t width, int64_t out_elems) + + **C调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 12 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10810000; //input在L2空间 + float *output = (float *)0x10850000; //output在L2空间 + int64_t k = 0; // 主对角线 + int64_t height = 4; // 矩阵高度 + int64_t width = 4; // 矩阵宽度 + int64_t out_elems = 1; // 矩阵数量 + fp_triu_p(output, input, k, height, width, out_elems); + return 0; + } + +**示例说明:** + +对于 4x4 矩阵,k=0 时的上三角输出示例:: + + 输入矩阵: 输出矩阵: + 1 2 3 4 1 2 3 4 + 5 6 7 8 => 0 6 7 8 + 9 10 11 12 0 0 11 12 + 13 14 15 16 0 0 0 16 + +k=1 时(上移一条对角线):: + + 输入矩阵: 输出矩阵: + 1 2 3 4 0 2 3 4 + 5 6 7 8 => 0 0 7 8 + 9 10 11 12 0 0 0 12 + 13 14 15 16 0 0 0 0 + +k=-1 时(下移一条对角线):: + + 输入矩阵: 输出矩阵: + 1 2 3 4 1 2 3 4 + 5 6 7 8 => 5 6 7 8 + 9 10 11 12 0 10 11 12 + 13 14 15 16 0 0 15 16 diff --git a/master/html/_sources/functionlib/dsplib/uniform_real.rst.txt b/master/html/_sources/functionlib/dsplib/uniform_real.rst.txt new file mode 100644 index 0000000..b495a7c --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/uniform_real.rst.txt @@ -0,0 +1,73 @@ +UniformReal +================= +生成服从均匀分布的随机数序列,输出范围为 :math:`[0, 1)`。 + +.. math:: + + output_i \sim \mathcal{U}(0, 1) + +输入: + - **length** - 输出数据长度。 + - **seed** - 随机数种子 1。 + - **seed2** - 随机数种子 2。 + - **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 生成的随机数结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp32 + - MT7004 支持 fp32, fp16 + - 随机数生成基于输入种子 `seed` 与 `seed2`,相同的种子对应确定性输出。 + +**共享存储版本:** + +.. c:function:: void fp_uniform_real_s(float* output, int length, int seed, int seed2, int core_mask) +.. c:function:: void hp_uniform_real_s(half* output, int length, int seed, int seed2, int core_mask) + + **C 调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 10 + + // FT78NE 示例 + #include + + int main(int argc, char* argv[]) { + float *output = (float *)0xA0000000; // output 在 DDR 空间 + int length = 1024; + int seed = 1234; + int seed2 = 5678; + int core_mask = 0xff; + fp_uniform_real_s(output, length, seed, seed2, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void fp_uniform_real_p(float* output, int length, int seed, int seed2) +.. c:function:: void hp_uniform_real_p(half* output, int length, int seed, int seed2) + + **C 调用示例:** + + .. code-block:: c + :linenos: + :emphasize-lines: 9 + + // MT7004 示例 + #include + + int main(int argc, char* argv[]) { + float *output = (float *)0x10010000; + int length = 1024; + int seed = 1234; + int seed2 = 5678; + fp_uniform_real_p(output, length, seed, seed2); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/unique.rst.txt b/master/html/_sources/functionlib/dsplib/unique.rst.txt new file mode 100644 index 0000000..4d26e1a --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/unique.rst.txt @@ -0,0 +1,95 @@ +Unique +================= + + +对输入张量进行去重操作,返回去重后的元素组成的张量。 + +.. math:: + + \text{output} = \text{unique}(\text{input}) + +该算子遍历输入张量的所有元素,对于每个元素,如果它尚未出现在输出张量中,则将其添加到输出张量中。最终输出张量包含了输入张量中的所有唯一元素,且保持它们首次出现的相对顺序。 + +输入: + - **input** - 输入张量的数据地址。 + - **input_len** - 输入张量的元素数量。 + +输出: + - **output0** - 去重后的元素组成的张量。 + - **output0_len** - 实际去重后的元素数量。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_Unique_s(int8_t *input, int input_len, int8_t *output0, int32_t *output0_len, int core_mask) +.. c:function:: void i16_Unique_s(int16_t *input, int input_len, int16_t *output0, int32_t *output0_len, int core_mask) +.. c:function:: void i32_Unique_s(int32_t *input, int input_len, int32_t *output0, int32_t *output0_len, int core_mask) +.. c:function:: void hp_Unique_s(half *input, int input_len, half *output0, int32_t *output0_len, int core_mask) +.. c:function:: void fp_Unique_s(float *input, int input_len, float *output0, int32_t *output0_len, int core_mask) +.. c:function:: void dp_Unique_s(double *input, int input_len, double *output0, int32_t *output0_len, int core_mask) +.. c:function:: void c64_Unique_s(float *input, int input_len, float *output0, int32_t *output0_len, int core_mask) +.. c:function:: void c128_Unique_s(double *input, int input_len, double *output0, int32_t *output0_len, int core_mask) + + +**C调用示例(共享存储版本):** + +.. code-block:: c + :linenos: + :emphasize-lines: 12 + + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // 输入张量在DDR空间 + int input_len = 10; // 输入张量长度 + float *output0 = (float *)0xB0000000; // 输出张量在DDR空间 + int32_t output0_len; // 输出张量长度 + int core_mask = 0xff; // 核掩码 + + // 调用Unique算子 + fp_Unique_s(input, input_len, output0, &output0_len, core_mask); + + printf("Unique elements count: %d\n", output0_len); + return 0; + } + +**私有存储版本:** + +.. c:function:: void i8_Unique_p(int8_t *input, int input_len, int8_t *output0, int32_t *output0_len) +.. c:function:: void i16_Unique_p(int16_t *input, int input_len, int16_t *output0, int32_t *output0_len) +.. c:function:: void i32_Unique_p(int32_t *input, int input_len, int32_t *output0, int32_t *output0_len) +.. c:function:: void hp_Unique_p(half *input, int input_len, half *output0, int32_t *output0_len) +.. c:function:: void fp_Unique_p(float *input, int input_len, float *output0, int32_t *output0_len) +.. c:function:: void dp_Unique_p(double *input, int input_len, double *output0, int32_t *output0_len) +.. c:function:: void c64_Unique_p(float *input, int input_len, float *output0, int32_t *output0_len) +.. c:function:: void c128_Unique_p(double *input, int input_len, double *output0, int32_t *output0_len) + +**C调用示例(私有存储版本):** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; // 输入张量在L2空间 + int input_len = 10; // 输入张量长度 + float *output0 = (float *)0x11000000; // 输出张量在L2空间 + int32_t output0_len; // 输出张量长度 + + // 调用Unique算子 + fp_Unique_p(input, input_len, output0, &output0_len); + + printf("Unique elements count: %d\n", output0_len); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/unsortedsegmentsum.rst.txt b/master/html/_sources/functionlib/dsplib/unsortedsegmentsum.rst.txt new file mode 100644 index 0000000..14a0f1d --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/unsortedsegmentsum.rst.txt @@ -0,0 +1,113 @@ +UnsortedSegmentSum +==================== + +对输入张量按给定的 segment 索引进行无序分段求和操作。 + +对于每个输入元素,根据其对应的 ``index`` 值,将其累加到输出张量中 +对应的 segment 位置。不同 segment 之间的顺序不做任何排序保证。 + +.. math:: + + \text{output}_{s, j} = \sum_{i \,|\, index_i = s} \text{input}_{i, j} + +其中: + +- :math:`i \in [0, \text{dim0})` +- :math:`j \in [0, \text{dim1})` +- :math:`s \in [0, \text{id\_max})` + +输入: + - **input** - 输入张量的数据地址。 + 数据类型需与所调用的 UnsortedSegmentSum 接口类型一致。 + + - **index** - segment 索引数组地址,类型为 ``int*``, + 长度为 ``dim0``,用于指定每一行输入数据所属的 segment。 + + - **dim0** - 输入张量的第 0 维大小(segment 数量维度)。 + + - **dim1** - 输入张量的第 1 维大小(每个 segment 内的元素数量)。 + + - **id_max** - segment 的最大数量,决定输出张量的第 0 维大小。 + + - **core_mask** - 核掩码(仅共享存储版本使用)。 + +输出: + - **output** - 输出张量的数据地址, + 形状为 ``[id_max, dim1]``, + 数据类型与 ``input`` 保持一致。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - 该算子为无序分段求和(Unsorted),不保证 segment 内或 segment 间的顺序。 + - 输出张量在计算前会被初始化为 0。 + - ``index`` 中的取值范围应满足 ``0 <= index[i] < id_max``。 + +**共享存储版本:** + +.. c:function:: void fp_unsorted_segment_sum_s(float* input, float* output, int* index, int dim0, int dim1, int id_max, int core_mask) +.. c:function:: void dp_unsorted_segment_sum_s(double* input, double* output, int* index, int dim0, int dim1, int id_max, int core_mask) +.. c:function:: void i8_unsorted_segment_sum_s(int8_t* input, int8_t* output, int* index, int dim0, int dim1, int id_max, int core_mask) +.. c:function:: void i16_unsorted_segment_sum_s(int16_t* input, int16_t* output, int* index, int dim0, int dim1, int id_max, int core_mask) +.. c:function:: void i32_unsorted_segment_sum_s(int32_t* input, int32_t* output, int* index, int dim0, int dim1, int id_max, int core_mask) +.. c:function:: void c64_unsorted_segment_sum_s(float* input, float* output, int* index, int dim0, int dim1, int id_max, int core_mask) +.. c:function:: void c128_unsorted_segment_sum_s(double* input, double* output, int* index, int dim0, int dim1, int id_max, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + // FT78NE 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; // input 在 DDR 空间 + float *output = (float *)0xB0000000; + int *index = (int *)0xA1000000; + + int dim0 = 128; + int dim1 = 64; + int id_max = 16; + int core_mask = 0xff; + + fp_unsorted_segment_sum_s(input, output, index, dim0, dim1, id_max, core_mask); + return 0; + } + +**私有存储版本:** + +.. c:function:: void fp_unsorted_segment_sum_p(float* input, float* output, int* index, int dim0, int dim1, int id_max) +.. c:function:: void dp_unsorted_segment_sum_p(double* input, double* output, int* index, int dim0, int dim1, int id_max) +.. c:function:: void i8_unsorted_segment_sum_p(int8_t* input, int8_t* output, int* index, int dim0, int dim1, int id_max) +.. c:function:: void i16_unsorted_segment_sum_p(int16_t* input, int16_t* output, int* index, int dim0, int dim1, int id_max) +.. c:function:: void i32_unsorted_segment_sum_p(int32_t* input, int32_t* output, int* index, int dim0, int dim1, int id_max) +.. c:function:: void c64_unsorted_segment_sum_p(float* input, float* output, int* index, int dim0, int dim1, int id_max) +.. c:function:: void c128_unsorted_segment_sum_p(double* input, double* output, int* index, int dim0, int dim1, int id_max) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 14 + + // MT7004 示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0x10000000; // input 在 L2 空间 + float *output = (float *)0x10010000; + int *index = (int *)0x10020000; + + int dim0 = 64; + int dim1 = 32; + int id_max = 8; + + fp_unsorted_segment_sum_p(input, output, index, dim0, dim1, id_max); + return 0; + } diff --git a/master/html/_sources/functionlib/dsplib/unstack.rst.txt b/master/html/_sources/functionlib/dsplib/unstack.rst.txt new file mode 100644 index 0000000..271b46f --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/unstack.rst.txt @@ -0,0 +1,89 @@ +Unstack +================= + + + +沿指定轴将输入张量拆分为多个子张量,输出子张量按内存顺序排列。 + +.. math:: + + output_i = input[\text{index along axis}] + \quad \text{for each slice along } axis + +输入: + - **input** - 输入张量地址。 + - **shape** - 输入张量各维度大小数组。 + - **ndim** - 输入张量维度。 + - **axis** - 拆分的维度索引。 + - **data_size** - 单个元素字节大小。 + +输出: + - **output** - 输出张量地址数组,长度等于 ``shape[axis]``。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp32, fp64, int8, int16, int32, cplx64, cplx128 + - MT7004 支持 fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void unstack_s(void* input, void* output, int* shape, int ndim, int axis, Uint32 data_size, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 17 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *input = (float *)0xA0000000; + + float *out0 = (float *)0xC0000000; + float *out1 = (float *)0xC0100000; + float *outputs[2] = {out0, out1}; + + int shape[2] = {2, 128}; + int ndim = 2; + int axis = 0; + int core_mask = 0xff; + + unstack_s(input, outputs, shape, ndim, axis, sizeof(float), core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void unstack_p(void* input, void* output, int* shape, int ndim, int axis, Uint32 data_size) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 15 + + //MT7004示例 + #include + #include + + int main(int argc, char* argv[]) { + half *input = (half *)0x10800000; + half *out0 = (half *)0x10810000; + half *out1 = (half *)0x10820000; + half *outputs[2] = {out0, out1}; + + int shape[3] = {1, 2, 64}; + int ndim = 3; + int axis = 1; + + unstack_p(input, outputs, shape, ndim, axis, sizeof(half)); + return 0; + } + diff --git a/master/html/_sources/functionlib/dsplib/where.rst.txt b/master/html/_sources/functionlib/dsplib/where.rst.txt new file mode 100644 index 0000000..62d94aa --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/where.rst.txt @@ -0,0 +1,94 @@ +Where +================= + + + +逐元素根据条件选择两个输入中的元素 + +.. math:: + + output_i = \begin{cases} + input0_i, & \text{if } condition_i \text{ is True} \\ + input1_i, & \text{if } condition_i \text{ is False} + \end{cases} + +输入: + - **input0** - 第一个输入数据地址。 + - **input1** - 第二个输入数据地址。 + - **condition** - 条件数据地址。 + - **length** - 计算长度。 + - **core_mask** - 核掩码(仅共享存储版本需要)。 + +输出: + - **output** - 计算结果地址。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持int8, int16, int32, fp16, fp32, fp64, cplx64, cplx128 + - MT7004 支持fp16, fp32, int16, int32, cplx64 + +**共享存储版本:** + +.. c:function:: void i8_where_s(int8_t* input0, int8_t* input1, bool* condition, int8_t* output, int length, int core_mask) +.. c:function:: void i16_where_s(int16_t* input0, int16_t* input1, bool* condition, int16_t* output, int length, int core_mask) +.. c:function:: void i32_where_s(int32_t* input0, int32_t* input1, bool* condition, int32_t* output, int length, int core_mask) +.. c:function:: void hp_where_s(half* input0, half* input1, bool* condition, half* output, int length, int core_mask) +.. c:function:: void fp_where_s(float* input0, float* input1, bool* condition, float* output, int length, int core_mask) +.. c:function:: void dp_where_s(double* input0, double* input1, bool* condition, double* output, int length, int core_mask) +.. c:function:: void c64_where_s(float* input0, float* input1, bool* condition, float* output, int length, int core_mask) +.. c:function:: void c128_where_s(double* input0, double* input1, bool* condition, double* output, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 11 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input0 = (float *)0xA0000000; //input0在DDR空间 + float *input1 = (float *)0xB0000000; //input1在DDR空间 + bool *condition = (bool *)0xC0000000; //condition在DDR空间 + float *output = (float *)0xD0000000; //output在DDR空间 + int length = 1000; + int core_mask = 0xff; + fp_where_s(input0, input1, condition, output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_where_p(int8_t* input0, int8_t* input1, bool* condition, int8_t* output, int length) +.. c:function:: void i16_where_p(int16_t* input0, int16_t* input1, bool* condition, int16_t* output, int length) +.. c:function:: void i32_where_p(int32_t* input0, int32_t* input1, bool* condition, int32_t* output, int length) +.. c:function:: void hp_where_p(half* input0, half* input1, bool* condition, half* output, int length) +.. c:function:: void fp_where_p(float* input0, float* input1, bool* condition, float* output, int length) +.. c:function:: void dp_where_p(double* input0, double* input1, bool* condition, double* output, int length) +.. c:function:: void c64_where_p(float* input0, float* input1, bool* condition, float* output, int length) +.. c:function:: void c128_where_p(double* input0, double* input1, bool* condition, double* output, int length) + + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + int main(int argc, char* argv[]) { + float *input0 = (float *)0x10000000; //input0在L2空间 + float *input1 = (float *)0x10001000; //input1在L2空间 + bool *condition = (bool *)0x10002000; //condition在L2空间 + float *output = (float *)0x10003000; //output在L2空间 + int length = 1000; + fp_where_p(input0, input1, condition, output, length); + return 0; + } \ No newline at end of file diff --git a/master/html/_sources/functionlib/dsplib/zeroslike.rst.txt b/master/html/_sources/functionlib/dsplib/zeroslike.rst.txt new file mode 100644 index 0000000..c54abe8 --- /dev/null +++ b/master/html/_sources/functionlib/dsplib/zeroslike.rst.txt @@ -0,0 +1,87 @@ +ZerosLike +================= + + + +将输出数组逐元素置为 0。 +该算子不依赖输入数据,仅根据给定长度与数据类型,对输出缓冲区进行清零操作,常用于初始化张量或中间结果。 + +.. math:: + + dst_i = 0 + +输入: + - **length** - 计算长度。 + - **core_mask** - 核掩码(仅适用于共享存储版本)。 + +输出: + - **output** - 输出数据地址,逐元素被置为 0。 + +支持平台: + ``FT78NE`` + ``MT7004`` + +.. note:: + - FT78NE 支持 fp, dp, int8, int16, int32, cplx64, cplx128 + - MT7004 支持 hp, fp, int16, int32, cplx64 + - 复数类型中实部与虚部均被置为 0 + +**共享存储版本:** + +.. c:function:: void i8_zerolike_s(int8_t* output, int length, int core_mask) +.. c:function:: void i16_zerolike_s(int16_t* output, int length, int core_mask) +.. c:function:: void i32_zerolike_s(int32_t* output, int length, int core_mask) +.. c:function:: void hp_zerolike_s(half* output, int length, int core_mask) +.. c:function:: void fp_zerolike_s(float* output, int length, int core_mask) +.. c:function:: void dp_zerolike_s(double* output, int length, int core_mask) +.. c:function:: void c64_zerolike_s(float* output, int length, int core_mask) +.. c:function:: void c128_zerolike_s(double* output, int length, int core_mask) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 10 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *output = (float *)0xA0000000; // output在DDR空间 + int length = 1024; + int core_mask = 0xff; + + fp_zerolike_s(output, length, core_mask); + return 0; + } + + +**私有存储版本:** + +.. c:function:: void i8_zerolike_p(int8_t* output, int length) +.. c:function:: void i16_zerolike_p(int16_t* output, int length) +.. c:function:: void i32_zerolike_p(int32_t* output, int length) +.. c:function:: void hp_zerolike_p(half* output, int length) +.. c:function:: void fp_zerolike_p(float* output, int length) +.. c:function:: void dp_zerolike_p(double* output, int length) +.. c:function:: void c64_zerolike_p(float* output, int length) +.. c:function:: void c128_zerolike_p(double* output, int length) + +**C调用示例:** + +.. code-block:: c + :linenos: + :emphasize-lines: 9 + + //FT78NE示例 + #include + #include + + int main(int argc, char* argv[]) { + float *output = (float *)0x10810000; // output在L2空间 + int length = 1024; + + fp_zerolike_p(output, length); + return 0; + } diff --git a/master/html/_sources/functionlib/rstfiles.rst.txt b/master/html/_sources/functionlib/rstfiles.rst.txt new file mode 100644 index 0000000..3282db7 --- /dev/null +++ b/master/html/_sources/functionlib/rstfiles.rst.txt @@ -0,0 +1,7 @@ +算子库支持 +========== + +.. toctree:: + :maxdepth: 2 + + dsplib/dsplib_index \ No newline at end of file diff --git a/master/html/_sources/rstfiles.rst.txt b/master/html/_sources/rstfiles.rst.txt new file mode 100644 index 0000000..84ad063 --- /dev/null +++ b/master/html/_sources/rstfiles.rst.txt @@ -0,0 +1,13 @@ +.. MindSpore Signal+ 使用手册 documentation master file, created by + sphinx-quickstart on Tue Aug 12 10:28:49 2025. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +MindSpore Signal+ 使用手册 +========================== + + +.. toctree:: + :maxdepth: 2 + + functionlib/rstfiles diff --git a/master/html/appdevelop/ai_dsp/gray_cnn.html b/master/html/appdevelop/ai_dsp/gray_cnn.html index 2390613..17ca0e0 100644 --- a/master/html/appdevelop/ai_dsp/gray_cnn.html +++ b/master/html/appdevelop/ai_dsp/gray_cnn.html @@ -22,9 +22,7 @@ - - - + @@ -35,7 +33,7 @@ - + MindSpore Signal+ 使用手册

@@ -46,24 +44,8 @@
@@ -72,16 +54,14 @@
-
+

-

© 版权所有 2025 - 2025, NUDT-674。

+

© 版权所有 2025 - 2026, NUDT-674。

利用 Sphinx 构建,使用的 diff --git a/master/html/appdevelop/ai_dsp/index.html b/master/html/appdevelop/ai_dsp/index.html index 92c9a20..50b5e66 100644 --- a/master/html/appdevelop/ai_dsp/index.html +++ b/master/html/appdevelop/ai_dsp/index.html @@ -22,9 +22,7 @@ - - - + @@ -35,7 +33,7 @@ - + MindSpore Signal+ 使用手册
@@ -46,19 +44,8 @@
@@ -67,15 +54,14 @@
-
+

-

© 版权所有 2025 - 2025, NUDT-674。

+

© 版权所有 2025 - 2026, NUDT-674。

利用 Sphinx 构建,使用的 diff --git a/master/html/appdevelop/autocodegen/index.html b/master/html/appdevelop/autocodegen/index.html index 97a9ad2..524ca0b 100644 --- a/master/html/appdevelop/autocodegen/index.html +++ b/master/html/appdevelop/autocodegen/index.html @@ -21,9 +21,7 @@ - - - + @@ -34,7 +32,7 @@ - + MindSpore Signal+ 使用手册
@@ -45,18 +43,8 @@
@@ -65,15 +53,14 @@
-
+

-

© 版权所有 2025 - 2025, NUDT-674。

+

© 版权所有 2025 - 2026, NUDT-674。

利用 Sphinx 构建,使用的 diff --git a/master/html/appdevelop/dsp/index.html b/master/html/appdevelop/dsp/index.html index 871b6bd..dd1d89c 100644 --- a/master/html/appdevelop/dsp/index.html +++ b/master/html/appdevelop/dsp/index.html @@ -21,9 +21,7 @@ - - - + @@ -34,7 +32,7 @@ - + MindSpore Signal+ 使用手册
@@ -45,19 +43,8 @@
@@ -66,15 +53,14 @@
-
+

-

© 版权所有 2025 - 2025, NUDT-674。

+

© 版权所有 2025 - 2026, NUDT-674。

利用 Sphinx 构建,使用的 diff --git a/master/html/appdevelop/dsp/rdsar.html b/master/html/appdevelop/dsp/rdsar.html index 2438cc6..b736448 100644 --- a/master/html/appdevelop/dsp/rdsar.html +++ b/master/html/appdevelop/dsp/rdsar.html @@ -21,9 +21,7 @@ - - - + @@ -34,7 +32,7 @@ - + MindSpore Signal+ 使用手册
@@ -45,26 +43,8 @@
@@ -73,16 +53,14 @@
-
+

-

© 版权所有 2025 - 2025, NUDT-674。

+

© 版权所有 2025 - 2026, NUDT-674。

利用 Sphinx 构建,使用的 diff --git a/master/html/appdevelop/index.html b/master/html/appdevelop/index.html index 84ecc90..482cd4e 100644 --- a/master/html/appdevelop/index.html +++ b/master/html/appdevelop/index.html @@ -22,9 +22,7 @@ - - - + @@ -35,7 +33,7 @@ - + MindSpore Signal+ 使用手册
@@ -46,16 +44,8 @@
@@ -64,14 +54,14 @@
-
+

-

© 版权所有 2025 - 2025, NUDT-674。

+

© 版权所有 2025 - 2026, NUDT-674。

利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/custom_op/complex_abs.html b/master/html/functionlib/custom_op/complex_abs.html index 4d0b85d..78ad0a3 100644 --- a/master/html/functionlib/custom_op/complex_abs.html +++ b/master/html/functionlib/custom_op/complex_abs.html @@ -22,9 +22,7 @@ - - - + @@ -35,7 +33,7 @@ - + MindSpore Signal+ 使用手册
@@ -46,24 +44,8 @@
@@ -72,16 +54,14 @@
-
+

-

© 版权所有 2025 - 2025, NUDT-674。

+

© 版权所有 2025 - 2026, NUDT-674。

利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/custom_op/fft.html b/master/html/functionlib/custom_op/fft.html index c6b66bb..00db727 100644 --- a/master/html/functionlib/custom_op/fft.html +++ b/master/html/functionlib/custom_op/fft.html @@ -22,9 +22,7 @@ - - - + @@ -35,7 +33,7 @@ - + MindSpore Signal+ 使用手册
@@ -46,24 +44,8 @@
@@ -72,16 +54,14 @@
-
+

-

© 版权所有 2025 - 2025, NUDT-674。

+

© 版权所有 2025 - 2026, NUDT-674。

利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/custom_op/ifft.html b/master/html/functionlib/custom_op/ifft.html index 9dacbed..9d94c40 100644 --- a/master/html/functionlib/custom_op/ifft.html +++ b/master/html/functionlib/custom_op/ifft.html @@ -22,9 +22,7 @@ - - - + @@ -35,7 +33,7 @@ - + MindSpore Signal+ 使用手册
@@ -46,24 +44,8 @@
@@ -72,16 +54,14 @@
-
+

-

© 版权所有 2025 - 2025, NUDT-674。

+

© 版权所有 2025 - 2026, NUDT-674。

利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/custom_op/index.html b/master/html/functionlib/custom_op/index.html index 4d3affd..8d9d78d 100644 --- a/master/html/functionlib/custom_op/index.html +++ b/master/html/functionlib/custom_op/index.html @@ -22,9 +22,7 @@ - - - + @@ -35,7 +33,7 @@ - + MindSpore Signal+ 使用手册
@@ -46,21 +44,8 @@
@@ -69,15 +54,14 @@
-
@@ -112,15 +277,15 @@
    -
  • - +
  • +
  • @@ -151,7 +316,7 @@
  • Clip - 将输入裁剪到区间 [min_val, max_val]

    -\[output_i = \min(\max(input_i, \text{min_val}), \text{max_val})\]
    +\[output_i = \min(\max(input_i, \text{min\_val}), \text{max\_val})\]
  • LRelu - 带泄露的线性整流单元(Leaky Rectified Linear Unit),它在输入为正时保持线性,在输入为负时也保留一个很小的斜率,以避免标准 ReLU 中的“死亡神经元”问题。

    @@ -227,7 +392,7 @@ input_i \,\Phi(input_i)
    \[\begin{split}output_i = \begin{cases} - input_i, & input_i \gt 88.0 \\ + input_i, & input_i > 88.0 \\ \ln(1 + e^{input_i}), & \text{otherwise} \end{cases}\end{split}\]
    @@ -237,7 +402,7 @@ input_i \,\Phi(input_i)
    \[\begin{split}output_i = \begin{cases} - input_i, & input_i \ge 0 \\ + input_i, & input_i >= 0 \\ \alpha (e^{input_i} - 1), & input_i < 0 \end{cases}\end{split}\]
    @@ -248,7 +413,7 @@ input_i \,\Phi(input_i)
    \[\begin{split}output_i = \begin{cases} -input_i, & input_i \ge 0 \\ +input_i, & input_i >= 0 \\ \alpha (e^{\frac{input_i}{alpha}} - 1), & input_i < 0 \end{cases}\end{split}\]

    其中 \(\alpha\) 为可调超参数,用于控制负区间的平滑程度。

    @@ -864,7 +1029,7 @@ input_i + \lambda, & \text{if } input_i < -\lambda \\
    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/activation_grad.html b/master/html/functionlib/dsplib/activation_grad.html new file mode 100644 index 0000000..bed1682 --- /dev/null +++ b/master/html/functionlib/dsplib/activation_grad.html @@ -0,0 +1,542 @@ + + + + + + + + + ActivationGrad — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    ActivationGrad

    +

    激活函数梯度计算算子系列。该系列算子根据激活函数的输入(或输出)以及上一层传回的梯度,计算并输出当前层的梯度。

    +
    +\[\text{通用公式:}\quad dst_i = src0_i \cdot f'(src1_i)\]
    +

    其中 \(src0\) 为梯度输入(Output Gradient),\(src1\) 为激活函数的原始输入或输出(取决于具体激活函数类型),\(f'\) 为激活函数的导数。

    +
    +
    包含算子列表:
      +
    • ReluGrad: ReLU 激活梯度。

    • +
    • Relu6Grad: ReLU6 激活梯度。

    • +
    • LeakyReluGrad (l_relu_grad): Leaky ReLU 激活梯度,需传入参数 alpha

    • +
    • SigmoidGrad: Sigmoid 激活梯度。

    • +
    • TanhGrad: Tanh 激活梯度。

    • +
    • HSigmoidGrad: Hard Sigmoid 激活梯度。

    • +
    • HSwishGrad: Hard Swish 激活梯度。

    • +
    • GeluGrad: GELU 激活梯度。

    • +
    • EluGrad: ELU 激活梯度,需传入参数 alpha

    • +
    • SoftplusGrad: Softplus 激活梯度。

    • +
    • HardShrinkGrad: Hard Shrink 激活梯度,需传入参数 lambd

    • +
    • SoftshrinkGrad: Softshrink 激活梯度,需传入参数 lambd

    • +
    +
    +
    输入:
      +
    • src0 - 梯度输入数据地址。

    • +
    • src1 - 原始输入/输出数据地址。

    • +
    • length - 计算长度。

    • +
    • alpha / lambd (float, 可选) - 特定激活函数所需的系数。

    • +
    • core_mask (int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • dst - 梯度计算结果输出地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 仅支持 fp32。

    • +
    • MT7004 支持 fp32, fp16。

    • +
    • 对于不同的算子,src1 的含义可能不同(例如 SigmoidGrad 通常使用前向传播的输出作为 src1,而 ReluGrad 使用前向传播的输入作为 src1),需确保上层传入地址正确。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_relu_grad_s(float *src0, float *src1, float *dst, int length, int core_mask)
    +
    + +
    +
    +void hp_relu_grad_s(half *src0, half *src1, half *dst, int length, int core_mask)
    +
    + +
    +
    +void fp_relu6_grad_s(float *src0, float *src1, float *dst, int length, int core_mask)
    +
    + +
    +
    +void fp_l_relu_grad_s(float *src0, float *src1, float *dst, int length, float alpha, int core_mask)
    +
    + +
    +
    +void fp_sigmoid_grad_s(float *src0, float *src1, float *dst, int length, int core_mask)
    +
    + +
    +
    +void fp_tanh_grad_s(float *src0, float *src1, float *dst, int length, int core_mask)
    +
    + +
    +
    +void fp_h_sigmoid_grad_s(float *src0, float *src1, float *dst, int length, int core_mask)
    +
    + +
    +
    +void fp_h_swish_grad_s(float *src0, float *src1, float *dst, int length, int core_mask)
    +
    + +
    +
    +void fp_gelu_grad_s(float *src0, float *src1, float *dst, int length, int core_mask)
    +
    + +
    +
    +void fp_elu_grad_s(float *src0, float *src1, float *dst, int length, float alpha, int core_mask)
    +
    + +
    +
    +void fp_softplus_grad_s(float *src0, float *src1, float *dst, int length, int core_mask)
    +
    + +
    +
    +void fp_hard_shrink_grad_s(float *src0, float *src1, float *dst, int length, float lambd, int core_mask)
    +
    + +
    +
    +void fp_softshrink_grad_s(float *src0, float *src1, float *dst, int length, float lambd, int core_mask)
    +

    C调用示例:

    +
     1//FT78NE示例(共享存储)
    + 2#include <stdio.h>
    + 3#include "78NE/utils.h"
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *src0 = (float *)0xA0000000;   // 梯度输入在共享存储
    + 7    float *src1 = (float *)0xA1000000;   // 原始数据在共享存储
    + 8    float *dst  = (float *)0xB0000000;   // 结果输出到共享存储
    + 9    int length = 1024;
    +10    int core_mask = 0xff;
    +11    fp_relu_grad_s(src0, src1, dst, length, core_mask);
    +12    return 0;
    +13}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void fp_relu_grad_p(float *src0, float *src1, float *dst, int length)
    +
    + +
    +
    +void hp_relu_grad_p(half *src0, half *src1, half *dst, int length)
    +
    + +
    +
    +void fp_relu6_grad_p(float *src0, float *src1, float *dst, int length)
    +
    + +
    +
    +void fp_l_relu_grad_p(float *src0, float *src1, float *dst, int length, float alpha)
    +
    + +
    +
    +void fp_sigmoid_grad_p(float *src0, float *src1, float *dst, int length)
    +
    + +
    +
    +void fp_tanh_grad_p(float *src0, float *src1, float *dst, int length)
    +
    + +
    +
    +void fp_h_sigmoid_grad_p(float *src0, float *src1, float *dst, int length)
    +
    + +
    +
    +void fp_h_swish_grad_p(float *src0, float *src1, float *dst, int length)
    +
    + +
    +
    +void fp_gelu_grad_p(float *src0, float *src1, float *dst, int length)
    +
    + +
    +
    +void fp_elu_grad_p(float *src0, float *src1, float *dst, int length, float alpha)
    +
    + +
    +
    +void fp_softplus_grad_p(float *src0, float *src1, float *dst, int length)
    +
    + +
    +
    +void fp_hard_shrink_grad_p(float *src0, float *src1, float *dst, int length, float lambd)
    +
    + +
    +
    +void fp_softshrink_grad_p(float *src0, float *src1, float *dst, int length, float lambd)
    +

    C调用示例:

    +
     1//MT7004 示例
    + 2#include <stdio.h>
    + 3
    + 4int main(int argc, char* argv[]) {
    + 5    float *src0 = (float *)0x10000000;   // 私有存储空间地址
    + 6    float *src1 = (float *)0x10001000;
    + 7    float *dst  = (float *)0x10002000;
    + 8    int length = 139;
    + 9    float alpha = 0.01f;
    +10    fp_l_relu_grad_p(src0, src1, dst, length, alpha);
    +11    return 0;
    +12}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/adam.html b/master/html/functionlib/dsplib/adam.html new file mode 100644 index 0000000..f6827e7 --- /dev/null +++ b/master/html/functionlib/dsplib/adam.html @@ -0,0 +1,454 @@ + + + + + + + + + Adam — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Adam

    +
    +

    使用 Adam 算法更新参数权重。支持 Nesterov 动量。

    +

    算法逻辑如下:

    +
    +\[\begin{split}m_t = m_{t-1} + (g_t - m_{t-1}) \cdot (1 - \beta_1) \\ +v_t = v_{t-1} + (g_t^2 - v_{t-1}) \cdot (1 - \beta_2) \\ +\hat{lr} = lr \cdot \frac{\sqrt{1 - \beta_2^t}}{1 - \beta_1^t}\end{split}\]
    +

    如果不启用 Nesterov:

    +
    +\[w_t = w_{t-1} - \hat{lr} \cdot \frac{m_t}{\sqrt{v_t} + \epsilon}\]
    +

    如果启用 Nesterov:

    +
    +\[w_t = w_{t-1} - \hat{lr} \cdot \frac{m_t \cdot \beta_1 + (1 - \beta_1) \cdot g_t}{\sqrt{v_t} + \epsilon}\]
    +
    +
    输入:
      +
    • m - 一阶矩向量地址(输入/输出)。

    • +
    • v - 二阶矩向量地址(输入/输出)。

    • +
    • gradient - 梯度向量地址。

    • +
    • weight - 权重向量地址(输入/输出)。

    • +
    • beta1 - 一阶矩估计的指数衰减率。

    • +
    • beta2 - 二阶矩估计的指数衰减率。

    • +
    • beta1_power - \(\beta_1^t\) 的值(指针形式传入)。

    • +
    • beta2_power - \(\beta_2^t\) 的值(指针形式传入)。

    • +
    • eps - 数值稳定性项 epsilon。

    • +
    • learning_rate - 学习率。

    • +
    • nesterov - 是否启用 Nesterov 动量(0: 不启用, 1: 启用)。

    • +
    • start - 计算的起始索引(包含)。

    • +
    • end - 计算的结束索引(不包含)。

    • +
    • core_mask - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • m - 更新后的一阶矩。

    • +
    • v - 更新后的二阶矩。

    • +
    • weight - 更新后的权重。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • 仅支持 fp32 数据类型。

    • +
    +
    +
    +

    共享存储版本:

    +
    +
    +void fp_adam_s(float *m, float *v, const float *gradient, float *weight, float beta1, float beta2, float *beta1_power, float *beta2_power, float eps, float learning_rate, int nesterov, int start, int end, int core_mask)
    +

    C调用示例:

    +
     1#include <stdio.h>
    + 2
    + 3int main(int argc, char* argv[]) {
    + 4    // 假设所有数据均位于DDR空间
    + 5    float* m = (float*)0xC0000000;
    + 6    float* v = (float*)0xC1000000;
    + 7    float* gradient = (float*)0xC2000000;
    + 8    float* weight = (float*)0xC3000000;
    + 9
    +10    // 标量参数
    +11    float beta1 = 0.9f;
    +12    float beta2 = 0.999f;
    +13    float beta1_power_val = 0.9f;   // beta1^1
    +14    float beta2_power_val = 0.999f; // beta2^1
    +15    float* beta1_power = &beta1_power_val;
    +16    float* beta2_power = &beta2_power_val;
    +17    float eps = 1e-8f;
    +18    float learning_rate = 0.001f;
    +19    int nesterov = 1;
    +20
    +21    int start = 0;
    +22    int end = 800000; // 元素总数
    +23    int core_mask = 0xff; // 使用所有核心
    +24
    +25    fp_adam_s(m, v, gradient, weight, beta1, beta2, beta1_power, beta2_power,
    +26              eps, learning_rate, nesterov, start, end, core_mask);
    +27
    +28    return 0;
    +29}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void fp_adam_p(float *m, float *v, const float *gradient, float *weight, float beta1, float beta2, float *beta1_power, float *beta2_power, float eps, float learning_rate, int nesterov, int start, int end)
    +

    C调用示例:

    +
     1#include <stdio.h>
    + 2
    + 3int main(int argc, char* argv[]) {
    + 4    // 假设所有数据均位于L2/AM空间
    + 5    float* m = (float*)0x10820000;
    + 6    float* v = (float*)0x10830000;
    + 7    float* gradient = (float*)0x10840000;
    + 8    float* weight = (float*)0x10850000;
    + 9
    +10    float beta1 = 0.9f;
    +11    float beta2 = 0.999f;
    +12    float beta1_power_val = 0.9f;
    +13    float beta2_power_val = 0.999f;
    +14    float eps = 1e-8f;
    +15    float learning_rate = 0.001f;
    +16    int nesterov = 0;
    +17    int start = 0;
    +18    int end = 2000;
    +19
    +20    fp_adam_p(m, v, gradient, weight, beta1, beta2, &beta1_power_val, &beta2_power_val,
    +21              eps, learning_rate, nesterov, start, end);
    +22
    +23    return 0;
    +24}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/adamweightdecay.html b/master/html/functionlib/dsplib/adamweightdecay.html index 2bbd947..c5e4762 100644 --- a/master/html/functionlib/dsplib/adamweightdecay.html +++ b/master/html/functionlib/dsplib/adamweightdecay.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
    @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -204,9 +369,9 @@ var_t &= var_{t-1} - lr \cdot (\hat{m}_t + decay \cdot var_{t-1}) 15 float epsilon = 1e-8f; 16 float decay = 1e-2f; 17 fp_adamweightdecay_s(var, m, v, gradient, lr, -18 beta1, beta2, epsilon, decay, -19 start, end, core_mask); -20 return 0; +18 beta1, beta2, epsilon, decay, +19 start, end, core_mask); +20 return 0; 21}
    @@ -237,9 +402,9 @@ var_t &= var_{t-1} - lr \cdot (\hat{m}_t + decay \cdot var_{t-1}) 13 float epsilon = 1e-6f; 14 float decay = 5e-3f; 15 hp_adamweightdecay_p(var, m, v, gradient, lr, -16 beta1, beta2, epsilon, decay, -17 length); -18 return 0; +16 beta1, beta2, epsilon, decay, +17 length); +18 return 0; 19}
  • @@ -258,7 +423,7 @@ var_t &= var_{t-1} - lr \cdot (\hat{m}_t + decay \cdot var_{t-1})
    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/adder.html b/master/html/functionlib/dsplib/adder.html index 54116a2..389f38a 100644 --- a/master/html/functionlib/dsplib/adder.html +++ b/master/html/functionlib/dsplib/adder.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
    @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -200,9 +365,9 @@ weight_t &= weight_{t-1} - learning\_rate \cdot update_t 13 float moment = 0.99f; 14 bool nesterov = false; 15 fp_applymomentum_s(weight, accumulate, gradient, -16 learning_rate, moment, nesterov, -17 start, end, core_mask); -18 return 0; +16 learning_rate, moment, nesterov, +17 start, end, core_mask); +18 return 0; 19}
    @@ -231,9 +396,9 @@ weight_t &= weight_{t-1} - learning\_rate \cdot update_t 11 float moment = 0.9f; 12 bool nesterov = true; 13 hp_applymomentum_p(weight, accumulate, gradient, -14 learning_rate, moment, nesterov, -15 length); -16 return 0; +14 learning_rate, moment, nesterov, +15 length); +16 return 0; 17}
    @@ -252,7 +417,7 @@ weight_t &= weight_{t-1} - learning\_rate \cdot update_t
    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/argmax.html b/master/html/functionlib/dsplib/argmax.html new file mode 100644 index 0000000..001fe61 --- /dev/null +++ b/master/html/functionlib/dsplib/argmax.html @@ -0,0 +1,446 @@ + + + + + + + + + Argmax — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Argmax

    +

    沿指定轴查找最大 topk 个值的索引。当 topk=1 时,该算子等价于 ArgMax

    +
    +\[Y_i = \underset{k}{\operatorname{argmax}} (X_{slice_i})\]
    +

    其中 \(X_{slice_i}\) 是输入张量中沿指定轴的一个切片,函数返回该切片中最大值的索引 \(k\)

    +
    +
    输入:
      +
    • input - 输入数据地址。

    • +
    • output - 输出索引的数据地址,数据类型通常为int32。

    • +
    • output_value - (可选) 输出值的数据地址。

    • +
    • in_shape - 输入张量的维度信息数组。

    • +
    • in_strides - 输入张量的步长信息数组。

    • +
    • out_strides - 输出张量的步长信息数组。

    • +
    • arg_elements - 用于存放候选值的临时工作空间地址。

    • +
    • index - 用于存放候选索引的临时工作空间地址。

    • +
    • topk - 需要查找的最大值的数量。设置为1以执行ArgMax操作。

    • +
    • out_value - 是否返回数值的标志。若为非0,则 output_value 必须提供有效地址。

    • +
    • input_shape_size - 输入张量的维度数 (即 in_shape 数组的长度)。

    • +
    • axis - 执行查找操作的轴。

    • +
    • core_mask - 核掩码。

    • +
    +
    +
    输出:
      +
    • output - 存储索引的输出张量。

    • +
    • output_value - 如果 return_values 为 true,则此处存储找到的值。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持fp32

    • +
    • MT7004 支持fp16, fp32

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_argmax_s(float *input, void *output, float *output_value, int32_t *in_shape, int *in_strides, int *out_strides, float *arg_elements, int *index, int topk, int out_value, int input_shape_size, int axis, int core_mask)
    +
    + +
    +
    +void hp_argmax_s(half *input, void *output, half *output_value, int32_t *in_shape, int *in_strides, int *out_strides, half *arg_elements, int *index, int topk, int out_value, int input_shape_size, int axis, int core_mask)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <argmax.h>
    + 4int main(int argc, char* argv[]) {
    + 5    float *input = (float *)0xA0000000;          // input在DDR空间
    + 6    int *output = (int *)0xB0000000;             // output indices
    + 7    float *output_value = (float *)0xC0000000;     // output values
    + 8    float *arg_elements = (float *)0xD0000000;   // temp workspace 1
    + 9    int *index = (int *)0xE0000000;               // temp workspace 2
    +10
    +11    int in_shape[] = {2, 3, 4};                  // input shape: (2, 3, 4)
    +12    int in_strides[] = {12, 4, 1};               // input strides for contiguous layout
    +13    int out_strides[] = {4, 1};                  // output strides, shape is (2, 4)
    +14    int input_shape_size = 3;
    +15
    +16    int axis = 1;                                // 沿第1轴操作
    +17    int topk = 1;                                // ArgMax
    +18    int out_value = 1;                           // 同时返回值
    +19    int core_mask = 0xff;
    +20
    +21    fp_argmax_s(input, output, output_value, in_shape, in_strides, out_strides, arg_elements, index, topk, out_value, input_shape_size, axis, core_mask);
    +22    return 0;
    +23}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_argmax_p(float *input, void *output, float *output_value, int32_t *in_shape, int *in_strides, int *out_strides, float *arg_elements, int *index, int topk, int out_value, int input_shape_size, int axis)
    +
    + +
    +
    +void hp_argmax_p(half *input, void *output, half *output_value, int32_t *in_shape, int *in_strides, int *out_strides, half *arg_elements, int *index, int topk, int out_value, int input_shape_size, int axis)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <argmax.h>
    + 4int main(int argc, char* argv[]) {
    + 5    float *input = (float *)0x10001000;          // input在DDR空间
    + 6    int *output = (int *)0x10002000;             // output indices
    + 7    float *output_value = (float *)0x10003000;     // output values
    + 8    float *arg_elements = (float *)0x10004000;   // temp workspace 1
    + 9    int *index = (int *)0x10005000;               // temp workspace 2
    +10
    +11    int in_shape[] = {2, 3, 4};                  // input shape: (2, 3, 4)
    +12    int in_strides[] = {12, 4, 1};               // input strides for contiguous layout
    +13    int out_strides[] = {4, 1};                  // output strides, shape is (2, 4)
    +14    int input_shape_size = 3;
    +15
    +16    int axis = 1;                                // 沿第1轴操作
    +17    int topk = 1;                                // ArgMax
    +18    int out_value = 1;                           // 同时返回值
    +19
    +20    fp_argmax_p(input, output, output_value, in_shape, in_strides, out_strides,
    +21                arg_elements, index, topk, out_value, input_shape_size, axis);
    +22    return 0;
    +23}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/argmin.html b/master/html/functionlib/dsplib/argmin.html new file mode 100644 index 0000000..9de45d1 --- /dev/null +++ b/master/html/functionlib/dsplib/argmin.html @@ -0,0 +1,447 @@ + + + + + + + + + Argmin — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Argmin

    +

    沿指定轴查找最小 topk 个值的索引。当 topk=1 时,该算子等价于 ArgMin

    +
    +\[Y_i = \underset{k}{\operatorname{argmin}} (X_{slice_i})\]
    +

    其中 \(X_{slice_i}\) 是输入张量中沿指定轴的一个切片,函数返回该切片中最小值的索引 \(k\)

    +
    +
    输入:
      +
    • input - 输入数据地址。

    • +
    • output - 输出索引的数据地址,数据类型通常为int32。

    • +
    • output_value - (可选) 输出值的数据地址。

    • +
    • in_shape - 输入张量的维度信息数组。

    • +
    • in_strides - 输入张量的步长信息数组。

    • +
    • out_strides - 输出张量的步长信息数组。

    • +
    • arg_elements - 用于存放候选值的临时工作空间地址。

    • +
    • index - 用于存放候选索引的临时工作空间地址。

    • +
    • topk - 需要查找的最小值的数量。设置为1以执行ArgMin操作。

    • +
    • out_value - 是否返回数值的标志。若为非0,则 output_value 必须提供有效地址。

    • +
    • input_shape_size - 输入张量的维度数 (即 in_shape 数组的长度)。

    • +
    • axis - 执行查找操作的轴。

    • +
    • core_mask - 核掩码。

    • +
    +
    +
    输出:
      +
    • output - 存储索引的输出张量。

    • +
    • output_value - 如果 return_values 为 true,则此处存储找到的值。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持fp32

    • +
    • MT7004 支持fp16, fp32

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_argmin_s(float *input, void *output, float *output_value, int *in_shape, int *in_strides, int *out_strides, float *arg_elements, int *index, int topk, int out_value, int input_shape_size, int axis, int core_mask)
    +
    + +
    +
    +void hp_argmin_s(half *input, void *output, half *output_value, int *in_shape, int *in_strides, int *out_strides, half *arg_elements, int *index, int topk, int out_value, int input_shape_size, int axis, int core_mask)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <argmin.h>
    + 4int main(int argc, char* argv[]) {
    + 5    float *input = (float *)0xA0000000;          // input在DDR空间
    + 6    int *output = (int *)0xB0000000;             // output indices
    + 7    float *output_value = (float *)0xC0000000;     // output values
    + 8    float *arg_elements = (float *)0xD0000000;   // temp workspace 1
    + 9    int *index = (int *)0xE0000000;               // temp workspace 2
    +10
    +11    int in_shape[] = {2, 3, 4};                  // input shape: (2, 3, 4)
    +12    int in_strides[] = {12, 4, 1};               // input strides for contiguous layout
    +13    int out_strides[] = {4, 1};                  // output strides, shape is (2, 4)
    +14    int input_shape_size = 3;
    +15
    +16    int axis = 1;                                // 沿第1轴操作
    +17    int topk = 1;                                // ArgMax
    +18    int out_value = 1;                           // 同时返回值
    +19    int core_mask = 0xff;
    +20
    +21    fp_argmin_s(input, output, output_value, in_shape, in_strides, out_strides,
    +22                arg_elements, index, topk, out_value, input_shape_size, axis, core_mask);
    +23    return 0;
    +24}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_argmin_p(float *input, void *output, float *output_value, int32_t *in_shape, int *in_strides, int *out_strides, float *arg_elements, int *index, int topk, int out_value, int input_shape_size, int axis)
    +
    + +
    +
    +void hp_argmin_p(half *input, void *output, half *output_value, int32_t *in_shape, int *in_strides, int *out_strides, half *arg_elements, int *index, int topk, int out_value, int input_shape_size, int axis)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <argmin.h>
    + 4int main(int argc, char* argv[]) {
    + 5    float *input = (float *)0x10001000;          // input在DDR空间
    + 6    int *output = (int *)0x10002000;             // output indices
    + 7    float *output_value = (float *)0x10003000;     // output values
    + 8    float *arg_elements = (float *)0x10004000;   // temp workspace 1
    + 9    int *index = (int *)0x10005000;               // temp workspace 2
    +10
    +11    int in_shape[] = {2, 3, 4};                  // input shape: (2, 3, 4)
    +12    int in_strides[] = {12, 4, 1};               // input strides for contiguous layout
    +13    int out_strides[] = {4, 1};                  // output strides, shape is (2, 4)
    +14    int input_shape_size = 3;
    +15
    +16    int axis = 1;                                // 沿第1轴操作
    +17    int topk = 1;                                // ArgMin
    +18    int out_value = 1;                           // 同时返回值
    +19
    +20    fp_argmin_p(input, output, output_value, in_shape, in_strides, out_strides,
    +21                arg_elements, index, topk, out_value, input_shape_size, axis);
    +22    return 0;
    +23}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/assert.html b/master/html/functionlib/dsplib/assert.html index 6f2d34a..939ea2c 100644 --- a/master/html/functionlib/dsplib/assert.html +++ b/master/html/functionlib/dsplib/assert.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
    @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
    @@ -112,15 +277,15 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -204,12 +369,12 @@ 18 int window_h = 2; 19 int core_mask = 0xff; 20 fp_avgpoolinggrad_s(input, output, batch, output_h, output_w, -21 channel, input_w, input_h, -22 stride_w, stride_h, -23 pad_l, pad_u, -24 window_w, window_h, -25 core_mask); -26 return 0; +21 channel, input_w, input_h, +22 stride_w, stride_h, +23 pad_l, pad_u, +24 window_w, window_h, +25 core_mask); +26 return 0; 27}
    @@ -246,12 +411,12 @@ 19 int start_idx = 0; 20 int end_idx = batch * output_h * output_w * channel; 21 hp_avgpoolinggrad_p(input, output, batch, output_h, output_w, -22 channel, input_w, input_h, -23 stride_w, stride_h, -24 pad_l, pad_u, -25 window_w, window_h, -26 start_idx, end_idx); -27 return 0; +22 channel, input_w, input_h, +23 stride_w, stride_h, +24 pad_l, pad_u, +25 window_w, window_h, +26 start_idx, end_idx); +27 return 0; 28}
    @@ -270,7 +435,7 @@
    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/batchnorm.html b/master/html/functionlib/dsplib/batchnorm.html new file mode 100644 index 0000000..a9efeea --- /dev/null +++ b/master/html/functionlib/dsplib/batchnorm.html @@ -0,0 +1,444 @@ + + + + + + + + + BatchNorm — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    BatchNorm

    +

    对输入数组按通道执行批归一化(Batch Normalization)计算。 +该算子使用给定的均值与方差对输入进行标准化,并通过 epsilon 保证数值稳定性。

    +
    +\[dst_{i,j} = \frac{src_{i,j} - mean_j}{\sqrt{variance_j + \epsilon}}\]
    +

    其中:

    +
      +
    • \(i\) 表示第 unit 个样本

    • +
    • \(j\) 表示通道索引

    • +
    • \(mean_j\)\(variance_j\) 为第 \(j\) 个通道的统计量

    • +
    +

    对于 int8 类型输入,内部以浮点方式计算,最终结果按实现规则取整并输出为 int8

    +
    +
    输入:
      +
    • input - 输入数据地址,形状为 [unit, channel]

    • +
    • mean - 均值数组地址,长度为 channel

    • +
    • variance - 方差数组地址,长度为 channel

    • +
    • unit - 样本数(或展开后的空间维度)。

    • +
    • channel - 通道数。

    • +
    • epsilon - 数值稳定因子。

    • +
    • core_mask - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 批归一化后的输出数据地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持 int8fp32 类型

    • +
    • MT7004 支持 fp16fp32 类型

    • +
    • 当前实现不包含 scale 与 bias,仅执行标准化操作

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_batchnorm_s(int8_t *input, int8_t *output, float *mean, float *variance, int unit, int channel, float epsilon, int core_mask)
    +
    + +
    +
    +void fp_batchnorm_s(float *input, float *output, float *mean, float *variance, int unit, int channel, float epsilon, int core_mask)
    +
    + +
    +
    +void hp_batchnorm_s(half *input, half *output, float *mean, float *variance, int unit, int channel, float epsilon, int core_mask)
    +
    + +

    C调用示例:

    +
     1// FT78NE 示例
    + 2#include <stdio.h>
    + 3#include <batchnorm.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    int8_t *input  = (int8_t *)0xA0000000;   // input 在 DDR 空间
    + 7    int8_t *output = (int8_t *)0xC0000000;
    + 8    float *mean    = (float *)0xA1000000;
    + 9    float *var     = (float *)0xA2000000;
    +10    int unit = 128;
    +11    int channel = 64;
    +12    float epsilon = 1e-5f;
    +13    int core_mask = 0xff;
    +14
    +15    i8_batchnorm_s(input, output, mean, var, unit, channel, epsilon, core_mask);
    +16    return 0;
    +17}
    +
    +
    +

    私有存储版本:

    +
    +
    +void i8_batchnorm_p(int8_t *input, int8_t *output, float *mean, float *variance, int unit, int channel, float epsilon)
    +
    + +
    +
    +void fp_batchnorm_p(float *input, float *output, float *mean, float *variance, int unit, int channel, float epsilon)
    +
    + +
    +
    +void hp_batchnorm_p(half *input, half *output, float *mean, float *variance, int unit, int channel, float epsilon)
    +
    + +

    C调用示例:

    +
     1// FT78NE 示例
    + 2#include <stdio.h>
    + 3#include <batchnorm.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    int8_t *input  = (int8_t *)0x10810000;   // input 在 L2 空间
    + 7    int8_t *output = (int8_t *)0x10820000;
    + 8    float *mean    = (float *)0x10830000;
    + 9    float *var     = (float *)0x10840000;
    +10    int unit = 128;
    +11    int channel = 64;
    +12    float epsilon = 1e-5f;
    +13
    +14    i8_batchnorm_p(input, output, mean, var, unit, channel, epsilon);
    +15    return 0;
    +16}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/batchnormgrad.html b/master/html/functionlib/dsplib/batchnormgrad.html new file mode 100644 index 0000000..7a098b5 --- /dev/null +++ b/master/html/functionlib/dsplib/batchnormgrad.html @@ -0,0 +1,445 @@ + + + + + + + + + Batchnormgrad — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Batchnormgrad

    +

    逐元素计算加法梯度

    +

    计算批标准化 (Batch Normalization) 的梯度。

    +

    该算子计算损失函数 L 分别对输入 x、缩放因子 scale (γ) 和偏置 bias (β) 的梯度。其中 bias 的梯度为 dbias

    +
    +\[\begin{split}dscale(\gamma) &= \sum_{i=1}^{m} dy_i \cdot \hat{x}_i \\ +dbias(\beta) &= \sum_{i=1}^{m} dy_i\end{split}\]
    +
    +\[dx_i = \frac{\gamma}{m\sqrt{\sigma^2 + \epsilon}} \left[ m \cdot dy_i - \sum_{j=1}^{m}dy_j - \hat{x}_i \sum_{j=1}^{m}dy_j \hat{x}_j \right]\]
    +

    其中 \(m\) 是批处理大小 (batch),\(\hat{x}\) 是归一化后的 \(x\)

    +
    +
    输入:
      +
    • x - 前向传播时的输入张量。

    • +
    • dy - 来自后一层的上游梯度。

    • +
    • mean - 前向传播时计算的均值。

    • +
    • invar - 前向传播时计算的逆方差 (1 / sqrt(variance + epsilon))。

    • +
    • scale - 前向传播时使用的缩放因子 (gamma, γ)。

    • +
    • batch - 批处理大小。

    • +
    • channel - 通道数。

    • +
    • is_train - 是否为训练模式。梯度计算通常在训练时进行。

    • +
    • core_mask - 核掩码。

    • +
    +
    +
    输出:
      +
    • dx - 对输入 x 的梯度。

    • +
    • dbias - 对偏置 bias (β) 的梯度。

    • +
    • dscale - 对缩放因子 scale (γ) 的梯度。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持fp32

    • +
    • MT7004 支持fp16, fp32

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_batchnormgrad_s(float *x, float *dy, float *mean, float *invar, float *scale, int batch, int channel, int is_train, float *dx, float *dbias, float *dscale, int core_mask)
    +
    + +
    +
    +void hp_batchnormgrad_s(half *x, half *dy, half *mean, half *invar, half *scale, int batch, int channel, int is_train, half *dx, half *dbias, half *dscale, int core_mask)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <batchnormgrad.h>
    + 4int main(int argc, char* argv[]) {
    + 5    float *x = (float *)0xA0000000;          // forward input x
    + 6    float *dy = (float *)0xB0000000;         // upstream gradient dy
    + 7    float *mean = (float *)0xC0000000;       // forward mean
    + 8    float *invar = (float *)0xD0000000;      // forward inverse variance
    + 9    float *scale = (float *)0xE0000000;      // forward scale (gamma)
    +10
    +11    float *dx = (float *)0xA1000000;         // output gradient dx
    +12    float *dbias = (float *)0xB1000000;      // output gradient dbias
    +13    float *dscale = (float *)0xC1000000;     // output gradient dscale
    +14
    +15    int batch = 4;
    +16    int channel = 64;
    +17    int is_train = true;
    +18    int core_mask = 0xff;
    +19
    +20    fp_batchnormgrad_s(x, dy, mean, invar, scale, batch, channel, is_train, dx, dbias, dscale, core_mask);
    +21    return 0;
    +22}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_batchnormgrad_p(float *x, float *dy, float *mean, float *invar, float *scale, int batch, int channel, int is_train, float *dx, float *dbias, float *dscale)
    +
    + +
    +
    +void hp_batchnormgrad_p(half *x, half *dy, half *mean, half *invar, half *scale, int batch, int channel, int is_train, half *dx, half *dbias, half *dscale)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <batchnormgrad.h>
    + 4int main(int argc, char* argv[]) {
    + 5    float *x = (float *)0x10000000;          // forward input x in L2 space
    + 6    float *dy = (float *)0x10100000;         // upstream gradient dy
    + 7    float *mean = (float *)0x10200000;       // forward mean
    + 8    float *invar = (float *)0x10300000;      // forward inverse variance
    + 9    float *scale = (float *)0x10400000;      // forward scale (gamma)
    +10
    +11    float *dx = (float *)0x10500000;         // output gradient dx
    +12    float *dbias = (float *)0x10600000;      // output gradient dbias
    +13    float *dscale = (float *)0x10700000;     // output gradient dscale
    +14
    +15    int batch = 4;
    +16    int channel = 32;
    +17    int is_train = true;
    +18
    +19    fp_batchnormgrad_p(x, dy, mean, invar, scale, batch, channel, is_train, dx, dbias, dscale);
    +20    return 0;
    +21}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/batchtospace.html b/master/html/functionlib/dsplib/batchtospace.html index 1734c10..8e9df43 100644 --- a/master/html/functionlib/dsplib/batchtospace.html +++ b/master/html/functionlib/dsplib/batchtospace.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
    @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -295,7 +460,7 @@ W_{\text{out}} &= b_w \times W - c_{\text{left}} - c_{\text{right}}, \\
      -

      © 版权所有 2025 - 2025, NUDT-674。

      +

      © 版权所有 2025 - 2026, NUDT-674。

      利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/batchtospacend.html b/master/html/functionlib/dsplib/batchtospacend.html index 3998a3d..db736db 100644 --- a/master/html/functionlib/dsplib/batchtospacend.html +++ b/master/html/functionlib/dsplib/batchtospacend.html @@ -34,7 +34,7 @@ - + MindSpore Signal+ 使用手册
      @@ -46,11 +46,7 @@
    @@ -111,15 +276,15 @@
    @@ -111,15 +276,15 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -144,7 +309,7 @@
    • \(j\) 对应输出通道,其范围为 \([0, C_{out}-1]\),其中 \(C_{out}\) 为输出通道数,该值也等于卷积核的个数。

    • \(k\) 对应输入通道数,其范围为 \([0, C_{in}-1]\),其中 \(C_{in}\) 为输入通道数,该值也等于卷积核的通道数。

    -

    因此,上面的公式中,\(bias(C_{out_j})\) 为第 \(j\) 个输出通道的偏置,\(weight(C_{out_j}, k)\) 表示第 \(j\) 个卷积核在第 \(k\) 个输入通道的卷积核切片,\(X(N_i, k)\) 为特征图第 \(i\) 个 batch 第 \(k\) 个输入通道的切片。卷积核 shape 为 \((\text{kernel_size}[0], \text{kernel_size}[1])\),其中 kernel_size[0] 和 kernel_size[1] 是卷积核的高度和宽度。若考虑到输入输出通道以及 group,则完整卷积核的 shape 为 \((C_{out}, \text{kernel_size}[0], \text{kernel_size}[1], C_{in}/\text{group})\),其中 group 是分组卷积时在通道上分割输入 \(x\) 的组数。

    +

    因此,上面的公式中,\(bias(C_{out_j})\) 为第 \(j\) 个输出通道的偏置,\(weight(C_{out_j}, k)\) 表示第 \(j\) 个卷积核在第 \(k\) 个输入通道的卷积核切片,\(X(N_i, k)\) 为特征图第 \(i\) 个 batch 第 \(k\) 个输入通道的切片。卷积核 shape 为 \((\text{kernel\_size}[0], \text{kernel\_size}[1])\),其中 kernel_size[0] 和 kernel_size[1] 是卷积核的高度和宽度。若考虑到输入输出通道以及 group,则完整卷积核的 shape 为 \((C_{out}, \text{kernel\_size}[0], \text{kernel\_size}[1], C_{in}/\text{group})\),其中 group 是分组卷积时在通道上分割输入 \(x\) 的组数。

    输入:
    • input_x - 输入数据的地址

    • @@ -349,7 +514,7 @@
      -

      © 版权所有 2025 - 2025, NUDT-674。

      +

      © 版权所有 2025 - 2026, NUDT-674。

      利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/conv2d_transpose.html b/master/html/functionlib/dsplib/conv2d_transpose.html index b1b4313..1bbb4fa 100644 --- a/master/html/functionlib/dsplib/conv2d_transpose.html +++ b/master/html/functionlib/dsplib/conv2d_transpose.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
      @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -341,7 +506,7 @@
      -

      © 版权所有 2025 - 2025, NUDT-674。

      +

      © 版权所有 2025 - 2026, NUDT-674。

      利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/conv2dbackpropfilterfusion.html b/master/html/functionlib/dsplib/conv2dbackpropfilterfusion.html index 94ed8a0..3af15a5 100644 --- a/master/html/functionlib/dsplib/conv2dbackpropfilterfusion.html +++ b/master/html/functionlib/dsplib/conv2dbackpropfilterfusion.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
      @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -291,7 +456,7 @@
      -

      © 版权所有 2025 - 2025, NUDT-674。

      +

      © 版权所有 2025 - 2026, NUDT-674。

      利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/conv2dbackpropinputfusion.html b/master/html/functionlib/dsplib/conv2dbackpropinputfusion.html index 15757f4..bb97e53 100644 --- a/master/html/functionlib/dsplib/conv2dbackpropinputfusion.html +++ b/master/html/functionlib/dsplib/conv2dbackpropinputfusion.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
      @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
    @@ -111,15 +276,15 @@
      -
    • - +
    • +
    • @@ -210,7 +375,7 @@
      -

      © 版权所有 2025 - 2025, NUDT-674。

      +

      © 版权所有 2025 - 2026, NUDT-674。

      利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/crop_and_resize.html b/master/html/functionlib/dsplib/crop_and_resize.html index ea9bc2c..f253be0 100644 --- a/master/html/functionlib/dsplib/crop_and_resize.html +++ b/master/html/functionlib/dsplib/crop_and_resize.html @@ -34,7 +34,7 @@ - + MindSpore Signal+ 使用手册
      @@ -46,11 +46,7 @@
    @@ -111,15 +276,15 @@
    @@ -111,15 +276,15 @@
    @@ -112,15 +277,15 @@
    @@ -112,15 +277,15 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -138,14 +303,14 @@
      \[\begin{split}\forall k \in [1, ids\_size], \quad \begin{cases} -\text{if } \textbf{is_regulated}[i_k] = 0, & +\text{if } \textbf{is\_regulated}[i\_k] = 0, & \begin{cases} - \displaystyle X_{i_k} \leftarrow - X_{i_k} \cdot \frac{\text{max_norm}} - {\sum_{j=1}^{layer\_size\_} X_{i_k, j}} \\[10pt] - \textbf{is_regulated}[i_k] \leftarrow 1 + \displaystyle X_{i\_k} \leftarrow + X_{i\_k} \cdot \frac{\text{max\_norm}} + {\sum_{j=1}^{layer\_size\_} X_{i\_k, j}} \\[10pt] + \textbf{is\_regulated}[i\_k] \leftarrow 1 \end{cases} \\[12pt] -\text{输出向量 } Y_k \leftarrow X_{i_k} +\text{输出向量 } Y_k \leftarrow X_{i\_k} \end{cases}\end{split}\]
      输入:
        @@ -250,7 +415,7 @@
        -

        © 版权所有 2025 - 2025, NUDT-674。

        +

        © 版权所有 2025 - 2026, NUDT-674。

        利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/equal.html b/master/html/functionlib/dsplib/equal.html index 8ce0def..84e7b96 100644 --- a/master/html/functionlib/dsplib/equal.html +++ b/master/html/functionlib/dsplib/equal.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
        @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
    @@ -111,15 +276,15 @@
      -
    • - +
    • +
    • @@ -188,7 +353,7 @@
      -

      © 版权所有 2025 - 2025, NUDT-674。

      +

      © 版权所有 2025 - 2026, NUDT-674。

      利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/expfusion.html b/master/html/functionlib/dsplib/expfusion.html index 94b0902..ad59184 100644 --- a/master/html/functionlib/dsplib/expfusion.html +++ b/master/html/functionlib/dsplib/expfusion.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
      @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -134,8 +299,7 @@

      ExpFusion

      -
      -

      传入一个数组,逐元素计算其乘上输入因子(可选择)后的指数值,再将指数值乘上输出因子后输出。

      +

      传入一个数组,逐元素计算其乘上输入因子(可选择)后的指数值,再将指数值乘上输出因子后输出。

      \[ \begin{align}\begin{aligned}\begin{split}dst_i = \exp(src_i \cdot s_{in}) \cdot s_{out} \quad \text{where} \quad @@ -169,7 +333,6 @@ s_{in} =
    • MT7004 支持fp16, fp32, int16, int32, cplx64

    -

    共享存储版本:

    @@ -209,7 +372,9 @@ s_{in} =
    void c128_expfusion_s(double *src_data, double *dst_data, int length, float in_scale, float out_scale, int scale, int core_mask)
    -

    C调用示例:

    +
    + +

    C调用示例:

     1//FT78NE示例
      2#include <stdio.h>
      3#include <expfusion.h>
    @@ -226,8 +391,6 @@ s_{in} =
     14}
     
    -
    -

    私有存储版本:

    @@ -267,7 +430,9 @@ s_{in} =
    void c128_expfusion_p(double *src_data, double *dst_data, int length, float in_scale, float out_scale, int scale)
    -

    C调用示例:

    +
    + +

    C调用示例:

     1//FT78NE示例
      2#include <stdio.h>
      3#include <expfusion.h>
    @@ -282,8 +447,6 @@ s_{in} =
     12}
     
    -
    -
    @@ -297,7 +460,7 @@ s_{in} =
    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/fake_quant_with_min_max_vars.html b/master/html/functionlib/dsplib/fake_quant_with_min_max_vars.html new file mode 100644 index 0000000..2830707 --- /dev/null +++ b/master/html/functionlib/dsplib/fake_quant_with_min_max_vars.html @@ -0,0 +1,424 @@ + + + + + + + + + FakeQuantWithMinMaxVars — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    FakeQuantWithMinMaxVars

    +

    对输入数据执行逐元素伪量化运算。该算子通过给定的最小/最大值(min_val/max_val)计算缩放因子(scale)和零点(zero_point),将浮点输入模拟量化到指定的整数范围(quant_min/quant_max),然后再将其反量化回浮点数。

    +
    +\[scale = \frac{max\_val - min\_val}{quant\_max - quant\_min}\]
    +
    +\[output_i = \left( \text{round} \left( \frac{\text{clamp}(input_i, nudge\_min, nudge\_max) - nudge\_min}{scale} \right) \right) \times scale + nudge\_min\]
    +
    +
    输入:
      +
    • src - 输入数据地址。

    • +
    • min_val - 浮点范围的最小值。

    • +
    • max_val - 浮点范围的最大值。

    • +
    • length - 计算长度。

    • +
    • quant_min - 量化后的整数最小值(例如 0 或 -128)。

    • +
    • quant_max - 量化后的整数最大值(例如 255 或 127)。

    • +
    • symmetric - 是否使用对称量化(bool 类型)。若为 true,则范围调整为关于 0 对称。

    • +
    • core_mask(int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 伪量化后的计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持:fp32 (fp)

    • +
    • MT7004 支持:fp16 (hp), fp32 (fp)

    • +
    • 该算子内部包含 "Nudge" 逻辑,即会自动调整零点(Zero Point)使其为整数,并根据调整后的零点重新计算实际使用的浮点范围(nudge_min/nudge_max)。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_fake_quant_with_min_max_vars_s(float *src, float min_val, float max_val, float *output, int length, int quant_min, int quant_max, bool symmetric, int core_mask)
    +
    + +
    +
    +void hp_fake_quant_with_min_max_vars_s(half *src, half min_val, half max_val, half *output, int length, int quant_min, int quant_max, bool symmetric, int core_mask)
    +

    C调用示例:

    +
     1// FT78NE 示例:fp32 类型共享存储多核计算
    + 2#include <stdio.h>
    + 3#include <stdbool.h>
    + 4#include "78NE/utils.h"
    + 5
    + 6int main(int argc, char* argv[]) {
    + 7    float *input = (float *)0xA0000000;
    + 8    float *output = (float *)0xB0000000;
    + 9    float min_v = -10.0f;
    +10    float max_v = 10.0f;
    +11    int length = 960001;
    +12    int core_mask = 0b1011;
    +13    fp_fake_quant_with_min_max_vars_s(input, min_v, max_v, output, length, 0, 255, false, core_mask);
    +14    return 0;
    +15}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void fp_fake_quant_with_min_max_vars_p(float *src, float min_val, float max_val, float *output, int length, int quant_min, int quant_max, bool symmetric)
    +
    + +
    +
    +void hp_fake_quant_with_min_max_vars_p(half *src, half min_val, half max_val, half *output, int length, int quant_min, int quant_max, bool symmetric)
    +

    C调用示例:

    +
     1// MT7004 示例:fp16 (half) 类型私有存储单核计算
    + 2#include <stdio.h>
    + 3#include <stdbool.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    half *input = (half *)0x10000000;
    + 7    half *output = (half *)0x10001000;
    + 8    half min_v = (half)-5.0f;
    + 9    half max_v = (half)5.0f;
    +10    int length = 1024;
    +11    hp_fake_quant_with_min_max_vars_p(input, min_v, max_v, output, length, 0, 255, true);
    +12    return 0;
    +13}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/fake_quant_with_min_max_vars_per_channel.html b/master/html/functionlib/dsplib/fake_quant_with_min_max_vars_per_channel.html new file mode 100644 index 0000000..40f80bd --- /dev/null +++ b/master/html/functionlib/dsplib/fake_quant_with_min_max_vars_per_channel.html @@ -0,0 +1,434 @@ + + + + + + + + + FakeQuantWithMinMaxVarsPerChannel — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    FakeQuantWithMinMaxVarsPerChannel

    +

    对输入数据执行按通道(Per-Channel)的逐元素伪量化运算。该算子将输入数据划分为 channel_num 个等长的通道,每个通道根据其对应的最小/最大值(min_val[c] / max_val[c])独立计算缩放因子和零点,进行模拟量化与反量化。

    +
    +\[channel\_size = \frac{length}{channel\_num}\]
    +
    +\[\text{对于通道 } c: \quad scale_c = \frac{max\_val_c - min\_val_c}{quant\_max - quant\_min}\]
    +
    +\[output_{c,i} = \text{FakeQuant}(input_{c,i}, scale_c, nudge\_min_c)\]
    +
    +
    输入:
      +
    • src - 输入数据地址。

    • +
    • min_val - 每个通道最小值组成的数组地址。

    • +
    • max_val - 每个通道最大值组成的数组地址。

    • +
    • length - 输入数据总长度(需能被通道数整除)。

    • +
    • quant_min - 量化后的整数最小值。

    • +
    • quant_max - 量化后的整数最大值。

    • +
    • symmetric - 是否使用对称量化。

    • +
    • channel_num - 通道数量。

    • +
    • core_mask(int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 伪量化后的计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持:fp32 (fp)

    • +
    • MT7004 支持:fp16 (hp), fp32 (fp)

    • +
    • 输入数据的总长度 length 必须可以被 channel_num 整除。

    • +
    • 每个通道的逻辑(包括 Nudge 零点调整)与单变量版本的伪量化一致。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_fake_quant_with_min_max_vars_per_channel_s(float *src, float *min_val, float *max_val, float *output, int length, int quant_min, int quant_max, bool symmetric, int channel_num, int core_mask)
    +
    + +
    +
    +void hp_fake_quant_with_min_max_vars_per_channel_s(half *src, half *min_val, half *max_val, half *output, int length, int quant_min, int quant_max, bool symmetric, int channel_num, int core_mask)
    +

    C调用示例:

    +
     1// FT78NE 示例:fp32 类型共享存储多核计算
    + 2#include <stdio.h>
    + 3#include <stdbool.h>
    + 4#include "78NE/utils.h"
    + 5
    + 6int main(int argc, char* argv[]) {
    + 7    float *input = (float *)0xA0000000;
    + 8    float *min_arr = (float *)0xA1000000;
    + 9    float *max_arr = (float *)0xA1001000;
    +10    float *output = (float *)0xB0000000;
    +11    int length = 960000;
    +12    int channel_num = 100;
    +13    int core_mask = 0b1011;
    +14
    +15    fp_fake_quant_with_min_max_vars_per_channel_s(input, min_arr, max_arr, output,
    +16                                                 length, 0, 255, false, channel_num, core_mask);
    +17    return 0;
    +18}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void fp_fake_quant_with_min_max_vars_per_channel_p(float *src, float *min_val, float *max_val, float *output, int length, int quant_min, int quant_max, bool symmetric, int channel_num)
    +
    + +
    +
    +void hp_fake_quant_with_min_max_vars_per_channel_p(half *src, half *min_val, half *max_val, half *output, int length, int quant_min, int quant_max, bool symmetric, int channel_num)
    +

    C调用示例:

    +
     1// MT7004 示例:fp16 (half) 类型私有存储单核计算
    + 2#include <stdio.h>
    + 3#include <stdbool.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    half *input = (half *)0x10000000;
    + 7    half *min_arr = (half *)0x10008000;
    + 8    half *max_arr = (half *)0x10008100;
    + 9    half *output = (half *)0x10009000;
    +10    int length = 2000;
    +11    int channel_num = 10;
    +12
    +13    hp_fake_quant_with_min_max_vars_per_channel_p(input, min_arr, max_arr, output,
    +14                                                 length, 0, 255, true, channel_num);
    +15    return 0;
    +16}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/fftimag.html b/master/html/functionlib/dsplib/fftimag.html new file mode 100644 index 0000000..b62adf0 --- /dev/null +++ b/master/html/functionlib/dsplib/fftimag.html @@ -0,0 +1,444 @@ + + + + + + + + + FFTImag — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    FFTImag

    +

    对输入复数序列虚数部分执行一维快速傅里叶变换(FFT)或逆变换(IFFT)。 +内部基于分治 FFT 算法, +并使用预计算旋转因子(twiddle factor)以提升性能。 +傅里叶变换,可以对参数进行调整,以实现FFT/IFFT/RFFT/IRFFT。

    +

    数学定义如下:

    +
    +\[X(k) = \sum_{n=0}^{N-1} x(n)\,e^{-j 2\pi kn / N} \quad (\text{Forward FFT})\]
    +
    +\[x(n) = \sum_{k=0}^{N-1} X(k)\,e^{j 2\pi kn / N} \quad (\text{Inverse FFT})\]
    +

    其中 \(N\) 为 FFT 点数。

    +
    +
    输入:
      +
    • input - 输入复数数据地址。

    • +
    • fft_size - FFT 点数。

    • +
    • +
      dir - 变换方向:
        +
      • FFT_FORWARD:正向 FFT

      • +
      • FFT_INVERSE:反向 FFT

      • +
      +
      +
      +
    • +
    • scratch_ptr - 临时缓冲区地址,用于存放旋转因子及中间计算结果。

    • +
    • twiddle - 旋转因子地址(仅共享存储版本使用)。

    • +
    • fft_size1 - 第一阶段 FFT 点数(仅共享存储版本使用)。

    • +
    • fft_size2 - 第二阶段 FFT 点数(仅共享存储版本使用)。

    • +
    • core_mask - 核掩码(仅共享存储版本需要)。

    • +
    +
    +
    输出:
      +
    • output - 输出复数序列地址。

    • +
    +
    +
    +

    内部核心计算公式如下: +对于FFT,它计算以下表达式:

    +
    +\[X[\omega_1, \dots, \omega_d] = + \sum_{n_1=0}^{N_1-1} \dots \sum_{n_d=0}^{N_d-1} x[n_1, \dots, n_d] + e^{-j\ 2 \pi \sum_{i=0}^d \frac{\omega_i n_i}{N_i}},\]
    +

    其中, \(d\) = signal_ndim 是信号的维度,\(N_i\) 则是信号第 \(i\) 个维度的大小。

    +

    对于IFFT,它计算以下表达式:

    +
    +\[X[\omega_1, \dots, \omega_d] = + \frac{1}{\prod_{i=1}^d N_i} \sum_{n_1=0}^{N_1-1} \dots \sum_{n_d=0}^{N_d-1} x[n_1, \dots, n_d] + e^{\ j\ 2 \pi \sum_{i=0}^d \frac{\omega_i n_i}{N_i}},\]
    +

    其中, \(d\) = signal_ndim 是信号的维度,\(N_i\) 则是信号第 \(i\) 维的大小。

    +
    +

    备注

    +
      +
    • FFT/IFFT要求complex64或complex128类型的输入,返回complex64或complex128类型的输出。

    • +
    • RFFT要求bool, uint8, int8, int16, int32, int64, float32或float64类型的输入, +返回complex64或complex128类型的输出。

    • +
    • IRFFT要求complex64或complex128类型的输入,返回float32或float64类型的输出。

    • +
    • 共享存储版本/私有存储版本支持函数及调用见RFFT。

    • +
    +
    +
    +
    参数:
      +
    • signal_ndim (int) - 表示每个信号中的维数,控制着傅里叶变换的维数,其值只能为1、2或3。

    • +
    • inverse (bool) - 表示该操作是否为逆变换,用以选择FFT 和 RFFT 或 IFFT 和 IRFFT。

      +
        +
      • 如果为 True ,则为IFFT 和 IRFFT。

      • +
      • 如果为 False ,FFT 和 RFFT。

      • +
      +
    • +
    • real (bool) - 表示该操作是否为实变换,与 inverse 共同决定具体的变换模式:

      +
        +
      • inverseFalserealFalse :对应FFT模式。

      • +
      • inverseTruerealFalse :对应IFFT模式。

      • +
      • inverseFalserealTrue :对应RFFT模式。

      • +
      • inverseTruerealTrue :对应IRFFT模式。

      • +
      +
    • +
    • norm (str,可选) - 表示该操作的规范化方式,可选值:[ "backward" , "forward" , "ortho" ]。默认值: "backward"

      +
        +
      • "backward",正向变换不缩放,逆变换按 \(1/n\) 缩放,其中 n 表示输入 x 的元素数量。。

      • +
      • "ortho",正向变换与逆变换均按 \(1/\sqrt n\) 缩放。

      • +
      • "forward",正向变换按 \(1/n\) 缩放,逆变换不缩放。

      • +
      +
    • +
    • onesided (bool,可选) - 控制输入是否减半以避免冗余。默认值: True

    • +
    • signal_sizes (tuple,可选) - 原始信号的大小(RFFT变换之前的信号,不包含batch这一维),只有在IRFFT模式下和设置 onesided 为True时需要该参数,需要满足 +以下条件。默认值: ()

      +
        +
      • signal_sizes 的长度等于IRFFT的 signal_ndim\(len(signal\_sizes)=signal\_ndim\)

      • +
      • signal_sizes 的最后一个维度除以2等于IRFFT输入的最后一个维度: \(signal\_size[-1]/2+1=x.shape[-1]\)

      • +
      • 除了最后一个维度外, signal_sizes 的维度与输入shape完全相同: \(signal\_sizes[:-1]=x.shape[:-1]\)

      • +
      +
    • +
    +
    +
    异常:
      +
    • TypeError - 如果FFT/IFFT/IRFF的输入类型不是以下类型之一:complex64、complex128。

    • +
    • TypeError - 如果输入的类型不是Tensor。

    • +
    • ValueError - 如果输入 x 的维度小于 signal_ndim

    • +
    • ValueError - 如果 signal_ndim 大于3或小于1。

    • +
    • ValueError - 如果 norm 取值不是"backward"、"forward"或"ortho"。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    类型支持:
      +
    • FT78NE:cplx64cplx128

    • +
    • MT7004:cplx64

    • +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/fftreal.html b/master/html/functionlib/dsplib/fftreal.html new file mode 100644 index 0000000..8358636 --- /dev/null +++ b/master/html/functionlib/dsplib/fftreal.html @@ -0,0 +1,444 @@ + + + + + + + + + FFTReal — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    FFTReal

    +

    对输入复数序列实数部分执行一维快速傅里叶变换(FFT)或逆变换(IFFT)。 +内部基于分治 FFT 算法, +并使用预计算旋转因子(twiddle factor)以提升性能。 +傅里叶变换,可以对参数进行调整,以实现FFT/IFFT/RFFT/IRFFT。

    +

    数学定义如下:

    +
    +\[X(k) = \sum_{n=0}^{N-1} x(n)\,e^{-j 2\pi kn / N} \quad (\text{Forward FFT})\]
    +
    +\[x(n) = \sum_{k=0}^{N-1} X(k)\,e^{j 2\pi kn / N} \quad (\text{Inverse FFT})\]
    +

    其中 \(N\) 为 FFT 点数。

    +
    +
    输入:
      +
    • input - 输入复数数据地址。

    • +
    • fft_size - FFT 点数。

    • +
    • +
      dir - 变换方向:
        +
      • FFT_FORWARD:正向 FFT

      • +
      • FFT_INVERSE:反向 FFT

      • +
      +
      +
      +
    • +
    • scratch_ptr - 临时缓冲区地址,用于存放旋转因子及中间计算结果。

    • +
    • twiddle - 旋转因子地址(仅共享存储版本使用)。

    • +
    • fft_size1 - 第一阶段 FFT 点数(仅共享存储版本使用)。

    • +
    • fft_size2 - 第二阶段 FFT 点数(仅共享存储版本使用)。

    • +
    • core_mask - 核掩码(仅共享存储版本需要)。

    • +
    +
    +
    输出:
      +
    • output - 输出复数序列地址。

    • +
    +
    +
    +

    内部核心计算公式如下: +对于FFT,它计算以下表达式:

    +
    +\[X[\omega_1, \dots, \omega_d] = + \sum_{n_1=0}^{N_1-1} \dots \sum_{n_d=0}^{N_d-1} x[n_1, \dots, n_d] + e^{-j\ 2 \pi \sum_{i=0}^d \frac{\omega_i n_i}{N_i}},\]
    +

    其中, \(d\) = signal_ndim 是信号的维度,\(N_i\) 则是信号第 \(i\) 个维度的大小。

    +

    对于IFFT,它计算以下表达式:

    +
    +\[X[\omega_1, \dots, \omega_d] = + \frac{1}{\prod_{i=1}^d N_i} \sum_{n_1=0}^{N_1-1} \dots \sum_{n_d=0}^{N_d-1} x[n_1, \dots, n_d] + e^{\ j\ 2 \pi \sum_{i=0}^d \frac{\omega_i n_i}{N_i}},\]
    +

    其中, \(d\) = signal_ndim 是信号的维度,\(N_i\) 则是信号第 \(i\) 维的大小。

    +
    +

    备注

    +
      +
    • FFT/IFFT要求complex64或complex128类型的输入,返回complex64或complex128类型的输出。

    • +
    • RFFT要求bool, uint8, int8, int16, int32, int64, float32或float64类型的输入, +返回complex64或complex128类型的输出。

    • +
    • IRFFT要求complex64或complex128类型的输入,返回float32或float64类型的输出。

    • +
    • 共享存储版本/私有存储版本支持函数及调用见RFFT。

    • +
    +
    +
    +
    参数:
      +
    • signal_ndim (int) - 表示每个信号中的维数,控制着傅里叶变换的维数,其值只能为1、2或3。

    • +
    • inverse (bool) - 表示该操作是否为逆变换,用以选择FFT 和 RFFT 或 IFFT 和 IRFFT。

      +
        +
      • 如果为 True ,则为IFFT 和 IRFFT。

      • +
      • 如果为 False ,FFT 和 RFFT。

      • +
      +
    • +
    • real (bool) - 表示该操作是否为实变换,与 inverse 共同决定具体的变换模式:

      +
        +
      • inverseFalserealFalse :对应FFT模式。

      • +
      • inverseTruerealFalse :对应IFFT模式。

      • +
      • inverseFalserealTrue :对应RFFT模式。

      • +
      • inverseTruerealTrue :对应IRFFT模式。

      • +
      +
    • +
    • norm (str,可选) - 表示该操作的规范化方式,可选值:[ "backward" , "forward" , "ortho" ]。默认值: "backward"

      +
        +
      • "backward",正向变换不缩放,逆变换按 \(1/n\) 缩放,其中 n 表示输入 x 的元素数量。。

      • +
      • "ortho",正向变换与逆变换均按 \(1/\sqrt n\) 缩放。

      • +
      • "forward",正向变换按 \(1/n\) 缩放,逆变换不缩放。

      • +
      +
    • +
    • onesided (bool,可选) - 控制输入是否减半以避免冗余。默认值: True

    • +
    • signal_sizes (tuple,可选) - 原始信号的大小(RFFT变换之前的信号,不包含batch这一维),只有在IRFFT模式下和设置 onesided 为True时需要该参数,需要满足 +以下条件。默认值: ()

      +
        +
      • signal_sizes 的长度等于IRFFT的 signal_ndim\(len(signal\_sizes)=signal\_ndim\)

      • +
      • signal_sizes 的最后一个维度除以2等于IRFFT输入的最后一个维度: \(signal\_size[-1]/2+1=x.shape[-1]\)

      • +
      • 除了最后一个维度外, signal_sizes 的维度与输入shape完全相同: \(signal\_sizes[:-1]=x.shape[:-1]\)

      • +
      +
    • +
    +
    +
    异常:
      +
    • TypeError - 如果FFT/IFFT/IRFF的输入类型不是以下类型之一:complex64、complex128。

    • +
    • TypeError - 如果输入的类型不是Tensor。

    • +
    • ValueError - 如果输入 x 的维度小于 signal_ndim

    • +
    • ValueError - 如果 signal_ndim 大于3或小于1。

    • +
    • ValueError - 如果 norm 取值不是"backward"、"forward"或"ortho"。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    类型支持:
      +
    • FT78NE:cplx64cplx128

    • +
    • MT7004:cplx64

    • +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/fill.html b/master/html/functionlib/dsplib/fill.html new file mode 100644 index 0000000..bca93bb --- /dev/null +++ b/master/html/functionlib/dsplib/fill.html @@ -0,0 +1,488 @@ + + + + + + + + + Fill — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Fill

    +
    +

    使用给定的常量值填充输出数组。该算子将输入的 value 按指定数据类型复制,并在多核环境下利用 DMA 高效地完成填充操作。

    +
    +\[dst_i = value +\quad \text{for} \quad i = 0,1,\dots,N-1\]
    +
    +
    输入:
      +
    • value - 待填充的常量值地址。

    • +
    • param - Fill 参数结构体指针,描述输出张量的形状与数据类型信息。

    • +
    • core_mask - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 填充结果地址。

    • +
    +
    +
    FillParameter 说明:

    FillParameter 用于描述 Fill 算子的输出张量信息,其定义如下:

    +
    typedef struct FillParameter {
    +    int* shape_;      // 张量各维度大小
    +    int ndim_;        // 张量维度数
    +    int elem_cnt_;    // 张量元素总数
    +    int type_size_;   // 单个元素字节大小
    +} FillParameter;
    +
    +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持fp, dp, int8, int16, int32, cplx64, cplx128

    • +
    • MT7004 支持hp, fp, int16, int32, cplx64

    • +
    +
    +
    +

    共享存储版本:

    +
    +
    +void i8_fill_s(int8_t *value, int8_t *output, int core_mask, FillParameter *param)
    +
    + +
    +
    +void i16_fill_s(int16_t *value, int16_t *output, int core_mask, FillParameter *param)
    +
    + +
    +
    +void i32_fill_s(int32_t *value, int32_t *output, int core_mask, FillParameter *param)
    +
    + +
    +
    +void hp_fill_s(half *value, half *output, int core_mask, FillParameter *param)
    +
    + +
    +
    +void fp_fill_s(float *value, float *output, int core_mask, FillParameter *param)
    +
    + +
    +
    +void dp_fill_s(double *value, double *output, int core_mask, FillParameter *param)
    +
    + +
    +
    +void c64_fill_s(float *value, float *output, int core_mask, FillParameter *param)
    +
    + +
    +
    +void c128_fill_s(double *value, double *output, int core_mask, FillParameter *param)
    +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <fill.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float value = 1.0f;
    + 7    float *output = (float *)0xC0000000;
    + 8    FillParameter param;
    + 9    param.elem_cnt_ = 1024;
    +10    param.type_size_ = sizeof(float);
    +11    int core_mask = 0xff;
    +12    fp_fill_s(&value, output, core_mask, &param);
    +13    return 0;
    +14}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void i8_fill_p(int8_t *value, int8_t *output, FillParameter *param)
    +
    + +
    +
    +void i16_fill_p(int16_t *value, int16_t *output, FillParameter *param)
    +
    + +
    +
    +void i32_fill_p(int32_t *value, int32_t *output, FillParameter *param)
    +
    + +
    +
    +void hp_fill_p(half *value, half *output, FillParameter *param)
    +
    + +
    +
    +void fp_fill_p(float *value, float *output, FillParameter *param)
    +
    + +
    +
    +void dp_fill_p(double *value, double *output, FillParameter *param)
    +
    + +
    +
    +void c64_fill_p(float *value, float *output, FillParameter *param)
    +
    + +
    +
    +void c128_fill_p(double *value, double *output, FillParameter *param)
    +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <fill.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float value = 1.0f;
    + 7    float *output = (float *)0x10820000;
    + 8    FillParameter param;
    + 9    param.elem_cnt_ = 1024;
    +10    param.type_size_ = sizeof(float);
    +11    fp_fill_p(&value, output, &param);
    +12    return 0;
    +13}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/fillv2.html b/master/html/functionlib/dsplib/fillv2.html index 998d9a5..83da1c0 100644 --- a/master/html/functionlib/dsplib/fillv2.html +++ b/master/html/functionlib/dsplib/fillv2.html @@ -34,7 +34,7 @@ - + MindSpore Signal+ 使用手册
    @@ -46,11 +46,7 @@
    @@ -111,15 +276,15 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -234,7 +399,7 @@
      -

      © 版权所有 2025 - 2025, NUDT-674。

      +

      © 版权所有 2025 - 2026, NUDT-674。

      利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/floordiv.html b/master/html/functionlib/dsplib/floordiv.html index 80d6887..22add36 100644 --- a/master/html/functionlib/dsplib/floordiv.html +++ b/master/html/functionlib/dsplib/floordiv.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
      @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -192,9 +357,9 @@ 13 float epsilon = 1e-5f; 14 int core_mask = 0xff; 15 fp_fusedbatchnorm_s(input, scale, offset, mean, variance, -16 epsilon, channel, unit, core_mask, -17 output); -18 return 0; +16 epsilon, channel, unit, core_mask, +17 output); +18 return 0; 19}
    @@ -224,8 +389,8 @@ 12 int unit = 512; 13 float epsilon = 1e-4f; 14 hp_fusedbatchnorm_p(input, scale, offset, mean, variance, -15 epsilon, channel, unit, output); -16 return 0; +15 epsilon, channel, unit, output); +16 return 0; 17}
    @@ -244,7 +409,7 @@
    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/gather.html b/master/html/functionlib/dsplib/gather.html new file mode 100644 index 0000000..d5968eb --- /dev/null +++ b/master/html/functionlib/dsplib/gather.html @@ -0,0 +1,494 @@ + + + + + + + + + Gather — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Gather

    +

    沿着给定的轴 axis,根据 indices 张量提供的索引值,从 input 张量中收集数据。支持 batch_dims 指定的批处理维度,即在前 batch_dims 个维度上,索引和输入是对应的。

    +
    +\[\begin{split}\text{output}[i_0, ..., i_{axis-1}, j_0, ..., j_{indices\_ndim-batch\_dims-1}, i_{axis+1}, ..., i_{input\_ndim-1}] = \\ +\text{input}[i_0, ..., i_{axis-1}, \text{indices}[i_0, ..., i_{batch\_dims-1}, j_0, ..., j_{indices\_ndim-batch\_dims-1}], i_{axis+1}, ..., i_{input\_ndim-1}]\end{split}\]
    +
    +
    输入:
      +
    • output - 计算结果输出地址。

    • +
    • input - 输入源张量数据地址。

    • +
    • input_shape - 输入张量的形状数组地址。

    • +
    • input_ndim - 输入张量的维度数量。

    • +
    • indices - 索引张量数据地址(通常为 int32 类型)。

    • +
    • indices_shape - 索引张量的形状数组地址。

    • +
    • indices_ndim - 索引张量的维度数量。

    • +
    • axis - 沿着哪个轴进行聚集操作。

    • +
    • batch_dims - 批处理维度数量。

    • +
    • core_mask(int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 聚集后的计算结果。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128

    • +
    • MT7004 支持 fp16, fp32, int16, int32, cplx64

    • +
    • 索引张量 indices 内部存储的索引值必须在 [0, input_shape[axis]) 范围内,否则行为未定义。

    • +
    • 聚集操作涉及非连续访存,在大规模数据下建议使用共享存储版本并行处理。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_gather_s(int8_t *output, int8_t *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask)
    +
    + +
    +
    +void i16_gather_s(int16_t *output, int16_t *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask)
    +
    + +
    +
    +void i32_gather_s(int32_t *output, int32_t *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask)
    +
    + +
    +
    +void hp_gather_s(half *output, half *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask)
    +
    + +
    +
    +void fp_gather_s(float *output, float *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask)
    +
    + +
    +
    +void dp_gather_s(double *output, double *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask)
    +
    + +
    +
    +void c64_gather_s(float *output, float *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask)
    +
    + +
    +
    +void c128_gather_s(double *output, double *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims, int core_mask)
    +

    C调用示例:

    +
     1// FT78NE 示例:多核并行聚集操作
    + 2#include <stdio.h>
    + 3#include "78NE/utils.h"
    + 4
    + 5int main() {
    + 6    float *input = (float *)0xA0000000;
    + 7    int *indices = (int *)0xB0000000;
    + 8    float *output = (float *)0xC0000000;
    + 9    int input_shape[] = {16, 800, 80};
    +10    int indices_shape[] = {16, 400};
    +11    int input_ndim = 3;
    +12    int indices_ndim = 2;
    +13    int axis = 1;
    +14    int batch_dims = 1;
    +15    int core_mask = 0xFF; // 使用8核并行
    +16
    +17    fp_gather_s(output, input, input_shape, input_ndim, indices, indices_shape, indices_ndim, axis, batch_dims, core_mask);
    +18    return 0;
    +19}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void i8_gather_p(int8_t *output, int8_t *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims)
    +
    + +
    +
    +void i16_gather_p(int16_t *output, int16_t *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims)
    +
    + +
    +
    +void i32_gather_p(int32_t *output, int32_t *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims)
    +
    + +
    +
    +void hp_gather_p(half *output, half *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims)
    +
    + +
    +
    +void fp_gather_p(float *output, float *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims)
    +
    + +
    +
    +void dp_gather_p(double *output, double *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims)
    +
    + +
    +
    +void c64_gather_p(float *output, float *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims)
    +
    + +
    +
    +void c128_gather_p(double *output, double *input, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int axis, int batch_dims)
    +

    C调用示例:

    +
     1// MT7004 示例:单核聚集操作
    + 2#include <stdio.h>
    + 3
    + 4int main() {
    + 5    float *input = (float *)0x10000000;
    + 6    int *indices = (int *)0x10010000;
    + 7    float *output = (float *)0x10020000;
    + 8    int input_shape[] = {2, 100, 10};
    + 9    int indices_shape[] = {2, 50};
    +10    int input_ndim = 3;
    +11    int indices_ndim = 2;
    +12    int axis = 1;
    +13    int batch_dims = 1;
    +14
    +15    fp_gather_p(output, input, input_shape, input_ndim, indices, indices_shape, indices_ndim, axis, batch_dims);
    +16    return 0;
    +17}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/gather_nd.html b/master/html/functionlib/dsplib/gather_nd.html new file mode 100644 index 0000000..911a062 --- /dev/null +++ b/master/html/functionlib/dsplib/gather_nd.html @@ -0,0 +1,485 @@ + + + + + + + + + GatherNd — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    GatherNd

    +

    根据索引张量中的坐标,从输入张量中收集切片或元素。

    +

    GatherNd 允许根据 indices 提供的多维索引,在 input 张量的指定轴上进行切片提取。如果 indices 的最后一个维度长度为 K,则它代表从 input 的前 K 个维度中提取对应的子张量(切片)。

    +
    +
    输入:
      +
    • input - 输入数据张量地址。

    • +
    • output - 计算结果张量地址。

    • +
    • input_shape - 输入张量的形状数组地址。

    • +
    • input_ndim - 输入张量的维度数。

    • +
    • indices - 索引张量地址(类型固定为 int32)。

    • +
    • indices_shape - 索引张量的形状数组地址。

    • +
    • indices_ndim - 索引张量的维度数。

    • +
    • core_mask(int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 收集后的数据存放地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128

    • +
    • MT7004 支持 fp16, fp32, int16, int32, cplx64

    • +
    • 索引张量 (indices) 在所有平台上均使用 int32 类型。

    • +
    • 坐标索引必须在输入张量维度的合法范围内,否则行为未定义。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_gather_nd_s(int8_t *input, int8_t *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int core_mask)
    +
    + +
    +
    +void i16_gather_nd_s(int16_t *input, int16_t *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int core_mask)
    +
    + +
    +
    +void i32_gather_nd_s(int *input, int *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int core_mask)
    +
    + +
    +
    +void hp_gather_nd_s(half *input, half *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int core_mask)
    +
    + +
    +
    +void fp_gather_nd_s(float *input, float *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int core_mask)
    +
    + +
    +
    +void dp_gather_nd_s(double *input, double *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int core_mask)
    +
    + +
    +
    +void c64_gather_nd_s(float *input, float *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int core_mask)
    +
    + +
    +
    +void c128_gather_nd_s(double *input, double *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim, int core_mask)
    +

    C调用示例:

    +
     1// FT78NE 示例(共享存储)
    + 2#include <stdio.h>
    + 3#include "78NE/utils.h"
    + 4
    + 5int main() {
    + 6    float *input = (float *)0xA0000000;    // 输入在 DDR 空间
    + 7    float *output = (float *)0xB0000000;   // 输出在 DDR 空间
    + 8    int *indices = (int *)0xC0000000;      // 索引在 DDR 空间
    + 9    int input_shape[] = {10, 10, 5};
    +10    int indices_shape[] = {3, 2};          // 提取3个坐标,每个坐标深度为2
    +11    int input_ndim = 3;
    +12    int indices_ndim = 2;
    +13    int core_mask = 0xFF;
    +14
    +15    fp_gather_nd_s(input, output, input_shape, input_ndim, indices, indices_shape, indices_ndim, core_mask);
    +16    return 0;
    +17}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void i8_gather_nd_p(int8_t *input, int8_t *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim)
    +
    + +
    +
    +void i16_gather_nd_p(int16_t *input, int16_t *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim)
    +
    + +
    +
    +void i32_gather_nd_p(int *input, int *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim)
    +
    + +
    +
    +void hp_gather_nd_p(half *input, half *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim)
    +
    + +
    +
    +void fp_gather_nd_p(float *input, float *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim)
    +
    + +
    +
    +void dp_gather_nd_p(double *input, double *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim)
    +
    + +
    +
    +void c64_gather_nd_p(float *input, float *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim)
    +
    + +
    +
    +void c128_gather_nd_p(double *input, double *output, int *input_shape, int input_ndim, int *indices, int *indices_shape, int indices_ndim)
    +

    C调用示例:

    +
     1// MT7004 示例(私有存储)
    + 2#include <stdio.h>
    + 3
    + 4int main() {
    + 5    float *input = (float *)0x10000000;
    + 6    float *output = (float *)0x10010000;
    + 7    int *indices = (int *)0x10020000;
    + 8    int input_shape[] = {4, 5, 6};
    + 9    int indices_shape[] = {2, 2, 2};
    +10    int input_ndim = 3;
    +11    int indices_ndim = 3;
    +12
    +13    fp_gather_nd_p(input, output, input_shape, input_ndim, indices, indices_shape, indices_ndim);
    +14    return 0;
    +15}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/gatherd.html b/master/html/functionlib/dsplib/gatherd.html new file mode 100644 index 0000000..bad40d0 --- /dev/null +++ b/master/html/functionlib/dsplib/gatherd.html @@ -0,0 +1,490 @@ + + + + + + + + + GatherD — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    GatherD

    +

    按照给定的维度 dim 和索引张量 index,从输入张量中按元素位置 +抽取数据,生成新的输出张量。

    +

    该算子等价于在指定维度上执行逐元素 Gather 操作,其输出形状与 +index 张量形状一致。

    +
    +\[\text{output}[i_0, \dots, i_n] += +\text{input}_x[i_0, \dots, i_{dim-1}, \text{index}[i_0, \dots, i_n], i_{dim+1}, \dots, i_n]\]
    +
    +
    输入:
      +
    • input_x - 输入张量的数据地址。 +数据类型需与所调用的 GatherD 接口类型一致。

    • +
    • dim - 指定进行 Gather 操作的维度索引,取值范围为 +[0, input_shape_size)

    • +
    • index - 索引张量的数据地址,类型为 int*, +用于指定在 dim 维度上的取值位置。

    • +
    • input_shape - 输入张量各维度大小数组地址。

    • +
    • input_shape_size - 输入张量的维度数量。

    • +
    • index_shape - 索引张量的形状数组地址, +其维度数量与 input_shape_size 相同。

    • +
    • core_mask - 核掩码(仅共享存储版本使用)。

    • +
    +
    +
    输出:
      +
    • output - 输出张量的数据地址, +其形状与 index_shape 保持一致, +数据类型与 input_x 相同。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • index 中的取值应满足 +0 <= index[...] < input_shape[dim]

    • +
    • 输出张量的元素个数等于 index_shape 各维度之积。

    • +
    • 该算子不对索引顺序进行任何排序或检查。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_gatherd_s(float *input_x, int dim, int *index, float *output, int *input_shape, int input_shape_size, int *index_shape, int core_mask)
    +
    + +
    +
    +void dp_gatherd_s(double *input_x, int dim, int *index, double *output, int *input_shape, int input_shape_size, int *index_shape, int core_mask)
    +
    + +
    +
    +void i8_gatherd_s(int8_t *input_x, int dim, int *index, int8_t *output, int *input_shape, int input_shape_size, int *index_shape, int core_mask)
    +
    + +
    +
    +void i16_gatherd_s(int16_t *input_x, int dim, int *index, int16_t *output, int *input_shape, int input_shape_size, int *index_shape, int core_mask)
    +
    + +
    +
    +void i32_gatherd_s(int32_t *input_x, int dim, int *index, int32_t *output, int *input_shape, int input_shape_size, int *index_shape, int core_mask)
    +
    + +
    +
    +void c64_gatherd_s(float *input_x, int dim, int *index, float *output, int *input_shape, int input_shape_size, int *index_shape, int core_mask)
    +
    + +
    +
    +void c128_gatherd_s(double *input_x, int dim, int *index, double *output, int *input_shape, int input_shape_size, int *index_shape, int core_mask)
    +
    + +

    C调用示例:

    +
     1// FT78NE 示例
    + 2#include <stdio.h>
    + 3#include <gatherd.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *input_x = (float *)0xA0000000;   // input_x 在 DDR 空间
    + 7    float *output  = (float *)0xB0000000;
    + 8    int *index     = (int *)0xA1000000;
    + 9
    +10    int input_shape[] = {4, 8, 16};
    +11    int index_shape[] = {4, 8, 16};
    +12    int input_shape_size = 3;
    +13    int dim = 1;
    +14    int core_mask = 0xff;
    +15
    +16    fp_gatherd_s(input_x, dim, index, output, input_shape, input_shape_size, index_shape, core_mask);
    +17    return 0;
    +18}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_gatherd_p(float *input_x, int dim, int *index, float *output, int *input_shape, int input_shape_size, int *index_shape)
    +
    + +
    +
    +void dp_gatherd_p(double *input_x, int dim, int *index, double *output, int *input_shape, int input_shape_size, int *index_shape)
    +
    + +
    +
    +void i8_gatherd_p(int8_t *input_x, int dim, int *index, int8_t *output, int *input_shape, int input_shape_size, int *index_shape)
    +
    + +
    +
    +void i16_gatherd_p(int16_t *input_x, int dim, int *index, int16_t *output, int *input_shape, int input_shape_size, int *index_shape)
    +
    + +
    +
    +void i32_gatherd_p(int32_t *input_x, int dim, int *index, int32_t *output, int *input_shape, int input_shape_size, int *index_shape)
    +
    + +
    +
    +void c64_gatherd_p(float *input_x, int dim, int *index, float *output, int *input_shape, int input_shape_size, int *index_shape)
    +
    + +
    +
    +void c128_gatherd_p(double *input_x, int dim, int *index, double *output, int *input_shape, int input_shape_size, int *index_shape)
    +
    + +

    C调用示例:

    +
     1// MT7004 示例
    + 2#include <stdio.h>
    + 3#include <gatherd.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *input_x = (float *)0x10000000;   // input_x 在 L2 空间
    + 7    float *output  = (float *)0x10010000;
    + 8    int *index     = (int *)0x10020000;
    + 9
    +10    int input_shape[] = {2, 4};
    +11    int index_shape[] = {2, 4};
    +12    int input_shape_size = 2;
    +13    int dim = 0;
    +14
    +15    fp_gatherd_p(input_x, dim, index, output, input_shape, input_shape_size, index_shape);
    +16    return 0;
    +17}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/glu.html b/master/html/functionlib/dsplib/glu.html new file mode 100644 index 0000000..1b181b3 --- /dev/null +++ b/master/html/functionlib/dsplib/glu.html @@ -0,0 +1,452 @@ + + + + + + + + + GLU — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    GLU

    +

    Gated Linear Unit(门控线性单元)算子。该算子将输入张量在指定维度(split_dim)上分割成两个相等的部分(A和B),然后对第二部分(B)应用Sigmoid激活函数,并将其与第一部分(A)逐元素相乘。

    +
    +\[\text{out} = A \otimes \sigma(B)\]
    +

    其中,A和B是输入张量沿 split_dim 维度分割后的两个子张量,\(\sigma\) 是Sigmoid函数,\(\otimes\) 表示逐元素乘法。

    +
    +
    输入:
      +
    • in_data - 输入张量的数据地址。

    • +
    • split_data - 一个指针数组,用于存放分割后的子张量地址(作为临时缓冲区)。

    • +
    • out_data - 输出张量的数据地址。

    • +
    • ndim - 输入张量的维度数量。

    • +
    • split_dim - 执行分割操作的目标维度轴。

    • +
    • input_shape - 指向一个整数数组的指针,该数组描述了输入张量的形状。

    • +
    • num_split - 分割的数量,对于GLU操作,此值应为2。

    • +
    • split_sizes - 指向一个整数数组的指针,该数组描述了每个子张量在 split_dim 维度上的大小。

    • +
    • strides - 指向一个整数数组的指针,用于存放为张量索引预先计算好的步长。

    • +
    • len - 输出张量中的元素总数。

    • +
    • core_mask - 核掩码 (仅共享存储版本需要)。

    • +
    +
    +
    输出:
      +
    • out_data - 存储GLU计算结果的张量。其形状与输入张量相同,但在 split_dim 维度上的大小减半。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE支持fp32和int8类型。

    • +
    • MT7004支持fp16和fp32类型。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_glu_s(int8_t *in_data, int8_t **split_data, int8_t *out_data, int ndim, int split_dim, int *input_shape, int num_split, int *split_sizes, int *strides, int len, int core_mask)
    +
    + +
    +
    +void hp_glu_s(half *in_data, half **split_data, half *out_data, int ndim, int split_dim, int *input_shape, int num_split, int *split_sizes, int *strides, int len, int core_mask)
    +
    + +
    +
    +void fp_glu_s(float *in_data, float **split_data, float *out_data, int ndim, int split_dim, int *input_shape, int num_split, int *split_sizes, int *strides, int len, int core_mask)
    +
    + +

    C调用示例:

    +
     1// 7004平台, fp32示例
    + 2#include <stdio.h>
    + 3#include "glu.h"
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *in_data = (float *)0xA0000000;      // input在DDR空间
    + 7    float *out_data = (float *)0xC0000000;     // output在DDR空间
    + 8    float *split_data_buf[2];                  // 临时缓冲区指针
    + 9    // ... (需要为split_data_buf分配内存)
    +10
    +11    // 假设张量属性已定义
    +12    int ndim = 2;
    +13    int split_dim = 1;
    +14    int input_shape[] = {2, 4};
    +15    int num_split = 2;
    +16    int split_sizes[] = {2, 2};
    +17    int len = 4;
    +18    int strides[2]; // 需要预先计算
    +19    int core_mask = 0xff;
    +20
    +21    fp_glu_s(in_data, split_data_buf, out_data, ndim, split_dim, input_shape, num_split, split_sizes, strides, len, core_mask);
    +22    return 0;
    +23}
    +
    +
    +

    私有存储版本:

    +
    +
    +void i8_glu_p(int8_t *in_data, int8_t **split_data, int8_t *out_data, int ndim, int split_dim, int *input_shape, int num_split, int *split_sizes, int *strides, int len)
    +
    + +
    +
    +void hp_glu_p(half *in_data, half **split_data, half *out_data, int ndim, int split_dim, int *input_shape, int num_split, int *split_sizes, int *strides, int len)
    +
    + +
    +
    +void fp_glu_p(float *in_data, float **split_data, float *out_data, int ndim, int split_dim, int *input_shape, int num_split, int *split_sizes, int *strides, int len)
    +
    + +

    C调用示例:

    +
     1// 7004平台, fp32示例
    + 2#include <stdio.h>
    + 3#include "glu.h"
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *in_data = (float *)0x10000000;     // input在L2空间
    + 7    float *out_data = (float *)0x10001000;    // output在L2空间
    + 8    float *split_data_buf[2];                 // 临时缓冲区指针
    + 9    // ... (需要为split_data_buf分配内存)
    +10
    +11    // 假设张量属性已定义
    +12    int ndim = 2;
    +13    int split_dim = 1;
    +14    int input_shape[] = {2, 4};
    +15    int num_split = 2;
    +16    int split_sizes[] = {2, 2};
    +17    int len = 4;
    +18    int strides[2]; // 需要预先计算
    +19
    +20    fp_glu_p(in_data, split_data_buf, out_data, ndim, split_dim, input_shape, num_split, split_sizes, strides, len);
    +21    return 0;
    +22}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/greater.html b/master/html/functionlib/dsplib/greater.html new file mode 100644 index 0000000..cf320fb --- /dev/null +++ b/master/html/functionlib/dsplib/greater.html @@ -0,0 +1,461 @@ + + + + + + + + + Greater — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Greater

    +

    逐元素比较两个输入张量,判断 input1 的元素是否大于 input2 的对应元素。支持广播。

    +
    +\[\text{output}_i = (\text{input1}_i > \text{input2}_i)\]
    +

    输出一个布尔张量,如果比较结果为真,则对应元素为 true,否则为 false

    +
    +
    输入:
      +
    • element_num - 输出张量的总元素数量。在广播情况下,等于较大输入张量的元素数量。

    • +
    • optimize - 广播优化标志。若为非0,则启用广播模式。

    • +
    • in_elements_num0 - 第一个输入张量 input1 的元素数量。用于广播判断。

    • +
    • input1 - 第一个输入张量的数据地址。

    • +
    • input2 - 第二个输入张量的数据地址。

    • +
    • output - (输出) 输出的布尔类型张量的数据地址。

    • +
    • core_mask - 核掩码。

    • +
    +
    +
    输出:
      +
    • output - 写入比较结果的布尔张量。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持fp32, fp64, int8, int16, int32

    • +
    • MT7004 支持fp16, fp32, int16, int32

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_greater_s(int element_num, int optimize, int in_elements_num0, float *input1, float *input2, bool *output, int core_mask)
    +
    + +
    +
    +void hp_greater_s(int element_num, int optimize, int in_elements_num0, half *input1, half *input2, bool *output, int core_mask)
    +
    + +
    +
    +void dp_greater_s(int element_num, int optimize, int in_elements_num0, double *input1, double *input2, bool *output, int core_mask)
    +
    + +
    +
    +void i32_greater_s(int element_num, int optimize, int in_elements_num0, int32_t *input1, int32_t *input2, bool *output, int core_mask)
    +
    + +
    +
    +void i16_greater_s(int element_num, int optimize, int in_elements_num0, int16_t *input1, int16_t *input2, bool *output, int core_mask)
    +
    + +
    +
    +void i8_greater_s(int element_num, int optimize, int in_elements_num0, int8_t *input1, int8_t *input2, bool *output, int core_mask)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <greater.h>
    + 4int main(int argc, char* argv[]) {
    + 5    float *input1 = (float *)0xA0000000;    // Scalar input, DDR
    + 6    float *input2 = (float *)0xB0000000;    // Tensor input
    + 7    bool *output = (bool *)0xC0000000;      // Output
    + 8
    + 9    // Broadcasting input1 (scalar) > input2 (tensor)
    +10    int element_num = 4096; // Size of input2 and output
    +11    int optimize = 1;       // Enable broadcasting
    +12    int in_elements_num0 = 1; // Size of input1
    +13    int core_mask = 0xff;
    +14
    +15    fp_greater_s(element_num, optimize, in_elements_num0, input1, input2, output, core_mask);
    +16    return 0;
    +17}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_greater_p(int element_num, int optimize, int in_elements_num0, float *input1, float *input2, bool *output)
    +
    + +
    +
    +void hp_greater_p(int element_num, int optimize, int in_elements_num0, half *input1, half *input2, bool *output)
    +
    + +
    +
    +void i32_greater_p(int element_num, int optimize, int in_elements_num0, int32_t *input1, int32_t *input2, bool *output)
    +
    + +
    +
    +void i16_greater_p(int element_num, int optimize, int in_elements_num0, int16_t *input1, int16_t *input2, bool *output)
    +
    + +
    +
    +void i8_greater_p(int element_num, int optimize, int in_elements_num0, int8_t *input1, int8_t *input2, bool *output)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <greater.h>
    + 4int main(int argc, char* argv[]) {
    + 5    float *input1 = (float *)0x10000000;    // Tensor input, L2
    + 6    float *input2 = (float *)0x11000000;    // Scalar input
    + 7    bool *output = (bool *)0x12000000;      // Output
    + 8
    + 9    // Broadcasting input1 (tensor) > input2 (scalar)
    +10    int element_num = 1024; // Size of input1 and output
    +11    int optimize = 1;       // Enable broadcasting
    +12    int in_elements_num0 = 1024; // Size of input1
    +13
    +14    fp_greater_p(element_num, optimize, in_elements_num0, input1, input2, output);
    +15    return 0;
    +16}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/greaterequal.html b/master/html/functionlib/dsplib/greaterequal.html new file mode 100644 index 0000000..a14e1ec --- /dev/null +++ b/master/html/functionlib/dsplib/greaterequal.html @@ -0,0 +1,461 @@ + + + + + + + + + Greaterequal — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Greaterequal

    +

    逐元素比较两个输入张量,判断 input1 的元素是否大于或等于 input2 的对应元素。支持广播。

    +
    +\[\text{output}_i = (\text{input1}_i \ge \text{input2}_i)\]
    +

    输出一个布尔张量,如果比较结果为真,则对应元素为 true,否则为 false

    +
    +
    输入:
      +
    • element_num - 输出张量的总元素数量。在广播情况下,等于较大输入张量的元素数量。

    • +
    • optimize - 广播优化标志。若为非0,则启用广播模式。

    • +
    • in_elements_num0 - 第一个输入张量 input1 的元素数量。用于广播判断。

    • +
    • input1 - 第一个输入张量的数据地址。

    • +
    • input2 - 第二个输入张量的数据地址。

    • +
    • output - (输出) 输出的布尔类型张量的数据地址。

    • +
    • core_mask - 核掩码。

    • +
    +
    +
    输出:
      +
    • output - 写入比较结果的布尔张量。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持fp32, fp64, int8, int16, int32

    • +
    • MT7004 支持fp16, fp32, int16, int32

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_greaterequal_s(int element_num, int optimize, int in_elements_num0, float *input1, float *input2, bool *output, int core_mask)
    +
    + +
    +
    +void hp_greaterequal_s(int element_num, int optimize, int in_elements_num0, half *input1, half *input2, bool *output, int core_mask)
    +
    + +
    +
    +void dp_greaterequal_s(int element_num, int optimize, int in_elements_num0, double *input1, double *input2, bool *output, int core_mask)
    +
    + +
    +
    +void i8_greaterequal_s(int element_num, int optimize, int in_elements_num0, int8_t *input1, int8_t *input2, bool *output, int core_mask)
    +
    + +
    +
    +void i16_greaterequal_s(int element_num, int optimize, int in_elements_num0, int16_t *input1, int16_t *input2, bool *output, int core_mask)
    +
    + +
    +
    +void i32_greaterequal_s(int element_num, int optimize, int in_elements_num0, int32_t *input1, int32_t *input2, bool *output, int core_mask)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <greaterequal.h>
    + 4int main(int argc, char* argv[]) {
    + 5    float *input1 = (float *)0xA0000000;    // Scalar input, DDR
    + 6    float *input2 = (float *)0xB0000000;    // Tensor input
    + 7    bool *output = (bool *)0xC0000000;      // Output
    + 8
    + 9    // Broadcasting input1 (scalar) >= input2 (tensor)
    +10    int element_num = 4096; // Size of input2 and output
    +11    int optimize = 1;       // Enable broadcasting
    +12    int in_elements_num0 = 1; // Size of input1
    +13    int core_mask = 0xff;
    +14
    +15    fp_greaterequal_s(element_num, optimize, in_elements_num0, input1, input2, output, core_mask);
    +16    return 0;
    +17}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_greaterequal_p(int element_num, int optimize, int in_elements_num0, float *input1, float *input2, bool *output)
    +
    + +
    +
    +void hp_greaterequal_p(int element_num, int optimize, int in_elements_num0, half *input1, half *input2, bool *output)
    +
    + +
    +
    +void i32_greaterequal_p(int element_num, int optimize, int in_elements_num0, int32_t *input1, int32_t *input2, bool *output)
    +
    + +
    +
    +void i16_greaterequal_p(int element_num, int optimize, int in_elements_num0, int16_t *input1, int16_t *input2, bool *output)
    +
    + +
    +
    +void i8_greaterequal_p(int element_num, int optimize, int in_elements_num0, int8_t *input1, int8_t *input2, bool *output)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <greaterequal.h>
    + 4int main(int argc, char* argv[]) {
    + 5    float *input1 = (float *)0x10000000;    // Tensor input, L2
    + 6    float *input2 = (float *)0x11000000;    // Scalar input
    + 7    bool *output = (bool *)0x12000000;      // Output
    + 8
    + 9    // Broadcasting input1 (tensor) >= input2 (scalar)
    +10    int element_num = 1024; // Size of input1 and output
    +11    int optimize = 1;       // Enable broadcasting
    +12    int in_elements_num0 = 1024; // Size of input1
    +13
    +14    fp_greaterequal_p(element_num, optimize, in_elements_num0, input1, input2, output);
    +15    return 0;
    +16}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/groupnormfusion.html b/master/html/functionlib/dsplib/groupnormfusion.html index c165954..6460ce2 100644 --- a/master/html/functionlib/dsplib/groupnormfusion.html +++ b/master/html/functionlib/dsplib/groupnormfusion.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
    @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -197,9 +362,9 @@ 15 float epsilon = 1e-5f; 16 int core_mask = 0xff; 17 fp_groupnormfusion_s(input, scale, offset, mean, variance, -18 epsilon, num_groups, channel, unit, -19 batch, core_mask, output); -20 return 0; +18 epsilon, num_groups, channel, unit, +19 batch, core_mask, output); +20 return 0; 21}
    @@ -231,9 +396,9 @@ 14 int batch = 16; 15 float epsilon = 1e-4f; 16 hp_groupnormfusion_p(input, scale, offset, mean, variance, -17 epsilon, num_groups, channel, unit, -18 batch, output); -19 return 0; +17 epsilon, num_groups, channel, unit, +18 batch, output); +19 return 0; 20}
    @@ -252,7 +417,7 @@
    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/gru.html b/master/html/functionlib/dsplib/gru.html index 340e1e5..efc6ddd 100644 --- a/master/html/functionlib/dsplib/gru.html +++ b/master/html/functionlib/dsplib/gru.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
    @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
    @@ -112,15 +277,15 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -173,9 +338,9 @@ 6 float end = 100.0f; 7 int length = 1001; 8 int core_mask = 0xff; - 9 fp_linspace_s(output, start, end, length, core_mask); -10 return 0; -11} + 9 fp_linspace_s(output, start, end, length, core_mask); +10 return 0; +11}

    gSGsoS=XXZMVp+&gyi5Q_CV8#DP5^8fSp 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/stridedslicegrad.doctree b/master/doctrees/functionlib/dsplib/stridedslicegrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..64af6c7fd0de7bdf2e0b1a9077582e411e4c3274 GIT binary patch literal 38231 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 Bk`@2} literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/subfusion.doctree b/master/doctrees/functionlib/dsplib/subfusion.doctree new file mode 100644 index 0000000000000000000000000000000000000000..03627ea73d774b1c2b9ab37ead819ed631cfcb57 GIT binary patch literal 169362 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/subgrad.doctree b/master/doctrees/functionlib/dsplib/subgrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..b7b067539addcb7cadbf44be980a5129ebce5eda GIT binary patch literal 35085 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З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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/switchlayer.doctree b/master/doctrees/functionlib/dsplib/switchlayer.doctree new file mode 100644 index 0000000000000000000000000000000000000000..bc8f1294a1e2e3cb0bd4a7884be15dead4dfbce9 GIT binary patch literal 23234 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�-gnPH$ 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/tensorarray.doctree b/master/doctrees/functionlib/dsplib/tensorarray.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a32dff8669cfb3be3dd9c5106ad444bc7b8b8b45 GIT binary patch literal 35552 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 B)vo{m literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/tensorarrayread.doctree b/master/doctrees/functionlib/dsplib/tensorarrayread.doctree new file mode 100644 index 0000000000000000000000000000000000000000..44c2c80cbcb24f7ecff333a286b77e5ad969b894 GIT binary patch literal 81095 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 lT%Z%=q{E|}!V*{|{HHdm;b; literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/tensorarraywrite.doctree b/master/doctrees/functionlib/dsplib/tensorarraywrite.doctree new file mode 100644 index 0000000000000000000000000000000000000000..860e6a052e019937d2a6ec02d9c4f83fd8b98213 GIT binary patch literal 12291 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/tensorlistfromtensor.doctree b/master/doctrees/functionlib/dsplib/tensorlistfromtensor.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f21941e6e7158b1940f4ddf04400a16a74cce173 GIT binary patch literal 81227 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/tensorlistreserve.doctree b/master/doctrees/functionlib/dsplib/tensorlistreserve.doctree new file mode 100644 index 0000000000000000000000000000000000000000..683aed40a32513aad2f7d24d7d0e8031ac11d966 GIT binary patch literal 19713 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/detection_post_process.doctree b/master/doctrees/functionlib/dsplib/detection_post_process.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5a2a4867570a7383939a1db09e4b32335d1c065f GIT binary patch literal 62613 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/divgrad.doctree b/master/doctrees/functionlib/dsplib/divgrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6131e1e30c5489b160e29a3a138875f077a52eed GIT binary patch literal 158325 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 ZpjX4xG|(@hSQs7wR%Htv^UH(%{|mrhw9o(m literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/dsplib_index.doctree b/master/doctrees/functionlib/dsplib/dsplib_index.doctree index a7d05d75ca6e34017a5e7b8448e1ec6f5cff8335..7f6e18594dd3dddd5815715032c2eeee24e4b1cc 100644 GIT binary patch delta 3737 zcmai%e~cYf6~}kquYGU(+TGIKE$?k1MUl4H$j=xRZILv_P}3NrMvY~dow@Jbc{?+A zdheaxZUZbDZP08?<1AtfHiZzJ@ek~ zQxg5>vv=nHc;}uU-!uEqPyXq<}|b}!0_|9bi3MJ$$+@+y;ket0r_w6?CWv%K`g;GYMV9xeW@ zl>KpNVnn(|T6ZcGp;FUnlI^ZGim_;C+slnA{dL;f^|Lz)jasa%Ble_jm?g!=aH3|N zR%!wj_a24L*J7gI4A0Tu{-s)YL86sM2i;n3T$IK^OXSU2`v?K?58=uU6M^jehqF*l6kp$}tJ8){2}HWoJu` zikC(vjk3R28mmmCl$F4d5s zSi@^?z}n3wakUZ7|J{piS8Nf=nRn!_>9&-snijL@N*bhni$u--JB zQncipZKdY0>$?$exM5(Zwj)+0` z4d*VxL)VoGE@_rqtsoXO+E57E+3kg9&81Xm$CN8@(@5g_`8j<4)j0nWnvYcAbD+9$ zLYVR>u>;*Hvs@>1Qr8l=mY#S9W#xt;o1oidUvCs}0gbvdZQLP<+kF?Ca;+zk<$MGk zSD6Z2L-lx}GC9g4KAd;t6)+XVuAb|+lqa{~9ups*5?@gLK2y-)up@&%FQ7& z9VGb0-xepwS!zPo8f@!xNUj*Y!ai1Pj^$= z@^h}`uGa1xGIFHvnbO414iy>`eeY&9&tCHzHRb#23#!J1@QtXyfA}>O289sNcRuJYrnLFsZJWudaM2Vf#YSzH! zHLWxZNwDL*fnsN#(z~n80?8Y!iNlZ^BE-2nX6q=5qrRZcEFp9>>K|I^DX!k?K0)n~ z8ddgtQYn&IK8-{Kp9{Tl5V>uxpJly7xmE*iA)d%i4P7!4COt88(dBcaRE*sAywbS;T-nD)gNpGaeM;ivQolYa{F6)AIKLti(7>j@uS zWa#ocv`I8<@)y4EvLhZF7J5KrThumY3Qqz(e%-0$rLz)AC=~03ys9rS*M$9@OW2-*;ic+<{awv z7t-PE*VXme$?DE|d9OSu56S!G1M)$6SUx0=$fNR@d{{mrACr&E%(uJS9)dGxB-)f_zcFBwv=V$g}cQ`I_z*gWhz}3LD z!1cgqfzJV70KPalFh9`QhT)CCO~4M|E5KKQn}M$ZyMV6)-vGV|d>i-<@IB!Bz%9V7 zz!cyEEkFVtAOvDyJ^?jgff-;gun)KmxC6Ko_#yBkU_Wpd@Kay`_!)2j_&Kl$`~vtT z@GIb6;2>}axPNe-_yC3v0*8TzfFrV7ZkH11lI(UqaYLyKxjf} zL}*56NN7rEOlVG%wjfNC<|AqiGH5DjD`+fB1ZW#*FOyv)Gm{_!53`>n)&c@(;In!s o;R79LvuLn$j0tXGZDn+MaAk9peUxakiF0TkeUxahvxF;E0Sm7(vj6}9 diff --git a/master/doctrees/functionlib/dsplib/dynamicquant.doctree b/master/doctrees/functionlib/dsplib/dynamicquant.doctree new file mode 100644 index 0000000000000000000000000000000000000000..caee1c7e8b0c6fda7a8523184d1cb14125b57289 GIT binary patch literal 44556 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 CCNA3m literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/eltwise.doctree b/master/doctrees/functionlib/dsplib/eltwise.doctree index 8dd488054f45b76babe67ae262e1e587905bb70a..0e624447deecd2e231b80badac19f80d08b92641 100644 GIT binary patch delta 227 zcmZoZ!_t3-g{6UYD&s~Lb!Ntl$vVtg5;5_)`6;Qj3bqO{C8-r9)vh@u<(b8)F_YIY u2jG@$U=6`7S;HbrGs8E(Vio(vKlPU?0~lmzXXto)PfmEUaq9s_XH@{R15rr; delta 128 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 Ms#~ZXP?;S2KUWf$mjD0& literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/embeddinglookup.doctree b/master/doctrees/functionlib/dsplib/embeddinglookup.doctree index 1845acc47d0285052f22b79aece01bed0dd691fa..d2ed94b337cd771e2e068edb9e03f0a920886f7f 100644 GIT binary patch delta 225 zcmezMm9gg=BWnZeRL1I!tUs6;D<}VB_TrC;FG@`>%}FdtO{tB}jG26q)krEPKD$;S zCMPwmB(bO{znn_}1R~T0wh7&xnffDQmT^^i&Kkh Xr)03lPRS69pp}J;F`MtP$&>&9Cm&F6 delta 204 zcmeDA#`xX?$$ijwNw#EQv#S#&2CuqmMFo6i;?0o214lbV-Oot#*lT3kCN TgFSXihFAoZt=as6O{N3@ueMGe diff --git a/master/doctrees/functionlib/dsplib/erf.doctree b/master/doctrees/functionlib/dsplib/erf.doctree new file mode 100644 index 0000000000000000000000000000000000000000..cfb40b0604a87e4a5b8aa4d90e8ae2845f681f42 GIT binary patch literal 27251 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/expfusion.doctree b/master/doctrees/functionlib/dsplib/expfusion.doctree index a1a8773f523dc851b2a00517ed1cc9f641ff2a22..92d2de0e14efa5209c2d202cd9931a93dbb3676e 100644 GIT binary patch literal 79179 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 literal 80179 zcmeHw3!EHfm2W~aGnpZoJRk{>5L%uy!(=825n>Qu5q32YL?ag@vFYiqnd(YUchgm! z2Z#nRFo6O=n#V<4P+1Hvud6I#2&gD}uh;8i6<>?GUNRX$SFXCO*S-Gs-t#@`@l~HX z{dIRG(feC|KRVsj-}gVK{^xv;^RJq&ogH_KOq)K9{pZfL%Vxf~eJGR56-zn8uDP>v zrEGQFC_1&MuCDdD-IdHXyHu@YjhZ_RT4c?9Ay+YqwaqoRmo<0t1$#*L@3M`o zlP?wh?q-MCX?AU{^_ksnhm&^-M(8WI``qp2^Qt!Mz#2iDnH!Dm%y{^#T{Y&3+gZ+l zS*K>sw?{H=PsVX7`H`vvZZkJ$t+ULNW;dXkbe$lX58aIZoywV(A$G93E&lhucxl}RIb{+r< ztlKdBZx4$u!=u$A=c14w8HSeZA7guYl%MWU#dd1$%tF3s)YczS9f31Ha->koZb@HJ zEjeM1F1csMv}ybI-9NeOZ}&g7bN^GHIdI40Q%`^R)qU>EJ8zxbb=}kx_y6+IPfR^} z*W|7z_kZE;{ZHNa%V%$g#*-hrfAW!AU)?t``H{z7-nsk0O%J`gZ};S_w@lsh;REgs z05Z9AAAn3=fAi$y*ZW5Tgd6q>1n9y5Z`k|N&TD&mhK5q(8OL0^wx=fr|K)5aoll*U z+5{)oXIHZDVN*6&a#D8ss(kV4{@_!o>RipcY`UVF$)z?q5az44nMTF9I>it1FGaW1 zIilr=F_tf0mCZmjMPFueLR(L5odAlOmW?&$-JSDyc4iDV?=;XbRPkwwS zBZv9Gnih=Wm}82DJTfoe@x{r#4~CoMi^9_o+SI;>4%D9YqUKIMbGtan*TGpHxa-Nu zTOXUM?FnOmzY&ld_J%>iZ8=noF@b#GmQPPkJQ?njWvM-$vA6Jk2kw9Bz%36=-G2>a z)c&V;y}a{UaA*JCTPAn?m;HPHZt{`4C$HTzwR_^gy$?g0F&NI_4ST~JvTO-B(I!w5)hsoSr3NyI53>JVC z{C^_+e=_`kD$LGipLvEkV4iLcuJ44#!+fUfVN+0=PnTh?_cl2j#m+?jEVQX^2Eu2b z_?c%@c-9dHu^Gn;&tLK>_z^vqim2NKOC(=z-KEq53Cn%4IzD1lY8%{+LT1D$z?;ru zX&a2N+HSXd`*>lkUCyvg$*gk4u#L)AgQv?nnJ%;ZbeWqoM)Soy+m@sYd02P7txb4u za&)9oI`0_cp_Z4N4tu6xSvom`)?a5C;NG$&Q*#Mm?c1FG{dsYwV^qRK zy4^mDUe_(?QIB@vqz3>oL6ATzB3UssNh{oMLS!eAR zXR=!Cm?5pM^R~R5wo@q;$3p(Nv%`QM1+%>UMa^g6#zqWGz?tuYGhgH$6SpS`(017) zhSoH@5KynFHkgw?B*|xuKL9T5^v>K}O6`B5G<`!TzeL%aqriCdb^DWQaAJSd;qPCS z;aImH577Qqm!@Oj%zvj#6Kkx}v>YZI{fR$9mvtGqEW+`U~hHgEA_a|Xnw+1f8K$6$0rbsU81jZK6K+Otr_uWD}R2w(AQ?)2q+ zYj|a7)!No*OjSdTVSf>ChHXaDq0Pu9$mz@d6>TNk?T9j%?W#0NU>V&}AA)a>ID{Wr zA2gu)N{z^Rd#0s8^;Qw#t)3aVPr54dIat|Y#?|#cl{~dt-t@xS-_)SJWkLfh&ssrdc{$5^PBiGr z+Iwls+KUkDWiF(Isb=n}Q7I-Q!-OQ5x^$fz>F0&7?zp$pwY~x8)o8)+QuhQnudi_) z%xLNcGwedtRq1KB+f{(#u97K)cjY}n7ti5NAtnWx@r%ZOT0e(2;Nm|D7ZaTp7$d&Otnjg+!It%;OCFHpCq)OQmnn8p2qhkLkJa1 zDZ26dLNljOcV;p{FC3cU@>E;0-ttsalAZ`dWFG7bl{jx~#~Xp}r>b@G5n_u4Ra|?x z{%ATC5F3pqF9lA9ke&$b8!d+3_K3AVfwvFwvAhL(0|L$t2xt<>KjU+nIO9{`4BpVh z8MF4{jN|hdpRpNNOB!3Uj%5T0iSr~FF)#??EwLGXxophz(Aj3cIRo|^KArC3fq{BS ze(k`3$UA?_XyuqycFAp#dlb?kn0!W|VWV_nOYBJFQ}w0X(?YIKb35Qdnz21J;^kH( zP84>#;3{Ax&oAut!3DZ}aSX01y36uw(*E_ev<=rO)}=g!5w1zp+j>7zc!;gL*gr68Z z4;k!LGsg?(9G@nw4vX9>PsPDyk-@hV!|04VoT_F10S#Z^Rxe)SaG1vH8BTTw^ ziFqj-Th9;_EZ}FwE}e}VuqTVi^X?WoZVqWeie&J83Xhq2Vi*VR@aV8Co?V73Junlc zx5JGEp)O)Bv%U%(_$_#xZ4q$n<`FEn|>k0S$Qo*OA1!kS?>^KdPC?-7xNSxfDZbFc8cq{fI$# zdbxf~o(2trQ&G|?xP~AX_TYe@T5AwHWNL{Mi{Fv3YjVaoT=bsshWq~%WdBT%{Zg20 zfB1N7o)|vX%b`ZdfZ@3)*(Y;5+7E`koagT*=m8V94rn#n%0!K5=vtXa_7Iuc%Z zwpqRKZgb5#iXB}HFVXb80FG5hbkeg7Et^VD3Ec<%yv(;whYym}a3+2b!(I&s>r!8) zqQq8HQ3){YF%j+NCd?2u%LzjXrD6}v!E&=Dlknb962jeN>_#)OKj!cK5%d7&_8#b4 z$B*1_+z%b}!unYZnwoVav_idiz04agk;`Y+moOs~?ZQYxwD+p}T8#P*-oztce)8%6 zG3Gu+{|nmmPhrp${SsQCKe+NH0}veW&*3%95ETMpD4`I{jg%72$Dns6GW}37=z$J; zLtrTeO~pV$D=`RNzLP-+9r2?ufSIDAAWS6`g>E+ghzn=T$39DQ`dNp0O>zHbZSF6^ zpegPpw8DKya85Ao%TGS%Y0L!0xiFCs=W`h6exZ!zef+e)9rK*x-O=X#dJLN4T|z6o zhc5PcIUk&<&wmXwMe#38wakBfN48sZj~%ZToIF=1(tf=qZqV7y_U$jivI?8s`jWi? z?i{$GJza+Tjxr#6Y^hB!tUCb9ohK>|VNn)9IRh%2O2#QwYGCU&W>S#{0&(1$;LAMR zqX@T~L-|{Cdsq=%8nNJ}_nK1sT8{zKyLpwu&ykBS6K+r1DP`HII(Dre?lfngcu`|^ zG9N#}j0-8SAAE78FI=LS%?pccspy37&i8I%qi*f7z6!pC;5>axC9zNJb!T~!nR-5M zrz{`kju_6F(`WqyV8iYXik|T2VrjV$^>({m#gg~7*E_tN33xl;Hon>NOYif1XdzG0 z_8ZMDmb_zLJBGyU*@ojl(GB$;uI;P`E4bQp~4tiVOW^_gCdg$n$kY9NwEh^3j zQBiHvKvlGEs`IGNx;1pn6XsM@CWOEdML{$(h0y_i4?e4?6BXvHJGDIu#E`)h^XOnn zh3X1PX@Y;mW;trEevJ)~V9*cf?Nz!ukZlk(ZzE=&4bwcgE|Xwqph`z*6If{Lj{8&o zv6z?Cl)n%xbZ|^&@yura7ewZ)EP+(o|0UGEJ zZkO!n6(#;>pXD{pviy34 zirI2Osgkn2>Wr$HuQORMFImM0KT~gM_Iz&QZUwub=-+6B#pQ;XdMki6nW-D0i*+%) zL{snv?wC#r{vEVzDg`C9P6~bj!=_SDVk;?lb0`IU>C6w=*Dw=Q3JMbmrC`fS+0QVy zsb%;l&_QqM{WS(nExi(2A^o|4bWb$%DgQUj07bblkPzi`Q2c{Xw?f71}l?jE!J6 zDEftsgy?To7`qblnj(FxHt7=>G)20ER!GkTq(@b;J28BUaDkr?;q9nmk7Axvq<==6 z^nDmKMY@DmNWU{6JtUC%v-~$O8x--vM$5#(2PR5SA99v0N_bDU0>|7J`bO) zrx*iEtlzSKlnOW4&{@BRFEeag*JtfxeV&0ArOXqaSzm_Z6V`L^+HZXYUh71w0kHHN z_61mi)#Q2BlK+TAGcuJ2;7K^@Iny$g^#d@;H=))K*}FeMfUO_-?|uyLc3VH;um8wj zU*xYp<*z^EuRmw62Te{oV^w20No~`%oOG4A9Zf}Lg?RX8G=5F!kZ4Jic}Y!{ zuZIpT3Q5QbDnim2%ilwnFiJ_z*GvBfNm-F=UcGxS#v!#{Uc@=nsd2LyG?hdWTBpXn z0>h?iT#2o$#k9=wLCge|UBZOAIB3Z%7YIs~n94oBKjC0erSD6)6Z4;n>_>$g8aJao zfI(A{mC!no{Vaw}MOI=fk)_p(FJdOB$O;n)MYd)2;)j^qR6xH69rWh=Ner3_sDxHX zr__tzV+JV7g@J@9Z(F@Ma#oYeZWnaWqyAV7nxbApE7a5K#c7xcihN-rA@bW-FW!v# zPbL1@+U#F|K~wBYXodX->cwT44T^qYBO&@*RWEGJYl`%eHtE-3&=lzsS|OcKFFu0d zQ-llrga~g(z4$cdIYs)Xv`PPa44NWcLMx;cntz9)C>OZaH|)~%rY%rz#rJDP1@Ej zuH@Q<3fd=bd-1N+iknUjiF6U`O}G+OFW4q}Q%>Y2QR)_$1>H?^u@4`SFth zvG_E7u-UWu6n84vUmWV&T?$~|D#A-N0q^6E=_KHD(6Xu9T_m(l0)7X>rV>zMD+x#o zMnA<&PzfkZB$R+H3r4SDZd297Z=r+UGCQNE$$&~|g>*_VnvWTvC>I72qP%Uvs2_8m zqW%=gmgeHb)Fx`b9pCj_HMFno$|fu9iJ?FdHCW1dr_e_5OK z?_tms=@MEYy@6o#3(N*Zys*(S@$nr|!Kl7^Y5))~81=x?s#deXhR*7MFB1`r20<|D zl9pN)j68rO1f!#l^aLaR?yw6+qm2b4wMpB8(FeF-q=NRzn_IlnSKeN7NF<|pf5MuP z_={}+>hs|ejaESV)YT2t^fm|`Lc?si-j?c3m>FuSL(Hh6ks5DIG(uW1(I|4*7meP9 zxk$~F=R=1UMI+?w6wxRz^7qi?i&Bq!cSd-Fr};Z03K*AER+*ejokI6Y44TR$39VD; zPGHznp)0YK1({Y_?!Zh?Std-xuZposOHNRVMm8d~D0ec^_q;rU`AoF`JugpV z&{Sk4v`%FI8-`6qR$?oWr6r6XU?!-@3KI!Mwq*(9H<;U0Kwp6ldXxU2FlZ{E5?Udh zk}!H^Ba0VBxiF9ri6;u0OBQ# zK3Fi-+A1VroCIGcB4I2C3F8!LsbvYn14u%`m_5gnF!;N}E@9*vOBiaCwj~VlyUZ$R zU#?UgfycLnem>ee;%(m(6%DYTe?dJ8SEa(EgLXHAQkYQpzVt&1H6>%50v$p_ZAfoh zbrxoZn(h!Ys*IsBjL8^C3npVk4*N33J1`fi+45ZI(4vfioSh_#92s1`0cjtNO zNhuldD_3lsaq59s@1swsfe}iro*7Q4j+S9#&{R4}Xq}4p8VsANcqO*7GSgbdEtm-^ z)r5)o^pAg~g$Qhr< zJf}$ioHpstW6%`o5?Ud>ft>L@%mzigu+cK{@f}e)qkd1{03cq@cpWU5YK;|=GnT@a ziO3m4AZIL-mRgoGJb)zRjE=dUoWb86ZaL$G?3t_Szu|$OevGtfThO?g-;)tRJ)AdX z5DtZ_(?65DGERgPYD&&n1|32}4IU_`Q-7|&%uv%EVn&fO=0+lp=ox4esJrWq`!(9z zFfXYI^G(p9MMVQSK}FH{OTRJW{TP?j+W9`trA{&xFlZ{7B(zSwdnJZV)w>c~S(j-s z;|9zGm1V+2{NflZW?U>NRm2SMmK#dTpl{5$5A&aj?8k%~8cN0^7&H}G39S>^r!j0Q zvJzW~EUjexSIh(zSz#if$hNFx{1fIj70?%y+BNBxNyG)29HR;Z_yj1`y(ihN-rA@bW-GX5I#pGy3c4-21UQHkr4f@Dj6TZyrxLsu1)%l7&Jw?gjPr=l#IJEe2Q>^pAg~gC>f7q zo>QbhtWEl}7&Jw?gjPszpk#a#vq2FrY_v>#d`DEtsNc&s0EkyIj)V0~Ew4gK#zOcq z5hY_7l#IpFQp-w)2atr4@$V2|@naR*Yitkblzu@f^vrJ67izgWg98y5;n6=lP}2gjR%TDeW*ZtN7O;MRmE8sf%-7&H}J z39S>{CopU(xDs0lE-h|+88blzSC~jBxGjqtKgQgq0{Q}U&|3ngFlZ{E5?Udh5;tDM z3{aE{0|`;ywzx58L6a+SH+0aWehCImQ7@qt>S=MKA2UIbFH9sve*5CaTQUEs#6L%y z{R=T@ihT*Ku-`!3*o@hr=odB;qQ6yfql$S=k$#0X>DOV<6zLLLA)OF6Zo}{?!UcXp zgtsGZJcM~pk^Z;Zq<SkKf- zDKYP=w`|cSS5O-+r z_8M9L3nC=%>zx;E9X!kNcSsz=KS2nOeK9A%x8Fd!XnhrJcZPgW^D1cnD`uTP^TzCU z=M?geQOOk2BZX3SOYQcW=j0`KPMEIN22GcCiPp7fW_+!tEF>Rk8*=Y3^POR7!fmy zF5Ig|RWKjkU%FTe_J@0sj{Y3C19Oqua8{v1bQozqv>iD+MG@X4v-Du5h^i8L2^jfH zy+*%P{VF_a-uv4w0TE0`cQ;Gu9SEV}Ri>$@UNg^{eCl=d*Q&1qf5N|39m$;Nj|Jbx z-PaMcKaVj(jRpy=qj^4$VN;r?#14<029Ia|2h0RDQiO^4wL4bOzFAO;r>Zwy^ReIf z_o}H>{pV)S=oRi*P^Y!^i`6Zp>gT||_4n`+O~M1*F`XprKDvHSXHiKgp>>jQF@{Yg zp~O~_kQUxg#!OI2C`=@jge?p2Z^YcD*4s7EL2r$HCk9OgR6;AHQ^NZtm;s7%VIU#O z+ZNu-nEMp<1#Rj-h(S}-OK639T6lLc6BPNvL_*}ZFT6j1`A@Nbzc%}y#h@wnCA7kR z1L6Hkm<@`4VIv{>TNU1agn3Po{(WuI4`9#~=@MEYoe-|C&p$uJxJAHrJwinUJ#L0VJWUoVw6c zR`|QNl@+T!dE$ip$}>ZMribVg@Mn6FHc1H-s%2LD!4c(I;o|vQ-j4Sm2o$&r;rcU~ zhio-1P^^PAY3fh$-V7Z=!)d+V=IJ8L3^ko0W)y*9Ze6a_-M5A|VSkDj?doe3S@Tm+@GY zVw<2;$yWL3H*dz)Ox5^jYW=X;v-v)ED%eRxSM{dEH0D>6dHQj%Z`}tk(FFVscT6V% ze-AC|rhX~`CA3ZgPG5vzQwb=sl?0>}ieAhFm4L!TLJ8QiLUAhQHdQm62p#km+0_^{ z6;KJSkWMKSZ^H~wlnVn1QQo#f@jlFbiu#MSsW&lbih2pHP){oqTQL(9`NBj(C=}~Kp;#j=wX9Hh07)nm z^A>vw1%G$=6^b)fHC8CpHf<{u1#t_7ipna#@b4nahdp_l-6Z9SSo=X4D4#8L7;c_e z4hd4XL8T_Ie&`SyNayQqo6g3}P!kzqCZbKK@kH*Pn43qMaBU)T+}9>9z`UfU!*@W3 z7PSfF1Ql)K5|*I{F+-G6kKd#{5V>(e`Q_{x;0@;(2;}d5(()K-R0bKGG@a^c8wO2f zjfB>zo_1l_RP`jWm8F#~-#?0(pwda0h+pGk%lC|+REeqFP5O_All8k2Rr>dUK7;vB zMfO4AhQ^=FJ%vG2k(JOok^LHmO+{8>E0Lw^;_qQ5sK^Qv2}QQ$y7*U^+f+cOpo887 z|3?g(3aEruNT=%Ju49meilST?NQm;b>*5nI_bKX^KnFeQmt)Wr^%7d4p010}#!OJ; z3lj;E-+o>E9?XA={R_3(&tT9L`x07Vzd>DG!fa6V3mXa1-)dca1LieF`gPi*-+@6> zq)TXpbfPZ)6oyX`F7R6>Jia4Z7uW9{8vw-D#izi$t#0Q-b#V&5Or$P8AL`;0rKOhZ zVh zhfAKrbiMv}*yyJwuHQh1&>*@%Z{41DEV84aCNac}QWN*8(L_pOtOfgnf=EZdwp)O? zNX>)2(4obG7&*I0K`hci&CcW`6Qy{P*FHU4vUY0prv&lWK36tN+t!xwM8h;CBf*K*hMErUk zTjQT9D8{}b)C7OUA;*RMg;3uJFodQZFpoG>* zz{fFcDgh<7l7O@n@eF2yN<)t4}6DxeZtA)S&Uev28P zC>I72qP%S>qWd@`;VJ4npo1Rui!o@5dI_yiPfHP}U?wQ?g^7g7Z(oWy2lJm|{|(yg zug9P%_9e8!egi4uQp^TLzp#-I{jEw7S72UKq>pQp{viySB3(i&q!Uua%@{sKxWI3j z@c53X6j8rxZvYT4MZ8j1MFsl`YZAUpM2ffoq=+eLsbwj`14u%O_#y;YND=(qVV5FC z8%q&tleVRZaV|xupa<phHNG*r2y|zk->e zCNji~Do3ah#pDR21(PEphkZHXPne6;T=>7CLyK|*a(0Rw@jmYtl01zd@q0LwO3%BR z>sgbfUK3Yyk6F^>w(n@@pqDzQV$f9TNNAlBYBh#Ul~58}SzqZI{;ik^Dy@Wx_=PUE zhMy-WMI#$2;+u%F!w3yzoAY2ix@OT zy@Xb%r;FoPFcTE{!bC#kw_h9|v9!rG>fg25pNBzH>`Q2c{RYMHGRy`=zp#-I{jC27$Dk?FCA301Q5?S;!>0%r_$?D2-w`d2>-Ufi0OE_|@7L|=L&fp8 z;mbsd;|)+8e^*+92tPk_+BENHNX<_EBUu`MVebJXQ5=650xXJS{_e0B$GOJEvD&2V z;#mCpo(g&p9~^^~$Ak;v`Z%fQ#PrwhcxKHs{vS)ZCVmO<6WDY>&14^k4xvi{rTP#$2Q(#%G{Ii}U(sg&1q_;EUqUPF zH>j9j!fa6V3mXa1-)hDDe=x5p(*K}MdiOG9aivI?&QWzgZeq&$kv0@MUH0v$qw>0NqTCkHb_O=gH0rBI$5 zi78SkqfMZ|t2^!&1J`3-Qd8o!(4oaz8970vR{o2-s{BceJSvm^hLfjLCO?irQ`sY- zbtI=mlGw^JOP9(29Wz0tl`s*%-o=*5_XtXrGTFOdfU1(|zy5v+^Ph_B&xIQr zSCxN@K~s^H&^nR*zZfzufm|I zfJ$hEbgD*v3ub_#To_1*^0sT_OEC8->NjdrKZ-$9)JtfEdb&n-FcTE{!bC#kw_hW> znEw>}6WZ+GgF#d5OK64t1~u{?%mziju#ph`t=7n2!n~$P-=|Ibw=igmbP27HPSnUR zV)zu{0>5R#<2#}?a{V5%0YH3>{C-$0)op#KM!pojOr%DB7u3j?NlPu)$R0ovHF9st ztC9J;!(Ah%vMX0Lc(B}p>`=5(+g0)vqDqd~KE&6SNhiXka&lLfo4lxeIwVWo-v?3? z*=f)rG^j4p+d{noGeb>kh#93;o>!kRbwA&Zw}EQ8{tLfcUXM9S&5nNs9a=1xk#kha z<-g2J%VQXWR7PbvgE}>H6@#X-NJ8sWR@Y(JRAnWxm1UQ%nQz5RP`M>c#IJv`HFH`} zs?^N>eFId{-00Hs9_$pT;65Nc(I}gr#Gt9*N@$(neig%}f-A9=;L>IDcQF%GaD|D4 zg4=T0{4(Y?70^lOpf~6L0fVLjDxnq9sj|7_b;#O9Q7#N5M0wj~^YNJb6!phK2R-Uf z$Dk?dCA304T{gb~GeMCrOe92p`(^V*nEw>}7ihDe#-J(oCA7kRgR*%Xvq8}>Y$QZ~ zt7Y>p%xjADYqUwf9fPJwm(U97MA`fa44)!g;I~Y8d`GlwuHQ>G0EjP}Pl9<{-QkDI z=4J3@B4zVMP&TKeCA4hr3q6Vb=z)QCzkK|hN=HU8`a4uhG*2QDkJK-sA-i_s#l&4Rd zHavXZ#W#LO%a?}CH-!!v+smU>J6|fY!|X?r$20jN|Fz^y zWh^_G%9@$VKnmV(y=-%T>Z+a;{3kE8=8NU3vm$j)%KPKZ{uSF-u2{2j1^jn5G#eh~ zEhg{XbN;HShxWdF*AwC1rK$tn>w2%^y?I0CO~ELRIVQAXsAq@z=Zk4On<*IZ)rz6l z52gUlKd^FWm1xQkyjCk^Z{?ozzLYo#-XGi&f}V`aix1h2cT#qeq!F#}$Xfp=HetmELH&9(JC8Jj)g zume8H0e7)7;NoYx(325U{;ama9E3j_S3C7_yY8&fYBB4;;Hw$ov2OhU{!~PG_CxmW z-{8!|T`2rr+X`FYi`(sw{~DiWnH%cCli>l7r*5vXd8)@;V$KLn)kjbhmfLBUs+Fu! zGf#Jqb}E^oUC6LgO_wXBv5H~aHF&(F+u@X)Orf@Zn%m>GF>>&+%Ir;dd$ZL_#VEqi z7FZkH+1`;tzG&1oxU+1-aq`76yXMZ%m9kYQU$BQpE2W}i6mvDV^WsdQYS^{gYhs3U zJH@G|L=1w23xkm~Y(qMNB zH0Y5ZtCa$Ln&XtR>5)u!3;Pya=>VTAJ8JHNQGh9y93%AQggeJJvQDu&p58uMs*Kkr z++N$M-cg%FQkg;tz8L%fi_y=ZJjB=^sqzlGY1L!=$ z?SbF-^FMaD^NsC!VA07qRoiRS;dbPVk?I)W^=`{liohbYs2G`XIMNN_$QtaFn16hh zOdG{)DF>|}L#oc`@-@rtJiK43ewj8Zl~N^bW{SCjQGp0BSF=vdohz6Rp>%MRntOcY zn+Sxp;zW4bSg*hheDHcNRlkUIcIUBkfZVf9pr`=nRCDJPGR3iKX3PM_bMU$2N;AD~ zL(M&^Vq{B|TsmizA$h=3o|D~~Efq)MOo5bq&dUk2)9uYvol-hDI(WE<&lPo5}QC%rXq=S9}e zP3Q7yc8gIN${Wrow*hm)u<48!z*x7F8G(V6bIjWMS?=+Wmg8xEeEKJlw#zI@ zcDwWJ9YrUzJ#FU4%mVxmDLk`KV%b029?!s7yP^sM+XkYJ;-AIGbfLtyC7jyh+2$#e zg}{p;2P|_6q4$<*8BFwocTU~`{>4nN8?vXA%@;=@2jtYSfXx+lbtKX(KhDy(P|Aq$ zIFrvxkTT;VMh*t?4)DM<3)vDV^c5pdOkyD6S8d-M#Z$Y+nr$) zx7J{}a%YJN1x7GrV!oKm!`N`r4r~Msn4lnU=7Up^Sq{v&fRQss*@W&cP>vQe<6sI7 z1KOznp_9$3Iexs09Te}a88FJNY4BpZ-R!Wlqs%+=FLvAJGFUJ8_vUPC;s|Ja8+-XR zTOfbSUS@Z}%Y63I(G4#>?B%2*;iZqgES&={uVXI@=fcZz?4@@;yd1?|*i)4)_S|Lu z^dgHr-^gOW*KDz0bml*oWU(Jqve@5-TI{b!Eq2eV#qNr=*p)qtUHh|Gv0|MBFI9I= zII;Mt&dKH>JsDSU`r-(iKfHE=)9?||4w!~S93Lqa{9NTtkB%JlTX!pn-JVt6X@P=kB kr!eSGa?0T&{lh%Jj+6xoVedDi0|y3^eW2_ztr@$#^^J9KwCY#xRH0ohb+nZq`+LmcE~Zg=ix=XQ6N zomuH5S&k40-I*2=XeAp#uw3CG<5&oTF+wu9lCo38aV1rDs_Zz#CehwWmDrS>@+-l1 zzJAPWx3_opZlw^HRi(X|p6>tu`|H2|?)m@jo^8$h{`^yO*gvw!&Karfc)ylRX04=d z7s-O8l_+HNtW(@u?76$Rwb)JC^4dn*D&!M-k<3Akgpo=o^Ln4y$aVkpnj5~@{O45?kAd*uw7Td!bY1bSlpBgSWs1mKh{8ZAW;<-33pxL0SWArM^%0t^qk%5symf@664G$nE{WAh6;&)Lj;u`@*95mt?Z9KjK zc=YFOr%0O8sjOaHJFhSdXxdO?Z8Wdti~yjwub4Y$PU)GWCtu!M+VRBHz9Un+4o^)! zb@FrM)V4jP9rsK>fAGZdr%&zNT_XEWzOrZf@TdQM+xC;sJb{bS7x$dncHrbIJExC5 zTsnMU`oO(Yk8Ud+**!r2JpNQ^+wnJ!Pf(dQXz2kiSNe_PlP3><4uz+We}1a?a_NzS zpn`06LQCs-SbB(@dgO)a?MIQeS3d%&?RlVd-!9NC?RcTIdzYZ~$YY!h zsGzP~v6lTFr&>7ieg&l;K!-9`pcfezpi9Q^|04Xq1pil}hZx;PpV4bvW~^G3-ss?s!*}M7}}IwZr#FK_71B1NOo^h z*{!1OW=F%T*A1$Akydn8*6~TbT@|({TgVLS`Qi|1PHV$@8W$~DYa_a9agwx+XVTZ$ zIgMJ=1-ZO#>-h~j!|^(SV@m+X>$wd!n#pIZf|Dya@f5`_t&cd}u{#_X$1QoQkWFs& z(ip7#35;DPx3xQ!W#v}IvW4WR4qQ`N|5_XG0m%N7ty@?FfnGi}YB)XqUnd1~8RN}& zS)hd5DsNo@y(V85t;r4AUe%k>_^@#s)qA(S+5_#?MiwRYkyJKC$G~_x1*`3jqrrjj zoU%;ul%rq`Qu>Q+uxc!au+1!&u&m5# zdX^j}+{??xm2|bd%-p+q(|UH)F*tK(>`(1`rS#I1?qkm)vmC3$D#hiQrgBK}HJj{ok zlSl4BRq&*==~a7*ngV?YJ@tPO%J94@5Ox>H@5+o+nCYcP3x4VC4U=y&a#vD=*_ zw%AVI%8mv^A+3UzTk-km3`MWX`)gIXh^jt_sxBkvRqH@LwFm8CJ<@PTCxp8SHO9vK z1==+81VkWieF^jIII}K9AJG04W!uRzcja*s&-uy~tp?05B;mh)?sys9>Fi z`ad5PESk9ztY{Xi9IWrlz;a3XVDS{cVn2)m)@v%TTodZkd@U+ii&6jYMFopy4uiF# zx3{{Sz3}kiQ=_?}qO$}Q{!LVL zXy!0F@9phvz=%~2<2xiUc7`~)NVa+0{p$Bd1oKiC%&P(Bj7D0YC#4k?^0STQ=EaP+ z`c1&KcF13b`pq5|vl`#aVShh_D%V~gcFL+8c5U2;;8q5Kx=I*3%nz`tWB7P?RoH7y zOnj!4SXA840rNj*%+*4=xFdfV?pchSXK*@H-aZzDm$XknB(HtEG#@I5L8Y!bZJ)as zL}(w4j$5a7zUK=^nMQ5Lr4Ta1gj83?ZAauUYsaD9-iFUI4R7*AZfPia)~4NtKSB9} z>g3(_UnZ}fkN1Iy%CO&6hIdkBsB`-5v!i69Ht#Yt??ZJoFY?potv<~pEqu;hBy;E+{wK8j}e;LeT6v>xc@zG?(Hrc@!GPp?B1Vu zU*6k0qpAdY%V6CkDtZK_SgsT<8ZA7*SHb^`00lLFCpiSm$feNuC~f1jphcr<`T1aV zg0YHb#AyE4YveayMh5d0nhUz6- z-KC??m3AMYT7T!AH?OY?}Ec_%J!S$Eay)$hV(gOk#Wfm?WWeeJlaww&e_$O91vxroci z+;+b_O|*y2EAhwejwAr3$CqR4mwO*8r^F}BSKaKce|iPv>}PT+NqcHV^KmJGVz~{$-3qBjXGS+S6 zdRE1P*}V8p>AoGO?m1KgQa_7^fPaWbe zFE4iUF~n|S9~7}0_|gzyfjf-*_h`wZFH9Xgick|T#)k!7_|(o_Q~QtbA)<8nu~QH4 z;I2689^}yfUi2ddZ5fZCUG5x@<}a}Pftp+rrA5mt^`Kv=Xyv{7?X9DJ7ee0Mb<~gMuc+TE zzZ0tH>(e10`v3P;^R(jWI<(>lwwWHU7CQ1M3G#a=&xC- zXtWGDMGaFj^M@2Pfx6Kq|%u#E5<&yY0Duk09P-WXJ+Yzcum4>{38enYhf3kXF2UCDIE(~vling;-# z8*@41%454!#&+(;O0H)sxVEvHvlRdVh8Nb+IeV;PCS&8ze(X{EE3mG0%0 zUWq^Dj)ZQq0IQYy__Buuv;yo>54M&Few&vluv^0FPM0Sk4y)(OqTpmZ@3C(Q1?S4; zi5l#!?cA2oZpa$7+nkR&doME0?6IqV;?8T1TamSVOfVNAv6||y#k0b&c}|dpT)o%J zNXKNPg?@9==*?Jlz-?_jM^~Q}w6cYIWUl8f$CX!?jD#VXo2yi%I5`h~JMto?M-w0i*tQ z-UniJwey2qhzRZcmon0-b{3>VxO-t>fxUO{weGVrHY)r%n+D@A;;&T7y87AQ$)s2H zvu{Mk|GP5MD*OfMGW-KI!&_&oSUBnTt|=KC758YCJ>~xj%wt2^ zlRCBoh{e0~@E{5Gay%>K3quO>FHdhP(mh2Y~b>=}6ge zR!8RXnjr0Q$4bzuI(D%Kd#30eb0rupRK}lE=G;ZQ60-c4kcD}BI@mjE!pb_qJ!tOQ zdDX&PQ-dr4a<2O^3}QE#o502k*T)&I4rxhR87-A9nigo0R#cgxXXfZF^N0lRvsNE> z%ubTlEP`XyM>|Qn+~hv$gx!Rc4)M^vUyK~0hPIb!QPy(P+TdHFfi&_s^8nZ6(`{(! z5#a!)m%jg(-?{Ezp6#@Ff6ZUdRBqu0t0nj8a`J|qS}Jeur_l%Ma&_#b{n7X4UK(wf zctXZTHB3m@yaNW+?GEI^n)<_rNHa9fL@b2yCqhndT>6TvZmMzVITWby(wf(!dgcxI z3E5)T+a)}+5?J07gyoa0*Zf~=U&tBP#yWxTaD~gVBd2GRuzm4yY{?CHXStCJw^qY*bB*+K-;Mf(dkAz1HB#5y#m4pdTjij&#kmYl<{HX2}&3^__xPYuA z8w`gqccI&n#Z5=z8jP4INMkKUa-P_l&3V}UiT*fdn!}hmleQ07)>t987TH8>0s%J7 z(de$`rIp1rx^=ko#@p7t&lk&$X^8(-Gfbm@wR_KfMa>?j zL?w-(Lzk{zk__P&6D&FrhB3)Wqsq__15J|6ezb!p}JJ>8|IH8 zX5>C${uH^*pSd+Ne~GL0Mf2A*buNS`*SyP_U{N&hBeFWHG*6HYX~%QEc2xS+6EY4e z4dEObt04jBbGJEj4f$lfb=kri!hfYG-!`tWo~KtsHZsAYXvhIsomCnlNQX4!WKcsy zV|ZiIAsGjihHwrI)sV2`f94wUH}%%#YpfyOf*Nw12^K{|ejux}N<#$cD5KYpWVBVI zm!KWezFxSYgvqZ6PW-owflB!}g9a(zjDr(PS|u|Em4B)W1){xp#AKvZ%_&HSAdd$i zFAq%g%NVF2=L{MI`D_9cH_Iefp?*_j)Yr*Kt56rDL#P*h)LoA_oH(AL9hUJ>0nd4y z2H@+BNNko#t^$5TWZ)-cq*cHR(jnkqtpq+8ir6pXp#q-sXb|wVLlNe``SOh^Tq$#y=48jx zxgmk>z{b3DdVAMk3kr@{nST5woDqZVGL`GPyBB~OU)OzBd2WBq=tZt_Z)flw7nm9} zkg^i_RPVwxpSuC62l+3i+*w_4v`VMgm{oC1*6pui@6W)1yZOhf4cpbjPpkq=0YG z^%|{24K+3B8uCRo=r_1qUGRoE%MffWqm+||U~86|bqMz1NSknSXMPh7-*pp?yVfP_ zncRQCg)Li%rV6$`DA88s{()VzANaGe8>9I=J}YCRnh{IbgoCXSG!nfv9Js5w&n4$Z z^&;f-%<{9cx~XR3UqpfOp5GlU*eZb~6l}HK+0mKX)8(pMC~!2ZJuTmo0jhd4dzAqi z#g+Pf8EKUs3er(rsi$PLRjyP)JM`99H4yl78FiJGaq8hwH~3;vb^FTKIhvvNobC3N zuC~gz9Hp6QM}cUjWrd8is!0Xu5bVkbTd$0R3VP0=!O(|7Y<27qyGbU!syAI98Tt>( zNUNY1q(jgvLsuV{aZo|eIW!jfaO|oM=r_ouS3#eT4E?<_(kkc$=_rQmAsKCzArrJi z&8mtCeOAUm)vBC9gIaaQF`=)>#8x%ub0`qah<#l~TGgC_bO>@)Oz7J(1}exog9br9 zo0!ml$Rt;xJ{=kLU&%YSs4!%@|?$v zk*{7*8k(qlhpIuKdT3%2Q|0i>a3C~sFCI1|G;t%mMfV9#=wFqgi72}jTmp@7#~nli zb9WrOnzcJ_wmz*|OGo8Ct(v7~?bF&9XUTA+Mfi~p8InAq|-$Vq3hrrF>;?n#9l0)JRd*hn)iMtSQO36AZPh{3{$0ff^rt$S)ElHB1lIWy_!2D_DMB*3ECm; zQ#ogs$QY=Uk27eH^3B*e+ba`WHThqO0?{V?SIbDNnp2PtL9TMn-YjFFf}AsG5ahFQ z&VF1bxeE1BdtPRkPe|=W!Z|q%X74V!#gMgovbM_lD(N)O*b!6nfEhDW$UXTtUU&A^3x{QYkdCp_T$X72Y zbK$gIA?EybM{Mulhip|_qy?pPRLzz-FO#rmA|J1 zU$xw2hV96wdL^Uz+;!vcL0wuYcfJPxdib2(HSo97?+#(1xcF{BV4*ns5(ExJ=n-Ey z4K9u>?b=uWdhw|1!ucT%-m-9hi&f!+p~c=j*Ff)5hoJhCJ{?fy|MUBGu0-1AdR`pPzBEW%kX zqk0w}S)%8w;ReUC=(dB;uj6K6-m)BsiSL4sl^Ux`nB^&JM64?+e{Yg<0&VO z+BpT=&D2bqllpLB6!f|_YWXZZvIlf^ErXOcG(|$ERig6o&(Z7Ighdbb!D%)HXQc1y zK6cRDitxj@p3htPxS?f}X?m6p{WNq6XV8&FeBg-tRGJx;B6(ZclQI&fg?>T0INi$9 zE5Z-T3X`*F9iVr%0f^G56VBCf_izC5B<`Cx8}T(mMRImt$Bv+6JgL(YjKGP0jRW76 z#~E)UI8qOwq;Pg0*9oJAbZG_0iu*}q9=@tTI+KM=F79b0uw@At+4OuC+m1kH5ldmZ zP8GmU%Gr7$X~oAgRHx3;$8(mg$AcxAq9mO7hLoM+TDvHoOxfCST1Q=kl&x{U*L9#W zHV&fW$Hqf(M7H=yDviqF@S$b&3QTN0Pmh*I^H6F@wEDulw$Zy?JC`h`-3`h^zbub# zkV!ekTh6+abmjD19H8jvqzSH!G-X(W?6h}~^9;wy+1CsVAldHEZE_4N+i&GZ(W#cw zoJ;`Zj5|029tHv}vHQ?woe{Iej1y4($;dz$>$_zr3#!*o8*g;6=q#WSSEx{zT$4aEK zBhUe18kSI7VHbwWvZXTEf&^X~?~hH)DnVs3!+H{(coQTrbR1tbNtPy%Yb>r~cVIe> z!zZcPWl}Gulxd6GdU}MLwMjBx&u%E<`!8exHz?@A&_o=Qm_pxh;`~r7rZrET&}Fpk`R4Z<-Aiw2U}WBOFY5A2rHAY3e<*R zBuZH6G;cc$HLYtz`d(nQqxfO;7#vB4z6a=SC<$li8Jke@LNA%M^Fpx;6?!#FO#?lD Q)WYxxu!=+cMW+9M0UX2wr~m)} literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/fake_quant_with_min_max_vars_per_channel.doctree b/master/doctrees/functionlib/dsplib/fake_quant_with_min_max_vars_per_channel.doctree new file mode 100644 index 0000000000000000000000000000000000000000..533b7ca61908fa875e11362bf85da32cacff02ca GIT binary patch literal 39678 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 N9syRdpH1v~{tr|cM?wGq literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/fftimag.doctree b/master/doctrees/functionlib/dsplib/fftimag.doctree new file mode 100644 index 0000000000000000000000000000000000000000..36c6b48f772ef2bc072bbeb1c17ffc30e7f840cc GIT binary patch literal 34946 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 z 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 fo-AhJo0rPO)A+q@2w-v*%^V)bXWZkIeA4O literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/fftreal.doctree b/master/doctrees/functionlib/dsplib/fftreal.doctree new file mode 100644 index 0000000000000000000000000000000000000000..39cea848450735a42a7a7856ae0839d14d82c62e GIT binary patch literal 34946 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/fill.doctree b/master/doctrees/functionlib/dsplib/fill.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4304c4a221faadb288100e78e97ed976de2c43b6 GIT binary patch literal 65310 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 jLZKJrl*=={%N$=bO+Yq literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/flatten.doctree b/master/doctrees/functionlib/dsplib/flatten.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c3bb1b3a8f8bfb3625c5425c64a4234fe156a29c GIT binary patch literal 19320 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 S$oX-t2O^#f4&tb9&wm3^R^uiB literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/flattengrad.doctree b/master/doctrees/functionlib/dsplib/flattengrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..587f7424377e763151ddb4e7f265b3731d8c068b GIT binary patch literal 25457 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 I%3$CB0!M62QUCw| literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/floormod.doctree b/master/doctrees/functionlib/dsplib/floormod.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0dd8b5da8eb665860a167e07620b477acb598347 GIT binary patch literal 31472 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/fullconnection.doctree b/master/doctrees/functionlib/dsplib/fullconnection.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d06561b31df579f9ffe360ed0d922a5f6572638d GIT binary patch literal 46037 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 IXwKmO0s03h6#xJL literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/fusedbatchnorm.doctree b/master/doctrees/functionlib/dsplib/fusedbatchnorm.doctree index 76e33059f0e4a856ebfd906224d3e584e7444143..5401cb5d8df823a0534e2c8816080dd278f7fd70 100644 GIT binary patch delta 41 xcmcb7o9Xs#CYA=)sTVe~{7d7|@aFdx@D@zn%$mN+mQBN(&znDW^QI+=oB&gG4wV1^ delta 33 pcmcb8o9XgxCYA=)sV6qF{7Yl@=1<(rmA=ZB*_$tM^R6X|oB;IU4JiNs diff --git a/master/doctrees/functionlib/dsplib/gather.doctree b/master/doctrees/functionlib/dsplib/gather.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ef67125942844b1428a66740186f9b58d2b72db7 GIT binary patch literal 109168 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≫5Fu_gJQT~l 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%0AVCj0zznj4`A+7 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 dG|w;iRiA$=k{|BTycwqnl literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/gatherd.doctree b/master/doctrees/functionlib/dsplib/gatherd.doctree new file mode 100644 index 0000000000000000000000000000000000000000..97d533c1db10819896240c0771524aa498afd741 GIT binary patch literal 85423 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/glu.doctree b/master/doctrees/functionlib/dsplib/glu.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a3a239047ecf1623211f0dd5284ebaff0f65cc5e GIT binary patch literal 56030 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/greaterequal.doctree b/master/doctrees/functionlib/dsplib/greaterequal.doctree new file mode 100644 index 0000000000000000000000000000000000000000..af29f7f4a03716df4971fb1f1b36d83e84346992 GIT binary patch literal 63553 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 g%ZvQW+*=mOy^g>;rzpYLlb?4`mu|Pyhe` literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/groupnormfusion.doctree b/master/doctrees/functionlib/dsplib/groupnormfusion.doctree index d58a68b99b80e41c1d463b2ededc91f25c2249c3..b4341b4125d1be3294c3400d730d2d02f171cf14 100644 GIT binary patch delta 43 wcmaF=jp^q%CYA=)sd*b&t`=};cnf+9c?+j*zEhCv2;>QX_^F$HHYsxg0DEl@J^%m! delta 33 pcmezQjp_Y2CYA=)sVN&-t`;zR3np%USdi<;>@ASEIc$?MCjkDi4Q&7b diff --git a/master/doctrees/functionlib/dsplib/hashtablelookup.doctree b/master/doctrees/functionlib/dsplib/hashtablelookup.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a0c44f4a9bf678ef6318d0a9d0958703266255da GIT binary patch literal 27104 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/instancenorm.doctree b/master/doctrees/functionlib/dsplib/instancenorm.doctree new file mode 100644 index 0000000000000000000000000000000000000000..beb01ded04edf39a079efc053333775ed1baf2a8 GIT binary patch literal 38089 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/invertpermutation.doctree b/master/doctrees/functionlib/dsplib/invertpermutation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..fabf159f498e3a0405ba6759c73fc0768c00cd5e GIT binary patch literal 29143 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 PCI;ObBYr@AeB}QCTQ9y} literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/isfinite.doctree b/master/doctrees/functionlib/dsplib/isfinite.doctree new file mode 100644 index 0000000000000000000000000000000000000000..abcce0cc10065141c3febf6e55d6af17b6bedc84 GIT binary patch literal 55865 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 G_5TADMge00 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/l2norm.doctree b/master/doctrees/functionlib/dsplib/l2norm.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8dd611004277a6ed4b11cffc1d4c4a63e4118529 GIT binary patch literal 29566 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 a5rnuJL=?Bfd-yCE9>G~KUgG^Bm;DcEa8)t@ literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/less.doctree b/master/doctrees/functionlib/dsplib/less.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0cca28918be34ff45274e632ed1ec40aeaf79351 GIT binary patch literal 65117 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/lessequal.doctree b/master/doctrees/functionlib/dsplib/lessequal.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f4e5b90ccc03e0df7de4ab1ac5114a99585e31d8 GIT binary patch literal 65666 zcmeHw3z%G0l`aYCXF4zPFpv;Rh1hA5bVn2wZkWLU%8kY=Mg$F1PFJ1os*`$Ab&4cl zBtSChz8p=)Q~zuRqT5JDn?Z^7hsk67Y?dv{c${FmRGpkfcrE^T`<&LvBQe9?@T z(jXwis`bPFQopFuKUB_fEHdfAekjTQWZdSiESBtwGcA+OnU%Fu%Y)GJE@+-HTr>)) zAVRxe-o9sS=baOe9XNI9^Am^enRw)plSj9oJo=?mC-#o*{9>&4>Rh304=jsK+_yuN z8^8DP*q#T*j_f{p>{H_-cTXG~g)gkyF(+JYm8f?3$+2SKe%i=b!h;GXfy z;c@5ou_vDy|MbD}{l~^e9*3*KPYayaon0bGz=Qn|9jV0-5~(E+Q8D=cCis6o{9g+0 zPW7f%r20}9rk1ar#@wA+mO7Ke-<>t=RD3X#PizX{f8E=mtK`czU>r}!R>w9Bn#1Yb ztqB7nY+LsR8-n%L^~JKeZFy{IOdO_%V%uWEEAfHYhKwl=RzZDH!1Y-yU5X7B^F|V+ z*=BOtw%CRZ^+kddUnI!qCP)v4Ik`f#l zD1QJ@__qlFy@>uJDx#eZ7<2ge?w zpyYMCpm&LZ?3Ls9b+3r^^@)zt*B4t63k`MS`;Lr%^3d4+BV+%4I}AjA=~Z6ozzBzx z&X~DjJH<=O!Sucz5#pGDJ=kP@3K`{`XJbv$(b2kjO z;|F$)J#!BmFAtrVc>2)EqsLZ_-}CqwFY3xl=i+9@WYcLW4&V=PnWBaMcnyOx7zj4F? z+I`#?`+zQ9a{z)b=;Fl+t9ZSsudm*i5{Buo5SUyU9!%nd-=1&l!1Nr4X(5CaI=K1L zp3_C=ENJlm)J2CCR?)e-ug@LMS{zKnApS!b#Gark7sgIkyWjMG(gE^U9LUuGWb?zn zuku&AXwL-zf1!&uE3BfO?dv;@(@n@D)?Ap#!%mrpS>!rrcGy@CF>4{n((sctAIfo8 zT@S9BoLSX3iYe3e+7|Ms7d0Agy%X4|ko7SAwEs5hU>rMG1`wT^# z>(MUHVjs23G+lX#>&gMv>l#_N__~-3T@TF%4_(}VhoC(3Q0+8n%wQKCq6u7UKV--i+JN7HYeWxl8E}@U)c=y>do)YVY`G z_xmeo>DY~)0KTr{0z9XBB7LB34X3(`y*B{R1>xL+t41#H%AsR_8S>`7K0Vt5Ar4b< zy*gEK3@a43j@#aLal&ux9*xGrqRw(eBNsS<30Q^Om&wZNM(RS4J;G({jU}x7&N}6- zK`3A)SSg4nH&R*6JL=SA<=tRq<%MhY;uS(6b*-dZ{Fq(pvP_ST?LNXHcjLyZ*1zMO z>#p3m5x%~E{W}H*-UeT*LUmTCp6kG>^X}T*dKTJNZ(4D~_8e&2S2-4`aM=2z>U`8x zX=#_!k%4Tt2+XFR89Ra2xdyk3=K9g`clGVGz7J)<#P10c7dTV8{rc==Y0!ER{2;y>^okRHy@yWCDvv=>&aynvpT?+%0DDmSd?3hM*orce7# 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/log1p.doctree b/master/doctrees/functionlib/dsplib/log1p.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f6a0ad2e4815f26d07cabb9a11ef040cc4b0c1f7 GIT binary patch literal 44847 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 JL)3-`{~t>yVk!Ut literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/loggrad.doctree b/master/doctrees/functionlib/dsplib/loggrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0d408afa12786c8a738ec056618e7c322e147ca1 GIT binary patch literal 26599 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 Vi6W+foXoZ`JOV6tkgaX?{XZcuUc>+Z literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/logical_not.doctree b/master/doctrees/functionlib/dsplib/logical_not.doctree new file mode 100644 index 0000000000000000000000000000000000000000..43341a65bdbaad42e7c58a9135d05ebb772d410d GIT binary patch literal 47852 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/logical_or.doctree b/master/doctrees/functionlib/dsplib/logical_or.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c7eeef352253f39521bc70581d0696441c3aecf3 GIT binary patch literal 56151 zcmeHQYm^+tb(UavwYyrqkpKf`5E!r4NV^LdV_pUX4vr#WWTJqBGW5>$Zcp#LJkujq z#EK=bEUjr?VZbp)#ModUen4Uy3-Jn$6XN)sBu;GSoILzOt4F}W&dEt)CysOL(U0oB zeWzxoZT!PJN3-2MRrgli`_--bZueC0?7jCl{%Icn=Ps#NtwMQbosrL%D|xftbo=v_ zT%%-`o#s8wHM^QSn#1lu&A6#vY1DFN)13z;a#o?3ubJiM)~36d6?Y27`Z`&ELEX$b zg-Y44ZuMGy)`G3gVQawcbqY?=41MJe{6=M}kTZ%`*P5&ll>sYtX>-y$Vt5PyYZ@$?YUC(SaS}K(D^=hSNX6pqI zP-N9c;eUNpR2iLYl({X6g^5up$^H~Yce9n+x?0_7x;@20*=%k&rZE9sAAtTDQ#GS% zg-mqaiuv>A%{}q-!Tk>(-2X>Mp1)^q_aleyee%%lpF1@B=#huqqdV`K+kNZdFMRyy z&S#E1fA^ui_r3P)UTM|L)tg^?cJ{~%cOCxRM_%4}3zKr-4k6;;{?8u1|AU8~xD$km z`ma6f&VA~ZLk~V6G(q9H15GF+%8N2k>&TwZ&pmnfp$BFU?%xS@5AMJH;Qj-dF;F^p z`{&u=wY7!`TA8@LA7z#I960>UJzVaA%s7;TCLVd>k;8xd%-n;wfqY&eGq>|uUg=|g z8;vEB#+ECc^n!~Zkj|CxY( zYuH+AjaYB7&f3t!&~L4=j^$t+EE$fKohVjv(;+mv=TsU_wc%t7nTs>Sg)$tD!SM}c z^L?4IHJKZVm72Uf9$c2L>a4Eck9Sc0a2LS9*37zD+h%erT`aBCr&wu8-kdCy3oPPgiv<|bUepYS zz2hQivwd>0JigU{?fy7QL9&Bq{~%&k=|IsBbzQm`y!5KBOIcxXX>z!6`$Sl7y7SlasTSrZz93=YPe5=d6VW{m4YGsYIM*n9ohGAdT8-V`iWIiYD%EMbGWRC@YGUjU!M_8b5Ko?}B- zyl`%hz+%3YJH2UbsdbWlCX|PERy{RxDr-c}gMfSb$cSFsLt|id>pC%DLoD|6c>V1Y z7koU~@6_llOkeipqLZuK6a0V^F?S%7mDPpmGLU@g}SGyCMQB4kG5eGRz7BvD^tOF)HKH&<0B^}1-^xPKy<4a#S4RPfF93-@~xJF z9%@+mn1wD)X9Nes>cqe}-OKjva#9<1ISKlCd>eLQ<%M06qdmU9VdL;?tubnUm5n8_ zct0NI7H_KXjpiOdG7`@hUEuL~pEubT1;$;0R0w9?OEm1o)|eM)*vZ4&DWRs%b9*7p zZ_b2PB61C$lu~sUz&(muf!}r*hT8{)@)X?ja8E6qpAEAA**av=)@Qs_C1lK+?y}sv zNSUV9x5;T5uyVAoVFr;FwMI5sXKeynFwgCQ8xgr!+lJwr#q1k#XToXJ!qc>y-Bu~& zGZ9@Z;dg%48G$*PC3X2+9h{E`=VF!5&od&qAdY<+yGDeOdF~3e36OS!dmTZ7lx#;v zWd#= zlWy0!lk5un19@~g5>Dlw^8Jw&>E)0e=4U+3aOA7~5TwOsB(x6jp7X?bNa2!* z?>&bt^6jKoW0f0|hV5=`w%)@A z$i0LWmh*nGyK5yActs>p?{1LTPZe{*-@eW;?iY)p=BeY>XD}VAn&mu%i|h>Cn+#PD z0mps-dg!wfNEEZ->H)_)_09k1P&hij+K<7-7-*&azYO0+?H{%?+y*u$^OcfOC_|zq z2lrXwoDU;+u#kt4SC}loT@_x;F=|t$)3jd#neKv8CC}Zq$sORgX64CH?gDW?mkr9M zdxE?bEmYLk<<@2E+e;IbBEJ({nQl}!Krsnoh`$QzOeD{8JK4M8kM9h80RISz z#9VMUT#UIuj$k1gfB-j)MC{I1*)8OT5xJx8&i51GaOC@Z{;_d|?)++e$o&i&5p*Sr zD;EAkxZrXj_Gb-L&>biCKSIlbfnxtNJ7wcYXMot>h0^xRUf=9PaJ02)zrwD* z1|LyizKJ(X2bfo3eWrjZMbCqJo-6EQ;Y1oWjKM9K>>;=q1HA;Hl#PH;xEF40iJM}< zO&&XkDWQU!P?9zXWxkW&h3N`}A85Bf?}rM%lpvhp4buVP$FM$AAe5qYK=?Q&n*yPf zt%5M*UIxNwcKazz2?au-Bqb0I!u&6n-!ck1UZfbddf{Ox_M8-ZqH2{m_5=9eV9nkM zbz=imu4cam6(A04OnCo-iKbjCMXP3)H!Qt?9l3vLzk(^D%r2CqWcEeO>^{?J&+2aSa1rBa{Ze(VPRV{ zoC-X}c#>UUDi!({Wbf@8`ACDOu;773;5JQnkTIOfgbj~PHWgxHUkH|-<%?9_N6w!2 zx`SD#l4D(U>diIqtRg$(Yg((1wQ-6m7a5pSp)GmY7EVEj__8urDLdikJH02BsK-I< zcSBo3;=BxmYQ$l&-s$(U8ft&sKFJ>BstEeb&1e4($cE=mVaXdlFIU!z#LKL^pj`0| z7kii2vLwrPcw%cve(9YrgA%ffb-&P(a>cvmm1B~azPjl+z`0=g57wLTT*opkGRtCb zhKt^^r=8r7{X0<6&A`o$7KxwbkobudYLWS|bFnrJ+g9kBn-e*nh*(B+;gXu=30)BB z6>&k#cP;ZPc3EGo$9TC=rbWr>hzpu(hizrPqw+Vqv4};*-CYdq!2r(a#o&7|HB<~n z)Z7=g<uAxP%45y1QnvI&0+fqXsi7sd?-=NBXKevgY@x> z;XZEi5Sc186wbIrV&2oBM;hG)vYNMw^3Q!cex+SIzKGZ{DaF!~I{pO+OUkVzP{)7u zEpPvTIqy*rVgDN(vD60^grXGlIo<)CrQks**;ejDiq=`(|2rm|THQ<8;l+-<9F~#Z z5;OA5rTsHZ0X0B`0(CM}9GjHmcv={g!mDnQgW*ATC=S&(^djz{dUQNghz@zBN1<%s z&jYI8h2GfThmR-(SMY}EK=3@Q&s02?qIDp61tyzmZ(2PPbl;OArQ$RUPC`cWG zlJqiQ4Yy2jkPs}k+oJ+h_@#uP$s48v!M#|YDF{l@IuN`MlTATT%2pt_KLkPPYJYnB zB&L9Zpiqz!1Ut@eJcBixTJ3!aD(J27zKV&a+$lvXCjUXm)B*_1+&0O_73((;WnY<#0-3Cu%Czx+gGtV?}86ybuU_GZ-nc6?M?8x#=aUp zW2uJ>Xu6qw0h(ZJUBgQ9ACtC|Z14nlL|pANoouitKqX(8*g1A|F*w-H`$r}m&DxXv zbBcdj{IkG6ZT>mUK7VdWfpgB*ND4#>rIi$jh-DNEE~!a@&;^kc5EnGrIhqtmQ0wtB zo)lnOl%#;TpsBWvq`-Tz5l;oIEl?pea8A>kGAv9D6}%8Nk)%MxjGUiFlLA;7o)n0F z;m`IrV-2OIo^4Pex;)cN3Lt%qCk2G#Lk}Z`E(D0we+)>yk<5|;A%Wt4cgqznPYSSV z;iLdR_wD%6cI|i{V#kh|*2h3tmq~&5g9s%l0R0O;x7Lg@vft+&&{+;Y4JF%33P{m9 z%i)(W+0=4a%2rkhR8rs@m;!2m2nFh-r8qVzDR74{Xe=oZ!mDmlfZ-vO6i}i1TDv`Z zl{YL{FGPP#9)3iqWm2F6sD2Uj+h2l@C zI1^JqK~N}29fEBo1xN^9)^3k3feO)CM;TP@;qA9CO(TdeuBn7^U>7WcRbaZU^o0 zmD>c9yuA^=OeHCB8YBg-mYOtj@e3Qcc;3ZWsg zT5oc=7*j)qDMXDz|CdBOg|L6L2$28Sb)U0djkS^rbQ_>TbQPw_{gDnT-2Y0By_Ddf zP^h60vUK@=53A#meR1Mjt=z8FrV*=kymqaEur8VYH6X%g`takkD72z1Yl^pDXNh|U zl#Goo3ieX8&JyR!k??TD8z$ZoPfbZWh*%bJsYz2H2#s42n z0R=vxAYJga#qX2Bw`u@!1l5-nP$4?4{2~KnBKVf@hUtLsY^={zdr_Zu+>X>NCol>-7a*EvV!W2*@7Yb4`c{k+# zqgcx+tKX|_^+z$$l+~qZ#p*4{{TDGEl;MSrjt!q&5heHWWpWDv$>jdcFr}!>C79mr z)$nC1)|zAPsVV7#u9_`17OJo!n1qko!oPuF3rkoZLsG4o?;2pGOR)zsGp#qSwJmLF7rng`btz^j3N;sTL+PvyH({bFq)5>^Yr`8b+0@!l%2uXKiWL_y1r&gUg5+5%krkgW z44Uj!j~2J#)m>QYDX;DjjnMef>z$Zr%Bxbej#u|#vMH}h*@{;wy7@<#0?MmGLCRiL z_+}ek{W8{i%B#;q1-+>Lx0qn=g^Ga8 zdFPrc+hB8_z{WWhrXGX}q2Y3dUdVb9Q$vL;M2*VkB3{GT99D#}x#)GDq8} zV4^8^O3{kRDQ5Q^rhqcJP>_4phM3*G@MS8@?hIgdACa11Y{h?*I~;l?&~YOp>yJEn zE4<>|EN`^k%--C~cyrP0#CuC#B2Qqkve!cTR;Pi!r=L;D+`Ty%{Z zE$8jfekPPZo@wX5FNQb!Es`&ciM_D$x*^!#W^~khDT&vcz2Qye=N`TvUYa%c^i%LU zRoIDr@bp4CS8U|X%tdu4U#P6JE(tEJX7AS-6|cOtRuA%!$o52LKcdaRw#T`%GC9kr zjj-cwzrA%$=644(@Gtap!!hyZO!@P}HDfcEjfsC3LOE!ucsJtM+yjq=+j#i#14lpd zg{Z9Yn5=O`*0_c&n5(0*E|0fs&jC`D+>jCkz5P6>Jbt0q-eAi__-<@sd~AH2^;Z1{ zeLv*xnfu)Rb9de{_u-F=H_x$mwt#P5xK)UX{1_3e&UdN@whJ9N%ioXQ-^p-|XhO|| zJ@Ct!u?q)xNS5#`Ty}8%zovg5TW6!$%MWZ~` zFs96=`1Rvrt1x91;lGoGXu#f5?e<$mzH=md^Yn&=MxE_1FwO#**s^h0iEGId3aci! zWb{IM8o9P>pd}*L#*ezrwS^`Wc=5;KM|Z(%qr)$XMPB^zTg(_@PFaCe2&R?mTX@Nv zR(=!8=}s#bcyHK%`LVlQA0u!3sG`5+P~XB(?K(~PZn5X1@}7|@o0x+4c<^W$I)}jN zeJ|Krc)v&SA`dk$Na^r$G@i^LFDP_iKh_sIA_*OGH%G+pI! zd8m>5^D%3*+@gWp?Efq6n(IZxT;VloTfcax-iD#OVB7$0-x} zl8seRAv&yokvRPhn8p4cd_)1boHtAdfN#b6OaV}e)&bypOg05TDO&*`m2iDGrho#V zP>?nN#S|`Yk#qyV>2~{LL4{vR0OonabO5*q>oWyFDOv}B_hPas07}^k0I9_AColyR z0EL2-0N8P2_yE>yDnY5FANhzZ*5D9B zp`mfHUTiuCQ$xijM2$i&qr3eJ>KNS>5bPG($<3#i@yb5Gyb^0D72__03ek0dCci}b zsPM~oFn$?weSkS7&mc-9VQx6S4PaQL=F*AW=sMr7%?!k59WUNl)4JRj;Mbr%KFP#F zN_3IGm3KgAjdd$#8w&VRw9XpqZcH|{#*(s?37=w_4`K?a!5|bQPrHdM^Lk-Wg=I!w zW1&kkNvJ;EZjYYg4GU)fuC@p00IDAV{q`>Sh(hpBc*Arc_)RDo3-J^LrDz=pzKqGH zASh)k5TtnK4>1K41cidsA=nntBq6wPDdG;QNBvMCI>Y=Tqh%rldw9ciAoymi&lCiu zXdMW?6_ZUtP|8*yNHNXJF$I*vgo2bH*fG<5FV<{|X>NfEdaF4L6HU2OidIZcG0kn5 z0?OncIUUS3_6hK1DopcY_OyxA)G^ca1f;<<9|H%A z`>y=x^=F#uV-^WaGg7GQ+n167M#QpJKU@m^U|qc+7@#PTwCY!HVbXdOrpd%A>_S{f z($mIm%s6tgbJadafx1R`g=?b6`K$>5vBpi?8FIZ~nxP8;=BTVgZ22CNFs8{g$=#ECmbJNdnhzDCHtTrp)WPn_ z(HGDi1|KR+Gm4w&GXJOC={jqy(=ppnz?Y(R)>z}1Y-)`qWh)at#WXL$6i|afC`g`m z6Pf0Zg+VE(>M~6ds@J#Mqb*S3^@QrFpx-_XKB5rZ%p0Zy!3LCUi)l*HIuN`SlTATT z%2psqG0nR$1r!8@g47|{7Skjl_~~|g^cYn5rG((aykR;JdHBP__#yM5lXALWy)xA(ZEJw5hr0e`Rsr z!7k=@@)o@hw`-(_5F>TWAUoI}I?5pTKzn=!iNuQN>U|$?zs}O>&oI+aD3_vjmQG*C zWK&BgDO;JxDFXRzOaTRcp&)rSO(c*X6$VYjs4ja<#^{gR?aP1iCI!=ZS2rm;z~~F0 z-+mE3qTu^?-Y^~Ttz6OOLQjg;0pIDEYzll*wgNtiI*wrqDDVjd>4L8<-k1!&4ej>j zDyR^hMShV1G7)@N@P_GtZwl)(75SuS9q=_U*%bJsYz2H2X}kqfK!HyvNC|u$lg9h8 zW>ZVI`=El}a_uopH04eyS}{3A8lS=xP$m}&IyQN7MU*tg7iTR5B$LLi5Wv;-axlx- z*TI*mkj8faX?(BL)G=xF1f)S4kAQ;(Y2-(*J84vRImSt2q)gX0CpRKnX;(YlN*m*i zgo1!LhBr3`=9sv5wnrV5%~YvhRrVf-EI6q6Gao91hQg(Kv1kRRhKfaq8kIW6{2c#P zB~~Q9S$2pzz6on370^zD3eibllR6?DRH)e!0OrdAzNwlW1$e9OiZP>2xzV&ut&}6TAgi9Iv^q%LpV6CUT z`g@`g8oOiPg^8xTDn;vf^+8NF{W%ywBgl1!&*;y^#!P) z7skJiiKe_NMeBI=JD62tSdUI%Wu- zfHWAwW^k}z2>j@EX9()fxi~|Jl4~gD@E%#_Fb54%CS~oY z&i$2ze{L4`sl{Kl7&Sa5T?V+{YhMnZv-W!U`M4i#da^*XyyN zuzL&@eB8czrNK7&wcg?$=hTdHy=XXvN;zAtRiGAuv$;yC1QqKb@Fa1?ESmgE_NIbkWphQNUWbl=K3T!PFjO8_}mumgHNn>VWf9MDwY#_r2i%9GGjFiIisVZ!Qj7aI+yk_|4o#}oi< zi}H<9HR~f1Y|AgeoMP6>Mv-}M3BSUz&HxZxs@Ba$zLK3OF-$ErXR4LDnGM(EK*>4T zZH0P4pms?%U#J`K8Yk$BY~=!Pq`;^fg3i=oZ17b<7fY$N`V^!}Yaq8ao&4 zxwtl&i->1e0`X^h;$i$647Jl{ZC$~1CbLmll+WQ(Xu-Q)LEBLuMg&+Cm3~Aa^ z*eeZ;95`MKIj}M}A=I93R6zyg6mm|%0sD(cFbn9Z-5%UP_bHzp#*3MJSt z9dsFDJofOY1du6Bn0Xk)+o1)PX*!@|We!SBXH8g}6|+V@&%!Qm^)e=z1>?F|oD^Yg z);-oNZ)%fNWCIl$J%`#{dAj^Sh3o`QNB;TlgxpK8^ zlt2~Rza7l$pY*Y)n&;OSu#4i@ewEE|N7)4K4zSD4_A0N;znHCCZ-lvme{T)hH^SQ~ z>;n6kfsLE&9qeOcAAD?PAFKP}79;<487pV992;9c*@E!e(T`W^|+BE(!yNcVSVk0I*{=fNqH^EG~HEgss9? zL^-e^0IW1oDf$@XMURVI^h*yY5(hl3ywY+-K1BJN(}V%LGAc`c0~0Motz4zSViL@3 zxk|ApumDrng7xzHJ>af_pg=96Rt#B@MhlvBGCT8j-@KiF%zHx; zXxapb**&}n%77J+Qj0h~la3!9T}(T937;ZBN_mCe&Km>aiYcvETjo-n(zU z_syNz38Cl6IZWogcklPz`+dLr-S2nr+dF%@?)m!ji}-*3O1EO?OFM@%xm>B7v)sDB zJXg-vidM<1-(6p~x4yeR==WALJKS=unzicwA}Eoy^Mzd1D%H2u{S~aZmoK=(vVM~6bfTYb>(^}D>hSFj?F{Jv|-Q~7MBaAhf1XQiOfvMtt5rd@lsug==y zcULl?*sI&C+=-0em+`!6exl|M zGZi~(qzy0Zxod9UZO5K|XnyvQdNuAy?A8y__KE% zd-9|IvgcM|%r$;HRfVm=5F=n@do5Vjehqjg1^>Su{(l4fe;!!P9<~*5^UU0XcN~AVK6n3v5d*!l8yUFb3R73~ zL|oD9_Z2gqot`L^v(r&P)wg;u#%?Lsyh_d6ozADO=-WDBP323sWHT^scK4;=zp)Eb z=cPo!{A6l(YEXVJL7h=nX=};4F*Uj_wY30X)*g>(kGFDhqoKI6XIs@BdDq(Ax78}; zq*4XhS7ze^Pi&?<;rGDk=aIxehaCG5%1X83gjKDN`(1_1gjIkq-KFvl82j~EzjtS` z@MgD?VIg;UrE0lW^(KoCxlMA&^=W=ynX@MIr92C~=|UdDiVEJ*=zB)2P&)5f#Yjp2 zYhvKMc;vpm^{JtuJoog_P-=bZ*b`42J+$ZOp~qt5Sq!bY2M*4Cd=Ct&u-aHq?XYiF ztzea=JeyaGE7|jmjDGhVgfOD?WLexTX549BXa1o>^B?-NV-M|Rk2#dsgtN@Es#+I& zgDxt#MeYPXE>k{cfv+gNa5{J)&m(tVXxxZN#ncB4Ic1_&C|F*yb9$NE8a%SG9WRKU z1##HELruTku2(IWrXub0`$7fEAl<_6^}re*X=aVPzzPSz3TylpuoB8Y;7(XZ)65y5 zXSUX4PTDVB!wTOHjhYGOBW28%uo*YzXN56897t6b1gW|O$HE?d!Nh`3YZf#ZHlh5d zO)a<@jB?P_f~>G^!Qr8yR)%TZcHcv6r{o2;6F0)X{m{gA&vVg>+9CP|w9?9my@9@sATcS3TS+P+-`*zMc@WzSxD zF}8hsO604N>8ljz<#QC*8+bTqN#GghQUedGiR&!;Y-b~shwlA>QX?m;+hW&Y0Db?^ z&hkz8$`9-g3$4=tlS|Q5}Yim9cut zYYq2Rn&&(TeQP#BsPM5C`t}&NMML-q@=kv>+Emff26U-TsdjdY8zCsZ+PrxR*UyTU zt??K4h4tA@ccMYBvS6TB+z9J^w^hBgw-s*B0Sg}C?WC7j6q;ChVR2f%LKApMp^2_A z5t;4O8V(SrQrXiM>VCRDB|MT6z>2M_05T^l7j3vOHCefMJ}WGwK>cVhIx$pQV9zXu2C*}`)0#=3O ziqf7Vut4_0#~*}6BDPfIRcjVZ#^Pc!Q*hyG7TP7IQn{q`%)ZE~k^n_)LL7`xiYpdm z6CpkrFi!Up2+M2{bdA42!NH(j4kDWkY6Z#H0mPO;dDBqJ$}i^SBNn-&O)tl7aZYH9 zwnYY3cx?+-cs=y$>=vxR$~Rcy11Au%aZ7CsEp$DZ0iF>jo|THrmosV@tm!TKaYPCq8Qr`paQca=qA$Sk9Wm zzgkff+uLo9`{#%bpT>K__9crJ5YpK0g8xo|><(f}_%%=%MfCt5CrTH$^`P@9Xnep^ zyLbuZeR&nw^}nEKJR5R83pbO1_wVqmHsO3BssabsqNRxFuVSJlx`b#LORy~?Vo18e zc8hD7*!H=~6KJR4uC{8LN`3#*f?y@H4OsnSUw!3sr5~Ke-~C+5EGL zwSt%DX?Z$GWyJ3PEMpq;V%lp=Y@5g(fH(Eh6?my30~!BxeTK>UW02*aD&FK18hJAA z!z&5!B3w1&m8*4_V((`vwIn)Rd2~Jk4>Rl)FL;X%(ncUiEO{(XIPf-KUCSArL9q0! z-=BBWypNoD%=mq2ubgFF_1yY8c!7>x@r2XvW^Mc!Q!ZW>TL*2qSGI*G^8Gvk%9cxB z^tD6v<_h&@fO7@3B_d97HrRYD@$c{PnBbmm_FC?JYcbP z4wky|9HXX^mO8h?O_fTtLXVxhprU_fj-tluVH0ZX+|$s8LFc~6J^y-6f|a}wS*J4g<%0!)qn(9(qLCFqDuh3=AdiDH-qPH#}rzMtAW+)Cv=8)O6wii=F z1y@AP*P;eouKdL34@V2a`ZLHo!W%&dz8h;06@u@C3JtW?`6p^CvlR1zy?N8#kW4iW>ENyRs?{|-|?!AL03V}5j%Baw7IA`D767G<5vld1#K&w*qA z1M2|g*nbo4Fj!@H2@_2@R*E)pY=0LLwkXF+*_vasamPkD=UJEn%CSO0ryU#NPqD?L zW{w@hIzTygJyb9Y=5N77Q;wCQO&q%!lTA5R%GMnF$%td)l=JMc9A!>A@rfi21HSHNAYQc>lK^?;yM8&Z6P@zqthV&&y)RceK z*0^>ZV66rJ>-oGUZd4F8*mdi#z+axh3QKw?{1s?qk5Me8=;Rl6PuOq>n4G)}?0H?Q z_Ix*DPmQtkLZkF`DYzk5_3}AbEXq&j;cv&_PjlgRraEPLb!Q6*^?Qot9A9=D_j~zY z!ODyN?3-b24l1$@dw4TK{@t(8;SOhq)9$X~M7aPWuPK+OYn4q<lt@~ zh0x7V7N&%&xrI!)?rtdAu-Zb6E-Bh1bG`$UO=Zqfww6#(T=$PK1=L6s3iSC+Lr&5L z>)VAviLs%$?l_dxr(kU~aGWXX8y^XuYqdWId9%XABK}v#9O3v#aBQe+JOZ2oly=JS z!TaV^;oG*lvxD8e1wP^cd;;#7h4*hm$(8^pMVkQd?=jgF0HtgVfD|YHS4;r~K%t=1 z0Mt17LIBv+gE)ig&l0E*pW3tml^lvsEC63J2H@+kK2s4;iZ%h@2qv2Xpp>lvkXk#q z98*9!Oep9O0NY+W*n%~iN*%9-3TE+S0uxQSQ;OD1POTkOFa?y!g@O*5d?9NGGg!+h ztKV*H^?NbVl+~qZ&FW3o4j#sIP=*&e+BST0MRe_;F;#COAbIVe7lM~gl)@?ASq2X~ zvUYF*B#PZqQ`>6?N!9{@!BGSxM8R-wlhF&_x=PM)l^V=5h_Fm$AxCo!s6vf zWQ#*Sw@IGgmr|-oq+hBj@$jv#hyJ8Rtt!jcva5@^#+5OoDdbaug4XElg$ zZia7+*K46A&Z{oqEjJQTsM9Iu81sYvCgf!M(g;CJ=lWO11<+DcS^r zpT%TT5R|et2vXGkSxf;1L7|}I5NwItlMwuVt3CQ2RESSEFK3ucgy460!%QIfGpx_l zv@b=QKyX@7=)^f_~HyB%e8WT-fU5eJM-h|xm!gNrE7dqNDd~!vU+&8Ar zO#~#9`yVy%mvEAI=HX#S$o+*t?vG1NZIgQ?pcCZ&ad5C8_x#(*C-)a^pvb*?+9`6c zH~Gz{G3hUfeL$*8;i!8aAq_p!63|Awurg zn@tOUi>aXk6rv_Z?v?#ea<4t)b6Nuah zQP=K^0*u^81j;uBjL1E!7A5!mIYm{BOeOVK82?QdYRskBzg)@FN(+`ko5KzURsNS<&L$^9?+kkbDw zItElza?gMeA@@2)x3$`%_d|t~iP3XGzw<`;h(qvwykRB~+yy0DBKK0X2?Y0JvMC5k z*%|~Xa$m<3P!JRfIu5~>$UOJ9nGPzLDA(JnJ z+;6~IPFZ~zDwtXQw=mJvAd;drt2ZI{`ICTCJ zA@|R~!;X;q^+4{wBsH~7?v;Q}ko!I0U_tKrx06lo&$OvO&sGl?Ozp4Z`}RuQpq(j9 zhJTzLxdL`2t_%sbPUsOWA(>}#Lnbe-47IdC<3Em#Un=~33@Sv1!LV54zJkm(yt zd#iof3l(0G;M>g`W&*y4us&1ZlcG()_ar8p0-uzvfsZ2T&tM8D@CgMS0$gUU*b$OG3?%&{Qd8R` zT?yy}Nq;XmSdeu7ZNVfx@_R#P3=Lg%{NQcJ>W?0K`0&v$-+`Wy{sGW0ld@CerNe`H zw;?c$=3DSrt~NU!{RSu(bzJ=YNLEfAk3ObOC5Hp^di??U(?AVB?0G%=4VRG-^-CRd z58nsB;UzlMcW%CvE!1*W>T=i1<;%nNZ$@s(AEjm6dh7v@+w4?4w%MP8zc0>Sn9ACj z>Ja;W(+9S#OWneM(^ET+Idw%!odvyabmx_$;=jw_mqejOV%IhWzu%F1+uN>79s9Gx zFMRar1{q@wGRBycsEjc}hDdUB8E@6wA&bP?!5hN5DvntJ2^&Y>bn#`u?ciihcrv$2#mEHP`-!)lgKc+qFFNa^wovLM~;BVwN!5Jd{3Ohe#7vO&{4Fiq+ zs5LC=6!@8*?1!p14P;#QH}Vx0hs0r;7exYt_OlPi9@#tpz--f>eVApU#81wwMyrHz z?T#kBRB>%TlrxQM?+ly2&;u>y3H%l6w;n1BUNLM7#@^Oy$ow@NfWOKwhe7 z5C$0WGY~3B^i6uMM!R8W%LV(SIHysKgSRg<{s}d%m4loQ$yu{h#Gxm zRQUi~8P%S#mC@ivFlN7pHHb2xp@HbR{3;(v@)t7}P{PMJNJmFUl7o6~4 z9X-LmvVarpv78?j9wz)ko8747|AUwU3O7PQ@*Ip%e z6hJ7G*FXW(bq6TG9oT54BF%oN5CQ!)W>M#3m>MeTAZm09pp1pB{AYa@s2nW9!-t^PMTp^QAz`5Ud8>p8?+(f1!t^pVc- zv&lXU?TNk&9Uvn9KI&I_!%e8n3z$tPOiR%wiP3*!vZ=&K%GPFSipnfo)nZ~K6eQ1; ziB#rUVNe2~ipnemps#JUKWm{vd_2FL0G$J~ILF{44!|>c!%P5p8P;bCfKs#x0I$Ym zQvj5*H2_kS>wTC4DgX-wod%#rxfTMz8(Zy92`aoI0qF3CnE>zr)@KTUQnU#G@5f|Q z0F<&d08-TOQA_~^K%t;R0BoBYeg$hbm9QOw3T8>#UtyvtcS_Nk$ti01Lrei>a-pDY zlP6b1sbOQD)-4 zO>(7K%qSGNrD&5}>7$rzDp!)SwTYWziw|Q8s8JvkBu}4-Y%whiN@3KLE|M61w$&aT z;SCFC@%SHVw6vhn21fURerG>?#36WyH_QZrKY)@AVVr`X6m0^*7ckir1f^^Zf)ro; z8K!`Opit0p2)0BRNeHew9dQTMqZLpgKDE4@VKNbdeY{~N5L}P-nS!7cZ34l|FxeCY zrECp?6k~iRrhsyoP|zU=w#^u~W6h=*<5s9(ma&yE(Ud!-XwBplWBh$g0cCQbply>U zS40_OW5(7*Kr&-I7vh_qGKX`G^BQ>A5yrR~7-LFmYMU`C0i9rsPlAKRW+MM~@)@H% z)--`Js;3LyPLzaB$zz#4JB(9fjFB5+4@lfd+V#`_k|;reMjeY^#pXV_(RQy5I#26!(Ku|#T`e2+fY7aSM4DJLwi$B8JM1`zlP$538 z8!|?uJB^G{I5o1h7`YMRiuyaUhHN|{!E|?#JodBij22U&9;gtvS=*^l2Tn)+G5Anp zi~%m<>H1RMa+6$X9cB~?+)}hju5<||o641>Y;EGE7~|V81=J`I3X-SKM8^0lK73C6 z>B#9;d$biQoJ@?q5%fFf!$%x~*Yk#%K=2kQ*%D)vqD>$;i^--SC}nF9q!{D9m;wrd zLP5tN*b-wT!{ldL?a`A^;S~wN$9Tg`Aowk;&r}qYqD>(9157prK`C2KDP$2^Jcbjp;U6>jw(jaOyZm3Sy z#WoZ5XY7?zdD?1ZEAbAjK~!Yg4;A9Gw;?e^`l1oTi`zPeSGii_gKeC<>m;8o`BI0bl)%;oWE+dFTdnX3a8}-Z5p-#&c6ix&U5e)2j9E+AkiYFx zQ`_WE3Frj*`*(1#Ab;^ z8+_YcclNij1)cJ{-@<4{&FF&mR(I9?(bT66{oa~4x&G4iZXUj`)gPvY(TdJ0C#!+Z7u6Lz=1B2)9q>F}1nBoAmC$kmFK zbbv^(Ex!Tp%2?G>rog%+m5$crK*@UPoAPd6 zpmt?Cmv=K01q=EjTiK&V3XHmb=!^?vgAY3pIv|UsC-Vj99E|ie>>DU?ttuayR*6Z= zf!9x|W_EzL#O0>N{wg-y06e8Bz+xd^%zO3Cr=IVxs92RW7{!7?n&k%TXLlwt&~`RD z{4;IOtGI6-8G+mGaAlWgmrKLt>J$vB)vP3M0F+F7RuMepfk&3Z{q=7g-3azvQJu`j z#Irl0`16!_7{3{Y+G(pgoVUD5t^?x1i0u^%psd%+Ou#_Od3Jr%a{nBFWicI$&!7Wo zx57X&>!0fGDtVcm>ELARy1%SYX6WyCiy0VeH`ZWavs1B8=hxygT_|TW(zNHWljk#8 zaJ(3DU}bJXs6Ab)fC@PFD(mGvu)l}|vw)s*HeZ?q49L)M8jBTfZ6a1IUxc%_L03kM z$7MV!0c463Rt^U7E@**mSsv(EorO}?tiRMM z-BgDcnf&D%nBtP`~H0^FFQv_A) zEO0PyaM8_1P>$d4VK>Eh=QS|OowM2W=l8PP-mVI-%pc6U_G@6S;Lq)T=Oas??EUOx z5>6j?rrF1`ZusbBAM-u%@gw%Ze)iE}KMd)x-MYF$re2Y`IVn zSb(Xk=PG&sZgAYb`gJe@E14>cWpJenpc4v%;HBL@CAiITbBg@o2EgeQgG^tJ#a9`M KSPoH}82&$<95RLg literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/logsoftmax.doctree b/master/doctrees/functionlib/dsplib/logsoftmax.doctree new file mode 100644 index 0000000000000000000000000000000000000000..edeb8cfecc2ed9add741366de518dca25153944b GIT binary patch literal 44327 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/lpnormalization.doctree b/master/doctrees/functionlib/dsplib/lpnormalization.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a476c433df172b4125f38e65b589711f72f55a3d GIT binary patch literal 40371 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 HV&H!PG#k_# literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/lrn.doctree b/master/doctrees/functionlib/dsplib/lrn.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5bc42560a26a177642e45f7056cc2a653fe95a6f GIT binary patch literal 32783 zcmeHQ3y>Ved6v+A1*tNW4q#j_D-s#%628G1SfIw^=n?+ z+c&3M1XZ@Gv^Ue!{r`V||KB~`|KHQStM#FlT?^0+G#>@IB$y0IL9c_#}sv3R9 z`9`=v_7E#FG+HUp z`sd7%A><@~a^=Ec*>~yH z{d;RitF;#&Jn{Uln){hV@`hqY%O!5oAwj{`6T`)FUdx%=H3E45E4%JsNUm__NrgcV zT!w(TaRGofE`o*<`2S}7zZCy32Z%<}7%)=C6~?NKEd)fP-&jPe)|J;BBR!HUX2yec zdt|c%1@9d+=DaqMT)iq`4P^Uw-nwHm6qMXBum%ZNAR&>AQXk*hf9u-B=CV0vIQ_To z7}z|bJK9bG+#6X$Pb=?IX~k`aHB!rVSIBJ z+c}ZXt+PuSY3&`QvTp0;Ejm^9damrYfU*Z!A7Qk*pReut`ibYC{>gFIOq|-iw|3v% z(}(w+c>c=?=o^h?yPlXi_FV1glgMBtPCowB%o9gzFYd2R?LD>YkyE?(BRQLxe)w=A ztCwIrWi4w~Y$R?ViPO7|v0T#+9Z6&itx(W&c$Qd43~e2^h}wf*0?{ccH*@?;)76)1 zzx`P4>H7oCny2f~D7vKX&S#ebCGF-b1wm zM{1Amf?{9_r*<7X`O*Wm=kG*UcH;S?iKH-tRYHNJ!=fa`6H0aFOGi(A_PL?ysTXQb z+%XG0!K`Ho_lHA~B2wD}*<@KsF zU;b=u-xt83w)fMum+pd4ur}PX^x6{#Ye!(lM-yuksgP}=D_SFJK()%m4_I8tJVjQb zZ<=%3y@yycH(`?OWkFBJWZb=P=EXy&9)CeR$&eRMUbDv;g~y(szVAyjkL~`+@yQd% z_SE(~bK>Y%YEM60yW^>usmbXBzjx}uu9HvV=@cnXyEyU^ZgKQ-P|0qmr(w|z22wmb zEY46XI#BifF>3*QuM#yUI^<>7qVz|;~ zJLO_wEFinv=`j~rwbB+*^>BJ{Hk|GUK6`=B3isEW)QWuOd+iZD)(g7_LQGX=dAr}k zHA*ty1&JrU&i=YoYJROYiuqR=<_~xrx`P}9)*XVWU*m7Yf%`cM_mzNq&fSa8>AASr z_5!XWaj_+t!`NPwN~yZDD01J6BDXkDUI5q5Df+efVI17PPjOoY+@hVTPw4w`VIc$U z@5Y6NWDdjf@l@(H>%^m&{!bLsB~j)A*zTZA9w^pAyf@3MgZKb_mL-q@r$^M zSpuwo9#=6Wb67FSR4U&4FM_gl2|$VhjsBGr69~7`d#_s7tD-k zD26wqPnr~o3))iSeCuM$LOnwgeJJuraKm6qJs61M^**qR;?*ID2)J4ZO}|PTX_eF> z;)P^gPpg7=(s@8DG&G?j)DTQ0Z(Nwp2JQDy+G-gDOvoRB>0H!MHXw?kGY&2?bZA*0 z9o+iplxR)Vk`Z+Bv<5(@kF?alsLUrtvcv^t8AzIxq?)w=1^FYOyc2!=e8+-@H{x;E z&x;%dH);6q?w$}ifqkbZv5(qkVk+Q4p@7xIJm)g*^?4B*aW!-fG<4q_G=%&_LygB? zZW|lyR^5dIbTWNMU~KiN**f2yfy@|MH)ccTgJXelcosdN;f<+=$Uy&|qhc!eo753Q zrxGU*Jw9{jvopu`PyfyVHj4{P844Z&IxnCEJf(UheW3p`hEm03VFiHxQ>NTc3O0O# zaA)M+AAPP&rQ*pRF!49fUZ&2DyZkbuzHN-LU)hr}DoeVM6ReV~gO$SV(slPAIT0T}<4p3(g{_ zt5FnY`zF-wJmg37ikhw8t1g#{$|db|+jH=?l(k%NdKsvl5V(z1*SC(h&Mv3526-Uj z026VAyRgeIPZI4BYc2kW7Ul+^^!PGt{c`W6<&^k@`Kr|}T*to#Ia5?lC27yBNPY&r zn!e};p(H;Hye$)45w-ky_C}J@%kYE}~Fbf+ky>%_zSPU&MZOzrI666U(Gt!kM z12gHRb;MW^&y1`s0EY~0F#M2Y_RM!;cJ+Af`ip>}69aQG03rErr}+btpR260FaKU& z{)R=oTI`!cEiQ&s_s*dfBtNS~V?&U4eWd>R**RI`q^c|;av{u4SdoW?i@|KYn{Hhy z#dPkCpsXW=5YzcGNddo6eia#K>$J%0=g{oZd)9GDK=cJJ{99RlBG5_k*K?z=klT)M zUD>1&xFjNJW?>8=KlePNltv&d4WItxhJ=Vrz&BZSyE22~Vby3GcB&d)Bi0`i2snmD zYS>scjLvp}+kz-urcRn9p7fF@EG*|#%AqzpwWVlg6M{+7&~l@x1ohjkO0XL^mJokh zg+#{-Sg(#|90jiCipHFBB#goZCi`wY}(mY3JKjpU}iO3;j$aAVV{y1s(aQrlpTpF zS~FDf)+^)>B8t2{t)$xbbev`pssLgO6M{3YJhnfVv0b>ep6h=pxOUQ-)1X>_VTZ6M zq0=4@pjoo6aQ(8Lq)Qjow`6x=ps2&CPXqGitRrU~ z_N_>)!=ATiMjF~jsFS@N(j~G&qe9nAh)O3Bzh1~+!Wb;4{QjdNVdyR_)wfC;8U3n+ zjEP5x`1?E(FS72Ea8Q~Pt5V}342k9Ic`PfL6it1Q$(F*O%7`_DKOW58tfjD*32Q3W zRe=nW#zAe5S0>Ul9z)4G^{AT0qg15E1OH&tu!fP@ZyVMJ$Sr9)aoU8n3AwG0;)hn< z`WUWmsak20n!!)hBtM5VU=_n8k0WPYomD2uNjoSf)L?DJ4Tm&neSa>ay$gwT=FZKJ z(+-(mTR^#(Lx@|iKl`4HiArgVNwW+vIO5_4crw@#EJ6m+6Vq!?@Sn;A|96zFLx&G3 z{uKq{DfJgJ(ki8L(jnmeXeC#zpWxM@yG3F>D)1SjCV{`0fG=glW1~Wzv1tEXs8dPV^M9MaEF22*$8UidY<&#L0BfN}r1kh~Ig#?~}={(!;&6_3)^S zv`P=0bVv_8c*+$J4W)iX#zKWWW6>n!yBP8`UMcB&)WH9dOmr3Se-In^Z_7xlfajz` zz_Tzc$2}60{jrRJ3UHm$1YV zEAtEE)k#9@pD`$Pm$3OX;ew4jtHH4L-hlfRhJq zQ{w6=j#&8Kq8jq>SUQlNqH}OsN9tRgbi2|{F+-~A*wub~@Idb9l-+0}GX8)tXTIx| zkmVn^EY$6WH#a8FnPR~Sei$NF5~~&*TH7H@fSmB;hCxiSxm|~F3y16DwsGeOp8=xI z6h3PbwDG|TWDDLGiUZ7LJ>|9+isG_YBo7ex^foMX@8%E1{Zi!MRkXcKeTAY(6Zr@w z!q3(n2ks~dv!7-tse%` z+DfRolQtOT|&(9Cp*)Dmxs?cvmfq1>mxiZo!^f~De`cM1lN1c$D$>^(K zXY`u{`@Ecx>t&*=P=9-D)HljVt5D~pL#V&(qaJZV{+5iq3Uo%k$)F2gT_ozH9x2@} z6I}&*J~rr|l95({&Pj(rKNq7z{$hNv^{D@z|I@D%=7q784nfkjK^sM-?$)|yfXJ(z{OZUg`I^!4%PMiidG(XR)HXJzIBlN z2{{k~9>mY%p+P)*YRx3GwjzDfn!s@{=rMZ=?U_HZunvCAUWw) zF>~<<3If7g7Ou0}BWSr`NxgyAUUKzsP_T8MceM{!Q`Y_T_W}C*ApPA>f2;KOA@bYE za~Jq-jy+_|%4m*jjT|k*<|yA(N|Q^~5`DCuv_(=v2(hjNNs zZ~6Ew{fQl23H%HCJFwx4@W}M9o_P0a_U~Hc8XBSwk=lW$-t(TD*mv5&(#!`LF1|q& zrx}BjHRM}+)z#OM3IsQd@bd9R56JfRtFQG^g8_Lwx{5tv;?rfmNL)P#rfWunk4OlU zK6%?!;dH#V@97^`SwdX+_IdJXKXlq0(`SD^nt11h9;6PCEh{^@h>GL1^nK(f0i1G-uE)(i`)CI_eGy?u!k=u zFR4C{D9tOud&1 z9wz|xtPB&C{d3ZBVin(%(N@JOIPK6(QxSmrYZ-l2Q(^SO^PZ4C8wH@I7@i^1Z0no zPd`qUlgX_@-H46)b{T0E>YQ{4b!D7vQpQ0AI^)nJ(B~N^drT(03i$)Ekv}9OtwNrY z4k15#ob0%ajS7Corb+P6FHZIynd~a`|28)IFUv@)(C4H>=quu6Kb6r}!OrM63HEu# z$vV0uZ&nrREhrGLk6$4ptwNoX4x!#SPIjq`yb5$izR94UR-Eh|GSO9_UlSYj_sdAD zKV0LXdJG&5rfmPlfWNATi4@ZQ^GaxLQLWP zoD*8r>4j?qfo6njJ`Dx4a1FhhcerN0zBj(yRqlHe59jTB`$TY|b?MA5w3d0_Wb%0K zx6pFNH-P``psY_&^=4l{fk4x`F5c_pYce*fo=w6g?0@sk2Tp4FQfjz$nFCuar7rni z>u<>fQuT#@hythSf0NWDr!9QVP` zWTaK5!%4?+AN-$;w#t3LX@_383fEQlV#xqaWo3+h}Jt%&_@C@m6zH6s1l}WEs zY61n~^#^NZq*Y4gq~j>{IvH)1QaSCAQdK^o8)XbsT4fBHq}6$>oz`W7s}!oCKs<%o zGSVuAa?&Bt)jpx!G8QV>8H*;te)>M4&&lLgq5e>8)DOx?t5D~pL#Qi#LSK_{P=U@k zGzs*1`h@;UCcFyyKZ}k04`ifO$aB&mYQ{4^~OG-56Z}^ zKxgEe4EkyLgiM*}D$w=Vpl_9tR)Nk*hd^)a6WSvquL7NsKW)$(7nJ&h>ZeY#5NPZZ z`dy5W!xPtlPv{XmY>H3lI{1VRa877dr{@zA1e)O!`UVutd_weU-aetZF5!I<{AXXn z`}-0z42JB*BC=!17oCMi^NA(A8v={S`rxJ$OQ~-r+qAy{*X*tli*7?}c5hf4Z^$8w-8$O$`u&Li@^Keor9O5m#aADs{}H!=BV5U`k&6N^ z9Gp(;zi>o3aptRcGOlrjdyZ4q3U-ceq?#_3i(@z|l%2}k>J%NEYp`*F+a>boS=?4g z_qfpQ%~Z%=T8ndBjV}xxDm%;ZdB$hy7==IKT8GTCRc( z#>LjN7V&}%8-3UYcT6wfOa-!^4sNiMt!_J7zJ!~_RWI?>&CO(F06?4 zZd=`@`h*Dt9nGoOB2%l|n$<@tV_?_2RVx?BX2+nbYk8z}LKPXEREfw(UASqzkSUTa zk+BhQ#TgyAW`J%ibV2xGS}&K2&6MGK1ee5HJ0F_osrRrW7c@iOE zE$hMlHoc6lFM}w3LHI$Wu)BoR0d{8_fG9`LsqGPq(1Caso6WawH_{u1tM0P0j*lU- zX?)iK!vQC14kpCS|*5DQI=wsEmz$huHqbFdUvOJ!BqtRBIny{z78=6&88}H;FAZF_`byy0TOQ3s$deSG{N;i? z*@>E1?YLeZG<9c`@*oFp8%{n4W}S{Uf`*iJjOxY?_d=LuKJB$nuL69l_$h3_wXNW2 z6KU@Y1#%)cIp5Rmw)5B)D}8$f4V!%3u#Dcb+cb``);P2m;yV$@1I4o@2b3vSWhuy7DizMylXg{^c8kxB$Ca{;~NU_!nwypB63vtcoimtgPOBw z#M>Z&p=0OoDR+4WxyI8vKD^4MvDp~ucB#}$`O)jJ)!ZoS)~4J=dSOcyM<=))tV2Ny zh9zQGEE8?RNwd9^sogAvP_Qfqy)DiR#?h_xp$l(72mE{YI literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/lsh_projection.doctree b/master/doctrees/functionlib/dsplib/lsh_projection.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1aefcf2afa098a198a6cfc6b527a94f0a2e9e7c8 GIT binary patch literal 88096 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 YS>RU_WMcZ6lWnsSLdy_`~8|?;y%K!iX literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/lstmgraddata.doctree b/master/doctrees/functionlib/dsplib/lstmgraddata.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e32b22ac0c3603c7931d92c50105c6b772a5533c GIT binary patch literal 23853 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/lstmgradweight.doctree b/master/doctrees/functionlib/dsplib/lstmgradweight.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c3b3af8b85f8cb8fa9040daec5b11321c2ad6fd9 GIT binary patch literal 23949 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 aIc^rn7iR!Yw=l@`X4v>Dhay2ZR{bCKKoXb$ literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/maximumgrad.doctree b/master/doctrees/functionlib/dsplib/maximumgrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d27922f8b8217d004bcb74ef185bb74ee6128692 GIT binary patch literal 36254 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/mfcc.doctree b/master/doctrees/functionlib/dsplib/mfcc.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4fc2d1d75e316146bd6a3de0eee5ddfc36656dae GIT binary patch literal 44222 zcmeHQdypJQc|X~@lkW7EE!mDAwMoD^9lAZ)P~Zq`9>NYpmh7?wn1>n7?atop-0se@ zGiyC4Rb*pXIv81Cudy)#8zU_9uqk?;uGJ1Y>(BQFSf{J!p< zp2zmi&Yspbm7L1n+nwp}{q@)Vebe2ur~lq3KG(iK-d&Kpj{TbQ?V z^|DcM8}~HU+}7CL81@Eh`gX^z*K$U~>qCp2SuEviMx}8}!&^$t-D1hf3it(%k#mc7 zMS`3C=7722md3C-==Hlrw`7EFdGj}2w_!tr?&J3St;PJxOU zVJ?5(+}@$ z9&4O=_(L;y?Q8D2``KfkpLycs^u5QPJGFn4Q5wCjX1u3vRB}5r8;q*s*7QDOFip38(DD(kMPjhF1)WLWC+$Pu(+=ITsg_|27S-PMX~eD;<1Bp+5^=>3f=cKlR+H2Zly7 zBO~NP@6yO)%Ff70W;8n=ySa94KeSfs5jp=YGLDggVM6Thlj36zt)rdn);U} z{BH>U_fFoo0=Eh|6OX@OWYKuNR5IN5ZaGK}8}~(T+w<*wTnkw~+@PE6_Q#6>1U9=e z5t7AQ9%sf^;bQW#KG8uMQj2$V(&FvV-k(5wtGye0-KhdD{=^wKQpL(e;O4#c4uN&2 zFg!KB6|C>_HRru$WaN41#Buu^=Jt7?BnzWN$x5TpB3&z4Bw2K;XDOR-xAAs_mJEK8u{xq z#`qR9#%p1Wvywn|%WtJM!xCurFVdQU8b{6WPTw=7;B52>d(^B4inu*~s;~#|79rx& z9=vDBJAplZnZ_PJWA=DctaHp>6ls{Br8Ue_==vvV4MUBihPifRq*r6CDMt?PjlICi zOf+l;;caOYt8c;~5}=Pw5~TI4i!gCZVL)pY+A$lxa(2^;fFfZ^Yc!-f)(S>BdFt+u zFq9g>Ztce|Z-CD!8s5B7HYs*PW7B&&xrZHUj2TROGBn+JduY1zR;cbBa`-t)^QnC& z{F$;{cac8~hbPRKL#|;RU(AuZ{GeW&8KIko@_pSn?J?m zh&0F4t414ijIfwJV#4{jA!Mht3@{Q8jTa}7@|AEw zh#7wlL52)m-%6np%c?rZ1y z@x4&My!rW}B%C}5qQBdbl5h7*Tl$^a`X6LwNmesi-{b0C?Y)YuKZ_n4cmknH>j~$9 z^nOM!h+ z=1(r}>l+!Fp-_6q>8I{#viUe-@W{weHk-+zST@S4JnPqIazh#XTTivGitVf)Vn6AU zyR&K_XU!nbtLNOzd*uzfIX1?uwf9qF+-Q-Tg_5niBbg$Vie62v#XkwegEEit5y)c2 zhvU7=hmJ$CSRR2CG`V~FV4y1?_nk@=Uk1<6$S*{8#ioi9=w10z{4}2KiT~F z2O?nOwq44U>gr35{v`rE)3^x7fCz_|C_CNuc5d*WDlhaGSQAn|@Y}`C{f=X~vlkCoH zg5htZ3gWA~?Sc_u&#Le7E~}M{urDQG2TOG3#Vwor(~KTe8@oVU01Bmyw) zD(Qa0H3Jrjx8p}KjT+N6%%qjk`52qT9g)?89_&_XkievK7ITHXFhVEJxskCfnb84KK}mZfqeodVjCa~2G#aPAIZ>&jE8A~ zv>bBg!B3yL|BDJ`vd1Va^OX-%B7{X)r^1x*T1^#KxtljX`gHqn%*Lg5Xh^-jkI~a5 zHX)ac@ImTr{B}!)cOY0|Z(L(<&avfS~!oyJk*4#?d6I zkj+Z9yzc6F9^pqcLcm7=pn2eq@OUSsmt9)SY#ENI6k)g&Oh6GKcpilxLgWskQIR)x zRJEKiqR4-5hf;R$=oZJLE*MCd!lJg>dc86cbPR2NS7JY*=I{k zvt49LvVF=dN$8>b3~3hG(JV5f?z5uSjHq+hksdkgJ~NvPNV<8P{EOd>f)S2l5B~>t zmD$eQy3cgD)1}OEsBt$L4z*96-SF;`GP9XQR>MHL%V@gIX1dR0+Ga6HJw;C06S5bs z&8{*R0n$y@B0##ySbUJw*$SLJWv1ezPMf8O_ThAc^)FD2WgDVp>g+_cPoJ59WI|TL z(522un8K2>5rJ;DnTPx`oXKFWDG zO=z8LM}WJ^Gz8@AvJ3${y9`4Bcb{FTGYfO|+_YOx@#W+MK0i0@h7yzyD3}M*G<|N` z?LUZU8(5)39)hH6iT>Mtsya9Arsq?L(wHQ4e!ws{?WXR_s{5@E66U7eGz}#M`Gs6m z%fnTF9^yvkrrqjk`rNdeHa10z|8vuBmfG=tH8<_1tv+nbZ=H6_6_G#aPTOM#Mi^2Kp>RPT#Mb1B`^D_+p*~BqC32z>PnfkV`(jRZ3O`r-Nh@ z_6Q@qu_q**&+q^jH+a@^ac4fQi_iuvuHr1N_T~)*@O04`w|)nI{8g}CNR^T<*KGhd z%HR^0@kQw-o88|SnFF6I8J~%$P2a7kJy(4)et)GjOy#>(GQif*(&}KR=KPB7MmFn? zjb^w-GTg&5h3d<%#LhvkuJFaRxOK%VxjqvX9ItFe$6=%=S?`8^{Ks&L*3yNybvBXQ zkU9Z9zAJ^^{gs*2{_U)NXtDH#$x;Ur)B_3H!$>){cOi!fzML-Pp!Qsj_U@owVM-c! zOJ_>f7Lt|k`Ypiud|#5v@Gck`Y3}{}=@XyjYwr1m$@L>6-0Z>A*ZT<(fBJf!0wCy` z51?V1$FCpm%)RsvE5v%A*N=?J*bxdVXD3_IY8|J`fx1rMr^cX2YXwe+mY_8pmpxfuo$2Rm_3qQlS zvy|@eed%t!7U{bmztt}0(JKWH!#O-xcY_6iBNWU+q5G6z(gqr~e@1Ne?(@!zN`S4Z*e)OJp!Pb5kzw1U+lrB4 z+Z5$(S`HZ%L%@gFjNfN^2;EnRL6%tM%b`sgJJCGPGVZV>^T{Coh{J!#An+Z9Q+wx3 z!YyKZ?5%Gz7qPxYf3U+|^t}@E6X^{a-@YDF4-%*jGRfJN z`w+oF>3N)RpSMJ6s8ie3UIJ8uk|A5QkBIKEOg^hp#M@2jyyNU&7E8Ddp=_yv)bN7G8v(Ud_a8KOw|%EJh)3 zm-S+$Vf`FQiMIe3sDRq=hOj`j;uZ@<9A?4VxyWY>w_&{jNWBGE?8^Lmvp2|2OA$X7 z=hnjm07$W_;aw=sgyA%tY%Z%gJImvC2`I0(?a6v|Bbtf6jll@3-00AiRjpt;op`e3 z^;@>SIbh3=3Eq50-TF_c)LUG1G`(V1c9!kB)0nD{M@Pgv8#oJr`rxY}MpvFN34r+Q zAe|@RgbqHGYE?SVrLM;gwejYOISVq3ksyS=S3%I5S8a9boe@zYj6#K3fxh9?K z{R(PUl5=rKZ$JB^b5D#i&ZF7yhrQLD&z1Ot&UXR+$j*0Ze3lRyUU`VHUK4^)^`hl* zB)-J0H>B8)0B4I;lf?cc<9=3s%6cncBYo*ny3nRCS?|D2>lS=4Em_;}?UsgR(A6S7 z;-35r2N0`R{nnnKz!;Fo}wfS39at?8zAeI z`~H$KmS#x4V1AeGD^RC#-H0)Wog7KRYa4Vm=o=h6JM5` zmZWsxrBN(W=GbK^^X6`4-Uxu6Iqr=>)+@*TBgR-7$DLHkoD_Ej>NJkKQ-wRpaRu(E zbSAX(ujAeh$cBMC)y*&T@uNcg`fUScv^ifTKJyGzDv#@RB`_Is%gE*ia!c~ zbffEID%43<7N{eZ7?kALdMPsfam1Jbsmk^9p7OynI>k!U`&jSx$hY)!sV2=pkn)9m-?4SsYtmK z&%zdqoBr<=Xdy&&WTRyj+rQ?wBTPikF=6zdgaei1gqp!69Q_hVI}=uPY<3pJO6 z!s}E#B@GI%0YH3aHEbP_h~GnhTdS4P+Cz%!q;+XXDl3B@ zBK3_IBHyJ_{u;DzNqE;L@hArMDYqrdRu%%rIZx5NHdc^qQadtlNW4< z=Z}^Ld4*Bc<-RYds3e({Q;AM8B87u?<-V<;^n8^2EGnJ}850V8-|kk>zheCM$bV;1 z;JX*}t^4p1ch7Gy#?pj}AERYg1wMf~jeGt|g*(YT1@4G@{va@&x~?}cppYQRJvo&g zxo6MndKOj4gpVfH@qV{kc`pM%e9(?`$M%nQdQ!)0>!rWL7)#@&SF2=B3Zepa8ZX_b z!ky%$0(ZnqUqOi$UpUgXc6YOiP?Do^LOpWSp49Fvs)qS;wyW1U-O5=7K+ha>7WKNe z4q9T2rE$=MDw&fURG?1dpdVA=PI6FzJK~`GLxyWtqx+1CP?CdkLOpWOv#HU2Ma6ki z4)-(w(&cS`qe7izS%EsD{ig!$tBP~qQ_)CLJf|^h#kU8fq>WdwLRGld)U5-8e}K5M z^k#hzzpU?*2C$j}Q-Wyj9L%1q^KetA9AMb`5y70sMoLSG}`hM#SKG#_PgwK`| zS{am92}-c?PpBn(sf=GV8xEaCdj81BhG&nx4=+@hIeg;u(;r}GN%B%^urP3NfsA|0 zg-J>*7s4W^JTgD58*dsV|;xo zXMX7Siu%7H$mF7c9-ltWtd-Fvu?*#SFB_IUd@)ri?(7rD?P-DHoh|4n8@;-!t4l@cV2l58o&37wV79- z)ozZE+6ZjnM(fsQ=s(ejo_yX&ivc55F`^vYAy!|`dF7b5BrPf=*p>zi1($%MAnei6 zF23;4=ONaLVS0H;Z?XG)edBij*eSviYr!y(p4P1srzeuK#ahDAYnWOA7Hq`k9Je;& zr;f^|{4g74%Sc;p12hYnR)I2Xs-ST@q@g2k(D*76g?61p2=kL}aQl^toBo+LxP7JK zwtv_sZsSB(L(zhro;Hf z_BM^QO@6aYH@xv$?S`ASzUc-lIfatbf=dnsGm3`lQe# zpRwWAx*a&{kKGv?JAM2F^J3YBn|FJRHF@F8K5zQ*gQt&w2Kza~FBHOAW@ql+-`syE zcC3ev3mzNGX0!YhJ-K$39Re?x4~HaQ%e#=IwKf({5a;DmXU=iWzzXdO`NMAUv~X?^ zVXMnw*SSH2y#S3?R&r;F#OKfe4qb(QDca5rBFa%_ZV;IpMA*KQ|3ia_e3p1whunu{ zmOn-Ivfp|RpHtS)@X1ylSiitGym51(Sz^mG=tY?uM|FoX(9mw!_e2t*_8BOFiFFTt z4(P85hyo?Ad$9fsStIA~zv<&-s#eV)TU&t;$U*=Ild9H38PN3}j7 zl!0P*+RTyLaB6ag-D%fQ8Yp(BDFA{z^mQFK{4HTfsLyg~g+H;W zDwkHsyJx+$;$UR+S@p$UTETalMb}bvVDW`sOTk$jPQQ4fr0_H=sqki!4+mSuj-)HX z?NX6RD#9tqL>EtlybL`mws<0XlNL_|S7gBRR6HdW?e+s8-rG_xo=}JrSv+xD+_zsW z$BFFJ=;dmOM^)NRS}k#yX**5r{);NqNzNrupXF+audB!=`OjCGL_xju#a=CO7x)RU zmI(St{Bd-8TQpTlNnwjL&ryDdo7Xlz2|005R^Bj5>t0jI&{`w<)#NG3J##owA@hX+fN$x37 zr*Y3~Rk)MfQ{axcXUEkNH>s#3MIBD1NACH;ua+oxE3XBBo_Q&)>F9FvNLw#0Fvik& z>6A+5Brg@H(|GB9D%?q4DsV@!zw~aj>-x3$WdRo)e_HiE9WTy^vpqLv09?7 zgC1v$rE$>js$@=bP=Pv)gPu|0PI6FzJK~^eR!jVwicpe+aze9q(Ds1JhxV;0Lk9%y zAKK?JW=3(+sQ3&I`V}Ac?W`+4XInP$S0k&- zCh~5N$|e$DJhhBGdvD#}(epEV+Luk*viM?Uzp3|}TnpEVFBC~Eo4g(Xp)UAny0Xa@ z6`7?K!E6M~lIplWI_#G*mn#g-sm*@$oKY*+e1E|Fg2mZ7OXil}&at zZKoN;?^2;oaxQ`TEXyVjs>mk!&mksJFk-#fWs?c;6E2$sT`HcJrnkk@Dy5{bMVblK zU#V~>O{fIhkqK4DvdQ16s3e({Q)xe^XvnS;)vY|_?2Kg1YI3l{kD_d{UQkk&O}gIe z@M~B|EHg>i>+l+ zU!|XA%Rc4uPvuHc-X_&^b(29h#U2CJCe;>$Z0~j$WZP{p$fns}0Fm2nFUWS-_`T2u0)AUwSi^gmV%xx6Jf4fkc(I$@D5l=~H5ZT5Z26jt$9mbBi^mS4GmF(S z{QBWqUQonixgd4fqSh)~ct+lF1->WTD4|R)C`AS^EK@CySA&B8XNn(A-|20$Im*^o98Xf)obize1U7Tx7feJ zj+5Ms7fA5)51od$B5&vFZn5NK3pI8|WWM1Iyj3sN@hTX3?EL_rH8(b!%Ww?;gi$g0 zxtI8XS-gP_k>zS*v$v>b+b&o&3dJ3GN!b|Q5yM%ajTw_@FeHA~YbE?zLZ?`c>$yp~ z3s(C1DUIIB0?^QFoI*GEdrKS~mRYHnwHHOdYEy(D^5 zGio)vrkQ#rU!vC_3=pe08`N7S@|6HfKf}`SE{)xZp|IW!U-y=BysgleL~q1^z2zhW ze9tkVq7r1nD-rzH&q3pP{O;dnY8y5;yz^=Xwu$Doyg{#_03~{f&}MG{M{gEz)G3rw z#F?txC(HqFsa|(&Ex6>JgBQx+y(;x`Rg+!`-LeZvLycMm+jfCw8N0&#og5&zRCSDc z-qv=M$)}d%<=nPoXkkd^C^=WVwdfS-v{vB4yX+l(yktNY!Q}!i=y{7FjDzz*`Rfzl zIHH+WD3%}``uS@51|p78qgO0wMuo8DVf95deY^a*ah|t=x}3-}&<)B(x3OvYA9zcv zMpc7S40O~ScSgE0u7h{#9o~he>sFohV`I4NWUD(})2?Lg+5|e)Dr(6XKugWVs}B$) zV3CEmKKjyiuYf+6)(W{8db$#zzuZSpSvYy^q*2Qj4Y$B(ASR5NZn*?vgRVY~j+A%J z#>R!-rEtr#Ci|xpK)kGH3J2xxtho9PO}?BEF|lNm_b+zJI{Mms>gd=G6m=f^&3|eo zJEsfPUP^~c=s9+vFZD}knW+%ac#8+leq9Rg+@cHp^GGlS@3C{mN&!9~Lc>am6;6FT z)~r~@+Y>=c=lyX$i%M{r^0<*lC*BDTOapHonetZU&}vdMaPCD(!=b0DoS8Q2Q)#{l)9JiEStF7ofz6*Qt{@!@!bbeSD)3!Lo6lw)3o@q*nq7qe4{**V4R zs1$aX3R{0=(F!eAQnaY(SofBM4a`U`$ra%y#5367SEwKR?YL~=E4&?g3LJu7!yx+RGN6?a{D{gmw}B3}DvnFs!QhA}le6m-L+EW~cB#Z|hoNS{266o! z=xT4{CiEB_d4RqL)jMz!PEZD$$mK=yGPCm{abyboYJx(;5YC0RF+4(97%y2VGW)-8 C{6lR3 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/minimum.doctree b/master/doctrees/functionlib/dsplib/minimum.doctree new file mode 100644 index 0000000000000000000000000000000000000000..bd08c87736fdf9f1099bed67f5fc662939ed95e6 GIT binary patch literal 55181 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/minimumgrad.doctree b/master/doctrees/functionlib/dsplib/minimumgrad.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a3246f3670e445fb7223bc96811308b2f1559f53 GIT binary patch literal 36254 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 literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/mod.doctree b/master/doctrees/functionlib/dsplib/mod.doctree new file mode 100644 index 0000000000000000000000000000000000000000..515dae9ad9644eb65ac0752379d2c90f38f444c7 GIT binary patch literal 55685 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 U08YmlWO_0zzRFM}h{l@#4|sD2P5=M^ literal 0 HcmV?d00001 diff --git a/master/doctrees/functionlib/dsplib/mul.doctree b/master/doctrees/functionlib/dsplib/mul.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9119b07d051bba4b5b33d59067a01f82ef1b6019 GIT binary patch literal 68534 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

    pqvwOU4!qv1GO& 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 z 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 Bv|j)K literal 2081329 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

    @@ -192,9 +357,9 @@ 5 float start = 1.5f; 6 float step = 0.5f; 7 int num = 1000; - 8 fp_linspace_p(output, start, step, num); - 9 return 0; -10} + 8 fp_linspace_p(output, start, step, num); + 9 return 0; +10} @@ -212,7 +377,7 @@
    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/log.html b/master/html/functionlib/dsplib/log.html new file mode 100644 index 0000000..e507641 --- /dev/null +++ b/master/html/functionlib/dsplib/log.html @@ -0,0 +1,437 @@ + + + + + + + + + Log — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Log

    +

    逐元素计算自然对数(以 \(e\) 为底)的对数函数。

    +
    +\[\text{output}_i = \ln(\text{input}_i)\]
    +

    其中 \(\ln(\cdot)\) 表示自然对数函数。 +当输入值小于等于 0 时,结果的行为依赖于具体平台和实现(可能产生 -infNaN)。

    +
    +
    输入:
      +
    • input - 输入张量的数据地址。

    • +
    • length - 输入张量的总元素数量。

    • +
    • core_mask - 核掩码。

    • +
    +
    +
    输出:
      +
    • output - 输出张量的数据地址,其大小与 input 相同。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持的数据类型:fp32

    • +
    • MT7004 支持的数据类型:fp16, fp32

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_log_s(float *input, float *output, int length, int core_mask)
    +
    + +
    +
    +void hp_log_s(half *input, half *output, int length, int core_mask)
    +
    + +
    +
    +void i16_log_s(int16_t *input, float *output, int length, int core_mask)
    +
    + +
    +
    +void i32_log_s(int *input, float *output, int length, int core_mask)
    +
    + +

    C调用示例:

    +
     1// FT78NE 多核示例
    + 2#include <stdio.h>
    + 3#include <log.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *input  = (float *)0xA0000000;   // input 在 DDR 空间
    + 7    float *output = (float *)0xB0000000;   // output 在 DDR 空间
    + 8
    + 9    int length = 4096;
    +10    int core_mask = 0xff;
    +11
    +12    fp_log_s(input, output, length, core_mask);
    +13    return 0;
    +14}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_log_p(float *input, float *output, int length)
    +
    + +
    +
    +void hp_log_p(half *input, half *output, int length)
    +
    + +
    +
    +void i16_log_p(int16_t *input, float *output, int length)
    +
    + +
    +
    +void i32_log_p(int *input, float *output, int length)
    +
    + +

    C调用示例:

    +
     1// FT78NE 单核示例
    + 2#include <stdio.h>
    + 3#include <log.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *input  = (float *)0x10000000;   // input 在 L2 空间
    + 7    float *output = (float *)0x11000000;   // output 在 L2 空间
    + 8
    + 9    int length = 1024;
    +10
    +11    fp_log_p(input, output, length);
    +12    return 0;
    +13}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/log1p.html b/master/html/functionlib/dsplib/log1p.html new file mode 100644 index 0000000..e1434c2 --- /dev/null +++ b/master/html/functionlib/dsplib/log1p.html @@ -0,0 +1,449 @@ + + + + + + + + + Log1p — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Log1p

    +

    逐元素计算 log(1 + x) 的值,其中 x 是输入元素。该函数在 x 的值接近于零时,比直接计算 log(1 + x) 能够提供更高的精度。

    +
    +\[output_i = \ln(1 + Input_i)\]
    +
    +
    输入:
      +
    • Input - 输入数据地址。

    • +
    • length - 计算长度。

    • +
    • core_mask - 核掩码(仅共享存储版本需要)。

    • +
    +
    +
    输出:
      +
    • Output - 计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持int8, int16, int32, fp32, fp64

    • +
    • MT7004 支持fp16, fp32, int16, int32

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_log1p_s(int8_t *Input, float *output, int length, int core_mask)
    +
    + +
    +
    +void i16_log1p_s(int16_t *Input, float *output, int length, int core_mask)
    +
    + +
    +
    +void i32_log1p_s(int32_t *Input, float *output, int length, int core_mask)
    +
    + +
    +
    +void hp_log1p_s(half *Input, half *output, int length, int core_mask)
    +
    + +
    +
    +void fp_log1p_s(float *Input, float *output, int length, int core_mask)
    +
    + +
    +
    +void dp_log1p_s(double *Input, double *output, int length, int core_mask)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <log1p.h> // 假设头文件名为 log1p.h
    + 4int main(int argc, char* argv[]) {
    + 5    float *input = (float *)0xA0000000;   //input在DDR空间
    + 6    float *output = (float *)0xC0000000;
    + 7    int length = 1000;
    + 8    int core_mask = 0xff;
    + 9    fp_log1p_s(input, output, length, core_mask);
    +10    return 0;
    +11}
    +
    +
    +

    私有存储版本:

    +
    +
    +void i8_log1p_p(int8_t *Input, float *output, int length)
    +
    + +
    +
    +void i16_log1p_p(int16_t *Input, float *output, int length)
    +
    + +
    +
    +void i32_log1p_p(int32_t *Input, float *output, int length)
    +
    + +
    +
    +void hp_log1p_p(half *Input, half *output, int length)
    +
    + +
    +
    +void fp_log1p_p(float *Input, float *output, int length)
    +
    + +
    +
    +void dp_log1p_p(double *Input, double *output, int length)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <log1p.h> // 假设头文件名为 log1p.h
    + 4int main(int argc, char* argv[]) {
    + 5    float *input = (float *)0x10000000;   //input在L2空间
    + 6    float *output = (float *)0x10001000;
    + 7    int length = 1000;
    + 8    fp_log1p_p(input, output, length);
    + 9    return 0;
    +10}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/loggrad.html b/master/html/functionlib/dsplib/loggrad.html new file mode 100644 index 0000000..3cbdc86 --- /dev/null +++ b/master/html/functionlib/dsplib/loggrad.html @@ -0,0 +1,427 @@ + + + + + + + + + LogGrad — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    LogGrad

    +

    计算对数函数(Log)的梯度。

    +

    该算子用于反向传播阶段,依据链式法则, +将上游梯度与 Log 输入张量进行逐元素相除, +其数学表达式如下:

    +
    +\[\text{output}_i = \frac{\text{input0}_i}{\text{input1}_i}\]
    +
    +
    其中:
      +
    • input0 表示上游梯度(dY)

    • +
    • input1 表示 Log 算子的输入(X)

    • +
    +
    +
    输入:
      +
    • input0 - 上游梯度张量的数据地址。

    • +
    • input1 - Log 算子前向输入张量的数据地址。

    • +
    • length - 输入张量的总元素数量。

    • +
    • core_mask - 核掩码。

    • +
    +
    +
    输出:
      +
    • output - 输出梯度张量的数据地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持的数据类型:fp32

    • +
    • MT7004 支持的数据类型:fp16, fp32

    • +
    • input1 中存在 0 或极小值时,结果可能产生 ±∞NaN,需由上层框架保证输入合法性

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_log_grad_s(float *input0, float *input1, float *output, int length, int core_mask)
    +
    + +
    +
    +void hp_log_grad_s(half *input0, half *input1, half *output, int length, int core_mask)
    +
    + +

    C调用示例:

    +
     1// FT78NE 多核示例
    + 2#include <stdio.h>
    + 3#include <log_grad.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *input0 = (float *)0xA0000000;   // 上游梯度
    + 7    float *input1 = (float *)0xA0100000;   // Log 前向输入
    + 8    float *output = (float *)0xB0000000;   // 输出梯度
    + 9
    +10    int length = 4096;
    +11    int core_mask = 0xff;
    +12
    +13    fp_log_grad_s(input0, input1, output, length, core_mask);
    +14    return 0;
    +15}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_log_grad_p(float *input0, float *input1, float *output, int length)
    +
    + +
    +
    +void hp_log_grad_p(half *input0, half *input1, half *output, int length)
    +
    + +

    C调用示例:

    +
     1// MT7004 单核示例
    + 2#include <stdio.h>
    + 3#include <log_grad.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    half *input0 = (half *)0x10000000;
    + 7    half *input1 = (half *)0x10010000;
    + 8    half *output = (half *)0x10020000;
    + 9
    +10    int length = 1024;
    +11
    +12    hp_log_grad_p(input0, input1, output, length);
    +13    return 0;
    +14}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/logical_not.html b/master/html/functionlib/dsplib/logical_not.html new file mode 100644 index 0000000..7a30f60 --- /dev/null +++ b/master/html/functionlib/dsplib/logical_not.html @@ -0,0 +1,453 @@ + + + + + + + + + LogicalNot — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    LogicalNot

    +

    对输入数据执行逐元素逻辑非(Logical NOT)运算。对于输入中的每个元素,如果元素值为 0(即为 False),则输出结果为 1(或该类型的 True 值);如果元素值为非 0(即为 True),则输出为 0。

    +
    +\[output_i = \neg (input_i \neq 0)\]
    +
    +
    输入:
      +
    • input - 输入数据地址。

    • +
    • length - 计算长度。

    • +
    • core_mask(int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持:int8 (i8), int16 (i16), int32 (i32), fp32 (fp), fp64 (dp)

    • +
    • MT7004 支持:int16 (i16), int32 (i32), fp16 (hp), fp32 (fp)

    • +
    • 输出结果的数据类型通常与输入数据类型保持一致。

    • +
    • 逻辑判断准则:0 值视为 False,任何非 0 值均视为 True。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_logical_not_s(int8_t *input, int8_t *output, int length, int core_mask)
    +
    + +
    +
    +void i16_logical_not_s(int16_t *input, int16_t *output, int length, int core_mask)
    +
    + +
    +
    +void i32_logical_not_s(int32_t *input, int32_t *output, int length, int core_mask)
    +
    + +
    +
    +void hp_logical_not_s(half *input, half *output, int length, int core_mask)
    +
    + +
    +
    +void fp_logical_not_s(float *input, float *output, int length, int core_mask)
    +
    + +
    +
    +void dp_logical_not_s(double *input, double *output, int length, int core_mask)
    +

    C调用示例:

    +
     1// FT78NE 示例(共享存储多核并行)
    + 2#include <stdio.h>
    + 3#include "78NE/utils.h"
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *in = (float *)0xA0000000;    // 输入在共享存储空间
    + 7    float *out = (float *)0xB0000000;   // 输出在共享存储空间
    + 8    int length = 960001;
    + 9    int core_mask = 0b1011;             // 使用指定的核心掩码
    +10    fp_logical_not_s(in, out, length, core_mask);
    +11    return 0;
    +12}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void i8_logical_not_p(int8_t *input, int8_t *output, int length)
    +
    + +
    +
    +void i16_logical_not_p(int16_t *input, int16_t *output, int length)
    +
    + +
    +
    +void i32_logical_not_p(int32_t *input, int32_t *output, int length)
    +
    + +
    +
    +void hp_logical_not_p(half *input, half *output, int length)
    +
    + +
    +
    +void fp_logical_not_p(float *input, float *output, int length)
    +
    + +
    +
    +void dp_logical_not_p(double *input, double *output, int length)
    +

    C调用示例:

    +
     1// MT7004 示例(私有存储单核)
    + 2#include <stdio.h>
    + 3
    + 4int main(int argc, char* argv[]) {
    + 5    // 输入和输出均位于私有存储空间
    + 6    int *in = (int *)0x10000000;
    + 7    int *out = (int *)0x10001000;
    + 8    int length = 1024;
    + 9    i32_logical_not_p(in, out, length);
    +10    return 0;
    +11}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/logical_or.html b/master/html/functionlib/dsplib/logical_or.html new file mode 100644 index 0000000..cdd95b7 --- /dev/null +++ b/master/html/functionlib/dsplib/logical_or.html @@ -0,0 +1,456 @@ + + + + + + + + + LogicalOr — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    LogicalOr

    +

    对两个输入数据执行逐元素逻辑或(Logical OR)运算。对于输入中的每个元素,如果两个对应的输入元素中至少有一个不为 0(即为 True),则输出结果为 1(或该类型的 True 值);如果两者均为 0,则输出为 0。

    +
    +\[output_i = (input0_i \neq 0) \lor (input1_i \neq 0)\]
    +
    +
    输入:
      +
    • input0 - 第一个输入数据地址。

    • +
    • input1 - 第二个输入数据地址。

    • +
    • length - 计算长度。

    • +
    • core_mask(int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持:int8 (i8), int16 (i16), int32 (i32), fp32 (fp), fp64 (dp)

    • +
    • MT7004 支持:int16 (i16), int32 (i32), fp16 (hp), fp32 (fp)

    • +
    • 输出结果的数据类型通常与输入数据类型保持一致。

    • +
    • 逻辑判断准则:非 0 值视为 True,0 值视为 False。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_logical_or_s(int8_t *input0, int8_t *input1, int8_t *output, int length, int core_mask)
    +
    + +
    +
    +void i16_logical_or_s(int16_t *input0, int16_t *input1, int16_t *output, int length, int core_mask)
    +
    + +
    +
    +void i32_logical_or_s(int32_t *input0, int32_t *input1, int32_t *output, int length, int core_mask)
    +
    + +
    +
    +void hp_logical_or_s(half *input0, half *input1, half *output, int length, int core_mask)
    +
    + +
    +
    +void fp_logical_or_s(float *input0, float *input1, float *output, int length, int core_mask)
    +
    + +
    +
    +void dp_logical_or_s(double *input0, double *input1, double *output, int length, int core_mask)
    +

    C调用示例:

    +
     1// FT78NE 示例(共享存储多核并行)
    + 2#include <stdio.h>
    + 3#include "78NE/utils.h"
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    int32_t *in0 = (int32_t *)0xA0000000;   // 输入0在共享存储空间
    + 7    int32_t *in1 = (int32_t *)0xA1000000;   // 输入1在共享存储空间
    + 8    int32_t *out = (int32_t *)0xB0000000;   // 输出在共享存储空间
    + 9    int length = 960001;
    +10    int core_mask = 0b1011;                 // 指定参加计算的核心
    +11    i32_logical_or_s(in0, in1, out, length, core_mask);
    +12    return 0;
    +13}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void i8_logical_or_p(int8_t *input0, int8_t *input1, int8_t *output, int length)
    +
    + +
    +
    +void i16_logical_or_p(int16_t *input0, int16_t *input1, int16_t *output, int length)
    +
    + +
    +
    +void i32_logical_or_p(int32_t *input0, int32_t *input1, int32_t *output, int length)
    +
    + +
    +
    +void hp_logical_or_p(half *input0, half *input1, half *output, int length)
    +
    + +
    +
    +void fp_logical_or_p(float *input0, float *input1, float *output, int length)
    +
    + +
    +
    +void dp_logical_or_p(double *input0, double *input1, double *output, int length)
    +

    C调用示例:

    +
     1// MT7004 示例(私有存储单核)
    + 2#include <stdio.h>
    + 3
    + 4int main(int argc, char* argv[]) {
    + 5    // 输入和输出均位于私有存储空间
    + 6    float *in0 = (float *)0x10000000;
    + 7    float *in1 = (float *)0x10001000;
    + 8    float *out = (float *)0x10002000;
    + 9    int length = 1024;
    +10    fp_logical_or_p(in0, in1, out, length);
    +11    return 0;
    +12}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/logicaland.html b/master/html/functionlib/dsplib/logicaland.html new file mode 100644 index 0000000..a1b8fb8 --- /dev/null +++ b/master/html/functionlib/dsplib/logicaland.html @@ -0,0 +1,466 @@ + + + + + + + + + LogicalAnd — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    LogicalAnd

    +

    逐元素执行逻辑与(Logical AND)运算。

    +

    对输入张量的对应元素先进行布尔化判断,再执行逻辑与运算,输出结果为 0 或 1, +并以与输入相同的数据类型返回。

    +
    +\[\begin{split}\text{output}_i = +\begin{cases} + 1, & \text{if } (\text{input0}_i \neq 0) \land (\text{input1}_i \neq 0) \\ + 0, & \text{otherwise} +\end{cases}\end{split}\]
    +
    +
    输入:
      +
    • input0 - 第一个输入张量的数据地址。

    • +
    • input1 - 第二个输入张量的数据地址。

    • +
    • length - 输入张量的总元素数量。

    • +
    • core_mask - 核掩码。

    • +
    +
    +
    输出:
      +
    • output - 输出张量的数据地址,其大小与 input0input1 相同。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持的数据类型:fp32, fp64, int8, int16, int32

    • +
    • MT7004 支持的数据类型:fp16, fp32, int16, int32

    • +
    • 输入值在参与逻辑运算前会被转换为布尔值(非 0 为 true,0 为 false)

    • +
    • 输出结果仅为 0 或 1

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_and_s(float *input0, float *input1, float *output, int length, int core_mask)
    +
    + +
    +
    +void dp_and_s(double *input0, double *input1, double *output, int length, int core_mask)
    +
    + +
    +
    +void i8_and_s(int8_t *input0, int8_t *input1, int8_t *output, int length, int core_mask)
    +
    + +
    +
    +void i16_and_s(int16_t *input0, int16_t *input1, int16_t *output, int length, int core_mask)
    +
    + +
    +
    +void i32_and_s(int32_t *input0, int32_t *input1, int32_t *output, int length, int core_mask)
    +
    + +
    +
    +void hp_and_s(half *input0, half *input1, half *output, int length, int core_mask)
    +
    + +

    C调用示例:

    +
     1// FT78NE 多核示例
    + 2#include <stdio.h>
    + 3#include <logical_and.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *input0 = (float *)0xA0000000;   // input0 在 DDR 空间
    + 7    float *input1 = (float *)0xA0010000;   // input1 在 DDR 空间
    + 8    float *output = (float *)0xB0000000;   // output 在 DDR 空间
    + 9
    +10    int length = 4096;
    +11    int core_mask = 0xff;
    +12
    +13    fp_and_s(input0, input1, output, length, core_mask);
    +14    return 0;
    +15}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_and_p(float *input0, float *input1, float *output, int length)
    +
    + +
    +
    +void dp_and_p(double *input0, double *input1, double *output, int length)
    +
    + +
    +
    +void i8_and_p(int8_t *input0, int8_t *input1, int8_t *output, int length)
    +
    + +
    +
    +void i16_and_p(int16_t *input0, int16_t *input1, int16_t *output, int length)
    +
    + +
    +
    +void i32_and_p(int32_t *input0, int32_t *input1, int32_t *output, int length)
    +
    + +
    +
    +void hp_and_p(half *input0, half *input1, half *output, int length)
    +
    + +

    C调用示例:

    +
     1// MT7004 单核示例
    + 2#include <stdio.h>
    + 3#include <logical_and.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    half *input0 = (half *)0x10000000;   // input0 在 L2 空间
    + 7    half *input1 = (half *)0x10002000;   // input1 在 L2 空间
    + 8    half *output = (half *)0x10010000;   // output 在 L2 空间
    + 9
    +10    int length = 1024;
    +11
    +12    hp_and_p(input0, input1, output, length);
    +13    return 0;
    +14}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/logsoftmax.html b/master/html/functionlib/dsplib/logsoftmax.html new file mode 100644 index 0000000..9585a49 --- /dev/null +++ b/master/html/functionlib/dsplib/logsoftmax.html @@ -0,0 +1,439 @@ + + + + + + + + + LogSoftmax — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    LogSoftmax

    +

    对输入数组沿指定维度进行 Log-Softmax 计算,输出每个元素的对数概率值。

    +
    +\[\text{output}_{i} = \log\frac{\exp(\text{input}_{i})}{\sum_j \exp(\text{input}_j)} +\quad \text{for elements along the given axis}\]
    +
    +
    输入:
      +
    • input_ptr - 输入数据地址。

    • +
    • axis - 归一化的轴。

    • +
    • n_dim - 输入张量维度。

    • +
    • inner_size - 内部尺寸(轴之后的元素个数)。

    • +
    • outter_size - 外部尺寸(轴之前的元素个数)。

    • +
    • axis_size - 归一化轴的元素数量。

    • +
    • core_mask - 核掩码(仅适用于共享存储版本)。

    • +
    • sum_data - 中间累加存储地址(用于存放指数和)。

    • +
    +
    +
    输出:
      +
    • output_ptr - Log-Softmax 计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持fp, int8

    • +
    • MT7004 支持hp, fp

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_logsoftmax_s(float *input_ptr, float *output_ptr, float *sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size, int core_mask)
    +
    + +
    +
    +void hp_logsoftmax_s(half *input_ptr, half *output_ptr, half *sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size, int core_mask)
    +
    + +
    +
    +void i8_logsoftmax_s(int8_t *input_ptr, int8_t *output_ptr, float *sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size, int core_mask)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <logsoftmax.h>
    + 4
    + 5int main() {
    + 6    float *input = (float *)0xA0000000;   // input在DDR空间
    + 7    float *output = (float *)0xC0000000;
    + 8    float *sum_data = (float *)0xD0000000;
    + 9    int axis = 1;
    +10    int n_dim = 3;
    +11    int inner_size = 4;
    +12    int outter_size = 2;
    +13    int axis_size = 3;
    +14    int core_mask = 0xff;
    +15
    +16    fp_logsoftmax_s(input, output, sum_data, axis, n_dim, inner_size, outter_size, axis_size, core_mask);
    +17    return 0;
    +18}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_logsoftmax_p(float *input_ptr, float *output_ptr, float *sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size)
    +
    + +
    +
    +void hp_logsoftmax_p(half *input_ptr, half *output_ptr, half *sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size)
    +
    + +
    +
    +void i8_logsoftmax_p(int8_t *input_ptr, int8_t *output_ptr, float *sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <logsoftmax.h>
    + 4
    + 5int main() {
    + 6    float *input = (float *)0x10810000;   // input在L2空间
    + 7    float *output = (float *)0x10820000;
    + 8    float *sum_data = (float *)0x10830000;
    + 9    int axis = 1;
    +10    int n_dim = 3;
    +11    int inner_size = 4;
    +12    int outter_size = 2;
    +13    int axis_size = 3;
    +14
    +15    fp_logsoftmax_p(input, output, sum_data, axis, n_dim, inner_size, outter_size, axis_size);
    +16    return 0;
    +17}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/lpnormalization.html b/master/html/functionlib/dsplib/lpnormalization.html new file mode 100644 index 0000000..d62c9ef --- /dev/null +++ b/master/html/functionlib/dsplib/lpnormalization.html @@ -0,0 +1,447 @@ + + + + + + + + + LpNormalization — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    LpNormalization

    +

    对输入张量按 实例(Instance)+ 通道(Channel) 维度执行 Lp 归一化操作。 +该算子在每个样本的每个通道内,基于 inner_size 维度计算 Lp 范数, +并结合可学习参数 gammabeta 完成缩放与偏移。

    +
    +\[ \begin{align}\begin{aligned}\text{norm}_{b,c} = \left( \sum_{i=1}^{N} |x_{b,c,i}|^p + \epsilon \right)^{\frac{1}{p}}\\y_{b,c,i} = \frac{x_{b,c,i}}{\text{norm}_{b,c}} \cdot \gamma_c + \beta_c\end{aligned}\end{align} \]
    +

    其中:

    +
      +
    • \(b\) 表示 batch 维度

    • +
    • \(c\) 表示通道维度

    • +
    • \(i\) 表示 inner_size 维度

    • +
    • \(p\) 为范数阶数

    • +
    • \(\gamma_c\)\(\beta_c\) 为通道级缩放与偏移参数

    • +
    +
    +
    输入:
      +
    • input - 输入数据地址,形状为 [batch, channel, inner_size]

    • +
    • gamma - 缩放参数地址,长度为 channel

    • +
    • beta - 偏移参数地址,长度为 channel

    • +
    • p - Lp 范数阶数。

    • +
    • batch - batch 数。

    • +
    • channel - 通道数。

    • +
    • inner_size - 每个通道内的归一化长度。

    • +
    • epsilon - 数值稳定因子。

    • +
    • core_mask - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - LpNormalization 计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持 fp32 类型

    • +
    • MT7004 支持 fp16fp32 类型

    • +
    • 归一化统计量仅在单个样本、单个通道内计算

    • +
    • p 为浮点数,可用于 L1、L2 等不同范数形式

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_lpnorm_s(float *input, float *gamma, float *beta, float *output, float p, int batch, int channel, int inner_size, float epsilon, int core_mask)
    +
    + +
    +
    +void hp_lpnorm_s(half *input, half *gamma, half *beta, half *output, float p, int batch, int channel, int inner_size, float epsilon, int core_mask)
    +
    + +

    C调用示例:

    +
     1// FT78NE 示例
    + 2#include <stdio.h>
    + 3#include <lpnorm.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *input  = (float *)0xA0000000;   // input 在 DDR 空间
    + 7    float *output = (float *)0xC0000000;
    + 8    float *gamma  = (float *)0xA1000000;
    + 9    float *beta   = (float *)0xA2000000;
    +10
    +11    int batch = 4;
    +12    int channel = 64;
    +13    int inner_size = 256;
    +14    float p = 2.0f;
    +15    float epsilon = 1e-6f;
    +16    int core_mask = 0xff;
    +17
    +18    fp_lpnorm_s(input, gamma, beta, output,
    +19                p, batch, channel, inner_size, epsilon, core_mask);
    +20    return 0;
    +21}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_lpnorm_p(float *input, float *gamma, float *beta, float *output, float p, int batch, int channel, int inner_size, float epsilon)
    +
    + +
    +
    +void hp_lpnorm_p(half *input, half *gamma, half *beta, half *output, float p, int batch, int channel, int inner_size, float epsilon)
    +
    + +

    C调用示例:

    +
     1// FT78NE 示例
    + 2#include <stdio.h>
    + 3#include <lpnorm.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *input  = (float *)0x10810000;   // input 在 L2 空间
    + 7    float *output = (float *)0x10820000;
    + 8    float *gamma  = (float *)0x10830000;
    + 9    float *beta   = (float *)0x10840000;
    +10
    +11    int batch = 4;
    +12    int channel = 64;
    +13    int inner_size = 256;
    +14    float p = 2.0f;
    +15    float epsilon = 1e-6f;
    +16
    +17    fp_lpnorm_p(input, gamma, beta, output,
    +18                p, batch, channel, inner_size, epsilon);
    +19    return 0;
    +20}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/lrn.html b/master/html/functionlib/dsplib/lrn.html new file mode 100644 index 0000000..b64d350 --- /dev/null +++ b/master/html/functionlib/dsplib/lrn.html @@ -0,0 +1,425 @@ + + + + + + + + + Lrn — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Lrn

    +

    执行局部响应归一化 (Local Response Normalization)。

    +
    +\[\text{output}_{i,j} = \text{input}_{i,j} \times \left( \text{bias} + \alpha \sum_{k=\max(0, j-d)}^{\min(C-1, j+d)} (\text{input}_{i,k})^2 \right)^{-\beta}\]
    +

    其中,i 遍历每个 out_size 维度,j 表示当前通道,d 是 depth_radius,C 是总通道数 channel, :math:alpha 和 :math:beta 是缩放因子。

    +
    +
    输入:
      +
    • input - 输入张量数据地址,其逻辑布局为 (out_size, channel)。

    • +
    • out_size - 空间/批处理维度的乘积 (例如 N*H*W)。

    • +
    • channel - 通道数 (C)。

    • +
    • depth_radius - 归一化窗口的半径。总的窗口大小为 2 * depth_radius + 1。

    • +
    • alpha - 缩放因子 :math:alpha。

    • +
    • beta - 指数 :math:beta。

    • +
    • bias - 偏置项。

    • +
    • core_mask - 核掩码(仅共享存储版本需要)。

    • +
    +
    +
    输出:
      +
    • Output - 计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持fp32

    • +
    • MT7004 支持fp16, fp32

    • +
    +
    +

    共享存储版本:

    +
    +
    +void hp_lrn_s(half *input, half *output, int out_size, int channel, int depth_radius, float alpha, float beta, float bias, int core_mask)
    +
    + +
    +
    +void fp_lrn_s(float *input, float *output, int out_size, int channel, int depth_radius, float alpha, float beta, float bias, int core_mask)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <lrn.h> // 假设头文件名为 lrn.h
    + 4int main(int argc, char* argv[]) {
    + 5    float *input = (float *)0xA0000000;   //input在DDR空间
    + 6    float *output = (float *)0xC0000000;
    + 7    int out_size = 256; // 例如 N*H*W
    + 8    int channel = 96;
    + 9    int depth_radius = 5;
    +10    float alpha = 0.0001f;
    +11    float beta = 0.75f;
    +12    float bias = 1.0f;
    +13    int core_mask = 0xff;
    +14    fp_lrn_s(input, output, out_size, channel, depth_radius, alpha, beta, bias, core_mask);
    +15    return 0;
    +16}
    +
    +
    +

    私有存储版本:

    +
    +
    +void hp_lrn_p(half *input, half *output, int out_size, int channel, int depth_radius, float alpha, float beta, float bias)
    +
    + +
    +
    +void fp_lrn_p(float *input, float *output, int out_size, int channel, int depth_radius, float alpha, float beta, float bias)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <lrn.h> // 假设头文件名为 lrn.h
    + 4int main(int argc, char* argv[]) {
    + 5    float *input = (float *)0x10000000;   //input在L2空间
    + 6    float *output = (float *)0x10010000;
    + 7    int out_size = 256; // 例如 N*H*W
    + 8    int channel = 96;
    + 9    int depth_radius = 5;
    +10    float alpha = 0.0001f;
    +11    float beta = 0.75f;
    +12    float bias = 1.0f;
    +13    fp_lrn_p(input, output, out_size, channel, depth_radius, alpha, beta, bias);
    +14    return 0;
    +15}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/lsh_projection.html b/master/html/functionlib/dsplib/lsh_projection.html new file mode 100644 index 0000000..6524324 --- /dev/null +++ b/master/html/functionlib/dsplib/lsh_projection.html @@ -0,0 +1,473 @@ + + + + + + + + + LshProjection — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    LshProjection

    +

    局部敏感哈希(Locality Sensitive Hashing, LSH)投影算子。该算子通过多个哈希组(Hash Groups)对输入特征进行处理,每组生成一个指定位宽(bits_per_hash)的哈希签名(int32)。

    +

    内部逻辑基于 FNV1a 哈希算法和加权评分机制,将高维特征映射为低维的离散哈希值。

    +
    +
    计算过程:
      +
    1. 对于每个哈希组 $i$,循环执行 $j$ 次($j < bits_per_hash$)。

    2. +
    3. 每次根据特定的哈希种子 $seed_{i,j}$ 计算特征与权重的加权评分,并通过评分符号决定一个 Bit 位(0 或 1)。

    4. +
    5. 将生成的 Bit 位拼接成一个完整的 32 位整型哈希签名。

    6. +
    +
    +
    输入:
      +
    • hash_seed - 哈希种子数组地址(float 类型)。

    • +
    • feature - 输入特征向量地址(int32 类型)。

    • +
    • weight - 权重向量地址(类型随算子名而定,若为 NULL 则不加权)。

    • +
    • hash_group_num - 生成的哈希组数量(即输出结果的个数)。

    • +
    • bits_per_hash - 每组哈希签名的有效位数(通常 $le 32$)。

    • +
    • feature_num - 特征向量的维度。

    • +
    • core_mask(int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 存储生成的哈希签名地址(int32 数组)。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持权重类型:int8 (i8), int16 (i16), int32 (i32), fp32 (fp), fp64 (dp)

    • +
    • MT7004 支持权重类型:int16 (i16), int32 (i32), fp16 (hp), fp32 (fp)

    • +
    • 特征输入(feature)在所有平台上固定为 int32 类型。

    • +
    • 输出结果(output)在所有平台上固定为 int32 类型。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_lsh_projection_s(const float *hash_seed, const int32_t *feature, const int8_t *weight, int32_t *output, int hash_group_num, int bits_per_hash, int feature_num, int core_mask)
    +
    + +
    +
    +void i16_lsh_projection_s(const float *hash_seed, const int32_t *feature, const int16_t *weight, int32_t *output, int hash_group_num, int bits_per_hash, int feature_num, int core_mask)
    +
    + +
    +
    +void i32_lsh_projection_s(const float *hash_seed, const int32_t *feature, const int32_t *weight, int32_t *output, int hash_group_num, int bits_per_hash, int feature_num, int core_mask)
    +
    + +
    +
    +void hp_lsh_projection_s(const float *hash_seed, const int32_t *feature, const half *weight, int32_t *output, int hash_group_num, int bits_per_hash, int feature_num, int core_mask)
    +
    + +
    +
    +void fp_lsh_projection_s(const float *hash_seed, const int32_t *feature, const float *weight, int32_t *output, int hash_group_num, int bits_per_hash, int feature_num, int core_mask)
    +
    + +
    +
    +void dp_lsh_projection_s(const float *hash_seed, const int32_t *feature, const double *weight, int32_t *output, int hash_group_num, int bits_per_hash, int feature_num, int core_mask)
    +

    C调用示例:

    +
     1// FT78NE 示例:fp32 权重,多核共享存储
    + 2#include "78NE/utils.h"
    + 3
    + 4int main() {
    + 5    float* hash_seed = (float*)0xA0000000;
    + 6    int32_t* feature = (int32_t*)0xA1000000;
    + 7    float* weight = (float*)0xA2000000;
    + 8    int32_t* output = (int32_t*)0xB0000000;
    + 9
    +10    int hash_group_num = 128;
    +11    int bits_per_hash = 16;
    +12    int feature_num = 64;
    +13    int core_mask = 0xFF;
    +14
    +15    fp_lsh_projection_s(hash_seed, feature, weight, output,
    +16                        hash_group_num, bits_per_hash, feature_num, core_mask);
    +17    return 0;
    +18}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void i8_lsh_projection_p(const float *hash_seed, const int32_t *feature, const int8_t *weight, int32_t *output, int hash_group_num, int bits_per_hash, int feature_num)
    +
    + +
    +
    +void i16_lsh_projection_p(const float *hash_seed, const int32_t *feature, const int16_t *weight, int32_t *output, int hash_group_num, int bits_per_hash, int feature_num)
    +
    + +
    +
    +void i32_lsh_projection_p(const float *hash_seed, const int32_t *feature, const int32_t *weight, int32_t *output, int hash_group_num, int bits_per_hash, int feature_num)
    +
    + +
    +
    +void hp_lsh_projection_p(const float *hash_seed, const int32_t *feature, const half *weight, int32_t *output, int hash_group_num, int bits_per_hash, int feature_num)
    +
    + +
    +
    +void fp_lsh_projection_p(const float *hash_seed, const int32_t *feature, const float *weight, int32_t *output, int hash_group_num, int bits_per_hash, int feature_num)
    +
    + +
    +
    +void dp_lsh_projection_p(const float *hash_seed, const int32_t *feature, const double *weight, int32_t *output, int hash_group_num, int bits_per_hash, int feature_num)
    +

    C调用示例:

    +
     1// MT7004 示例:fp16 (hp) 权重,私有存储单核
    + 2#include <stdio.h>
    + 3
    + 4int main() {
    + 5    float* hash_seed = (float*)0x10000000;
    + 6    int32_t* feature = (int32_t*)0x10001000;
    + 7    half* weight = (half*)0x10002000;
    + 8    int32_t* output = (int32_t*)0x10003000;
    + 9
    +10    int hash_group_num = 64;
    +11    int bits_per_hash = 8;
    +12    int feature_num = 32;
    +13
    +14    hp_lsh_projection_p(hash_seed, feature, weight, output,
    +15                        hash_group_num, bits_per_hash, feature_num);
    +16    return 0;
    +17}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/lstm.html b/master/html/functionlib/dsplib/lstm.html index 907c803..c6d78b2 100644 --- a/master/html/functionlib/dsplib/lstm.html +++ b/master/html/functionlib/dsplib/lstm.html @@ -23,8 +23,8 @@ - - + + @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
    @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
    输入:
      -
    • input - 输入序列数据,形状为 \((seq_len, batch, input_size)\),即每个时间步的输入特征。

    • -
    • weight_i - 输入到各门 \((input、forget、cell、output)\) 的权重矩阵,大小为 4 * hidden_size * input_size。

    • -
    • weight_h - 上一隐藏状态到各门的权重矩阵,大小为 \(4 * hidden_size * hidden_size\)

    • +
    • input - 输入序列数据,形状为 \((seq\_len, batch, input\_size)\),即每个时间步的输入特征。

    • +
    • weight_i - 输入到各门 \((input, forget, cell, output)\) 的权重矩阵,大小为 4 * hidden_size * input_size。

    • +
    • weight_h - 上一隐藏状态到各门的权重矩阵,大小为 \(4 * hidden\_size * hidden\_size\)

    • input_bias - 输入部分的偏置项,对应 4 个门的偏置。

    • -
    • state_bias - 隐藏状态部分的偏置项(也是 \(4 * hidden_size\)),与 input_bias 一起求和形成总偏置。

    • -
    • hidden_state - 当前批次初始隐藏状态输入( \(h₀\) ),执行后更新为最后时刻的隐藏状态输出( \(hₜ\)

    • -
    • cell_state - 当前批次初始细胞状态输入( \(c₀\)),执行后更新为最后时刻的细胞状态输出( \(cₜ\))。

    • +
    • state_bias - 隐藏状态部分的偏置项(也是 \(4 * hidden\_size\)),与 input_bias 一起求和形成总偏置。

    • +
    • hidden_state - 当前批次初始隐藏状态输入( \(h_0\) ),执行后更新为最后时刻的隐藏状态输出( \(h_t\)

    • +
    • cell_state - 当前批次初始细胞状态输入( \(c_0\)),执行后更新为最后时刻的细胞状态输出( \(c_t\))。

    • buffer - 临时工作区指针数组(中间计算缓存,如门值、激活结果、临时矩阵等,用于优化性能)。

    • LstmParameter - LSTM 配置参数结构体,包含输入大小、隐藏层维度、序列长度、是否双向等信息。

    • core_mask - 核掩码(仅适用于共享存储版本)。

    • @@ -204,7 +369,7 @@ h_t &= o_t \odot \tanh(c_t) && \text{(隐藏状态更新)}

      备注

      • FT78NE 支持fp32

      • -
      • MT7004 支持fp32

      • +
      • MT7004 支持fp32、fp16

    @@ -215,6 +380,11 @@ h_t &= o_t \odot \tanh(c_t) && \text{(隐藏状态更新)} void fp_Lstm_s(float *output, const float *input, const float *weight_i, const float *weight_h, const float *input_bias, const float *state_bias, float *hidden_state, float *cell_state, float *buffer[9], const LstmParameter *lstm_param, int core_mask)
    +
    +
    +void hp_Lstm_s(half *output, const half *input, const half *weight_i, const half *weight_h, const half *input_bias, const half *state_bias, half *hidden_state, half *cell_state, half *buffer[9], const LstmParameter *lstm_param, int core_mask)
    +
    +

    C调用示例:

     1//FT78NE示例
    @@ -268,6 +438,11 @@ h_t &= o_t \odot \tanh(c_t) && \text{(隐藏状态更新)}
     
    void fp_Lstm_p(float *output, const float *input, const float *weight_i, const float *weight_h, const float *input_bias, const float *state_bias, float *hidden_state, float *cell_state, float *buffer[9], const LstmParameter *lstm_param)
    +
    + +
    +
    +void hp_Lstm_p(half *output, const half *input, const half *weight_i, const half *weight_h, const half *input_bias, const half *state_bias, half *hidden_state, half *cell_state, half *buffer[9], const LstmParameter *lstm_param)

    C调用示例:

    @@ -323,14 +498,14 @@ h_t &= o_t \odot \tanh(c_t) && \text{(隐藏状态更新)}
    @@ -112,15 +277,15 @@
    @@ -112,15 +277,15 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -194,9 +359,9 @@ 7 float delta = 0.5f; 8 int length = 1000; 9 int core_mask = 0xff; -10 fp_range_s(output, start, delta, length, core_mask); -11 return 0; -12} +10 fp_range_s(output, start, delta, length, core_mask); +11 return 0; +12}
    @@ -234,9 +399,9 @@ 6 float start = 1.5f; 7 float delta = 0.5f; 8 int length = 1000; - 9 fp_range_p(output, start, delta, length); -10 return 0; -11} + 9 fp_range_p(output, start, delta, length); +10 return 0; +11}
    @@ -254,7 +419,7 @@
    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/rank.html b/master/html/functionlib/dsplib/rank.html new file mode 100644 index 0000000..6358262 --- /dev/null +++ b/master/html/functionlib/dsplib/rank.html @@ -0,0 +1,398 @@ + + + + + + + + + Rank — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Rank

    +
    +

    获取输入张量的秩(维数),并将该值写入输出地址。

    +
    +
    输入:
      +
    • output - 输出数据的地址,用于存储秩的结果。

    • +
    • n - 输入张量的秩(维数)。

    • +
    • core_mask - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 存储秩数值的地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • 由于该算子对于不同数据类型的具体实现一致,因此统一使用 rank_srank_p 命名,不再区分数据类型前缀(如 fp_, i8_ 等)。

    • +
    • 支持的数据类型包括:int8, int16, int32, fp32, fp64, cplx64, cplx128。

    • +
    +
    +
    +

    共享存储版本:

    +
    +
    +void rank_s(int *output, int n, int core_mask)
    +

    C调用示例:

    +
     1#include <stdio.h>
    + 2
    + 3int main(int argc, char* argv[]) {
    + 4    int n = 4; // 假设张量的秩为4
    + 5    int *output = (int *)0xA0000000;
    + 6    int core_mask = 0xff;
    + 7
    + 8    rank_s(output, n, core_mask);
    + 9
    +10    return 0;
    +11}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void rank_p(int *output, int n)
    +

    C调用示例:

    +
     1#include <stdio.h>
    + 2
    + 3int main(int argc, char* argv[]) {
    + 4    int n = 3; // 假设张量的秩为3
    + 5    int *output = (int *)0x10810000;
    + 6
    + 7    rank_p(output, n);
    + 8
    + 9    return 0;
    +10}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/real_div.html b/master/html/functionlib/dsplib/real_div.html new file mode 100644 index 0000000..5e8f15c --- /dev/null +++ b/master/html/functionlib/dsplib/real_div.html @@ -0,0 +1,473 @@ + + + + + + + + + RealDiv — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    RealDiv

    +

    逐元素计算两个输入的除法。

    +
    +\[output_i = \frac{input0_i}{input1_i}\]
    +
    +
    输入:
      +
    • input0 - 被除数输入数据地址。

    • +
    • input1 - 除数输入数据地址。

    • +
    • length - 计算长度。

    • +
    • core_mask(int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128

    • +
    • MT7004 支持 fp16, fp32, int16, int32, cplx64

    • +
    • 若除数元素为 0,则输出结果为无穷大或未定义值,需由上层逻辑处理。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_real_div_s(int8_t *input0, int8_t *input1, int8_t *output, int length, int core_mask)
    +
    + +
    +
    +void i16_real_div_s(int16_t *input0, int16_t *input1, int16_t *output, int length, int core_mask)
    +
    + +
    +
    +void i32_real_div_s(int32_t *input0, int32_t *input1, int32_t *output, int length, int core_mask)
    +
    + +
    +
    +void hp_real_div_s(half *input0, half *input1, half *output, int length, int core_mask)
    +
    + +
    +
    +void fp_real_div_s(float *input0, float *input1, float *output, int length, int core_mask)
    +
    + +
    +
    +void dp_real_div_s(double *input0, double *input1, double *output, int length, int core_mask)
    +
    + +
    +
    +void c64_real_div_s(float *input0, float *input1, float *output, int length, int core_mask)
    +
    + +
    +
    +void c128_real_div_s(double *input0, double *input1, double *output, int length, int core_mask)
    +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3
    + 4int main(int argc, char* argv[]) {
    + 5    float *input0 = (float *)0xA0000000;   // input0 在 DDR 空间
    + 6    float *input1 = (float *)0xA1000000;   // input1 在 DDR 空间
    + 7    float *output = (float *)0xB0000000;   // 输出结果在 DDR 空间
    + 8    int length = 1024;
    + 9    int core_mask = 0xff;
    +10    fp_real_div_s(input0, input1, output, length, core_mask);
    +11    return 0;
    +12}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void i8_real_div_p(int8_t *input0, int8_t *input1, int8_t *output, int length)
    +
    + +
    +
    +void i16_real_div_p(int16_t *input0, int16_t *input1, int16_t *output, int length)
    +
    + +
    +
    +void i32_real_div_p(int32_t *input0, int32_t *input1, int32_t *output, int length)
    +
    + +
    +
    +void hp_real_div_p(half *input0, half *input1, half *output, int length)
    +
    + +
    +
    +void fp_real_div_p(float *input0, float *input1, float *output, int length)
    +
    + +
    +
    +void dp_real_div_p(double *input0, double *input1, double *output, int length)
    +
    + +
    +
    +void c64_real_div_p(float *input0, float *input1, float *output, int length)
    +
    + +
    +
    +void c128_real_div_p(double *input0, double *input1, double *output, int length)
    +

    C调用示例:

    +
     1//MT7004 示例
    + 2#include <stdio.h>
    + 3
    + 4int main(int argc, char* argv[]) {
    + 5    float *input0 = (float *)0x10000000;
    + 6    float *input1 = (float *)0x10001000;
    + 7    float *output = (float *)0x10002000;
    + 8    int length = 1024;
    + 9    fp_real_div_p(input0, input1, output, length);
    +10    return 0;
    +11}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/reciprocal.html b/master/html/functionlib/dsplib/reciprocal.html new file mode 100644 index 0000000..c151740 --- /dev/null +++ b/master/html/functionlib/dsplib/reciprocal.html @@ -0,0 +1,470 @@ + + + + + + + + + Reciprocal — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Reciprocal

    +

    逐元素计算输入数据的倒数。

    +
    +\[output_i = \frac{1}{Input_i}\]
    +
    +
    输入:
      +
    • Input - 输入数据地址。

    • +
    • length - 计算长度。

    • +
    • core_mask(int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128

    • +
    • MT7004 支持 fp16, fp32, int16, int32, cplx64

    • +
    • 当输入为 0 时,输出结果为无穷大或未定义值,需由上层逻辑处理。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_reciprocal_s(int8_t *Input, float *output, int length, int core_mask)
    +
    + +
    +
    +void i16_reciprocal_s(int16_t *Input, float *output, int length, int core_mask)
    +
    + +
    +
    +void i32_reciprocal_s(int32_t *Input, float *output, int length, int core_mask)
    +
    + +
    +
    +void hp_reciprocal_s(half *Input, half *output, int length, int core_mask)
    +
    + +
    +
    +void fp_reciprocal_s(float *Input, float *output, int length, int core_mask)
    +
    + +
    +
    +void dp_reciprocal_s(double *Input, double *output, int length, int core_mask)
    +
    + +
    +
    +void c64_reciprocal_s(float *Input, float *output, int length, int core_mask)
    +
    + +
    +
    +void c128_reciprocal_s(double *Input, double *output, int length, int core_mask)
    +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3
    + 4int main(int argc, char* argv[]) {
    + 5    float *input = (float *)0xA0000000;   //input在DDR空间
    + 6    float *output = (float *)0xB0000000;
    + 7    int length = 1000;
    + 8    int core_mask = 0xff;
    + 9    fp_reciprocal_s(input, output, length, core_mask);
    +10    return 0;
    +11}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void i8_reciprocal_p(int8_t *Input, float *output, int length)
    +
    + +
    +
    +void i16_reciprocal_p(int16_t *Input, float *output, int length)
    +
    + +
    +
    +void i32_reciprocal_p(int32_t *Input, float *output, int length)
    +
    + +
    +
    +void hp_reciprocal_p(half *Input, half *output, int length)
    +
    + +
    +
    +void fp_reciprocal_p(float *Input, float *output, int length)
    +
    + +
    +
    +void dp_reciprocal_p(double *Input, double *output, int length)
    +
    + +
    +
    +void c64_reciprocal_p(float *Input, float *output, int length)
    +
    + +
    +
    +void c128_reciprocal_p(double *Input, double *output, int length)
    +

    C调用示例:

    +
     1//MT7004示例
    + 2#include <stdio.h>
    + 3
    + 4int main(int argc, char* argv[]) {
    + 5    float *input = (float *)0x10000000;
    + 6    float *output = (float *)0x10001000;
    + 7    int length = 1000;
    + 8    fp_reciprocal_p(input, output, length);
    + 9    return 0;
    +10}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/reduce.html b/master/html/functionlib/dsplib/reduce.html index 2c42918..191bcaa 100644 --- a/master/html/functionlib/dsplib/reduce.html +++ b/master/html/functionlib/dsplib/reduce.html @@ -34,7 +34,7 @@ - + MindSpore Signal+ 使用手册
    @@ -46,11 +46,7 @@
    @@ -111,15 +276,15 @@
    @@ -111,15 +276,15 @@
    @@ -111,15 +276,15 @@
      -
    • - +
    • +
    • @@ -250,7 +415,7 @@
      -

      © 版权所有 2025 - 2025, NUDT-674。

      +

      © 版权所有 2025 - 2026, NUDT-674。

      利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/reversev2.html b/master/html/functionlib/dsplib/reversev2.html index ae66b94..d8a8ccb 100644 --- a/master/html/functionlib/dsplib/reversev2.html +++ b/master/html/functionlib/dsplib/reversev2.html @@ -34,7 +34,7 @@ - + MindSpore Signal+ 使用手册
      @@ -46,11 +46,7 @@
    @@ -111,15 +276,15 @@
    @@ -112,15 +277,15 @@

    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/scatter_elements.html b/master/html/functionlib/dsplib/scatter_elements.html index 550a22f..2238044 100644 --- a/master/html/functionlib/dsplib/scatter_elements.html +++ b/master/html/functionlib/dsplib/scatter_elements.html @@ -23,7 +23,7 @@ - + @@ -34,7 +34,7 @@ - + MindSpore Signal+ 使用手册
    @@ -46,11 +46,7 @@
    @@ -111,15 +276,15 @@
    @@ -112,15 +277,15 @@
      -
    • - +
    • +
    • @@ -136,6 +301,17 @@

      SGD

      对权重张量执行带动量与权重衰减的随机梯度下降更新。

      +
      +\[\begin{split}\begin{aligned} +g'_t &= g_t + weight\_decay \cdot w_{t-1} \\ +m_t &= moment \cdot m_{t-1} + (1 - dampening) \cdot g'_t \\ +u_t &= +\begin{cases} + m_t \cdot moment + g'_t, & \text{if nesterov = True} \\ + m_t, & \text{otherwise} +\end{cases} \\ +w_t &= w_{t-1} - learning\_rate \cdot u_t +\end{aligned}\end{split}\]
      输入:
      • weight - 待更新权重张量首地址。

      • @@ -177,18 +353,7 @@
        void fp_sgd_s(float *weight, float *accumulate, const float *gradient, float learning_rate, float dampening, float moment, bool nesterov, float weight_decay, int start, int end, int core_mask)
        -
        -\[\begin{split}\begin{aligned} -g'_t &= g_t + weight\_decay \cdot w_{t-1} \\ -m_t &= moment \cdot m_{t-1} + (1 - dampening) \cdot g'_t \\ -u_t &= -\begin{cases} - m_t \cdot moment + g'_t, & \text{if nesterov = True} \\ - m_t, & \text{otherwise} -\end{cases} \\ -w_t &= w_{t-1} - learning\_rate \cdot u_t -\end{aligned}\end{split}\]
        -

        C调用示例:

        +

        C调用示例:

         1// FT78NE 多核示例
          2#include <stdio.h>
          3#include <stdbool.h>
        @@ -206,9 +371,9 @@ w_t &= w_{t-1} - learning\_rate \cdot u_t
         15    bool nesterov = true;
         16    float weight_decay = 1e-2f;
         17    fp_sgd_s(weight, accumulate, gradient, learning_rate,
        -18             dampening, moment, nesterov, weight_decay,
        -19             start, end, core_mask);
        -20    return 0;
        +18             dampening, moment, nesterov, weight_decay,
        +19             start, end, core_mask);
        +20    return 0;
         21}
         
        @@ -239,9 +404,9 @@ w_t &= w_{t-1} - learning\_rate \cdot u_t 13 bool nesterov = false; 14 float weight_decay = 5e-3f; 15 hp_sgd_p(weight, accumulate, gradient, learning_rate, -16 dampening, moment, nesterov, weight_decay, -17 length); -18 return 0; +16 dampening, moment, nesterov, weight_decay, +17 length); +18 return 0; 19}
    @@ -260,7 +425,7 @@ w_t &= w_{t-1} - learning\_rate \cdot u_t
    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/shape.html b/master/html/functionlib/dsplib/shape.html new file mode 100644 index 0000000..41c5874 --- /dev/null +++ b/master/html/functionlib/dsplib/shape.html @@ -0,0 +1,416 @@ + + + + + + + + + Shape — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Shape

    +

    形状推断函数(Shape Inference Function)。该函数根据输入张量的形状和算子参数,推断输出张量的形状。该函数不区分数据类型,只处理张量的形状信息。

    +

    如果所有输出张量都是常量(ConstTensor 或 ConstScalar),则直接返回,不进行形状推断。否则,根据算子类型调用相应的形状推断函数。

    +
    +
    支持的算子类型:
      +
    • Arithmetic_InferShape - 算术运算的形状推断

    • +
    • Common_InferShape - 通用算子的形状推断

    • +
    • Softmax_InferShape - Softmax 算子的形状推断

    • +
    • MaxMinGrad_InferShape - MaxMin 梯度算子的形状推断

    • +
    • Dropout_InferShape - Dropout 算子的形状推断

    • +
    • DynamicQuant_InferShape - 动态量化算子的形状推断

    • +
    • Fft_InferShape - FFT 算子的形状推断

    • +
    • Flatten_InferShape - Flatten 算子的形状推断

    • +
    • LayerNorm_InferShape - LayerNorm 算子的形状推断

    • +
    • LogSoftmax_InferShape - LogSoftmax 算子的形状推断

    • +
    +
    +
    输入:
      +
    • inputs - 输入张量数组(TensorC** 类型)。

    • +
    • inputs_size - 输入张量的数量。

    • +
    • outputs - 输出张量数组(TensorC** 类型)。

    • +
    • outputs_size - 输出张量的数量。

    • +
    • param - 算子参数(OpParameter* 类型),包含算子类型和其他参数信息。

    • +
    +
    +
    输出:
      +
    • outputs - 输出张量数组,其中的形状信息会被更新。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • 该函数不区分数据类型,适用于所有数据类型

    • +
    • 函数会自动检查输出是否为常量,如果是常量则跳过形状推断

    • +
    +
    +

    共享存储/私有存储版本:

    +
    +
    +void shape(TensorC **inputs, int inputs_size, TensorC **outputs, int outputs_size, OpParameter *param)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <shape.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    TensorC** input_tensors_ptrs = (TensorC**)0x10010000;
    + 7    TensorC** output_tensors_ptrs = (TensorC**)0x10011000;
    + 8
    + 9    TensorC input0;
    +10    TensorC input1;
    +11    TensorC output;
    +12
    +13    int input0_shape[4] = {1,2,3,4};
    +14    int input1_shape[4] = {1,3,4};
    +15    int output_shape[4]; //不用初始化
    +16    memcpy(input0.shape_, input0_shape, 4 * sizeof(int));
    +17    input0.shape_size_ = 4;
    +18    memcpy(input1.shape_, input1_shape, 4 * sizeof(int));
    +19    input1.shape_size_ = 3;
    +20    input0.data_type_ = kNumberTypeFloat32;
    +21    input1.data_type_ = kNumberTypeFloat32;
    +22    input0.format_ = Format_NCHW;
    +23    input1.format_ = Format_NCHW;
    +24
    +25    input_tensors_ptrs[0] = &input0;
    +26    input_tensors_ptrs[1] = &input1;
    +27    output_tensors_ptrs[0] = &output;
    +28
    +29    ArithmeticParameter param;
    +30    param.op_parameter_.type_ = Arithmetic_InferShape;
    +31
    +32    shape(input_tensors_ptrs, 2, output_tensors_ptrs, 1, (OpParameter*)&param);
    +33    return 0;
    +34}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/sigmoidcrossentropwithlogitsgrad.html b/master/html/functionlib/dsplib/sigmoidcrossentropwithlogitsgrad.html new file mode 100644 index 0000000..4dc3a44 --- /dev/null +++ b/master/html/functionlib/dsplib/sigmoidcrossentropwithlogitsgrad.html @@ -0,0 +1,437 @@ + + + + + + + + + SigmoidCrossEntropyWithLogitsGrad — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    SigmoidCrossEntropyWithLogitsGrad

    +

    计算 Sigmoid Cross Entropy With Logits 的梯度。 +该算子以 logits 和 labels 为输入,输出对 logits 的梯度值。

    +

    数学表达式为:

    +
    +\[ \begin{align}\begin{aligned}\sigma(x) = \frac{1}{1 + e^{-x}}\\\quad\\dst_i = \sigma(x_i) - y_i\end{aligned}\end{align} \]
    +
    +
    其中:
      +
    • \(x_i\) 表示第 i 个 logit(Input0)

    • +
    • \(y_i\) 表示第 i 个标签(Input1)

    • +
    +
    +
    +

    为提高数值稳定性,计算中对正负 logits 采用不同形式:

    +
    +\[\begin{split}\sigma(x) = +\begin{cases} + \dfrac{1}{1 + e^{-x}}, & x > 0 \\ + \dfrac{e^{x}}{1 + e^{x}}, & x \le 0 +\end{cases}\end{split}\]
    +
    +
    输入:
      +
    • Input0 - logits 输入数据地址。

    • +
    • Input1 - 标签(labels)数据地址。

    • +
    • length - 计算长度。

    • +
    • core_mask - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 梯度计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持 fp32 类型

    • +
    • MT7004 支持 fp16fp32 类型

    • +
    • 输入 logits 与 labels 必须具有相同长度

    • +
    • 输出为对 logits 的梯度,不包含对 labels 的梯度

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_sigmoidcrossentropywithlogitsgrad_s(float *Input0, float *Input1, float *output, int length, int core_mask)
    +
    + +
    +
    +void hp_sigmoidcrossentropywithlogitsgrad_s(half *Input0, half *Input1, half *output, int length, int core_mask)
    +
    + +

    C调用示例:

    +
     1// FT78NE 示例
    + 2#include <stdio.h>
    + 3#include <sigmoid_cross_entropy.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *logits = (float *)0xA0000000;   // DDR 空间
    + 7    float *labels = (float *)0xA0100000;
    + 8    float *output = (float *)0xC0000000;
    + 9
    +10    int length = 1024;
    +11    int core_mask = 0xff;
    +12
    +13    fp_sigmoidcrossentropywithlogitsgrad_s(logits, labels, output, length, core_mask);
    +14
    +15    return 0;
    +16}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_sigmoidcrossentropywithlogitsgrad_p(float *Input0, float *Input1, float *output, int length)
    +
    + +
    +
    +void hp_sigmoidcrossentropywithlogitsgrad_p(half *Input0, half *Input1, half *output, int length)
    +
    + +

    C调用示例:

    +
     1// FT78NE 示例(私有存储)
    + 2#include <stdio.h>
    + 3#include <sigmoid_cross_entropy.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *logits = (float *)0x10810000;   // L2 空间
    + 7    float *labels = (float *)0x10820000;
    + 8    float *output = (float *)0x10830000;
    + 9
    +10    int length = 1024;
    +11    fp_sigmoidcrossentropywithlogitsgrad_p( logits, labels, output, length);
    +12
    +13    return 0;
    +14}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/sigmoidcrossentropywithlogits.html b/master/html/functionlib/dsplib/sigmoidcrossentropywithlogits.html new file mode 100644 index 0000000..ccabb4d --- /dev/null +++ b/master/html/functionlib/dsplib/sigmoidcrossentropywithlogits.html @@ -0,0 +1,437 @@ + + + + + + + + + SigmoidCrossEntropyWithLogits — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    SigmoidCrossEntropyWithLogits

    +

    计算预测值与真实值之间的sigmoid交叉熵。

    +

    测量离散分类任务中的分布误差,每个类相互独立,且计算出各个类的交叉熵损失。

    +

    将输入 logits 设置为 \(X\),输入 label 为 \(Y\),输出为 \(loss\)。然后,

    +
    +\[\begin{split}\begin{aligned} +p &= \text{sigmoid}(X) = \frac{1}{1 + e^{-X}} \\ +loss &= -[Y \cdot \ln(p) + (1 - Y) \cdot \ln(1 - p)] +\end{aligned}\end{split}\]
    +
    +
    输入:
      +
    • input0 - 输入 logits 张量地址。

    • +
    • input1 - 输入标签张量地址,与 logits 形状相同。

    • +
    • length - 张量元素总数。

    • +
    • core_mask(int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 输出损失张量地址,与输入张量形状相同。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持的数据类型:int8, fp32

    • +
    • MT7004 支持的数据类型:fp16, fp32

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_sigmoidcrossentropywithlogits_s(int8_t *input0, int8_t *input1, int8_t *output, int length, int core_mask)
    +
    + +
    +
    +void fp_sigmoidcrossentropywithlogits_s(float *input0, float *input1, float *output, int length, int core_mask)
    +
    + +
    +
    +void hp_sigmoidcrossentropywithlogits_s(half *input0, half *input1, half *output, int length, int core_mask)
    +
    + +

    C调用示例:

    +
    +
     1// FT78NE 多核示例
    + 2#include <stdio.h>
    + 3#include <sigmoidcrossentropywithlogits.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *input0 = (float *)0xA0000000;   // logits在DDR空间
    + 7    float *input1 = (float *)0xB0000000;    // label在DDR空间
    + 8    float *output = (float *)0xC0000000;   // 输出损失在DDR空间
    + 9    int length = 1000;
    +10    int core_mask = 0xff;
    +11
    +12    // 计算 sigmoid 交叉熵损失
    +13    fp_sigmoidcrossentropywithlogits_s(input0, input1, output, length, core_mask);
    +14    return 0;
    +15}
    +
    +
    +
    +

    私有存储版本:

    +
    +
    +void i8_sigmoidcrossentropywithlogits_p(int8_t *input0, int8_t *input1, int8_t *output, int length)
    +
    + +
    +
    +void fp_sigmoidcrossentropywithlogits_p(float *input0, float *input1, float *output, int length)
    +
    + +
    +
    +void hp_sigmoidcrossentropywithlogits_p(half *input0, half *input1, half *output, int length)
    +
    + +

    C调用示例:

    +
    +
     1// MT7004 单核示例
    + 2#include <stdio.h>
    + 3#include <sigmoidcrossentropywithlogits.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    half *input0 = (half *)0x10000000;   // logits在L2空间
    + 7    half *input1 = (half *)0x10004000;    // label在L2空间
    + 8    half *output = (half *)0x10008000;   // 输出损失在L2空间
    + 9    int length = 1000;
    +10
    +11    // 计算 sigmoid 交叉熵损失
    +12    hp_sigmoidcrossentropywithlogits_p(input0, input1, output, length);
    +13    return 0;
    +14}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/sin.html b/master/html/functionlib/dsplib/sin.html new file mode 100644 index 0000000..200b51c --- /dev/null +++ b/master/html/functionlib/dsplib/sin.html @@ -0,0 +1,453 @@ + + + + + + + + + Sin — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Sin

    +

    传入一个数组,对每个元素逐元素计算其正弦值并输出。

    +
    +\[dst_i = \sin(src_i)\]
    +

    输入角度单位为弧度。

    +
    +
    输入:
      +
    • src_data - 输入数据地址。

    • +
    • length - 计算长度。

    • +
    • core_mask - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • dst_data - 计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持 fp, dp, int8, int16, int32

    • +
    • MT7004 支持 hp, fp, int16, int32

    • +
    • 整数类型在计算时会先转换为浮点数,再按对应类型输出

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_sin_s(int8_t *src_data, float *dst_data, int length, int core_mask)
    +
    + +
    +
    +void i16_sin_s(int16_t *src_data, float *dst_data, int length, int core_mask)
    +
    + +
    +
    +void i32_sin_s(int *src_data, float *dst_data, int length, int core_mask)
    +
    + +
    +
    +void hp_sin_s(half *src_data, half *dst_data, int length, int core_mask)
    +
    + +
    +
    +void fp_sin_s(float *src_data, float *dst_data, int length, int core_mask)
    +
    + +
    +
    +void dp_sin_s(double *src_data, double *dst_data, int length, int core_mask)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <sin.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *input = (float *)0xA0000000;   // input在DDR空间
    + 7    float *output = (float *)0xC0000000;
    + 8    int length = 1024;
    + 9    int core_mask = 0xff;
    +10    fp_sin_s(input, output, length, core_mask);
    +11    return 0;
    +12}
    +
    +
    +

    私有存储版本:

    +
    +
    +void i8_sin_p(int8_t *src_data, float *dst_data, int length)
    +
    + +
    +
    +void i16_sin_p(int16_t *src_data, float *dst_data, int length)
    +
    + +
    +
    +void i32_sin_p(int *src_data, float *dst_data, int length)
    +
    + +
    +
    +void hp_sin_p(half *src_data, half *dst_data, int length)
    +
    + +
    +
    +void fp_sin_p(float *src_data, float *dst_data, int length)
    +
    + +
    +
    +void dp_sin_p(double *src_data, double *dst_data, int length)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <sin.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *input = (float *)0x10810000;   // input在L2空间
    + 7    float *output = (float *)0x10820000;
    + 8    int length = 1024;
    + 9    fp_sin_p(input, output, length);
    +10    return 0;
    +11}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/size.html b/master/html/functionlib/dsplib/size.html new file mode 100644 index 0000000..1823985 --- /dev/null +++ b/master/html/functionlib/dsplib/size.html @@ -0,0 +1,408 @@ + + + + + + + + + Size — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Size

    +
    +

    计算输入张量或向量的元素总个数(即形状各维度的乘积),并将结果写入输出地址。

    +
    +
    输入:
      +
    • output - 输出数据的地址,用于存储计算结果。

    • +
    • shape - 输入张量的形状(维度)数组地址。

    • +
    • n - 输入张量的维度数(Rank)。

    • +
    • core_mask - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 存储元素总个数的地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • 由于该算子对于不同数据类型的具体实现一致,因此统一使用 size_ssize_p 命名,不再区分数据类型前缀(如 fp_, i8_ 等)。

    • +
    • 支持的数据类型包括:int8, int16, int32, fp32, fp64, cplx64, cplx128。

    • +
    +
    +
    +

    共享存储版本:

    +
    +
    +void size_s(int *output, int *shape, int n, int core_mask)
    +

    C调用示例:

    +
     1#include <stdio.h>
    + 2#include <size.h>
    + 3
    + 4int main(int argc, char* argv[]) {
    + 5    int n = 4;
    + 6    // 假设 shape 为 {2, 3, 4, 5},元素总数为 120
    + 7    int *output = (int *)0xA0000000;
    + 8    int *shape = (int *)0xA0000100;
    + 9
    +10    // 实际使用中需确保 shape 地址处已存入维度数据
    +11    int core_mask = 0xff;
    +12
    +13    size_s(output, shape, n, core_mask);
    +14
    +15    return 0;
    +16}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void size_p(int *output, int *shape, int n)
    +

    C调用示例:

    +
     1#include <stdio.h>
    + 2#include <size.h>
    + 3
    + 4int main(int argc, char* argv[]) {
    + 5    int n = 3;
    + 6    // 假设 shape 为 {10, 10, 4},元素总数为 400
    + 7    int *output = (int *)0x10000000;
    + 8    int *shape = (int *)0x10000040;
    + 9
    +10    // 实际使用中需确保 shape 地址处已存入维度数据
    +11    size_p(output, shape, n);
    +12
    +13    return 0;
    +14}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/skipgram.html b/master/html/functionlib/dsplib/skipgram.html new file mode 100644 index 0000000..558fbc7 --- /dev/null +++ b/master/html/functionlib/dsplib/skipgram.html @@ -0,0 +1,454 @@ + + + + + + + + + Skipgram — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Skipgram

    +

    从输入语句中生成skip-gram。skip-gram是从句子中提取的词语序列,其中相邻词语之间的距离(跳过的词语数量)不超过指定的最大值。此算子主要用于自然语言处理(NLP)任务。

    +
    +
    输入:
      +
    • sentence - StringPack* 类型,指向输入语句的指针。

    • +
    • words - StringPack* 类型,用于存储从语句中解析出的词语的工作空间。

    • +
    • ngram_size - int 类型,指定每个n-gram中的词语数量。

    • +
    • max_skip_size - int 类型,指定在构成n-gram时可以跳过的最大词语数量。

    • +
    • include_all_ngrams - int 类型,布尔标志。如果为非零,则生成长度从1到 ngram_size 的所有n-gram;否则,仅生成长度为 ngram_size 的n-gram。

    • +
    • grams - StringPack** 类型,用于存储生成的gram的工作空间。

    • +
    • grams_word_count - int* 类型,用于存储每个gram中词语数量的工作空间。

    • +
    • stack - int* 类型,长度为 ngram_size 的临时工作空间。

    • +
    • blank - char* 类型,指向空格字符的指针,用于连接gram中的词语。

    • +
    • output_tensor - char* 类型,最终输出张量的数据地址。

    • +
    • offset - int* 类型,输出参数,用于存储 output_tensor 中每个gram的偏移量。

    • +
    • len - int* 类型,输出参数,用于存储 output_tensor 中每个gram的长度。

    • +
    • shape - int* 类型,输出参数,用于存储输出张量的维度信息。

    • +
    • core_mask - (仅限共享版本) 核掩码。

    • +
    +
    +
    输出:
      +
    • output_tensoroffsetlenshape - 这些指针指向的内存区域将被填充,以表示包含生成结果的最终张量。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • 该算子不区分数据类型,直接操作字符数据。

    • +
    +
    +

    共享存储版本:

    +
    +
    +int skipgram_s(StringPack *sentence, StringPack *words, int ngram_size, int max_skip_size, int include_all_ngrams, StringPack **grams, int *grams_word_count, int *stack, char *blank, char *output_tensor, int *offset, int *len, int *shape, int core_mask)
    +
    + +

    C调用示例:

    +
     1#include <stdio.h>
    + 2#include "skipgram.h" // 假设头文件名
    + 3
    + 4typedef struct StringPack {
    + 5  long long len;
    + 6  char *data;
    + 7} StringPack;
    + 8
    + 9int main(int argc, char* argv[]) {
    +10    // 假设输入和工作空间已在DDR中分配
    +11    StringPack* sentence = (StringPack*)0xA0000000;
    +12    StringPack* words = (StringPack*)0xA0010000;
    +13    StringPack** grams = (StringPack**)0xA0020000;
    +14    int* grams_word_count = (int*)0xA0030000;
    +15    int* stack = (int*)0xA0040000;
    +16    char* output_tensor = (char*)0xB0000000;
    +17    int* offset = (int*)0xB0010000;
    +18    int* len = (int*)0xB0020000;
    +19    int* shape = (int*)0xB0030000;
    +20    char blank_char = ' ';
    +21
    +22    // 填充sentence内容
    +23    sentence->data = "mindspore signal processing library";
    +24    sentence->len = 33;
    +25
    +26    int ngram_size = 2;
    +27    int max_skip_size = 1;
    +28    int include_all_ngrams = 1;
    +29    int core_mask = 0xff;
    +30
    +31    skipgram_s(sentence, words, ngram_size, max_skip_size, include_all_ngrams,
    +32               grams, grams_word_count, stack, &blank_char,
    +33               output_tensor, offset, len, shape, core_mask);
    +34    return 0;
    +35}
    +
    +
    +

    私有存储版本:

    +
    +
    +int skipgram_p(StringPack *sentence, StringPack *words, int ngram_size, int max_skip_size, int include_all_ngrams, StringPack **grams, int *grams_word_count, int *stack, char *blank, char *output_tensor, int *offset, int *len, int *shape)
    +
    + +

    C调用示例:

    +
     1#include <stdio.h>
    + 2#include "skipgram.h" // 假设头文件名
    + 3
    + 4typedef struct StringPack {
    + 5  long long len;
    + 6  char *data;
    + 7} StringPack;
    + 8
    + 9int main(int argc, char* argv[]) {
    +10    // 假设输入和工作空间已在私有内存中分配
    +11    StringPack* sentence = (StringPack*)0x10001000;
    +12    StringPack* words = (StringPack*)0x10002000;
    +13    StringPack** grams = (StringPack**)0x10003000;
    +14    int* grams_word_count = (int*)0x10004000;
    +15    int* stack = (int*)0x10005000;
    +16    char* output_tensor = (char*)0x10006000;
    +17    int* offset = (int*)0x10007000;
    +18    int* len = (int*)0x10008000;
    +19    int* shape = (int*)0x10009000;
    +20    char blank_char = ' ';
    +21
    +22    // 填充sentence内容
    +23    sentence->data = "mindspore signal processing library";
    +24    sentence->len = 33;
    +25
    +26    int ngram_size = 2;
    +27    int max_skip_size = 1;
    +28    int include_all_ngrams = 1;
    +29
    +30    skipgram_p(sentence, words, ngram_size, max_skip_size, include_all_ngrams,
    +31               grams, grams_word_count, stack, &blank_char,
    +32               output_tensor, offset, len, shape);
    +33    return 0;
    +34}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/slice.html b/master/html/functionlib/dsplib/slice.html new file mode 100644 index 0000000..31fffa6 --- /dev/null +++ b/master/html/functionlib/dsplib/slice.html @@ -0,0 +1,483 @@ + + + + + + + + + Slice — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Slice

    +

    从输入张量中提取一个子集(切片)。根据给定的起始索引(begin)和切片大小(size),在每个维度上截取数据。

    +
    +\[output[i_0, i_1, \dots, i_{n-1}] = input[begin_0 + i_0, begin_1 + i_1, \dots, begin_{n-1} + i_{n-1}]\]
    +

    其中 $n$ 为维度数(ndim),且满足 $0 le i_k < size_k$。

    +
    +
    输入:
      +
    • input - 输入张量数据地址。

    • +
    • input_shape - 输入张量的形状数组地址。

    • +
    • ndim - 输入张量的维度数。

    • +
    • begin - 切片起始索引数组地址(长度为 ndim)。

    • +
    • size - 切片大小数组地址(长度为 ndim)。

    • +
    • core_mask(int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output - 计算结果存储地址(输出张量形状即为 size)。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128

    • +
    • MT7004 支持 fp16, fp32, int16, int32, cplx64

    • +
    • 切片操作不改变数据数值,仅改变数据的空间排布,常用于特征提取或张量分解。

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_slice_s(int8_t *input, int8_t *output, int *input_shape, int ndim, int *begin, int *size, int core_mask)
    +
    + +
    +
    +void i16_slice_s(int16_t *input, int16_t *output, int *input_shape, int ndim, int *begin, int *size, int core_mask)
    +
    + +
    +
    +void i32_slice_s(int32_t *input, int32_t *output, int *input_shape, int ndim, int *begin, int *size, int core_mask)
    +
    + +
    +
    +void hp_slice_s(half *input, half *output, int *input_shape, int ndim, int *begin, int *size, int core_mask)
    +
    + +
    +
    +void fp_slice_s(float *input, float *output, int *input_shape, int ndim, int *begin, int *size, int core_mask)
    +
    + +
    +
    +void dp_slice_s(double *input, double *output, int *input_shape, int ndim, int *begin, int *size, int core_mask)
    +
    + +
    +
    +void c64_slice_s(float *input, float *output, int *input_shape, int ndim, int *begin, int *size, int core_mask)
    +
    + +
    +
    +void c128_slice_s(double *input, double *output, int *input_shape, int ndim, int *begin, int *size, int core_mask)
    +

    C调用示例:

    +
     1// FT78NE 示例(多核并行切片)
    + 2#include <stdio.h>
    + 3#include "78NE/utils.h"
    + 4
    + 5int main() {
    + 6    float *input = (float *)0xA0000000;
    + 7    float *output = (float *)0xB0000000;
    + 8    int input_shape[] = {16, 32, 64, 128};
    + 9    int begin[] = {2, 4, 8, 16};
    +10    int size[] = {8, 12, 20, 32};
    +11    int ndim = 4;
    +12    int core_mask = 0xFF; // 使用8核并行
    +13
    +14    fp_slice_s(input, output, input_shape, ndim, begin, size, core_mask);
    +15    return 0;
    +16}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void i8_slice_p(int8_t *input, int8_t *output, int *input_shape, int ndim, int *begin, int *size)
    +
    + +
    +
    +void i16_slice_p(int16_t *input, int16_t *output, int *input_shape, int ndim, int *begin, int *size)
    +
    + +
    +
    +void i32_slice_p(int32_t *input, int32_t *output, int *input_shape, int ndim, int *begin, int *size)
    +
    + +
    +
    +void hp_slice_p(half *input, half *output, int *input_shape, int ndim, int *begin, int *size)
    +
    + +
    +
    +void fp_slice_p(float *input, float *output, int *input_shape, int ndim, int *begin, int *size)
    +
    + +
    +
    +void dp_slice_p(double *input, double *output, int *input_shape, int ndim, int *begin, int *size)
    +
    + +
    +
    +void c64_slice_p(float *input, float *output, int *input_shape, int ndim, int *begin, int *size)
    +
    + +
    +
    +void c128_slice_p(double *input, double *output, int *input_shape, int ndim, int *begin, int *size)
    +

    C调用示例:

    +
     1// MT7004 示例(单核私有存储切片)
    + 2#include <stdio.h>
    + 3
    + 4int main() {
    + 5    float *input = (float *)0x10000000;
    + 6    float *output = (float *)0x10010000;
    + 7    int input_shape[] = {4, 8, 16, 32};
    + 8    int begin[] = {1, 2, 3, 4};
    + 9    int size[] = {2, 3, 6, 8};
    +10    int ndim = 4;
    +11
    +12    fp_slice_p(input, output, input_shape, ndim, begin, size);
    +13    return 0;
    +14}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/smooth1loss.html b/master/html/functionlib/dsplib/smooth1loss.html new file mode 100644 index 0000000..ad08b4a --- /dev/null +++ b/master/html/functionlib/dsplib/smooth1loss.html @@ -0,0 +1,431 @@ + + + + + + + + + SmoothL1Loss — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    SmoothL1Loss

    +

    计算平滑L1损失函数

    +
    +\[\begin{split}\text{loss}(x_1, x_2) = \begin{cases} + \frac{(x_1 - x_2)^2}{2\beta}, & \text{if } |x_1 - x_2| < \beta \\ + |x_1 - x_2| - \frac{\beta}{2}, & \text{otherwise} +\end{cases}\end{split}\]
    +

    其中 \(x_1\) 为预测值,\(x_2\) 为目标值,\(\beta\) 为平滑参数。

    +
    +
    输入:
      +
    • predict - 预测值数据地址。

    • +
    • target - 目标值数据地址。

    • +
    • length - 计算长度。

    • +
    • beta - 平滑参数(FT78NE平台为float值,MT7004平台为half*指针)。

    • +
    • core_mask(int, 可选) - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • out - 计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持int8, fp32

    • +
    • MT7004 支持fp16, fp32

    • +
    +
    +

    共享存储版本:

    +
    +
    +void i8_smoothl1loss_s(int8_t *out, int8_t *predict, int8_t *target, int length, float beta, int core_mask)
    +
    + +
    +
    +void fp_smoothl1loss_s(float *out, float *predict, float *target, int length, float beta, int core_mask)
    +
    + +
    +
    +void hp_smoothl1loss_s(half *out, half *predict, half *target, int length, half *beta, int core_mask)
    +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <smoothl1loss.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *predict = (float *)0xA0000000;   //predict在DDR空间
    + 7    float *target = (float *)0xB0000000;    //target在DDR空间
    + 8    float *out = (float *)0xC0000000;       //out在DDR空间
    + 9    int length = 1000;
    +10    float beta = 1.0f;
    +11    int core_mask = 0xff;
    +12    fp_smoothl1loss_s(out, predict, target, length, beta, core_mask);
    +13    return 0;
    +14}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void i8_smoothl1loss_p(int8_t *out, int8_t *predict, int8_t *target, int length, float beta)
    +
    + +
    +
    +void fp_smoothl1loss_p(float *out, float *predict, float *target, int length, float beta)
    +
    + +
    +
    +void hp_smoothl1loss_p(half *out, half *predict, half *target, int length, half *beta)
    +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <smoothl1loss.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    float *predict = (float *)0x10810000;   //predict在L2空间
    + 7    float *target = (float *)0x10850000;    //target在L2空间
    + 8    float *out = (float *)0x108A0000;       //out在L2空间
    + 9    int length = 1000;
    +10    float beta = 1.0f;
    +11    fp_smoothl1loss_p(out, predict, target, length, beta);
    +12    return 0;
    +13}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/smoothl1lossgrad.html b/master/html/functionlib/dsplib/smoothl1lossgrad.html new file mode 100644 index 0000000..0f93e9d --- /dev/null +++ b/master/html/functionlib/dsplib/smoothl1lossgrad.html @@ -0,0 +1,434 @@ + + + + + + + + + Smoothl1lossgrad — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Smoothl1lossgrad

    +

    计算 Smooth L1 Loss 操作的梯度。该算子是 Smooth L1 Loss 算子的反向传播(backward pass)部分。

    +

    Smooth L1 Loss 是 L1 Loss 和 L2 Loss 的平滑组合,在损失值较小时使用 L2 Loss,在损失值较大时使用 L1 Loss,以减少异常值的影响。

    +
    +\[\text{diff}_i = \text{x1}_i - \text{x2}_i\]
    +
    +\[\begin{split}\text{dx1}_i = \begin{cases} + \text{dy}_i, & \text{if } \text{diff}_i > \beta \\ + -\text{dy}_i, & \text{if } \text{diff}_i < -\beta \\ + \frac{\text{diff}_i}{\beta} \times \text{dy}_i, & \text{if } -\beta \leq \text{diff}_i \leq \beta +\end{cases}\end{split}\]
    +

    其中 x1 是预测值(predict),x2 是目标值(target),dy 是来自后一层的上游梯度,dx1 是对预测值 x1 的梯度。beta 是平滑参数,控制从 L2 Loss 到 L1 Loss 的过渡点。

    +
    +
    输入:
      +
    • dy - 来自后一层的上游梯度数据地址。

    • +
    • x1 - 前向传播时的预测值数据地址。

    • +
    • x2 - 前向传播时的目标值数据地址。

    • +
    • length - 计算长度。

    • +
    • beta - 平滑参数,控制从 L2 Loss 到 L1 Loss 的过渡点。通常取值范围为 0.1 到 1.0。

    • +
    • core_mask - 核掩码(仅共享存储版本需要)。

    • +
    +
    +
    输出:
      +
    • dx1 - 计算出的对预测值 x1 的梯度数据地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持fp32

    • +
    • MT7004 支持fp16, fp32

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_smoothl1lossgrad_s(float *dy, float *dx1, float *x1, float *x2, int length, float beta, int core_mask)
    +
    + +
    +
    +void hp_smoothl1lossgrad_s(half *dy, half *dx1, half *x1, half *x2, int length, half beta, int core_mask)
    +
    + +

    C调用示例:

    +
     1//MT7004示例
    + 2#include <stdio.h>
    + 3#include <smoothl1lossgrad.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    // 假设在DDR空间
    + 7    float *dy = (float *)0xA0000000;   // 上游梯度
    + 8    float *x1 = (float *)0xA1000000;   // 预测值
    + 9    float *x2 = (float *)0xA2000000;   // 目标值
    +10    float *dx1 = (float *)0xB0000000;  // 输出梯度(对 x1 的梯度)
    +11
    +12    int length = 1000;
    +13    float beta = 1.0f;  // 平滑参数
    +14    int core_mask = 0xff;
    +15
    +16    fp_smoothl1lossgrad_s(dy, dx1, x1, x2, length, beta, core_mask);
    +17    return 0;
    +18}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_smoothl1lossgrad_p(float *dy, float *dx1, float *x1, float *x2, int length, float beta)
    +
    + +
    +
    +void hp_smoothl1lossgrad_p(half *dy, half *dx1, half *x1, half *x2, int length, half beta)
    +
    + +

    C调用示例:

    +
     1//MT7004示例
    + 2#include <stdio.h>
    + 3#include <smoothl1lossgrad.h>
    + 4
    + 5int main(int argc, char* argv[]) {
    + 6    // 假设在L2空间
    + 7    float *dy = (float *)0x10000000;   // 上游梯度
    + 8    float *x1 = (float *)0x10001000;   // 预测值
    + 9    float *x2 = (float *)0x10002000;   // 目标值
    +10    float *dx1 = (float *)0x10003000;   // 输出梯度(对 x1 的梯度)
    +11
    +12    int length = 1000;
    +13    float beta = 1.0f;  // 平滑参数
    +14
    +15    fp_smoothl1lossgrad_p(dy, dx1, x1, x2, length, beta);
    +16    return 0;
    +17}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/softmax.html b/master/html/functionlib/dsplib/softmax.html new file mode 100644 index 0000000..303e8c6 --- /dev/null +++ b/master/html/functionlib/dsplib/softmax.html @@ -0,0 +1,439 @@ + + + + + + + + + Softmax — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    Softmax

    +

    对输入数组沿指定维度进行 Softmax 计算,输出每个元素的概率值。

    +
    +\[\text{output}_{i} = \frac{\exp(\text{input}_{i})}{\sum_j \exp(\text{input}_j)} +\quad \text{for elements along the given axis}\]
    +
    +
    输入:
      +
    • input_ptr - 输入数据地址。

    • +
    • axis - 归一化的轴。

    • +
    • n_dim - 输入张量维度。

    • +
    • inner_size - 内部尺寸(轴之后的元素个数)。

    • +
    • outter_size - 外部尺寸(轴之前的元素个数)。

    • +
    • axis_size - 归一化轴的元素数量。

    • +
    • sum_data - 中间累加存储地址(用于存放指数和)。

    • +
    • core_mask - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • output_ptr - Softmax 计算结果地址。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持fp, int8

    • +
    • MT7004 支持hp, fp

    • +
    +
    +

    共享存储版本:

    +
    +
    +void fp_softmax_s(float *input_ptr, float *output_ptr, float *sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size, int core_mask)
    +
    + +
    +
    +void hp_softmax_s(half *input_ptr, half *output_ptr, half *sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size, int core_mask)
    +
    + +
    +
    +void i8_softmax_s(int8_t *input_ptr, int8_t *output_ptr, float *sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size, int core_mask)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <softmax.h>
    + 4
    + 5int main() {
    + 6    float *input = (float *)0xA0000000;   // input在DDR空间
    + 7    float *output = (float *)0xC0000000;
    + 8    float *sum_data = (float *)0xD0000000;
    + 9    int axis = 1;
    +10    int n_dim = 3;
    +11    int inner_size = 4;
    +12    int outter_size = 2;
    +13    int axis_size = 3;
    +14    int core_mask = 0xff;
    +15
    +16    fp_softmax_s(input, output, sum_data, axis, n_dim, inner_size, outter_size, axis_size, core_mask);
    +17    return 0;
    +18}
    +
    +
    +

    私有存储版本:

    +
    +
    +void fp_softmax_p(float *input_ptr, float *output_ptr, float *sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size)
    +
    + +
    +
    +void hp_softmax_p(half *input_ptr, half *output_ptr, half *sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size)
    +
    + +
    +
    +void i8_softmax_p(int8_t *input_ptr, int8_t *output_ptr, float *sum_data, int axis, int n_dim, int inner_size, int outter_size, int axis_size)
    +
    + +

    C调用示例:

    +
     1//FT78NE示例
    + 2#include <stdio.h>
    + 3#include <softmax.h>
    + 4
    + 5int main() {
    + 6    float *input = (float *)0x10810000;   // input在L2空间
    + 7    float *output = (float *)0x10820000;
    + 8    float *sum_data = (float *)0x10830000;
    + 9    int axis = 1;
    +10    int n_dim = 3;
    +11    int inner_size = 4;
    +12    int outter_size = 2;
    +13    int axis_size = 3;
    +14
    +15    fp_softmax_p(input, output, sum_data, axis, n_dim, inner_size, outter_size, axis_size);
    +16    return 0;
    +17}
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/softmax_cross_entropy_with_logits.html b/master/html/functionlib/dsplib/softmax_cross_entropy_with_logits.html new file mode 100644 index 0000000..d5c1403 --- /dev/null +++ b/master/html/functionlib/dsplib/softmax_cross_entropy_with_logits.html @@ -0,0 +1,471 @@ + + + + + + + + + SoftmaxCrossEntropyWithLogits — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    SoftmaxCrossEntropyWithLogits

    +
    +

    计算 Softmax 交叉熵损失及梯度。

    +

    该算子首先对输入 logits 进行 Softmax 归一化得到概率,然后计算其与 labels 的交叉熵损失。如果启用了 need_grads,则会计算损失相对于 logits 的梯度。

    +

    算法逻辑如下:

    +
      +
    1. Softmax:

    2. +
    +
    +\[p_{i,j} = \frac{e^{x_{i,j}}}{\sum_{k} e^{x_{i,k}}}\]
    +
      +
    1. Cross Entropy Loss:

    2. +
    +
    +\[loss_i = - \sum_{j} y_{i,j} \log(p_{i,j})\]
    +
      +
    1. Gradients (当 need_grads=1 时):

    2. +
    +
    +\[\frac{\partial loss}{\partial x_{i,j}} = p_{i,j} - y_{i,j}\]
    +
    +
    输入:
      +
    • logits - 输入数据地址(未归一化的对数概率)。形状为 \([batch\_size, num\_of\_classes]\)

    • +
    • labels - 标签数据地址。形状为 \([batch\_size, num\_of\_classes]\)

    • +
    • probs - 输出概率地址(Softmax 结果)。

    • +
    • grads - 输出梯度地址。如果 need_grads 为 0,可忽略。

    • +
    • output - 输出损失值地址(通常为标量或每个样本的损失)。

    • +
    • sum_data - 中间计算缓冲区(Workspace),用于存储行和等临时数据。

    • +
    • batch_size - 批大小。

    • +
    • num_of_classes - 类别数量。

    • +
    • need_grads - 是否需要计算梯度 (0: 不计算, 1: 计算)。

    • +
    • core_mask - 核掩码(仅适用于共享存储版本)。

    • +
    +
    +
    输出:
      +
    • probs - 更新后的概率分布。

    • +
    • grads - 计算得到的梯度(如启用)。

    • +
    • output - 计算得到的交叉熵损失。

    • +
    +
    +
    支持平台:

    FT78NE +MT7004

    +
    +
    +
    +

    备注

    +
      +
    • FT78NE 支持 Fp32 和 Int8 数据类型。

    • +
    • MT7004 支持 Fp32 和 FP16 数据类型。

    • +
    • 输入数据必须是二维矩阵,行优先存储。

    • +
    • Int8 版本通常采用混合精度计算:输入/标签为 int8_t,但输出(概率、梯度、损失)为 float 以保证精度。

    • +
    +
    +
    +

    共享存储版本:

    +
    +
    +void fp_softmax_cross_entropy_with_logits_s(float *logits, float *labels, float *probs, float *grads, float *output, float *sum_data, int batch_size, int num_of_classes, int need_grads, int core_mask)
    +
    + +
    +
    +void hp_softmax_cross_entropy_with_logits_s(float16 *logits, float16 *labels, float16 *probs, float16 *grads, float16 *output, float16 *sum_data, int batch_size, int num_of_classes, int need_grads, int core_mask)
    +
    + +
    +
    +void i8_softmax_cross_entropy_with_logits_s(int8_t *logits, int8_t *labels, float *probs, float *grads, float *output, float *sum_data, int batch_size, int num_of_classes, int need_grads, int core_mask)
    +

    C调用示例(FT78NE - Int8):

    +
     1#include <stdio.h>
    + 2#include <stdint.h>
    + 3
    + 4int main(int argc, char* argv[]) {
    + 5    // 假设所有数据均位于DDR空间
    + 6    int8_t* logits = (int8_t*)0xC0000000;
    + 7    int8_t* labels = (int8_t*)0xC1000000;
    + 8    float* probs   = (float*)0xC2000000;
    + 9    float* grads   = (float*)0xC3000000;
    +10    float* output  = (float*)0xC4000000;
    +11    float* sum_data= (float*)0xC5000000; // Workspace
    +12
    +13    int batch_size = 128;
    +14    int num_of_classes = 1000;
    +15    int need_grads = 1;
    +16    int core_mask = 0xff; // 使用所有核心
    +17
    +18    // i8版本:输入为int8,输出及中间计算为float
    +19    i8_softmax_cross_entropy_with_logits_s(logits, labels, probs, grads, output,
    +20                                           sum_data, batch_size, num_of_classes,
    +21                                           need_grads, core_mask);
    +22
    +23    return 0;
    +24}
    +
    +
    +
    + +

    私有存储版本:

    +
    +
    +void fp_softmax_cross_entropy_with_logits_p(float *logits, float *labels, float *probs, float *grads, float *output, float *sum_data, int batch_size, int num_of_classes, int need_grads)
    +
    + +
    +
    +void hp_softmax_cross_entropy_with_logits_p(float16 *logits, float16 *labels, float16 *probs, float16 *grads, float16 *output, float16 *sum_data, int batch_size, int num_of_classes, int need_grads)
    +
    + +
    +
    +void i8_softmax_cross_entropy_with_logits_p(int8_t *logits, int8_t *labels, float *probs, float *grads, float *output, float *sum_data, int batch_size, int num_of_classes, int need_grads)
    +

    C调用示例(MT7004 - FP16):

    +
     1#include <stdio.h>
    + 2
    + 3int main(int argc, char* argv[]) {
    + 4    // 假设所有数据均位于AM空间
    + 5    float16* logits = (float16*)0x10010000;
    + 6    float16* labels = (float16*)0x10020000;
    + 7    float16* probs  = (float16*)0x10030000;
    + 8    float16* grads  = (float16*)0x10040000;
    + 9    float16* output = (float16*)0x10050000;
    +10    float16* sum_data=(float16*)0x10060000;
    +11
    +12    int batch_size = 32;
    +13    int num_of_classes = 512;
    +14    int need_grads = 1;
    +15
    +16    hp_softmax_cross_entropy_with_logits_p(logits, labels, probs, grads, output,
    +17                                            sum_data, batch_size, num_of_classes,
    +18                                            need_grads);
    +19
    +20    return 0;
    +21}
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/functionlib/dsplib/spacetobatch.html b/master/html/functionlib/dsplib/spacetobatch.html index c2f9966..3017970 100644 --- a/master/html/functionlib/dsplib/spacetobatch.html +++ b/master/html/functionlib/dsplib/spacetobatch.html @@ -34,7 +34,7 @@ - + MindSpore Signal+ 使用手册
    @@ -46,11 +46,7 @@
    @@ -111,15 +276,15 @@
      -
    • - +
    • +
    • @@ -287,7 +452,7 @@
      -

      © 版权所有 2025 - 2025, NUDT-674。

      +

      © 版权所有 2025 - 2026, NUDT-674。

      利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/spacetobatchnd.html b/master/html/functionlib/dsplib/spacetobatchnd.html index 2de5398..108719d 100644 --- a/master/html/functionlib/dsplib/spacetobatchnd.html +++ b/master/html/functionlib/dsplib/spacetobatchnd.html @@ -34,7 +34,7 @@ - + MindSpore Signal+ 使用手册
      @@ -46,11 +46,7 @@
    @@ -111,15 +276,15 @@
      -
    • - +
    • +
    • @@ -287,7 +452,7 @@
      -

      © 版权所有 2025 - 2025, NUDT-674。

      +

      © 版权所有 2025 - 2026, NUDT-674。

      利用 Sphinx 构建,使用的 diff --git a/master/html/functionlib/dsplib/spacetodepth.html b/master/html/functionlib/dsplib/spacetodepth.html index 3ad7df4..f246332 100644 --- a/master/html/functionlib/dsplib/spacetodepth.html +++ b/master/html/functionlib/dsplib/spacetodepth.html @@ -35,7 +35,7 @@ - + MindSpore Signal+ 使用手册
      @@ -47,11 +47,7 @@
    @@ -112,15 +277,15 @@
    @@ -111,15 +276,15 @@
    @@ -111,15 +276,15 @@
    @@ -64,14 +54,14 @@
    @@ -149,15 +309,12 @@
    -
    @@ -63,15 +53,14 @@
    -
    +

    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/genindex.html b/master/html/genindex.html index 8b0b052..8901dbf 100644 --- a/master/html/genindex.html +++ b/master/html/genindex.html @@ -31,7 +31,7 @@ - + MindSpore Signal+ 使用手册
    @@ -43,10 +43,7 @@
    @@ -55,14 +52,14 @@
      -
    • +
    • @@ -83,6 +80,10 @@ | H | I | M + | R + | S + | T + | U

    A

    @@ -114,6 +115,38 @@

    C

    - +
    @@ -218,6 +811,42 @@

    D

    - +
    @@ -298,6 +1227,20 @@

    F

    - +
    @@ -518,6 +2105,14 @@

    H

    - +
    @@ -714,6 +2881,42 @@

    I

    + -
    @@ -1013,6 +4216,92 @@ +

    R

    + + + +
    + +

    S

    + + + +
    + +

    T

    + + + +
    + +

    U

    + + + +
    +
    @@ -1022,7 +4311,7 @@
    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/index.html b/master/html/index.html index 921fd44..593ece6 100644 --- a/master/html/index.html +++ b/master/html/index.html @@ -22,8 +22,7 @@ - - + @@ -34,7 +33,7 @@ - + MindSpore Signal+ 使用手册
    @@ -46,10 +45,7 @@
    @@ -58,14 +54,14 @@
    -
    @@ -80,15 +53,14 @@
    -
    +

    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/quickstart/index.html b/master/html/quickstart/index.html index 5f85e73..617ee06 100644 --- a/master/html/quickstart/index.html +++ b/master/html/quickstart/index.html @@ -21,9 +21,7 @@ - - - + @@ -34,7 +32,7 @@ - + MindSpore Signal+ 使用手册
    @@ -45,16 +43,8 @@
    @@ -63,14 +53,14 @@
    -
    +

    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/quickstart/installation.html b/master/html/quickstart/installation.html index 8a95270..899676c 100644 --- a/master/html/quickstart/installation.html +++ b/master/html/quickstart/installation.html @@ -21,9 +21,7 @@ - - - + @@ -34,7 +32,7 @@ - + MindSpore Signal+ 使用手册
    @@ -45,28 +43,8 @@
    @@ -75,15 +53,14 @@
      -
    • - +
    • 查看页面源码 @@ -256,15 +233,12 @@ The result of multiplication calculation is correct, MindSpore has been installe
    -
    +

    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/quickstart/overview.html b/master/html/quickstart/overview.html index 3c1e155..172ed67 100644 --- a/master/html/quickstart/overview.html +++ b/master/html/quickstart/overview.html @@ -21,9 +21,7 @@ - - - + @@ -34,7 +32,7 @@ - + MindSpore Signal+ 使用手册
    @@ -45,16 +43,8 @@
    @@ -63,15 +53,14 @@
    -
    +

    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/refdoc/dsplib_description.html b/master/html/refdoc/dsplib_description.html index 8793252..344cc75 100644 --- a/master/html/refdoc/dsplib_description.html +++ b/master/html/refdoc/dsplib_description.html @@ -21,9 +21,7 @@ - - - + @@ -34,7 +32,7 @@ - + MindSpore Signal+ 使用手册
    @@ -45,24 +43,8 @@
    @@ -71,15 +53,14 @@
    -
    +

    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/refdoc/index.html b/master/html/refdoc/index.html index 7cf14a3..7387c0f 100644 --- a/master/html/refdoc/index.html +++ b/master/html/refdoc/index.html @@ -21,9 +21,7 @@ - - - + @@ -34,7 +32,7 @@ - + MindSpore Signal+ 使用手册
    @@ -45,16 +43,8 @@
    @@ -63,14 +53,14 @@
    -
    +

    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/refdoc/mindspore.html b/master/html/refdoc/mindspore.html index 3097795..b4e61ea 100644 --- a/master/html/refdoc/mindspore.html +++ b/master/html/refdoc/mindspore.html @@ -21,9 +21,7 @@ - - - + @@ -34,7 +32,7 @@ - + MindSpore Signal+ 使用手册
    @@ -45,16 +43,8 @@
    @@ -63,15 +53,14 @@
    -
    +

    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/refdoc/signal_scheduling.html b/master/html/refdoc/signal_scheduling.html index 5c5de47..a4bac91 100644 --- a/master/html/refdoc/signal_scheduling.html +++ b/master/html/refdoc/signal_scheduling.html @@ -21,8 +21,7 @@ - - + @@ -33,7 +32,7 @@ - + MindSpore Signal+ 使用手册
    @@ -44,16 +43,8 @@
    @@ -62,15 +53,14 @@
    -
    +

    -

    © 版权所有 2025 - 2025, NUDT-674。

    +

    © 版权所有 2025 - 2026, NUDT-674。

    利用 Sphinx 构建,使用的 diff --git a/master/html/rstfiles.html b/master/html/rstfiles.html new file mode 100644 index 0000000..4d2c19d --- /dev/null +++ b/master/html/rstfiles.html @@ -0,0 +1,118 @@ + + + + + + + + + MindSpore Signal+ 使用手册 — MindSpore Signal+ 使用手册 alpha 文档 + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    MindSpore Signal+ 使用手册

    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/master/html/search.html b/master/html/search.html index f05e2a0..568abb1 100644 --- a/master/html/search.html +++ b/master/html/search.html @@ -34,7 +34,7 @@ - + MindSpore Signal+ 使用手册
    @@ -46,10 +46,7 @@
    @@ -58,14 +55,14 @@
      -
    • +
    • @@ -95,7 +92,7 @@
      -

      © 版权所有 2025 - 2025, NUDT-674。

      +

      © 版权所有 2025 - 2026, NUDT-674。

      利用 Sphinx 构建,使用的 diff --git a/master/html/searchindex.js b/master/html/searchindex.js index da54625..57d6a2d 100644 --- a/master/html/searchindex.js +++ b/master/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"1. \u57fa\u672c\u539f\u5219": [[64, "id1"]], "1. \u5b9a\u4e49\u6a21\u578b": [[0, "id3"]], "1. \u6570\u636e\u8bfb\u53d6": [[4, "id2"]], "1. \u65b0\u5efa\u5de5\u7a0b": [[60, "id4"]], "1.1 \u4e0b\u8f7d\u5b89\u88c5\u5305": [[62, "id3"]], "1.1 \u65b0\u5efaPython\u6587\u4ef6": [[60, "id1"]], "1.2 \u5f00\u59cb\u5b89\u88c5": [[62, "id4"]], "1.2 \u7f16\u5199Python\u4ee3\u7801": [[60, "id2"]], "1.3 \u8fd0\u884cPython\u4ee3\u7801": [[60, "id3"]], "1.3 \u9a8c\u8bc1\u5b89\u88c5": [[62, "id5"]], "1.MindSpore Python\u7aef": [[60, "mindspore-python"]], "1.\u5b89\u88c5\u5305\u65b9\u5f0f\u5b89\u88c5": [[62, "id2"]], "2. \u5177\u4f53\u547d\u540d\u793a\u4f8b": [[64, "id2"]], "2. \u5de5\u7a0b\u76ee\u5f55\u7ed3\u6784": [[60, "id5"]], "2. \u6570\u636e\u9884\u5904\u7406": [[4, "id3"]], "2. \u6a21\u578b\u8bad\u7ec3": [[0, "model-training"]], "2.1 \u52a0\u6cd5\u7b97\u5b50": [[64, "id3"]], "2.Conda\u65b9\u5f0f\u5b89\u88c5": [[62, "conda"]], "3. \u5176\u4ed6\u6ce8\u610f\u4e8b\u9879": [[64, "id4"]], "3. \u66f4\u6539\u8f93\u5165\u6570\u636e": [[60, "id6"]], "3. \u6838\u5fc3\u8ba1\u7b97": [[4, "id4"]], "3. \u91cd\u65b0\u7ec4\u7f51": [[0, "id5"]], "4. main.cc \u529f\u80fd\u4ecb\u7ecd": [[60, "main-cc"]], "4. \u6570\u636e\u540e\u5904\u7406": [[4, "id5"]], "4. \u8f6c\u6362\u6a21\u578b": [[0, "id6"]], "4.1 \u8bfb\u53d6\u6a21\u578b\u6587\u4ef6": [[60, "id7"]], "4.2 \u8bbe\u7f6e\u8fd0\u884c\u540e\u7aef": [[60, "id8"]], "4.3 \u7f16\u8bd1\u6a21\u578b\u56fe": [[60, "id9"]], "4.4 \u83b7\u53d6\u6a21\u578b\u8f93\u5165": [[60, "id10"]], "4.5 \u6267\u884c\u6a21\u578b\u63a8\u7406": [[60, "id11"]], "4.6 \u83b7\u53d6\u6a21\u578b\u7ed3\u679c": [[60, "id12"]], "5. \u7f16\u8bd1\u5de5\u7a0b": [[60, "id13"]], "5. \u90e8\u7f72\u548c\u8fd0\u884c\u7a0b\u5e8f": [[0, "id7"]], "6. \u8fd0\u884c\u5de5\u7a0b": [[60, "id14"]], "6.1 \u8fde\u63a5 MT7004 \u677f\u5361": [[60, "mt7004"]], "6.2 \u90e8\u7f72\u548c\u8fd0\u884c\u7a0b\u5e8f": [[60, "id15"]], "AI+DSP\u5e94\u7528\u793a\u4f8b": [[1, null]], "AI\u8f85\u52a9\u5f00\u53d1\u793a\u4f8b": [[2, null]], "Activation": [[10, null]], "AdamWeightDecay": [[11, null]], "Adder": [[12, null]], "ApplyMomentum": [[13, null]], "Assert": [[14, null]], "Attention": [[15, null]], "AvgPoolingGrad": [[16, null]], "BatchToSpace": [[17, null]], "BatchToSpaceND": [[18, null]], "BroadcastTo": [[19, null]], "ComplexAbs": [[6, null]], "Conv2DBackpropFilterFusion": [[22, null]], "Conv2DBackpropInputFusion": [[23, null]], "Conv2d": [[20, null]], "Conv2dTranspose": [[21, null]], "Crop": [[24, null]], "CropAndResize": [[25, null]], "DSP Library C API Reference": [[27, null]], "DSP\u5e94\u7528\u793a\u4f8b": [[3, null]], "DSP\u7b97\u5b50C\u63a5\u53e3\u547d\u540d\u89c4\u8303": [[64, null]], "DepthToSpace": [[26, null]], "Eltwise": [[28, null]], "EmbeddingLookup": [[29, null]], "Equal": [[30, null]], "ExpFusion": [[32, null]], "ExpandDims": [[31, null]], "FFT": [[7, null]], "FillV2": [[33, null]], "Floor": [[34, null]], "FloorDiv": [[35, null]], "FusedBatchNorm": [[36, null]], "GRAY_CNN(\u56fe\u7247\u7070\u5ea6\u5316\u5904\u7406+\u56fe\u7247\u8bc6\u522b)": [[0, null]], "GRU": [[38, null]], "GroupNormFusion": [[37, null]], "HelloDSP": [[60, null]], "IFFT": [[8, null]], "LSTM": [[41, null]], "LeakyReLu": [[39, null]], "LinSpace": [[40, null]], "MATLAB \u5b9e\u73b0": [[4, "matlab"]], "MatMulFusion": [[42, null]], "MindSpore Lite\u7aef": [[60, "mindspore-lite"]], "MindSpore Signal+ \u4f7f\u7528\u624b\u518c": [[59, null]], "MindSpore Signal+ \u5b9e\u73b0": [[4, "mindspore-signal"]], "MindSpore Signal+ \u8c03\u5ea6\u65b9\u6848": [[67, null]], "RDSAR\uff08\u8ddd\u79bb-\u591a\u666e\u52d2SAR\u6210\u50cf\u7b97\u6cd5\uff09": [[4, null]], "RaggedRange": [[43, null]], "Range": [[44, null]], "Reduce": [[45, null]], "Resize": [[46, null]], "ReverseSequence": [[47, null]], "ReverseV2": [[48, null]], "SGD": [[51, null]], "ScaleFusion": [[49, null]], "ScatterElements": [[50, null]], "SpaceToBatch": [[52, null]], "SpaceToBatchND": [[53, null]], "SpaceToDepth": [[54, null]], "Squeeze": [[55, null]], "UnSqueeze": [[56, null]], "python\u5b8c\u6574\u4ee3\u7801\u793a\u4f8b": [[0, "python"]], "\u521b\u5efa\u5e76\u8fdb\u5165Conda\u865a\u62df\u73af\u5883": [[62, "id6"]], "\u53c2\u8003\u4e0e\u6e90\u7801": [[4, "id7"]], "\u53c2\u8003\u8d44\u6599": [[65, null]], "\u5b89\u88c5CMake": [[62, "cmake"]], "\u5b89\u88c5MindRadar": [[62, "mindradar"]], "\u5b89\u88c5MindSpore": [[62, "mindspore"]], "\u5b89\u88c5MindSpore Radar \u4e0e\u4f9d\u8d56\u8f6f\u4ef6": [[62, "mindspore-radar"]], "\u5b89\u88c5Netron": [[62, "netron"]], "\u5b89\u88c5Python": [[62, "python"]], "\u5b89\u88c5YHFT-IDE": [[62, "yhft-ide"]], "\u5b98\u65b9\u8d44\u6599": [[66, null]], "\u5e94\u7528\u5f00\u53d1\u793a\u4f8b": [[5, null]], "\u5e94\u7528\u6982\u8ff0": [[0, "id1"]], "\u5f00\u53d1\u6d41\u7a0b": [[0, "id2"]], "\u5feb\u901f\u5165\u95e8": [[61, null]], "\u6574\u4f53\u6982\u89c8": [[63, null]], "\u677f\u5361\u90e8\u7f72": [[4, "id6"]], "\u73af\u5883\u5b89\u88c5": [[62, null]], "\u7b97\u5b50\u5e93\u652f\u6301": [[57, null]], "\u7b97\u5b50\u5e93\u652f\u6301\u60c5\u51b5": [[58, null]], "\u7b97\u6cd5\u6982\u8ff0": [[4, "id1"]], "\u81ea\u5b9a\u4e49\u7b97\u5b50\u5217\u8868": [[9, null]], "\u914d\u7f6e\u4ea4\u53c9\u7f16\u8bd1\u5de5\u5177\u94fe": [[62, "toolchain"]]}, "docnames": ["appdevelop/ai_dsp/gray_cnn", "appdevelop/ai_dsp/index", "appdevelop/autocodegen/index", "appdevelop/dsp/index", "appdevelop/dsp/rdsar", "appdevelop/index", "functionlib/custom_op/complex_abs", "functionlib/custom_op/fft", "functionlib/custom_op/ifft", "functionlib/custom_op/index", "functionlib/dsplib/activation", "functionlib/dsplib/adamweightdecay", "functionlib/dsplib/adder", "functionlib/dsplib/applymomentum", "functionlib/dsplib/assert", "functionlib/dsplib/attention", "functionlib/dsplib/avgpoolinggrad", "functionlib/dsplib/batchtospace", "functionlib/dsplib/batchtospacend", "functionlib/dsplib/broadcastto", "functionlib/dsplib/conv2d", "functionlib/dsplib/conv2d_transpose", "functionlib/dsplib/conv2dbackpropfilterfusion", "functionlib/dsplib/conv2dbackpropinputfusion", "functionlib/dsplib/crop", "functionlib/dsplib/crop_and_resize", "functionlib/dsplib/depthtospace", "functionlib/dsplib/dsplib_index", "functionlib/dsplib/eltwise", "functionlib/dsplib/embeddinglookup", "functionlib/dsplib/equal", "functionlib/dsplib/expand_dims", "functionlib/dsplib/expfusion", "functionlib/dsplib/fillv2", "functionlib/dsplib/floor", "functionlib/dsplib/floordiv", "functionlib/dsplib/fusedbatchnorm", "functionlib/dsplib/groupnormfusion", "functionlib/dsplib/gru", "functionlib/dsplib/leaky_relu", "functionlib/dsplib/linspace", "functionlib/dsplib/lstm", "functionlib/dsplib/matmulfusion", "functionlib/dsplib/raggedrange", "functionlib/dsplib/range", "functionlib/dsplib/reduce", "functionlib/dsplib/resize", "functionlib/dsplib/reverse_sequence", "functionlib/dsplib/reversev2", "functionlib/dsplib/scalefusion", "functionlib/dsplib/scatter_elements", "functionlib/dsplib/sgd", "functionlib/dsplib/spacetobatch", "functionlib/dsplib/spacetobatchnd", "functionlib/dsplib/spacetodepth", "functionlib/dsplib/squeeze", "functionlib/dsplib/unsqueeze", "functionlib/index", "functionlib/supported_op", "index", "quickstart/hellodsp", "quickstart/index", "quickstart/installation", "quickstart/overview", "refdoc/dsplib_description", "refdoc/index", "refdoc/mindspore", "refdoc/signal_scheduling"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["appdevelop/ai_dsp/gray_cnn.rst", "appdevelop/ai_dsp/index.rst", "appdevelop/autocodegen/index.rst", "appdevelop/dsp/index.rst", "appdevelop/dsp/rdsar.md", "appdevelop/index.rst", "functionlib/custom_op/complex_abs.rst", "functionlib/custom_op/fft.rst", "functionlib/custom_op/ifft.rst", "functionlib/custom_op/index.rst", "functionlib/dsplib/activation.rst", "functionlib/dsplib/adamweightdecay.rst", "functionlib/dsplib/adder.rst", "functionlib/dsplib/applymomentum.rst", "functionlib/dsplib/assert.rst", "functionlib/dsplib/attention.rst", "functionlib/dsplib/avgpoolinggrad.rst", "functionlib/dsplib/batchtospace.rst", "functionlib/dsplib/batchtospacend.rst", "functionlib/dsplib/broadcastto.rst", "functionlib/dsplib/conv2d.rst", "functionlib/dsplib/conv2d_transpose.rst", "functionlib/dsplib/conv2dbackpropfilterfusion.rst", "functionlib/dsplib/conv2dbackpropinputfusion.rst", "functionlib/dsplib/crop.rst", "functionlib/dsplib/crop_and_resize.rst", "functionlib/dsplib/depthtospace.rst", "functionlib/dsplib/dsplib_index.rst", "functionlib/dsplib/eltwise.rst", "functionlib/dsplib/embeddinglookup.rst", "functionlib/dsplib/equal.rst", "functionlib/dsplib/expand_dims.rst", "functionlib/dsplib/expfusion.rst", "functionlib/dsplib/fillv2.rst", "functionlib/dsplib/floor.rst", "functionlib/dsplib/floordiv.rst", "functionlib/dsplib/fusedbatchnorm.rst", "functionlib/dsplib/groupnormfusion.rst", "functionlib/dsplib/gru.rst", "functionlib/dsplib/leaky_relu.rst", "functionlib/dsplib/linspace.rst", "functionlib/dsplib/lstm.rst", "functionlib/dsplib/matmulfusion.rst", "functionlib/dsplib/raggedrange.rst", "functionlib/dsplib/range.rst", "functionlib/dsplib/reduce.rst", "functionlib/dsplib/resize.rst", "functionlib/dsplib/reverse_sequence.rst", "functionlib/dsplib/reversev2.rst", "functionlib/dsplib/scalefusion.rst", "functionlib/dsplib/scatter_elements.rst", "functionlib/dsplib/sgd.rst", "functionlib/dsplib/spacetobatch.rst", "functionlib/dsplib/spacetobatchnd.rst", "functionlib/dsplib/spacetodepth.rst", "functionlib/dsplib/squeeze.rst", "functionlib/dsplib/unsqueeze.rst", "functionlib/index.rst", "functionlib/supported_op.md", "index.rst", "quickstart/hellodsp.md", "quickstart/index.rst", "quickstart/installation.md", "quickstart/overview.md", "refdoc/dsplib_description.md", "refdoc/index.rst", "refdoc/mindspore.md", "refdoc/signal_scheduling.md"], "indexentries": {"anytype_crop_anycore\uff08c function\uff09": [[24, "c.anytype_crop_anycore", false]], "anytype_expand_dims_anycore\uff08c function\uff09": [[31, "c.anytype_expand_dims_anycore", false]], "anytype_fillv2_p\uff08c function\uff09": [[33, "c.anytype_fillv2_p", false]], "anytype_fillv2_s\uff08c function\uff09": [[33, "c.anytype_fillv2_s", false]], "anytype_reverse_sequence_anycore\uff08c function\uff09": [[47, "c.anytype_reverse_sequence_anycore", false]], "anytype_reversev2_anycore\uff08c function\uff09": [[48, "c.anytype_reversev2_anycore", false]], "anytype_squeeze_anycore\uff08c function\uff09": [[55, "c.anytype_squeeze_anycore", false]], "anytype_unsqueeze_anycore\uff08c function\uff09": [[56, "c.anytype_unsqueeze_anycore", false]], "assert\uff08c function\uff09": [[14, "c.assert", false]], "c128_batchtospace_p\uff08c function\uff09": [[17, "c.c128_batchtospace_p", false]], "c128_batchtospace_s\uff08c function\uff09": [[17, "c.c128_batchtospace_s", false]], "c128_batchtospacend_p\uff08c function\uff09": [[18, "c.c128_batchtospacend_p", false]], "c128_batchtospacend_s\uff08c function\uff09": [[18, "c.c128_batchtospacend_s", false]], "c128_broadcastto_p\uff08c function\uff09": [[19, "c.c128_broadcastto_p", false]], "c128_broadcastto_s\uff08c function\uff09": [[19, "c.c128_broadcastto_s", false]], "c128_depthtospace_p\uff08c function\uff09": [[26, "c.c128_depthtospace_p", false]], "c128_depthtospace_s\uff08c function\uff09": [[26, "c.c128_depthtospace_s", false]], "c128_eltwise_p\uff08c function\uff09": [[28, "c.c128_eltwise_p", false]], "c128_eltwise_s\uff08c function\uff09": [[28, "c.c128_eltwise_s", false]], "c128_equal_p\uff08c function\uff09": [[30, "c.c128_equal_p", false]], "c128_equal_s\uff08c function\uff09": [[30, "c.c128_equal_s", false]], "c128_expfusion_p\uff08c function\uff09": [[32, "c.c128_expfusion_p", false]], "c128_expfusion_s\uff08c function\uff09": [[32, "c.c128_expfusion_s", false]], "c128_matmulfusion_p\uff08c function\uff09": [[42, "c.c128_matmulfusion_p", false]], "c128_matmulfusion_s\uff08c function\uff09": [[42, "c.c128_matmulfusion_s", false]], "c128_scatter_elements_p\uff08c function\uff09": [[50, "c.c128_scatter_elements_p", false]], "c128_scatter_elements_s\uff08c function\uff09": [[50, "c.c128_scatter_elements_s", false]], "c128_spacetobatch_p\uff08c function\uff09": [[52, "c.c128_spacetobatch_p", false]], "c128_spacetobatch_s\uff08c function\uff09": [[52, "c.c128_spacetobatch_s", false]], "c128_spacetobatchnd_p\uff08c function\uff09": [[53, "c.c128_spacetobatchnd_p", false]], "c128_spacetobatchnd_s\uff08c function\uff09": [[53, "c.c128_spacetobatchnd_s", false]], "c128_spacetodepth_p\uff08c function\uff09": [[54, "c.c128_spacetodepth_p", false]], "c128_spacetodepth_s\uff08c function\uff09": [[54, "c.c128_spacetodepth_s", false]], "c64_batchtospace_p\uff08c function\uff09": [[17, "c.c64_batchtospace_p", false]], "c64_batchtospace_s\uff08c function\uff09": [[17, "c.c64_batchtospace_s", false]], "c64_batchtospacend_p\uff08c function\uff09": [[18, "c.c64_batchtospacend_p", false]], "c64_batchtospacend_s\uff08c function\uff09": [[18, "c.c64_batchtospacend_s", false]], "c64_broadcastto_p\uff08c function\uff09": [[19, "c.c64_broadcastto_p", false]], "c64_broadcastto_s\uff08c function\uff09": [[19, "c.c64_broadcastto_s", false]], "c64_depthtospace_p\uff08c function\uff09": [[26, "c.c64_depthtospace_p", false]], "c64_depthtospace_s\uff08c function\uff09": [[26, "c.c64_depthtospace_s", false]], "c64_eltwise_p\uff08c function\uff09": [[28, "c.c64_eltwise_p", false]], "c64_eltwise_s\uff08c function\uff09": [[28, "c.c64_eltwise_s", false]], "c64_equal_p\uff08c function\uff09": [[30, "c.c64_equal_p", false]], "c64_equal_s\uff08c function\uff09": [[30, "c.c64_equal_s", false]], "c64_expfusion_p\uff08c function\uff09": [[32, "c.c64_expfusion_p", false]], "c64_expfusion_s\uff08c function\uff09": [[32, "c.c64_expfusion_s", false]], "c64_matmulfusion_p\uff08c function\uff09": [[42, "c.c64_matmulfusion_p", false]], "c64_matmulfusion_s\uff08c function\uff09": [[42, "c.c64_matmulfusion_s", false]], "c64_scatter_elements_p\uff08c function\uff09": [[50, "c.c64_scatter_elements_p", false]], "c64_scatter_elements_s\uff08c function\uff09": [[50, "c.c64_scatter_elements_s", false]], "c64_spacetobatch_p\uff08c function\uff09": [[52, "c.c64_spacetobatch_p", false]], "c64_spacetobatch_s\uff08c function\uff09": [[52, "c.c64_spacetobatch_s", false]], "c64_spacetobatchnd_p\uff08c function\uff09": [[53, "c.c64_spacetobatchnd_p", false]], "c64_spacetobatchnd_s\uff08c function\uff09": [[53, "c.c64_spacetobatchnd_s", false]], "c64_spacetodepth_p\uff08c function\uff09": [[54, "c.c64_spacetodepth_p", false]], "c64_spacetodepth_s\uff08c function\uff09": [[54, "c.c64_spacetodepth_s", false]], "dp_batchtospace_p\uff08c function\uff09": [[17, "c.dp_batchtospace_p", false]], "dp_batchtospace_s\uff08c function\uff09": [[17, "c.dp_batchtospace_s", false]], "dp_batchtospacend_p\uff08c function\uff09": [[18, "c.dp_batchtospacend_p", false]], "dp_batchtospacend_s\uff08c function\uff09": [[18, "c.dp_batchtospacend_s", false]], "dp_broadcastto_p\uff08c function\uff09": [[19, "c.dp_broadcastto_p", false]], "dp_broadcastto_s\uff08c function\uff09": [[19, "c.dp_broadcastto_s", false]], "dp_depthtospace_p\uff08c function\uff09": [[26, "c.dp_depthtospace_p", false]], "dp_depthtospace_s\uff08c function\uff09": [[26, "c.dp_depthtospace_s", false]], "dp_eltwise_p\uff08c function\uff09": [[28, "c.dp_eltwise_p", false]], "dp_eltwise_s\uff08c function\uff09": [[28, "c.dp_eltwise_s", false]], "dp_equal_p\uff08c function\uff09": [[30, "c.dp_equal_p", false]], "dp_equal_s\uff08c function\uff09": [[30, "c.dp_equal_s", false]], "dp_expfusion_p\uff08c function\uff09": [[32, "c.dp_expfusion_p", false]], "dp_expfusion_s\uff08c function\uff09": [[32, "c.dp_expfusion_s", false]], "dp_floor_p\uff08c function\uff09": [[34, "c.dp_floor_p", false]], "dp_floor_s\uff08c function\uff09": [[34, "c.dp_floor_s", false]], "dp_floordiv_p\uff08c function\uff09": [[35, "c.dp_floordiv_p", false]], "dp_floordiv_s\uff08c function\uff09": [[35, "c.dp_floordiv_s", false]], "dp_matmulfusion_p\uff08c function\uff09": [[42, "c.dp_matmulfusion_p", false]], "dp_matmulfusion_s\uff08c function\uff09": [[42, "c.dp_matmulfusion_s", false]], "dp_raggedrange_p\uff08c function\uff09": [[43, "c.dp_raggedrange_p", false]], "dp_raggedrange_s\uff08c function\uff09": [[43, "c.dp_raggedrange_s", false]], "dp_range_p\uff08c function\uff09": [[44, "c.dp_range_p", false]], "dp_range_s\uff08c function\uff09": [[44, "c.dp_range_s", false]], "dp_reduce_p\uff08c function\uff09": [[45, "c.dp_reduce_p", false]], "dp_reduce_s\uff08c function\uff09": [[45, "c.dp_reduce_s", false]], "dp_scalefusion_p\uff08c function\uff09": [[49, "c.dp_scalefusion_p", false]], "dp_scalefusion_s\uff08c function\uff09": [[49, "c.dp_scalefusion_s", false]], "dp_scatter_elements_p\uff08c function\uff09": [[50, "c.dp_scatter_elements_p", false]], "dp_scatter_elements_s\uff08c function\uff09": [[50, "c.dp_scatter_elements_s", false]], "dp_spacetobatch_p\uff08c function\uff09": [[52, "c.dp_spacetobatch_p", false]], "dp_spacetobatch_s\uff08c function\uff09": [[52, "c.dp_spacetobatch_s", false]], "dp_spacetobatchnd_p\uff08c function\uff09": [[53, "c.dp_spacetobatchnd_p", false]], "dp_spacetobatchnd_s\uff08c function\uff09": [[53, "c.dp_spacetobatchnd_s", false]], "dp_spacetodepth_p\uff08c function\uff09": [[54, "c.dp_spacetodepth_p", false]], "dp_spacetodepth_s\uff08c function\uff09": [[54, "c.dp_spacetodepth_s", false]], "fp_adamweightdecay_p\uff08c function\uff09": [[11, "c.fp_adamweightdecay_p", false]], "fp_adamweightdecay_s\uff08c function\uff09": [[11, "c.fp_adamweightdecay_s", false]], "fp_adder_p\uff08c function\uff09": [[12, "c.fp_adder_p", false]], "fp_adder_s\uff08c function\uff09": [[12, "c.fp_adder_s", false]], "fp_applymomentum_p\uff08c function\uff09": [[13, "c.fp_applymomentum_p", false]], "fp_applymomentum_s\uff08c function\uff09": [[13, "c.fp_applymomentum_s", false]], "fp_attention_p\uff08c function\uff09": [[15, "c.fp_attention_p", false]], "fp_attention_s\uff08c function\uff09": [[15, "c.fp_attention_s", false]], "fp_avgpoolinggrad_p\uff08c function\uff09": [[16, "c.fp_avgpoolinggrad_p", false]], "fp_avgpoolinggrad_s\uff08c function\uff09": [[16, "c.fp_avgpoolinggrad_s", false]], "fp_batchtospace_p\uff08c function\uff09": [[17, "c.fp_batchtospace_p", false]], "fp_batchtospace_s\uff08c function\uff09": [[17, "c.fp_batchtospace_s", false]], "fp_batchtospacend_p\uff08c function\uff09": [[18, "c.fp_batchtospacend_p", false]], "fp_batchtospacend_s\uff08c function\uff09": [[18, "c.fp_batchtospacend_s", false]], "fp_broadcastto_p\uff08c function\uff09": [[19, "c.fp_broadcastto_p", false]], "fp_broadcastto_s\uff08c function\uff09": [[19, "c.fp_broadcastto_s", false]], "fp_celu_p\uff08c function\uff09": [[10, "c.fp_celu_p", false]], "fp_celu_s\uff08c function\uff09": [[10, "c.fp_celu_s", false]], "fp_clip_p\uff08c function\uff09": [[10, "c.fp_clip_p", false]], "fp_clip_s\uff08c function\uff09": [[10, "c.fp_clip_s", false]], "fp_conv2d_p\uff08c function\uff09": [[20, "c.fp_conv2d_p", false]], "fp_conv2d_s\uff08c function\uff09": [[20, "c.fp_conv2d_s", false]], "fp_conv2dbackpropfilterfusion_p\uff08c function\uff09": [[22, "c.fp_conv2dbackpropfilterfusion_p", false]], "fp_conv2dbackpropfilterfusion_s\uff08c function\uff09": [[22, "c.fp_conv2dbackpropfilterfusion_s", false]], "fp_conv2dbackpropinputfusion_p\uff08c function\uff09": [[23, "c.fp_conv2dbackpropinputfusion_p", false]], "fp_conv2dbackpropinputfusion_s\uff08c function\uff09": [[23, "c.fp_conv2dbackpropinputfusion_s", false]], "fp_convtranspose_p\uff08c function\uff09": [[21, "c.fp_convtranspose_p", false]], "fp_convtranspose_s\uff08c function\uff09": [[21, "c.fp_convtranspose_s", false]], "fp_crop_and_resize_anycore\uff08c function\uff09": [[25, "c.fp_crop_and_resize_anycore", false]], "fp_depthtospace_p\uff08c function\uff09": [[26, "c.fp_depthtospace_p", false]], "fp_depthtospace_s\uff08c function\uff09": [[26, "c.fp_depthtospace_s", false]], "fp_eltwise_p\uff08c function\uff09": [[28, "c.fp_eltwise_p", false]], "fp_eltwise_s\uff08c function\uff09": [[28, "c.fp_eltwise_s", false]], "fp_elu_p\uff08c function\uff09": [[10, "c.fp_elu_p", false]], "fp_elu_s\uff08c function\uff09": [[10, "c.fp_elu_s", false]], "fp_embeddinglookup_p\uff08c function\uff09": [[29, "c.fp_embeddinglookup_p", false]], "fp_embeddinglookup_s\uff08c function\uff09": [[29, "c.fp_embeddinglookup_s", false]], "fp_equal_p\uff08c function\uff09": [[30, "c.fp_equal_p", false]], "fp_equal_s\uff08c function\uff09": [[30, "c.fp_equal_s", false]], "fp_expfusion_p\uff08c function\uff09": [[32, "c.fp_expfusion_p", false]], "fp_expfusion_s\uff08c function\uff09": [[32, "c.fp_expfusion_s", false]], "fp_floor_p\uff08c function\uff09": [[34, "c.fp_floor_p", false]], "fp_floor_s\uff08c function\uff09": [[34, "c.fp_floor_s", false]], "fp_floordiv_p\uff08c function\uff09": [[35, "c.fp_floordiv_p", false]], "fp_floordiv_s\uff08c function\uff09": [[35, "c.fp_floordiv_s", false]], "fp_fusedbatchnorm_p\uff08c function\uff09": [[36, "c.fp_fusedbatchnorm_p", false]], "fp_fusedbatchnorm_s\uff08c function\uff09": [[36, "c.fp_fusedbatchnorm_s", false]], "fp_gelu_p\uff08c function\uff09": [[10, "c.fp_gelu_p", false]], "fp_gelu_s\uff08c function\uff09": [[10, "c.fp_gelu_s", false]], "fp_groupnormfusion_p\uff08c function\uff09": [[37, "c.fp_groupnormfusion_p", false]], "fp_groupnormfusion_s\uff08c function\uff09": [[37, "c.fp_groupnormfusion_s", false]], "fp_gru_p\uff08c function\uff09": [[38, "c.fp_Gru_p", false]], "fp_gru_s\uff08c function\uff09": [[38, "c.fp_Gru_s", false]], "fp_hardshrink_p\uff08c function\uff09": [[10, "c.fp_hardshrink_p", false]], "fp_hardshrink_s\uff08c function\uff09": [[10, "c.fp_hardshrink_s", false]], "fp_hardtanh_p\uff08c function\uff09": [[10, "c.fp_hardtanh_p", false]], "fp_hardtanh_s\uff08c function\uff09": [[10, "c.fp_hardtanh_s", false]], "fp_hsigmoid_p\uff08c function\uff09": [[10, "c.fp_hsigmoid_p", false]], "fp_hsigmoid_s\uff08c function\uff09": [[10, "c.fp_hsigmoid_s", false]], "fp_hswish_p\uff08c function\uff09": [[10, "c.fp_hswish_p", false]], "fp_hswish_s\uff08c function\uff09": [[10, "c.fp_hswish_s", false]], "fp_leaky_relu_p\uff08c function\uff09": [[39, "c.fp_leaky_relu_p", false]], "fp_leaky_relu_s\uff08c function\uff09": [[39, "c.fp_leaky_relu_s", false]], "fp_linspace_p\uff08c function\uff09": [[40, "c.fp_linspace_p", false]], "fp_linspace_s\uff08c function\uff09": [[40, "c.fp_linspace_s", false]], "fp_lrelu_p\uff08c function\uff09": [[10, "c.fp_lrelu_p", false]], "fp_lrelu_s\uff08c function\uff09": [[10, "c.fp_lrelu_s", false]], "fp_lstm_p\uff08c function\uff09": [[41, "c.fp_Lstm_p", false]], "fp_lstm_s\uff08c function\uff09": [[41, "c.fp_Lstm_s", false]], "fp_matmulfusion_p\uff08c function\uff09": [[42, "c.fp_matmulfusion_p", false]], "fp_matmulfusion_s\uff08c function\uff09": [[42, "c.fp_matmulfusion_s", false]], "fp_raggedrange_p\uff08c function\uff09": [[43, "c.fp_raggedrange_p", false]], "fp_raggedrange_s\uff08c function\uff09": [[43, "c.fp_raggedrange_s", false]], "fp_range_p\uff08c function\uff09": [[44, "c.fp_range_p", false]], "fp_range_s\uff08c function\uff09": [[44, "c.fp_range_s", false]], "fp_reduce_p\uff08c function\uff09": [[45, "c.fp_reduce_p", false]], "fp_reduce_s\uff08c function\uff09": [[45, "c.fp_reduce_s", false]], "fp_relu6_p\uff08c function\uff09": [[10, "c.fp_relu6_p", false]], "fp_relu6_s\uff08c function\uff09": [[10, "c.fp_relu6_s", false]], "fp_relu_p\uff08c function\uff09": [[10, "c.fp_relu_p", false]], "fp_relu_s\uff08c function\uff09": [[10, "c.fp_relu_s", false]], "fp_resize_anycore\uff08c function\uff09": [[46, "c.fp_resize_anycore", false]], "fp_scalefusion_p\uff08c function\uff09": [[49, "c.fp_scalefusion_p", false]], "fp_scalefusion_s\uff08c function\uff09": [[49, "c.fp_scalefusion_s", false]], "fp_scatter_elements_p\uff08c function\uff09": [[50, "c.fp_scatter_elements_p", false]], "fp_scatter_elements_s\uff08c function\uff09": [[50, "c.fp_scatter_elements_s", false]], "fp_sgd_p\uff08c function\uff09": [[51, "c.fp_sgd_p", false]], "fp_sgd_s\uff08c function\uff09": [[51, "c.fp_sgd_s", false]], "fp_sigmoid_p\uff08c function\uff09": [[10, "c.fp_sigmoid_p", false]], "fp_sigmoid_s\uff08c function\uff09": [[10, "c.fp_sigmoid_s", false]], "fp_softplus_p\uff08c function\uff09": [[10, "c.fp_softplus_p", false]], "fp_softplus_s\uff08c function\uff09": [[10, "c.fp_softplus_s", false]], "fp_softshrink_p\uff08c function\uff09": [[10, "c.fp_softshrink_p", false]], "fp_softshrink_s\uff08c function\uff09": [[10, "c.fp_softshrink_s", false]], "fp_softsignopt_p\uff08c function\uff09": [[10, "c.fp_softsignopt_p", false]], "fp_softsignopt_s\uff08c function\uff09": [[10, "c.fp_softsignopt_s", false]], "fp_spacetobatch_p\uff08c function\uff09": [[52, "c.fp_spacetobatch_p", false]], "fp_spacetobatch_s\uff08c function\uff09": [[52, "c.fp_spacetobatch_s", false]], "fp_spacetobatchnd_p\uff08c function\uff09": [[53, "c.fp_spacetobatchnd_p", false]], "fp_spacetobatchnd_s\uff08c function\uff09": [[53, "c.fp_spacetobatchnd_s", false]], "fp_spacetodepth_p\uff08c function\uff09": [[54, "c.fp_spacetodepth_p", false]], "fp_spacetodepth_s\uff08c function\uff09": [[54, "c.fp_spacetodepth_s", false]], "fp_swish_p\uff08c function\uff09": [[10, "c.fp_swish_p", false]], "fp_swish_s\uff08c function\uff09": [[10, "c.fp_swish_s", false]], "fp_tanh_p\uff08c function\uff09": [[10, "c.fp_tanh_p", false]], "fp_tanh_s\uff08c function\uff09": [[10, "c.fp_tanh_s", false]], "hp_adamweightdecay_p\uff08c function\uff09": [[11, "c.hp_adamweightdecay_p", false]], "hp_adamweightdecay_s\uff08c function\uff09": [[11, "c.hp_adamweightdecay_s", false]], "hp_adder_p\uff08c function\uff09": [[12, "c.hp_adder_p", false]], "hp_adder_s\uff08c function\uff09": [[12, "c.hp_adder_s", false]], "hp_applymomentum_p\uff08c function\uff09": [[13, "c.hp_applymomentum_p", false]], "hp_applymomentum_s\uff08c function\uff09": [[13, "c.hp_applymomentum_s", false]], "hp_avgpoolinggrad_p\uff08c function\uff09": [[16, "c.hp_avgpoolinggrad_p", false]], "hp_avgpoolinggrad_s\uff08c function\uff09": [[16, "c.hp_avgpoolinggrad_s", false]], "hp_batchtospace_p\uff08c function\uff09": [[17, "c.hp_batchtospace_p", false]], "hp_batchtospace_s\uff08c function\uff09": [[17, "c.hp_batchtospace_s", false]], "hp_batchtospacend_p\uff08c function\uff09": [[18, "c.hp_batchtospacend_p", false]], "hp_batchtospacend_s\uff08c function\uff09": [[18, "c.hp_batchtospacend_s", false]], "hp_broadcastto_p\uff08c function\uff09": [[19, "c.hp_broadcastto_p", false]], "hp_broadcastto_s\uff08c function\uff09": [[19, "c.hp_broadcastto_s", false]], "hp_celu_p\uff08c function\uff09": [[10, "c.hp_celu_p", false]], "hp_celu_s\uff08c function\uff09": [[10, "c.hp_celu_s", false]], "hp_clip_p\uff08c function\uff09": [[10, "c.hp_clip_p", false]], "hp_clip_s\uff08c function\uff09": [[10, "c.hp_clip_s", false]], "hp_conv2d_p\uff08c function\uff09": [[20, "c.hp_conv2d_p", false]], "hp_conv2d_s\uff08c function\uff09": [[20, "c.hp_conv2d_s", false]], "hp_conv2dbackpropfilterfusion_p\uff08c function\uff09": [[22, "c.hp_conv2dbackpropfilterfusion_p", false]], "hp_conv2dbackpropfilterfusion_s\uff08c function\uff09": [[22, "c.hp_conv2dbackpropfilterfusion_s", false]], "hp_conv2dbackpropinputfusion_p\uff08c function\uff09": [[23, "c.hp_conv2dbackpropinputfusion_p", false]], "hp_conv2dbackpropinputfusion_s\uff08c function\uff09": [[23, "c.hp_conv2dbackpropinputfusion_s", false]], "hp_convtranspose_p\uff08c function\uff09": [[21, "c.hp_convtranspose_p", false]], "hp_convtranspose_s\uff08c function\uff09": [[21, "c.hp_convtranspose_s", false]], "hp_crop_and_resize_anycore\uff08c function\uff09": [[25, "c.hp_crop_and_resize_anycore", false]], "hp_depthtospace_p\uff08c function\uff09": [[26, "c.hp_depthtospace_p", false]], "hp_depthtospace_s\uff08c function\uff09": [[26, "c.hp_depthtospace_s", false]], "hp_eltwise_p\uff08c function\uff09": [[28, "c.hp_eltwise_p", false]], "hp_eltwise_s\uff08c function\uff09": [[28, "c.hp_eltwise_s", false]], "hp_elu_p\uff08c function\uff09": [[10, "c.hp_elu_p", false]], "hp_elu_s\uff08c function\uff09": [[10, "c.hp_elu_s", false]], "hp_embeddinglookup_p\uff08c function\uff09": [[29, "c.hp_embeddinglookup_p", false]], "hp_embeddinglookup_s\uff08c function\uff09": [[29, "c.hp_embeddinglookup_s", false]], "hp_equal_p\uff08c function\uff09": [[30, "c.hp_equal_p", false]], "hp_equal_s\uff08c function\uff09": [[30, "c.hp_equal_s", false]], "hp_expfusion_p\uff08c function\uff09": [[32, "c.hp_expfusion_p", false]], "hp_expfusion_s\uff08c function\uff09": [[32, "c.hp_expfusion_s", false]], "hp_floor_p\uff08c function\uff09": [[34, "c.hp_floor_p", false]], "hp_floor_s\uff08c function\uff09": [[34, "c.hp_floor_s", false]], "hp_floordiv_p\uff08c function\uff09": [[35, "c.hp_floordiv_p", false]], "hp_floordiv_s\uff08c function\uff09": [[35, "c.hp_floordiv_s", false]], "hp_fusedbatchnorm_p\uff08c function\uff09": [[36, "c.hp_fusedbatchnorm_p", false]], "hp_fusedbatchnorm_s\uff08c function\uff09": [[36, "c.hp_fusedbatchnorm_s", false]], "hp_gelu_p\uff08c function\uff09": [[10, "c.hp_gelu_p", false]], "hp_gelu_s\uff08c function\uff09": [[10, "c.hp_gelu_s", false]], "hp_groupnormfusion_p\uff08c function\uff09": [[37, "c.hp_groupnormfusion_p", false]], "hp_groupnormfusion_s\uff08c function\uff09": [[37, "c.hp_groupnormfusion_s", false]], "hp_gru_p\uff08c function\uff09": [[38, "c.hp_Gru_p", false]], "hp_gru_s\uff08c function\uff09": [[38, "c.hp_Gru_s", false]], "hp_hardshrink_p\uff08c function\uff09": [[10, "c.hp_hardshrink_p", false]], "hp_hardshrink_s\uff08c function\uff09": [[10, "c.hp_hardshrink_s", false]], "hp_hardtanh_p\uff08c function\uff09": [[10, "c.hp_hardtanh_p", false]], "hp_hardtanh_s\uff08c function\uff09": [[10, "c.hp_hardtanh_s", false]], "hp_hsigmoid_p\uff08c function\uff09": [[10, "c.hp_hsigmoid_p", false]], "hp_hsigmoid_s\uff08c function\uff09": [[10, "c.hp_hsigmoid_s", false]], "hp_hswish_p\uff08c function\uff09": [[10, "c.hp_hswish_p", false]], "hp_hswish_s\uff08c function\uff09": [[10, "c.hp_hswish_s", false]], "hp_leaky_relu_p\uff08c function\uff09": [[39, "c.hp_leaky_relu_p", false]], "hp_leaky_relu_s\uff08c function\uff09": [[39, "c.hp_leaky_relu_s", false]], "hp_lrelu_p\uff08c function\uff09": [[10, "c.hp_lrelu_p", false]], "hp_lrelu_s\uff08c function\uff09": [[10, "c.hp_lrelu_s", false]], "hp_reduce_p\uff08c function\uff09": [[45, "c.hp_reduce_p", false]], "hp_reduce_s\uff08c function\uff09": [[45, "c.hp_reduce_s", false]], "hp_relu6_p\uff08c function\uff09": [[10, "c.hp_relu6_p", false]], "hp_relu6_s\uff08c function\uff09": [[10, "c.hp_relu6_s", false]], "hp_relu_p\uff08c function\uff09": [[10, "c.hp_relu_p", false]], "hp_relu_s\uff08c function\uff09": [[10, "c.hp_relu_s", false]], "hp_resize_anycore\uff08c function\uff09": [[46, "c.hp_resize_anycore", false]], "hp_scalefusion_p\uff08c function\uff09": [[49, "c.hp_scalefusion_p", false]], "hp_scalefusion_s\uff08c function\uff09": [[49, "c.hp_scalefusion_s", false]], "hp_scatter_elements_p\uff08c function\uff09": [[50, "c.hp_scatter_elements_p", false]], "hp_scatter_elements_s\uff08c function\uff09": [[50, "c.hp_scatter_elements_s", false]], "hp_sgd_p\uff08c function\uff09": [[51, "c.hp_sgd_p", false]], "hp_sgd_s\uff08c function\uff09": [[51, "c.hp_sgd_s", false]], "hp_sigmoid_p\uff08c function\uff09": [[10, "c.hp_sigmoid_p", false]], "hp_sigmoid_s\uff08c function\uff09": [[10, "c.hp_sigmoid_s", false]], "hp_softplus_p\uff08c function\uff09": [[10, "c.hp_softplus_p", false]], "hp_softplus_s\uff08c function\uff09": [[10, "c.hp_softplus_s", false]], "hp_softshrink_p\uff08c function\uff09": [[10, "c.hp_softshrink_p", false]], "hp_softshrink_s\uff08c function\uff09": [[10, "c.hp_softshrink_s", false]], "hp_softsignopt_p\uff08c function\uff09": [[10, "c.hp_softsignopt_p", false]], "hp_softsignopt_s\uff08c function\uff09": [[10, "c.hp_softsignopt_s", false]], "hp_spacetobatch_p\uff08c function\uff09": [[52, "c.hp_spacetobatch_p", false]], "hp_spacetobatch_s\uff08c function\uff09": [[52, "c.hp_spacetobatch_s", false]], "hp_spacetobatchnd_p\uff08c function\uff09": [[53, "c.hp_spacetobatchnd_p", false]], "hp_spacetobatchnd_s\uff08c function\uff09": [[53, "c.hp_spacetobatchnd_s", false]], "hp_spacetodepth_p\uff08c function\uff09": [[54, "c.hp_spacetodepth_p", false]], "hp_spacetodepth_s\uff08c function\uff09": [[54, "c.hp_spacetodepth_s", false]], "hp_swish_p\uff08c function\uff09": [[10, "c.hp_swish_p", false]], "hp_swish_s\uff08c function\uff09": [[10, "c.hp_swish_s", false]], "hp_tanh_p\uff08c function\uff09": [[10, "c.hp_tanh_p", false]], "hp_tanh_s\uff08c function\uff09": [[10, "c.hp_tanh_s", false]], "i16_batchtospace_p\uff08c function\uff09": [[17, "c.i16_batchtospace_p", false]], "i16_batchtospace_s\uff08c function\uff09": [[17, "c.i16_batchtospace_s", false]], "i16_batchtospacend_p\uff08c function\uff09": [[18, "c.i16_batchtospacend_p", false]], "i16_batchtospacend_s\uff08c function\uff09": [[18, "c.i16_batchtospacend_s", false]], "i16_broadcastto_p\uff08c function\uff09": [[19, "c.i16_broadcastto_p", false]], "i16_broadcastto_s\uff08c function\uff09": [[19, "c.i16_broadcastto_s", false]], "i16_depthtospace_p\uff08c function\uff09": [[26, "c.i16_depthtospace_p", false]], "i16_depthtospace_s\uff08c function\uff09": [[26, "c.i16_depthtospace_s", false]], "i16_eltwise_p\uff08c function\uff09": [[28, "c.i16_eltwise_p", false]], "i16_eltwise_s\uff08c function\uff09": [[28, "c.i16_eltwise_s", false]], "i16_equal_p\uff08c function\uff09": [[30, "c.i16_equal_p", false]], "i16_equal_s\uff08c function\uff09": [[30, "c.i16_equal_s", false]], "i16_expfusion_p\uff08c function\uff09": [[32, "c.i16_expfusion_p", false]], "i16_expfusion_s\uff08c function\uff09": [[32, "c.i16_expfusion_s", false]], "i16_matmulfusion_p\uff08c function\uff09": [[42, "c.i16_matmulfusion_p", false]], "i16_matmulfusion_s\uff08c function\uff09": [[42, "c.i16_matmulfusion_s", false]], "i16_raggedrange_p\uff08c function\uff09": [[43, "c.i16_raggedrange_p", false]], "i16_raggedrange_s\uff08c function\uff09": [[43, "c.i16_raggedrange_s", false]], "i16_range_p\uff08c function\uff09": [[44, "c.i16_range_p", false]], "i16_range_s\uff08c function\uff09": [[44, "c.i16_range_s", false]], "i16_reduce_p\uff08c function\uff09": [[45, "c.i16_reduce_p", false]], "i16_reduce_s\uff08c function\uff09": [[45, "c.i16_reduce_s", false]], "i16_scalefusion_p\uff08c function\uff09": [[49, "c.i16_scalefusion_p", false]], "i16_scalefusion_s\uff08c function\uff09": [[49, "c.i16_scalefusion_s", false]], "i16_scatter_elements_p\uff08c function\uff09": [[50, "c.i16_scatter_elements_p", false]], "i16_scatter_elements_s\uff08c function\uff09": [[50, "c.i16_scatter_elements_s", false]], "i16_spacetobatch_p\uff08c function\uff09": [[52, "c.i16_spacetobatch_p", false]], "i16_spacetobatch_s\uff08c function\uff09": [[52, "c.i16_spacetobatch_s", false]], "i16_spacetobatchnd_p\uff08c function\uff09": [[53, "c.i16_spacetobatchnd_p", false]], "i16_spacetobatchnd_s\uff08c function\uff09": [[53, "c.i16_spacetobatchnd_s", false]], "i16_spacetodepth_p\uff08c function\uff09": [[54, "c.i16_spacetodepth_p", false]], "i16_spacetodepth_s\uff08c function\uff09": [[54, "c.i16_spacetodepth_s", false]], "i32_batchtospace_p\uff08c function\uff09": [[17, "c.i32_batchtospace_p", false]], "i32_batchtospace_s\uff08c function\uff09": [[17, "c.i32_batchtospace_s", false]], "i32_batchtospacend_p\uff08c function\uff09": [[18, "c.i32_batchtospacend_p", false]], "i32_batchtospacend_s\uff08c function\uff09": [[18, "c.i32_batchtospacend_s", false]], "i32_broadcastto_p\uff08c function\uff09": [[19, "c.i32_broadcastto_p", false]], "i32_broadcastto_s\uff08c function\uff09": [[19, "c.i32_broadcastto_s", false]], "i32_depthtospace_p\uff08c function\uff09": [[26, "c.i32_depthtospace_p", false]], "i32_depthtospace_s\uff08c function\uff09": [[26, "c.i32_depthtospace_s", false]], "i32_eltwise_p\uff08c function\uff09": [[28, "c.i32_eltwise_p", false]], "i32_eltwise_s\uff08c function\uff09": [[28, "c.i32_eltwise_s", false]], "i32_equal_p\uff08c function\uff09": [[30, "c.i32_equal_p", false]], "i32_equal_s\uff08c function\uff09": [[30, "c.i32_equal_s", false]], "i32_expfusion_p\uff08c function\uff09": [[32, "c.i32_expfusion_p", false]], "i32_expfusion_s\uff08c function\uff09": [[32, "c.i32_expfusion_s", false]], "i32_matmulfusion_p\uff08c function\uff09": [[42, "c.i32_matmulfusion_p", false]], "i32_matmulfusion_s\uff08c function\uff09": [[42, "c.i32_matmulfusion_s", false]], "i32_raggedrange_p\uff08c function\uff09": [[43, "c.i32_raggedrange_p", false]], "i32_raggedrange_s\uff08c function\uff09": [[43, "c.i32_raggedrange_s", false]], "i32_range_p\uff08c function\uff09": [[44, "c.i32_range_p", false]], "i32_range_s\uff08c function\uff09": [[44, "c.i32_range_s", false]], "i32_reduce_p\uff08c function\uff09": [[45, "c.i32_reduce_p", false]], "i32_reduce_s\uff08c function\uff09": [[45, "c.i32_reduce_s", false]], "i32_scalefusion_p\uff08c function\uff09": [[49, "c.i32_scalefusion_p", false]], "i32_scalefusion_s\uff08c function\uff09": [[49, "c.i32_scalefusion_s", false]], "i32_scatter_elements_p\uff08c function\uff09": [[50, "c.i32_scatter_elements_p", false]], "i32_scatter_elements_s\uff08c function\uff09": [[50, "c.i32_scatter_elements_s", false]], "i32_spacetobatch_p\uff08c function\uff09": [[52, "c.i32_spacetobatch_p", false]], "i32_spacetobatch_s\uff08c function\uff09": [[52, "c.i32_spacetobatch_s", false]], "i32_spacetobatchnd_p\uff08c function\uff09": [[53, "c.i32_spacetobatchnd_p", false]], "i32_spacetobatchnd_s\uff08c function\uff09": [[53, "c.i32_spacetobatchnd_s", false]], "i32_spacetodepth_p\uff08c function\uff09": [[54, "c.i32_spacetodepth_p", false]], "i32_spacetodepth_s\uff08c function\uff09": [[54, "c.i32_spacetodepth_s", false]], "i8_adder_p\uff08c function\uff09": [[12, "c.i8_adder_p", false]], "i8_adder_s\uff08c function\uff09": [[12, "c.i8_adder_s", false]], "i8_batchtospace_p\uff08c function\uff09": [[17, "c.i8_batchtospace_p", false]], "i8_batchtospace_s\uff08c function\uff09": [[17, "c.i8_batchtospace_s", false]], "i8_batchtospacend_p\uff08c function\uff09": [[18, "c.i8_batchtospacend_p", false]], "i8_batchtospacend_s\uff08c function\uff09": [[18, "c.i8_batchtospacend_s", false]], "i8_broadcastto_p\uff08c function\uff09": [[19, "c.i8_broadcastto_p", false]], "i8_broadcastto_s\uff08c function\uff09": [[19, "c.i8_broadcastto_s", false]], "i8_celu_p\uff08c function\uff09": [[10, "c.i8_celu_p", false]], "i8_celu_s\uff08c function\uff09": [[10, "c.i8_celu_s", false]], "i8_clip_p\uff08c function\uff09": [[10, "c.i8_clip_p", false]], "i8_clip_s\uff08c function\uff09": [[10, "c.i8_clip_s", false]], "i8_conv2d_p\uff08c function\uff09": [[20, "c.i8_conv2d_p", false]], "i8_conv2d_s\uff08c function\uff09": [[20, "c.i8_conv2d_s", false]], "i8_convtranspose_p\uff08c function\uff09": [[21, "c.i8_convtranspose_p", false]], "i8_convtranspose_s\uff08c function\uff09": [[21, "c.i8_convtranspose_s", false]], "i8_crop_and_resize_anycore\uff08c function\uff09": [[25, "c.i8_crop_and_resize_anycore", false]], "i8_depthtospace_p\uff08c function\uff09": [[26, "c.i8_depthtospace_p", false]], "i8_depthtospace_s\uff08c function\uff09": [[26, "c.i8_depthtospace_s", false]], "i8_eltwise_p\uff08c function\uff09": [[28, "c.i8_eltwise_p", false]], "i8_eltwise_s\uff08c function\uff09": [[28, "c.i8_eltwise_s", false]], "i8_elu_p\uff08c function\uff09": [[10, "c.i8_elu_p", false]], "i8_elu_s\uff08c function\uff09": [[10, "c.i8_elu_s", false]], "i8_equal_p\uff08c function\uff09": [[30, "c.i8_equal_p", false]], "i8_equal_s\uff08c function\uff09": [[30, "c.i8_equal_s", false]], "i8_expfusion_p\uff08c function\uff09": [[32, "c.i8_expfusion_p", false]], "i8_expfusion_s\uff08c function\uff09": [[32, "c.i8_expfusion_s", false]], "i8_gelu_p\uff08c function\uff09": [[10, "c.i8_gelu_p", false]], "i8_gelu_s\uff08c function\uff09": [[10, "c.i8_gelu_s", false]], "i8_gru_p\uff08c function\uff09": [[38, "c.i8_Gru_p", false]], "i8_gru_s\uff08c function\uff09": [[38, "c.i8_Gru_s", false]], "i8_hardshrink_p\uff08c function\uff09": [[10, "c.i8_hardshrink_p", false]], "i8_hardshrink_s\uff08c function\uff09": [[10, "c.i8_hardshrink_s", false]], "i8_hardtanh_p\uff08c function\uff09": [[10, "c.i8_hardtanh_p", false]], "i8_hardtanh_s\uff08c function\uff09": [[10, "c.i8_hardtanh_s", false]], "i8_hsigmoid_p\uff08c function\uff09": [[10, "c.i8_hsigmoid_p", false]], "i8_hsigmoid_s\uff08c function\uff09": [[10, "c.i8_hsigmoid_s", false]], "i8_hswish_p\uff08c function\uff09": [[10, "c.i8_hswish_p", false]], "i8_hswish_s\uff08c function\uff09": [[10, "c.i8_hswish_s", false]], "i8_leaky_relu_p\uff08c function\uff09": [[39, "c.i8_leaky_relu_p", false]], "i8_leaky_relu_s\uff08c function\uff09": [[39, "c.i8_leaky_relu_s", false]], "i8_lrelu_p\uff08c function\uff09": [[10, "c.i8_lrelu_p", false]], "i8_lrelu_s\uff08c function\uff09": [[10, "c.i8_lrelu_s", false]], "i8_raggedrange_p\uff08c function\uff09": [[43, "c.i8_raggedrange_p", false]], "i8_raggedrange_s\uff08c function\uff09": [[43, "c.i8_raggedrange_s", false]], "i8_range_p\uff08c function\uff09": [[44, "c.i8_range_p", false]], "i8_range_s\uff08c function\uff09": [[44, "c.i8_range_s", false]], "i8_reduce_p\uff08c function\uff09": [[45, "c.i8_reduce_p", false]], "i8_reduce_s\uff08c function\uff09": [[45, "c.i8_reduce_s", false]], "i8_relu6_p\uff08c function\uff09": [[10, "c.i8_relu6_p", false]], "i8_relu6_s\uff08c function\uff09": [[10, "c.i8_relu6_s", false]], "i8_relu_p\uff08c function\uff09": [[10, "c.i8_relu_p", false]], "i8_relu_s\uff08c function\uff09": [[10, "c.i8_relu_s", false]], "i8_resize_anycore\uff08c function\uff09": [[46, "c.i8_resize_anycore", false]], "i8_scalefusion_p\uff08c function\uff09": [[49, "c.i8_scalefusion_p", false]], "i8_scalefusion_s\uff08c function\uff09": [[49, "c.i8_scalefusion_s", false]], "i8_scatter_elements_p\uff08c function\uff09": [[50, "c.i8_scatter_elements_p", false]], "i8_scatter_elements_s\uff08c function\uff09": [[50, "c.i8_scatter_elements_s", false]], "i8_sigmoid_p\uff08c function\uff09": [[10, "c.i8_sigmoid_p", false]], "i8_sigmoid_s\uff08c function\uff09": [[10, "c.i8_sigmoid_s", false]], "i8_softplus_p\uff08c function\uff09": [[10, "c.i8_softplus_p", false]], "i8_softplus_s\uff08c function\uff09": [[10, "c.i8_softplus_s", false]], "i8_softshrink_p\uff08c function\uff09": [[10, "c.i8_softshrink_p", false]], "i8_softshrink_s\uff08c function\uff09": [[10, "c.i8_softshrink_s", false]], "i8_softsignopt_p\uff08c function\uff09": [[10, "c.i8_softsignopt_p", false]], "i8_softsignopt_s\uff08c function\uff09": [[10, "c.i8_softsignopt_s", false]], "i8_spacetobatch_p\uff08c function\uff09": [[52, "c.i8_spacetobatch_p", false]], "i8_spacetobatch_s\uff08c function\uff09": [[52, "c.i8_spacetobatch_s", false]], "i8_spacetobatchnd_p\uff08c function\uff09": [[53, "c.i8_spacetobatchnd_p", false]], "i8_spacetobatchnd_s\uff08c function\uff09": [[53, "c.i8_spacetobatchnd_s", false]], "i8_spacetodepth_p\uff08c function\uff09": [[54, "c.i8_spacetodepth_p", false]], "i8_spacetodepth_s\uff08c function\uff09": [[54, "c.i8_spacetodepth_s", false]], "i8_swish_p\uff08c function\uff09": [[10, "c.i8_swish_p", false]], "i8_swish_s\uff08c function\uff09": [[10, "c.i8_swish_s", false]], "i8_tanh_p\uff08c function\uff09": [[10, "c.i8_tanh_p", false]], "i8_tanh_s\uff08c function\uff09": [[10, "c.i8_tanh_s", false]]}, "objects": {"": [[24, 0, 1, "c.anytype_crop_anycore", "anytype_crop_anycore"], [31, 0, 1, "c.anytype_expand_dims_anycore", "anytype_expand_dims_anycore"], [33, 0, 1, "c.anytype_fillv2_p", "anytype_fillv2_p"], [33, 0, 1, "c.anytype_fillv2_s", "anytype_fillv2_s"], [47, 0, 1, "c.anytype_reverse_sequence_anycore", "anytype_reverse_sequence_anycore"], [48, 0, 1, "c.anytype_reversev2_anycore", "anytype_reversev2_anycore"], [55, 0, 1, "c.anytype_squeeze_anycore", "anytype_squeeze_anycore"], [56, 0, 1, "c.anytype_unsqueeze_anycore", "anytype_unsqueeze_anycore"], [14, 0, 1, "c.assert", "assert"], [17, 0, 1, "c.c128_batchtospace_p", "c128_batchtospace_p"], [17, 0, 1, "c.c128_batchtospace_s", "c128_batchtospace_s"], [18, 0, 1, "c.c128_batchtospacend_p", "c128_batchtospacend_p"], [18, 0, 1, "c.c128_batchtospacend_s", "c128_batchtospacend_s"], [19, 0, 1, "c.c128_broadcastto_p", "c128_broadcastto_p"], [19, 0, 1, "c.c128_broadcastto_s", "c128_broadcastto_s"], [26, 0, 1, "c.c128_depthtospace_p", "c128_depthtospace_p"], [26, 0, 1, "c.c128_depthtospace_s", "c128_depthtospace_s"], [28, 0, 1, "c.c128_eltwise_p", "c128_eltwise_p"], [28, 0, 1, "c.c128_eltwise_s", "c128_eltwise_s"], [30, 0, 1, "c.c128_equal_p", "c128_equal_p"], [30, 0, 1, "c.c128_equal_s", "c128_equal_s"], [32, 0, 1, "c.c128_expfusion_p", "c128_expfusion_p"], [32, 0, 1, "c.c128_expfusion_s", "c128_expfusion_s"], [42, 0, 1, "c.c128_matmulfusion_p", "c128_matmulfusion_p"], [42, 0, 1, "c.c128_matmulfusion_s", "c128_matmulfusion_s"], [50, 0, 1, "c.c128_scatter_elements_p", "c128_scatter_elements_p"], [50, 0, 1, "c.c128_scatter_elements_s", "c128_scatter_elements_s"], [52, 0, 1, "c.c128_spacetobatch_p", "c128_spacetobatch_p"], [52, 0, 1, "c.c128_spacetobatch_s", "c128_spacetobatch_s"], [53, 0, 1, "c.c128_spacetobatchnd_p", "c128_spacetobatchnd_p"], [53, 0, 1, "c.c128_spacetobatchnd_s", "c128_spacetobatchnd_s"], [54, 0, 1, "c.c128_spacetodepth_p", "c128_spacetodepth_p"], [54, 0, 1, "c.c128_spacetodepth_s", "c128_spacetodepth_s"], [17, 0, 1, "c.c64_batchtospace_p", "c64_batchtospace_p"], [17, 0, 1, "c.c64_batchtospace_s", "c64_batchtospace_s"], [18, 0, 1, "c.c64_batchtospacend_p", "c64_batchtospacend_p"], [18, 0, 1, "c.c64_batchtospacend_s", "c64_batchtospacend_s"], [19, 0, 1, "c.c64_broadcastto_p", "c64_broadcastto_p"], [19, 0, 1, "c.c64_broadcastto_s", "c64_broadcastto_s"], [26, 0, 1, "c.c64_depthtospace_p", "c64_depthtospace_p"], [26, 0, 1, "c.c64_depthtospace_s", "c64_depthtospace_s"], [28, 0, 1, "c.c64_eltwise_p", "c64_eltwise_p"], [28, 0, 1, "c.c64_eltwise_s", "c64_eltwise_s"], [30, 0, 1, "c.c64_equal_p", "c64_equal_p"], [30, 0, 1, "c.c64_equal_s", "c64_equal_s"], [32, 0, 1, "c.c64_expfusion_p", "c64_expfusion_p"], [32, 0, 1, "c.c64_expfusion_s", "c64_expfusion_s"], [42, 0, 1, "c.c64_matmulfusion_p", "c64_matmulfusion_p"], [42, 0, 1, "c.c64_matmulfusion_s", "c64_matmulfusion_s"], [50, 0, 1, "c.c64_scatter_elements_p", "c64_scatter_elements_p"], [50, 0, 1, "c.c64_scatter_elements_s", "c64_scatter_elements_s"], [52, 0, 1, "c.c64_spacetobatch_p", "c64_spacetobatch_p"], [52, 0, 1, "c.c64_spacetobatch_s", "c64_spacetobatch_s"], [53, 0, 1, "c.c64_spacetobatchnd_p", "c64_spacetobatchnd_p"], [53, 0, 1, "c.c64_spacetobatchnd_s", "c64_spacetobatchnd_s"], [54, 0, 1, "c.c64_spacetodepth_p", "c64_spacetodepth_p"], [54, 0, 1, "c.c64_spacetodepth_s", "c64_spacetodepth_s"], [17, 0, 1, "c.dp_batchtospace_p", "dp_batchtospace_p"], [17, 0, 1, "c.dp_batchtospace_s", "dp_batchtospace_s"], [18, 0, 1, "c.dp_batchtospacend_p", "dp_batchtospacend_p"], [18, 0, 1, "c.dp_batchtospacend_s", "dp_batchtospacend_s"], [19, 0, 1, "c.dp_broadcastto_p", "dp_broadcastto_p"], [19, 0, 1, "c.dp_broadcastto_s", "dp_broadcastto_s"], [26, 0, 1, "c.dp_depthtospace_p", "dp_depthtospace_p"], [26, 0, 1, "c.dp_depthtospace_s", "dp_depthtospace_s"], [28, 0, 1, "c.dp_eltwise_p", "dp_eltwise_p"], [28, 0, 1, "c.dp_eltwise_s", "dp_eltwise_s"], [30, 0, 1, "c.dp_equal_p", "dp_equal_p"], [30, 0, 1, "c.dp_equal_s", "dp_equal_s"], [32, 0, 1, "c.dp_expfusion_p", "dp_expfusion_p"], [32, 0, 1, "c.dp_expfusion_s", "dp_expfusion_s"], [34, 0, 1, "c.dp_floor_p", "dp_floor_p"], [34, 0, 1, "c.dp_floor_s", "dp_floor_s"], [35, 0, 1, "c.dp_floordiv_p", "dp_floordiv_p"], [35, 0, 1, "c.dp_floordiv_s", "dp_floordiv_s"], [42, 0, 1, "c.dp_matmulfusion_p", "dp_matmulfusion_p"], [42, 0, 1, "c.dp_matmulfusion_s", "dp_matmulfusion_s"], [43, 0, 1, "c.dp_raggedrange_p", "dp_raggedrange_p"], [43, 0, 1, "c.dp_raggedrange_s", "dp_raggedrange_s"], [44, 0, 1, "c.dp_range_p", "dp_range_p"], [44, 0, 1, "c.dp_range_s", "dp_range_s"], [45, 0, 1, "c.dp_reduce_p", "dp_reduce_p"], [45, 0, 1, "c.dp_reduce_s", "dp_reduce_s"], [49, 0, 1, "c.dp_scalefusion_p", "dp_scalefusion_p"], [49, 0, 1, "c.dp_scalefusion_s", "dp_scalefusion_s"], [50, 0, 1, "c.dp_scatter_elements_p", "dp_scatter_elements_p"], [50, 0, 1, "c.dp_scatter_elements_s", "dp_scatter_elements_s"], [52, 0, 1, "c.dp_spacetobatch_p", "dp_spacetobatch_p"], [52, 0, 1, "c.dp_spacetobatch_s", "dp_spacetobatch_s"], [53, 0, 1, "c.dp_spacetobatchnd_p", "dp_spacetobatchnd_p"], [53, 0, 1, "c.dp_spacetobatchnd_s", "dp_spacetobatchnd_s"], [54, 0, 1, "c.dp_spacetodepth_p", "dp_spacetodepth_p"], [54, 0, 1, "c.dp_spacetodepth_s", "dp_spacetodepth_s"], [38, 0, 1, "c.fp_Gru_p", "fp_Gru_p"], [38, 0, 1, "c.fp_Gru_s", "fp_Gru_s"], [41, 0, 1, "c.fp_Lstm_p", "fp_Lstm_p"], [41, 0, 1, "c.fp_Lstm_s", "fp_Lstm_s"], [11, 0, 1, "c.fp_adamweightdecay_p", "fp_adamweightdecay_p"], [11, 0, 1, "c.fp_adamweightdecay_s", "fp_adamweightdecay_s"], [12, 0, 1, "c.fp_adder_p", "fp_adder_p"], [12, 0, 1, "c.fp_adder_s", "fp_adder_s"], [13, 0, 1, "c.fp_applymomentum_p", "fp_applymomentum_p"], [13, 0, 1, "c.fp_applymomentum_s", "fp_applymomentum_s"], [15, 0, 1, "c.fp_attention_p", "fp_attention_p"], [15, 0, 1, "c.fp_attention_s", "fp_attention_s"], [16, 0, 1, "c.fp_avgpoolinggrad_p", "fp_avgpoolinggrad_p"], [16, 0, 1, "c.fp_avgpoolinggrad_s", "fp_avgpoolinggrad_s"], [17, 0, 1, "c.fp_batchtospace_p", "fp_batchtospace_p"], [17, 0, 1, "c.fp_batchtospace_s", "fp_batchtospace_s"], [18, 0, 1, "c.fp_batchtospacend_p", "fp_batchtospacend_p"], [18, 0, 1, "c.fp_batchtospacend_s", "fp_batchtospacend_s"], [19, 0, 1, "c.fp_broadcastto_p", "fp_broadcastto_p"], [19, 0, 1, "c.fp_broadcastto_s", "fp_broadcastto_s"], [10, 0, 1, "c.fp_celu_p", "fp_celu_p"], [10, 0, 1, "c.fp_celu_s", "fp_celu_s"], [10, 0, 1, "c.fp_clip_p", "fp_clip_p"], [10, 0, 1, "c.fp_clip_s", "fp_clip_s"], [20, 0, 1, "c.fp_conv2d_p", "fp_conv2d_p"], [20, 0, 1, "c.fp_conv2d_s", "fp_conv2d_s"], [22, 0, 1, "c.fp_conv2dbackpropfilterfusion_p", "fp_conv2dbackpropfilterfusion_p"], [22, 0, 1, "c.fp_conv2dbackpropfilterfusion_s", "fp_conv2dbackpropfilterfusion_s"], [23, 0, 1, "c.fp_conv2dbackpropinputfusion_p", "fp_conv2dbackpropinputfusion_p"], [23, 0, 1, "c.fp_conv2dbackpropinputfusion_s", "fp_conv2dbackpropinputfusion_s"], [21, 0, 1, "c.fp_convtranspose_p", "fp_convtranspose_p"], [21, 0, 1, "c.fp_convtranspose_s", "fp_convtranspose_s"], [25, 0, 1, "c.fp_crop_and_resize_anycore", "fp_crop_and_resize_anycore"], [26, 0, 1, "c.fp_depthtospace_p", "fp_depthtospace_p"], [26, 0, 1, "c.fp_depthtospace_s", "fp_depthtospace_s"], [28, 0, 1, "c.fp_eltwise_p", "fp_eltwise_p"], [28, 0, 1, "c.fp_eltwise_s", "fp_eltwise_s"], [10, 0, 1, "c.fp_elu_p", "fp_elu_p"], [10, 0, 1, "c.fp_elu_s", "fp_elu_s"], [29, 0, 1, "c.fp_embeddinglookup_p", "fp_embeddinglookup_p"], [29, 0, 1, "c.fp_embeddinglookup_s", "fp_embeddinglookup_s"], [30, 0, 1, "c.fp_equal_p", "fp_equal_p"], [30, 0, 1, "c.fp_equal_s", "fp_equal_s"], [32, 0, 1, "c.fp_expfusion_p", "fp_expfusion_p"], [32, 0, 1, "c.fp_expfusion_s", "fp_expfusion_s"], [34, 0, 1, "c.fp_floor_p", "fp_floor_p"], [34, 0, 1, "c.fp_floor_s", "fp_floor_s"], [35, 0, 1, "c.fp_floordiv_p", "fp_floordiv_p"], [35, 0, 1, "c.fp_floordiv_s", "fp_floordiv_s"], [36, 0, 1, "c.fp_fusedbatchnorm_p", "fp_fusedbatchnorm_p"], [36, 0, 1, "c.fp_fusedbatchnorm_s", "fp_fusedbatchnorm_s"], [10, 0, 1, "c.fp_gelu_p", "fp_gelu_p"], [10, 0, 1, "c.fp_gelu_s", "fp_gelu_s"], [37, 0, 1, "c.fp_groupnormfusion_p", "fp_groupnormfusion_p"], [37, 0, 1, "c.fp_groupnormfusion_s", "fp_groupnormfusion_s"], [10, 0, 1, "c.fp_hardshrink_p", "fp_hardshrink_p"], [10, 0, 1, "c.fp_hardshrink_s", "fp_hardshrink_s"], [10, 0, 1, "c.fp_hardtanh_p", "fp_hardtanh_p"], [10, 0, 1, "c.fp_hardtanh_s", "fp_hardtanh_s"], [10, 0, 1, "c.fp_hsigmoid_p", "fp_hsigmoid_p"], [10, 0, 1, "c.fp_hsigmoid_s", "fp_hsigmoid_s"], [10, 0, 1, "c.fp_hswish_p", "fp_hswish_p"], [10, 0, 1, "c.fp_hswish_s", "fp_hswish_s"], [39, 0, 1, "c.fp_leaky_relu_p", "fp_leaky_relu_p"], [39, 0, 1, "c.fp_leaky_relu_s", "fp_leaky_relu_s"], [40, 0, 1, "c.fp_linspace_p", "fp_linspace_p"], [40, 0, 1, "c.fp_linspace_s", "fp_linspace_s"], [10, 0, 1, "c.fp_lrelu_p", "fp_lrelu_p"], [10, 0, 1, "c.fp_lrelu_s", "fp_lrelu_s"], [42, 0, 1, "c.fp_matmulfusion_p", "fp_matmulfusion_p"], [42, 0, 1, "c.fp_matmulfusion_s", "fp_matmulfusion_s"], [43, 0, 1, "c.fp_raggedrange_p", "fp_raggedrange_p"], [43, 0, 1, "c.fp_raggedrange_s", "fp_raggedrange_s"], [44, 0, 1, "c.fp_range_p", "fp_range_p"], [44, 0, 1, "c.fp_range_s", "fp_range_s"], [45, 0, 1, "c.fp_reduce_p", "fp_reduce_p"], [45, 0, 1, "c.fp_reduce_s", "fp_reduce_s"], [10, 0, 1, "c.fp_relu6_p", "fp_relu6_p"], [10, 0, 1, "c.fp_relu6_s", "fp_relu6_s"], [10, 0, 1, "c.fp_relu_p", "fp_relu_p"], [10, 0, 1, "c.fp_relu_s", "fp_relu_s"], [46, 0, 1, "c.fp_resize_anycore", "fp_resize_anycore"], [49, 0, 1, "c.fp_scalefusion_p", "fp_scalefusion_p"], [49, 0, 1, "c.fp_scalefusion_s", "fp_scalefusion_s"], [50, 0, 1, "c.fp_scatter_elements_p", "fp_scatter_elements_p"], [50, 0, 1, "c.fp_scatter_elements_s", "fp_scatter_elements_s"], [51, 0, 1, "c.fp_sgd_p", "fp_sgd_p"], [51, 0, 1, "c.fp_sgd_s", "fp_sgd_s"], [10, 0, 1, "c.fp_sigmoid_p", "fp_sigmoid_p"], [10, 0, 1, "c.fp_sigmoid_s", "fp_sigmoid_s"], [10, 0, 1, "c.fp_softplus_p", "fp_softplus_p"], [10, 0, 1, "c.fp_softplus_s", "fp_softplus_s"], [10, 0, 1, "c.fp_softshrink_p", "fp_softshrink_p"], [10, 0, 1, "c.fp_softshrink_s", "fp_softshrink_s"], [10, 0, 1, "c.fp_softsignopt_p", "fp_softsignopt_p"], [10, 0, 1, "c.fp_softsignopt_s", "fp_softsignopt_s"], [52, 0, 1, "c.fp_spacetobatch_p", "fp_spacetobatch_p"], [52, 0, 1, "c.fp_spacetobatch_s", "fp_spacetobatch_s"], [53, 0, 1, "c.fp_spacetobatchnd_p", "fp_spacetobatchnd_p"], [53, 0, 1, "c.fp_spacetobatchnd_s", "fp_spacetobatchnd_s"], [54, 0, 1, "c.fp_spacetodepth_p", "fp_spacetodepth_p"], [54, 0, 1, "c.fp_spacetodepth_s", "fp_spacetodepth_s"], [10, 0, 1, "c.fp_swish_p", "fp_swish_p"], [10, 0, 1, "c.fp_swish_s", "fp_swish_s"], [10, 0, 1, "c.fp_tanh_p", "fp_tanh_p"], [10, 0, 1, "c.fp_tanh_s", "fp_tanh_s"], [38, 0, 1, "c.hp_Gru_p", "hp_Gru_p"], [38, 0, 1, "c.hp_Gru_s", "hp_Gru_s"], [11, 0, 1, "c.hp_adamweightdecay_p", "hp_adamweightdecay_p"], [11, 0, 1, "c.hp_adamweightdecay_s", "hp_adamweightdecay_s"], [12, 0, 1, "c.hp_adder_p", "hp_adder_p"], [12, 0, 1, "c.hp_adder_s", "hp_adder_s"], [13, 0, 1, "c.hp_applymomentum_p", "hp_applymomentum_p"], [13, 0, 1, "c.hp_applymomentum_s", "hp_applymomentum_s"], [16, 0, 1, "c.hp_avgpoolinggrad_p", "hp_avgpoolinggrad_p"], [16, 0, 1, "c.hp_avgpoolinggrad_s", "hp_avgpoolinggrad_s"], [17, 0, 1, "c.hp_batchtospace_p", "hp_batchtospace_p"], [17, 0, 1, "c.hp_batchtospace_s", "hp_batchtospace_s"], [18, 0, 1, "c.hp_batchtospacend_p", "hp_batchtospacend_p"], [18, 0, 1, "c.hp_batchtospacend_s", "hp_batchtospacend_s"], [19, 0, 1, "c.hp_broadcastto_p", "hp_broadcastto_p"], [19, 0, 1, "c.hp_broadcastto_s", "hp_broadcastto_s"], [10, 0, 1, "c.hp_celu_p", "hp_celu_p"], [10, 0, 1, "c.hp_celu_s", "hp_celu_s"], [10, 0, 1, "c.hp_clip_p", "hp_clip_p"], [10, 0, 1, "c.hp_clip_s", "hp_clip_s"], [20, 0, 1, "c.hp_conv2d_p", "hp_conv2d_p"], [20, 0, 1, "c.hp_conv2d_s", "hp_conv2d_s"], [22, 0, 1, "c.hp_conv2dbackpropfilterfusion_p", "hp_conv2dbackpropfilterfusion_p"], [22, 0, 1, "c.hp_conv2dbackpropfilterfusion_s", "hp_conv2dbackpropfilterfusion_s"], [23, 0, 1, "c.hp_conv2dbackpropinputfusion_p", "hp_conv2dbackpropinputfusion_p"], [23, 0, 1, "c.hp_conv2dbackpropinputfusion_s", "hp_conv2dbackpropinputfusion_s"], [21, 0, 1, "c.hp_convtranspose_p", "hp_convtranspose_p"], [21, 0, 1, "c.hp_convtranspose_s", "hp_convtranspose_s"], [25, 0, 1, "c.hp_crop_and_resize_anycore", "hp_crop_and_resize_anycore"], [26, 0, 1, "c.hp_depthtospace_p", "hp_depthtospace_p"], [26, 0, 1, "c.hp_depthtospace_s", "hp_depthtospace_s"], [28, 0, 1, "c.hp_eltwise_p", "hp_eltwise_p"], [28, 0, 1, "c.hp_eltwise_s", "hp_eltwise_s"], [10, 0, 1, "c.hp_elu_p", "hp_elu_p"], [10, 0, 1, "c.hp_elu_s", "hp_elu_s"], [29, 0, 1, "c.hp_embeddinglookup_p", "hp_embeddinglookup_p"], [29, 0, 1, "c.hp_embeddinglookup_s", "hp_embeddinglookup_s"], [30, 0, 1, "c.hp_equal_p", "hp_equal_p"], [30, 0, 1, "c.hp_equal_s", "hp_equal_s"], [32, 0, 1, "c.hp_expfusion_p", "hp_expfusion_p"], [32, 0, 1, "c.hp_expfusion_s", "hp_expfusion_s"], [34, 0, 1, "c.hp_floor_p", "hp_floor_p"], [34, 0, 1, "c.hp_floor_s", "hp_floor_s"], [35, 0, 1, "c.hp_floordiv_p", "hp_floordiv_p"], [35, 0, 1, "c.hp_floordiv_s", "hp_floordiv_s"], [36, 0, 1, "c.hp_fusedbatchnorm_p", "hp_fusedbatchnorm_p"], [36, 0, 1, "c.hp_fusedbatchnorm_s", "hp_fusedbatchnorm_s"], [10, 0, 1, "c.hp_gelu_p", "hp_gelu_p"], [10, 0, 1, "c.hp_gelu_s", "hp_gelu_s"], [37, 0, 1, "c.hp_groupnormfusion_p", "hp_groupnormfusion_p"], [37, 0, 1, "c.hp_groupnormfusion_s", "hp_groupnormfusion_s"], [10, 0, 1, "c.hp_hardshrink_p", "hp_hardshrink_p"], [10, 0, 1, "c.hp_hardshrink_s", "hp_hardshrink_s"], [10, 0, 1, "c.hp_hardtanh_p", "hp_hardtanh_p"], [10, 0, 1, "c.hp_hardtanh_s", "hp_hardtanh_s"], [10, 0, 1, "c.hp_hsigmoid_p", "hp_hsigmoid_p"], [10, 0, 1, "c.hp_hsigmoid_s", "hp_hsigmoid_s"], [10, 0, 1, "c.hp_hswish_p", "hp_hswish_p"], [10, 0, 1, "c.hp_hswish_s", "hp_hswish_s"], [39, 0, 1, "c.hp_leaky_relu_p", "hp_leaky_relu_p"], [39, 0, 1, "c.hp_leaky_relu_s", "hp_leaky_relu_s"], [10, 0, 1, "c.hp_lrelu_p", "hp_lrelu_p"], [10, 0, 1, "c.hp_lrelu_s", "hp_lrelu_s"], [45, 0, 1, "c.hp_reduce_p", "hp_reduce_p"], [45, 0, 1, "c.hp_reduce_s", "hp_reduce_s"], [10, 0, 1, "c.hp_relu6_p", "hp_relu6_p"], [10, 0, 1, "c.hp_relu6_s", "hp_relu6_s"], [10, 0, 1, "c.hp_relu_p", "hp_relu_p"], [10, 0, 1, "c.hp_relu_s", "hp_relu_s"], [46, 0, 1, "c.hp_resize_anycore", "hp_resize_anycore"], [49, 0, 1, "c.hp_scalefusion_p", "hp_scalefusion_p"], [49, 0, 1, "c.hp_scalefusion_s", "hp_scalefusion_s"], [50, 0, 1, "c.hp_scatter_elements_p", "hp_scatter_elements_p"], [50, 0, 1, "c.hp_scatter_elements_s", "hp_scatter_elements_s"], [51, 0, 1, "c.hp_sgd_p", "hp_sgd_p"], [51, 0, 1, "c.hp_sgd_s", "hp_sgd_s"], [10, 0, 1, "c.hp_sigmoid_p", "hp_sigmoid_p"], [10, 0, 1, "c.hp_sigmoid_s", "hp_sigmoid_s"], [10, 0, 1, "c.hp_softplus_p", "hp_softplus_p"], [10, 0, 1, "c.hp_softplus_s", "hp_softplus_s"], [10, 0, 1, "c.hp_softshrink_p", "hp_softshrink_p"], [10, 0, 1, "c.hp_softshrink_s", "hp_softshrink_s"], [10, 0, 1, "c.hp_softsignopt_p", "hp_softsignopt_p"], [10, 0, 1, "c.hp_softsignopt_s", "hp_softsignopt_s"], [52, 0, 1, "c.hp_spacetobatch_p", "hp_spacetobatch_p"], [52, 0, 1, "c.hp_spacetobatch_s", "hp_spacetobatch_s"], [53, 0, 1, "c.hp_spacetobatchnd_p", "hp_spacetobatchnd_p"], [53, 0, 1, "c.hp_spacetobatchnd_s", "hp_spacetobatchnd_s"], [54, 0, 1, "c.hp_spacetodepth_p", "hp_spacetodepth_p"], [54, 0, 1, "c.hp_spacetodepth_s", "hp_spacetodepth_s"], [10, 0, 1, "c.hp_swish_p", "hp_swish_p"], [10, 0, 1, "c.hp_swish_s", "hp_swish_s"], [10, 0, 1, "c.hp_tanh_p", "hp_tanh_p"], [10, 0, 1, "c.hp_tanh_s", "hp_tanh_s"], [17, 0, 1, "c.i16_batchtospace_p", "i16_batchtospace_p"], [17, 0, 1, "c.i16_batchtospace_s", "i16_batchtospace_s"], [18, 0, 1, "c.i16_batchtospacend_p", "i16_batchtospacend_p"], [18, 0, 1, "c.i16_batchtospacend_s", "i16_batchtospacend_s"], [19, 0, 1, "c.i16_broadcastto_p", "i16_broadcastto_p"], [19, 0, 1, "c.i16_broadcastto_s", "i16_broadcastto_s"], [26, 0, 1, "c.i16_depthtospace_p", "i16_depthtospace_p"], [26, 0, 1, "c.i16_depthtospace_s", "i16_depthtospace_s"], [28, 0, 1, "c.i16_eltwise_p", "i16_eltwise_p"], [28, 0, 1, "c.i16_eltwise_s", "i16_eltwise_s"], [30, 0, 1, "c.i16_equal_p", "i16_equal_p"], [30, 0, 1, "c.i16_equal_s", "i16_equal_s"], [32, 0, 1, "c.i16_expfusion_p", "i16_expfusion_p"], [32, 0, 1, "c.i16_expfusion_s", "i16_expfusion_s"], [42, 0, 1, "c.i16_matmulfusion_p", "i16_matmulfusion_p"], [42, 0, 1, "c.i16_matmulfusion_s", "i16_matmulfusion_s"], [43, 0, 1, "c.i16_raggedrange_p", "i16_raggedrange_p"], [43, 0, 1, "c.i16_raggedrange_s", "i16_raggedrange_s"], [44, 0, 1, "c.i16_range_p", "i16_range_p"], [44, 0, 1, "c.i16_range_s", "i16_range_s"], [45, 0, 1, "c.i16_reduce_p", "i16_reduce_p"], [45, 0, 1, "c.i16_reduce_s", "i16_reduce_s"], [49, 0, 1, "c.i16_scalefusion_p", "i16_scalefusion_p"], [49, 0, 1, "c.i16_scalefusion_s", "i16_scalefusion_s"], [50, 0, 1, "c.i16_scatter_elements_p", "i16_scatter_elements_p"], [50, 0, 1, "c.i16_scatter_elements_s", "i16_scatter_elements_s"], [52, 0, 1, "c.i16_spacetobatch_p", "i16_spacetobatch_p"], [52, 0, 1, "c.i16_spacetobatch_s", "i16_spacetobatch_s"], [53, 0, 1, "c.i16_spacetobatchnd_p", "i16_spacetobatchnd_p"], [53, 0, 1, "c.i16_spacetobatchnd_s", "i16_spacetobatchnd_s"], [54, 0, 1, "c.i16_spacetodepth_p", "i16_spacetodepth_p"], [54, 0, 1, "c.i16_spacetodepth_s", "i16_spacetodepth_s"], [17, 0, 1, "c.i32_batchtospace_p", "i32_batchtospace_p"], [17, 0, 1, "c.i32_batchtospace_s", "i32_batchtospace_s"], [18, 0, 1, "c.i32_batchtospacend_p", "i32_batchtospacend_p"], [18, 0, 1, "c.i32_batchtospacend_s", "i32_batchtospacend_s"], [19, 0, 1, "c.i32_broadcastto_p", "i32_broadcastto_p"], [19, 0, 1, "c.i32_broadcastto_s", "i32_broadcastto_s"], [26, 0, 1, "c.i32_depthtospace_p", "i32_depthtospace_p"], [26, 0, 1, "c.i32_depthtospace_s", "i32_depthtospace_s"], [28, 0, 1, "c.i32_eltwise_p", "i32_eltwise_p"], [28, 0, 1, "c.i32_eltwise_s", "i32_eltwise_s"], [30, 0, 1, "c.i32_equal_p", "i32_equal_p"], [30, 0, 1, "c.i32_equal_s", "i32_equal_s"], [32, 0, 1, "c.i32_expfusion_p", "i32_expfusion_p"], [32, 0, 1, "c.i32_expfusion_s", "i32_expfusion_s"], [42, 0, 1, "c.i32_matmulfusion_p", "i32_matmulfusion_p"], [42, 0, 1, "c.i32_matmulfusion_s", "i32_matmulfusion_s"], [43, 0, 1, "c.i32_raggedrange_p", "i32_raggedrange_p"], [43, 0, 1, "c.i32_raggedrange_s", "i32_raggedrange_s"], [44, 0, 1, "c.i32_range_p", "i32_range_p"], [44, 0, 1, "c.i32_range_s", "i32_range_s"], [45, 0, 1, "c.i32_reduce_p", "i32_reduce_p"], [45, 0, 1, "c.i32_reduce_s", "i32_reduce_s"], [49, 0, 1, "c.i32_scalefusion_p", "i32_scalefusion_p"], [49, 0, 1, "c.i32_scalefusion_s", "i32_scalefusion_s"], [50, 0, 1, "c.i32_scatter_elements_p", "i32_scatter_elements_p"], [50, 0, 1, "c.i32_scatter_elements_s", "i32_scatter_elements_s"], [52, 0, 1, "c.i32_spacetobatch_p", "i32_spacetobatch_p"], [52, 0, 1, "c.i32_spacetobatch_s", "i32_spacetobatch_s"], [53, 0, 1, "c.i32_spacetobatchnd_p", "i32_spacetobatchnd_p"], [53, 0, 1, "c.i32_spacetobatchnd_s", "i32_spacetobatchnd_s"], [54, 0, 1, "c.i32_spacetodepth_p", "i32_spacetodepth_p"], [54, 0, 1, "c.i32_spacetodepth_s", "i32_spacetodepth_s"], [38, 0, 1, "c.i8_Gru_p", "i8_Gru_p"], [38, 0, 1, "c.i8_Gru_s", "i8_Gru_s"], [12, 0, 1, "c.i8_adder_p", "i8_adder_p"], [12, 0, 1, "c.i8_adder_s", "i8_adder_s"], [17, 0, 1, "c.i8_batchtospace_p", "i8_batchtospace_p"], [17, 0, 1, "c.i8_batchtospace_s", "i8_batchtospace_s"], [18, 0, 1, "c.i8_batchtospacend_p", "i8_batchtospacend_p"], [18, 0, 1, "c.i8_batchtospacend_s", "i8_batchtospacend_s"], [19, 0, 1, "c.i8_broadcastto_p", "i8_broadcastto_p"], [19, 0, 1, "c.i8_broadcastto_s", "i8_broadcastto_s"], [10, 0, 1, "c.i8_celu_p", "i8_celu_p"], [10, 0, 1, "c.i8_celu_s", "i8_celu_s"], [10, 0, 1, "c.i8_clip_p", "i8_clip_p"], [10, 0, 1, "c.i8_clip_s", "i8_clip_s"], [20, 0, 1, "c.i8_conv2d_p", "i8_conv2d_p"], [20, 0, 1, "c.i8_conv2d_s", "i8_conv2d_s"], [21, 0, 1, "c.i8_convtranspose_p", "i8_convtranspose_p"], [21, 0, 1, "c.i8_convtranspose_s", "i8_convtranspose_s"], [25, 0, 1, "c.i8_crop_and_resize_anycore", "i8_crop_and_resize_anycore"], [26, 0, 1, "c.i8_depthtospace_p", "i8_depthtospace_p"], [26, 0, 1, "c.i8_depthtospace_s", "i8_depthtospace_s"], [28, 0, 1, "c.i8_eltwise_p", "i8_eltwise_p"], [28, 0, 1, "c.i8_eltwise_s", "i8_eltwise_s"], [10, 0, 1, "c.i8_elu_p", "i8_elu_p"], [10, 0, 1, "c.i8_elu_s", "i8_elu_s"], [30, 0, 1, "c.i8_equal_p", "i8_equal_p"], [30, 0, 1, "c.i8_equal_s", "i8_equal_s"], [32, 0, 1, "c.i8_expfusion_p", "i8_expfusion_p"], [32, 0, 1, "c.i8_expfusion_s", "i8_expfusion_s"], [10, 0, 1, "c.i8_gelu_p", "i8_gelu_p"], [10, 0, 1, "c.i8_gelu_s", "i8_gelu_s"], [10, 0, 1, "c.i8_hardshrink_p", "i8_hardshrink_p"], [10, 0, 1, "c.i8_hardshrink_s", "i8_hardshrink_s"], [10, 0, 1, "c.i8_hardtanh_p", "i8_hardtanh_p"], [10, 0, 1, "c.i8_hardtanh_s", "i8_hardtanh_s"], [10, 0, 1, "c.i8_hsigmoid_p", "i8_hsigmoid_p"], [10, 0, 1, "c.i8_hsigmoid_s", "i8_hsigmoid_s"], [10, 0, 1, "c.i8_hswish_p", "i8_hswish_p"], [10, 0, 1, "c.i8_hswish_s", "i8_hswish_s"], [39, 0, 1, "c.i8_leaky_relu_p", "i8_leaky_relu_p"], [39, 0, 1, "c.i8_leaky_relu_s", "i8_leaky_relu_s"], [10, 0, 1, "c.i8_lrelu_p", "i8_lrelu_p"], [10, 0, 1, "c.i8_lrelu_s", "i8_lrelu_s"], [43, 0, 1, "c.i8_raggedrange_p", "i8_raggedrange_p"], [43, 0, 1, "c.i8_raggedrange_s", "i8_raggedrange_s"], [44, 0, 1, "c.i8_range_p", "i8_range_p"], [44, 0, 1, "c.i8_range_s", "i8_range_s"], [45, 0, 1, "c.i8_reduce_p", "i8_reduce_p"], [45, 0, 1, "c.i8_reduce_s", "i8_reduce_s"], [10, 0, 1, "c.i8_relu6_p", "i8_relu6_p"], [10, 0, 1, "c.i8_relu6_s", "i8_relu6_s"], [10, 0, 1, "c.i8_relu_p", "i8_relu_p"], [10, 0, 1, "c.i8_relu_s", "i8_relu_s"], [46, 0, 1, "c.i8_resize_anycore", "i8_resize_anycore"], [49, 0, 1, "c.i8_scalefusion_p", "i8_scalefusion_p"], [49, 0, 1, "c.i8_scalefusion_s", "i8_scalefusion_s"], [50, 0, 1, "c.i8_scatter_elements_p", "i8_scatter_elements_p"], [50, 0, 1, "c.i8_scatter_elements_s", "i8_scatter_elements_s"], [10, 0, 1, "c.i8_sigmoid_p", "i8_sigmoid_p"], [10, 0, 1, "c.i8_sigmoid_s", "i8_sigmoid_s"], [10, 0, 1, "c.i8_softplus_p", "i8_softplus_p"], [10, 0, 1, "c.i8_softplus_s", "i8_softplus_s"], [10, 0, 1, "c.i8_softshrink_p", "i8_softshrink_p"], [10, 0, 1, "c.i8_softshrink_s", "i8_softshrink_s"], [10, 0, 1, "c.i8_softsignopt_p", "i8_softsignopt_p"], [10, 0, 1, "c.i8_softsignopt_s", "i8_softsignopt_s"], [52, 0, 1, "c.i8_spacetobatch_p", "i8_spacetobatch_p"], [52, 0, 1, "c.i8_spacetobatch_s", "i8_spacetobatch_s"], [53, 0, 1, "c.i8_spacetobatchnd_p", "i8_spacetobatchnd_p"], [53, 0, 1, "c.i8_spacetobatchnd_s", "i8_spacetobatchnd_s"], [54, 0, 1, "c.i8_spacetodepth_p", "i8_spacetodepth_p"], [54, 0, 1, "c.i8_spacetodepth_s", "i8_spacetodepth_s"], [10, 0, 1, "c.i8_swish_p", "i8_swish_p"], [10, 0, 1, "c.i8_swish_s", "i8_swish_s"], [10, 0, 1, "c.i8_tanh_p", "i8_tanh_p"], [10, 0, 1, "c.i8_tanh_s", "i8_tanh_s"]], "anytype_crop_anycore": [[24, 1, 1, "c.anytype_crop_anycore", "axis"], [24, 1, 1, "c.anytype_crop_anycore", "core_mask"], [24, 1, 1, "c.anytype_crop_anycore", "in_shape"], [24, 1, 1, "c.anytype_crop_anycore", "input"], [24, 1, 1, "c.anytype_crop_anycore", "offset"], [24, 1, 1, "c.anytype_crop_anycore", "out_shape"], [24, 1, 1, "c.anytype_crop_anycore", "output"], [24, 1, 1, "c.anytype_crop_anycore", "type_size"]], "anytype_expand_dims_anycore": [[31, 1, 1, "c.anytype_expand_dims_anycore", "core_mask"], [31, 1, 1, "c.anytype_expand_dims_anycore", "dst"], [31, 1, 1, "c.anytype_expand_dims_anycore", "src"], [31, 1, 1, "c.anytype_expand_dims_anycore", "total_copy_size"]], "anytype_fillv2_p": [[33, 1, 1, "c.anytype_fillv2_p", "core_mask"], [33, 1, 1, "c.anytype_fillv2_p", "length"], [33, 1, 1, "c.anytype_fillv2_p", "output"], [33, 1, 1, "c.anytype_fillv2_p", "type_size"], [33, 1, 1, "c.anytype_fillv2_p", "value"]], "anytype_fillv2_s": [[33, 1, 1, "c.anytype_fillv2_s", "core_mask"], [33, 1, 1, "c.anytype_fillv2_s", "length"], [33, 1, 1, "c.anytype_fillv2_s", "output"], [33, 1, 1, "c.anytype_fillv2_s", "type_size"], [33, 1, 1, "c.anytype_fillv2_s", "value"]], "anytype_reverse_sequence_anycore": [[47, 1, 1, "c.anytype_reverse_sequence_anycore", "core_mask"], [47, 1, 1, "c.anytype_reverse_sequence_anycore", "dst"], [47, 1, 1, "c.anytype_reverse_sequence_anycore", "param"], [47, 1, 1, "c.anytype_reverse_sequence_anycore", "seq_lengths"], [47, 1, 1, "c.anytype_reverse_sequence_anycore", "src"]], "anytype_reversev2_anycore": [[48, 1, 1, "c.anytype_reversev2_anycore", "core_mask"], [48, 1, 1, "c.anytype_reversev2_anycore", "dst"], [48, 1, 1, "c.anytype_reversev2_anycore", "param"], [48, 1, 1, "c.anytype_reversev2_anycore", "src"]], "anytype_squeeze_anycore": [[55, 1, 1, "c.anytype_squeeze_anycore", "core_mask"], [55, 1, 1, "c.anytype_squeeze_anycore", "dst"], [55, 1, 1, "c.anytype_squeeze_anycore", "src"], [55, 1, 1, "c.anytype_squeeze_anycore", "total_copy_size"]], "anytype_unsqueeze_anycore": [[56, 1, 1, "c.anytype_unsqueeze_anycore", "core_mask"], [56, 1, 1, "c.anytype_unsqueeze_anycore", "dst"], [56, 1, 1, "c.anytype_unsqueeze_anycore", "src"], [56, 1, 1, "c.anytype_unsqueeze_anycore", "total_copy_size"]], "assert": [[14, 1, 1, "c.assert", "Input"], [14, 1, 1, "c.assert", "output"]], "c128_batchtospace_p": [[17, 1, 1, "c.c128_batchtospace_p", "block_size"], [17, 1, 1, "c.c128_batchtospace_p", "crops"], [17, 1, 1, "c.c128_batchtospace_p", "data_size"], [17, 1, 1, "c.c128_batchtospace_p", "input"], [17, 1, 1, "c.c128_batchtospace_p", "input_shape"], [17, 1, 1, "c.c128_batchtospace_p", "output"]], "c128_batchtospace_s": [[17, 1, 1, "c.c128_batchtospace_s", "block_size"], [17, 1, 1, "c.c128_batchtospace_s", "core_mask"], [17, 1, 1, "c.c128_batchtospace_s", "crops"], [17, 1, 1, "c.c128_batchtospace_s", "data_size"], [17, 1, 1, "c.c128_batchtospace_s", "input"], [17, 1, 1, "c.c128_batchtospace_s", "input_shape"], [17, 1, 1, "c.c128_batchtospace_s", "output"]], "c128_batchtospacend_p": [[18, 1, 1, "c.c128_batchtospacend_p", "block_size"], [18, 1, 1, "c.c128_batchtospacend_p", "crops"], [18, 1, 1, "c.c128_batchtospacend_p", "data_size"], [18, 1, 1, "c.c128_batchtospacend_p", "input"], [18, 1, 1, "c.c128_batchtospacend_p", "input_shape"], [18, 1, 1, "c.c128_batchtospacend_p", "output"]], "c128_batchtospacend_s": [[18, 1, 1, "c.c128_batchtospacend_s", "block_size"], [18, 1, 1, "c.c128_batchtospacend_s", "core_mask"], [18, 1, 1, "c.c128_batchtospacend_s", "crops"], [18, 1, 1, "c.c128_batchtospacend_s", "data_size"], [18, 1, 1, "c.c128_batchtospacend_s", "input"], [18, 1, 1, "c.c128_batchtospacend_s", "input_shape"], [18, 1, 1, "c.c128_batchtospacend_s", "output"]], "c128_broadcastto_p": [[19, 1, 1, "c.c128_broadcastto_p", "data_size"], [19, 1, 1, "c.c128_broadcastto_p", "input"], [19, 1, 1, "c.c128_broadcastto_p", "input_shape"], [19, 1, 1, "c.c128_broadcastto_p", "input_shape_size"], [19, 1, 1, "c.c128_broadcastto_p", "output"], [19, 1, 1, "c.c128_broadcastto_p", "output_shape"], [19, 1, 1, "c.c128_broadcastto_p", "output_shape_size"]], "c128_broadcastto_s": [[19, 1, 1, "c.c128_broadcastto_s", "core_mask"], [19, 1, 1, "c.c128_broadcastto_s", "data_size"], [19, 1, 1, "c.c128_broadcastto_s", "input"], [19, 1, 1, "c.c128_broadcastto_s", "input_shape"], [19, 1, 1, "c.c128_broadcastto_s", "input_shape_size"], [19, 1, 1, "c.c128_broadcastto_s", "output"], [19, 1, 1, "c.c128_broadcastto_s", "output_shape"], [19, 1, 1, "c.c128_broadcastto_s", "output_shape_size"]], "c128_depthtospace_p": [[26, 1, 1, "c.c128_depthtospace_p", "block_size"], [26, 1, 1, "c.c128_depthtospace_p", "data_size"], [26, 1, 1, "c.c128_depthtospace_p", "in_shape"], [26, 1, 1, "c.c128_depthtospace_p", "input"], [26, 1, 1, "c.c128_depthtospace_p", "output"]], "c128_depthtospace_s": [[26, 1, 1, "c.c128_depthtospace_s", "block_size"], [26, 1, 1, "c.c128_depthtospace_s", "core_mask"], [26, 1, 1, "c.c128_depthtospace_s", "data_size"], [26, 1, 1, "c.c128_depthtospace_s", "in_shape"], [26, 1, 1, "c.c128_depthtospace_s", "input"], [26, 1, 1, "c.c128_depthtospace_s", "output"]], "c128_eltwise_p": [[28, 1, 1, "c.c128_eltwise_p", "Input0"], [28, 1, 1, "c.c128_eltwise_p", "Input1"], [28, 1, 1, "c.c128_eltwise_p", "eltwise_mode_"], [28, 1, 1, "c.c128_eltwise_p", "length"], [28, 1, 1, "c.c128_eltwise_p", "output"]], "c128_eltwise_s": [[28, 1, 1, "c.c128_eltwise_s", "Input0"], [28, 1, 1, "c.c128_eltwise_s", "Input1"], [28, 1, 1, "c.c128_eltwise_s", "core_mask"], [28, 1, 1, "c.c128_eltwise_s", "eltwise_mode_"], [28, 1, 1, "c.c128_eltwise_s", "length"], [28, 1, 1, "c.c128_eltwise_s", "output"]], "c128_equal_p": [[30, 1, 1, "c.c128_equal_p", "Input0"], [30, 1, 1, "c.c128_equal_p", "Input1"], [30, 1, 1, "c.c128_equal_p", "length"], [30, 1, 1, "c.c128_equal_p", "output"]], "c128_equal_s": [[30, 1, 1, "c.c128_equal_s", "Input0"], [30, 1, 1, "c.c128_equal_s", "Input1"], [30, 1, 1, "c.c128_equal_s", "core_mask"], [30, 1, 1, "c.c128_equal_s", "length"], [30, 1, 1, "c.c128_equal_s", "output"]], "c128_expfusion_p": [[32, 1, 1, "c.c128_expfusion_p", "dst_data"], [32, 1, 1, "c.c128_expfusion_p", "in_scale"], [32, 1, 1, "c.c128_expfusion_p", "length"], [32, 1, 1, "c.c128_expfusion_p", "out_scale"], [32, 1, 1, "c.c128_expfusion_p", "scale"], [32, 1, 1, "c.c128_expfusion_p", "src_data"]], "c128_expfusion_s": [[32, 1, 1, "c.c128_expfusion_s", "core_mask"], [32, 1, 1, "c.c128_expfusion_s", "dst_data"], [32, 1, 1, "c.c128_expfusion_s", "in_scale"], [32, 1, 1, "c.c128_expfusion_s", "length"], [32, 1, 1, "c.c128_expfusion_s", "out_scale"], [32, 1, 1, "c.c128_expfusion_s", "scale"], [32, 1, 1, "c.c128_expfusion_s", "src_data"]], "c128_matmulfusion_p": [[42, 1, 1, "c.c128_matmulfusion_p", "A"], [42, 1, 1, "c.c128_matmulfusion_p", "B"], [42, 1, 1, "c.c128_matmulfusion_p", "C"], [42, 1, 1, "c.c128_matmulfusion_p", "K"], [42, 1, 1, "c.c128_matmulfusion_p", "M"], [42, 1, 1, "c.c128_matmulfusion_p", "N"], [42, 1, 1, "c.c128_matmulfusion_p", "activation_type"], [42, 1, 1, "c.c128_matmulfusion_p", "bias"]], "c128_matmulfusion_s": [[42, 1, 1, "c.c128_matmulfusion_s", "A"], [42, 1, 1, "c.c128_matmulfusion_s", "B"], [42, 1, 1, "c.c128_matmulfusion_s", "C"], [42, 1, 1, "c.c128_matmulfusion_s", "K"], [42, 1, 1, "c.c128_matmulfusion_s", "M"], [42, 1, 1, "c.c128_matmulfusion_s", "N"], [42, 1, 1, "c.c128_matmulfusion_s", "activation_type"], [42, 1, 1, "c.c128_matmulfusion_s", "bias"], [42, 1, 1, "c.c128_matmulfusion_s", "core_mask"]], "c128_scatter_elements_p": [[50, 1, 1, "c.c128_scatter_elements_p", "core_mask"], [50, 1, 1, "c.c128_scatter_elements_p", "indices"], [50, 1, 1, "c.c128_scatter_elements_p", "input"], [50, 1, 1, "c.c128_scatter_elements_p", "output"], [50, 1, 1, "c.c128_scatter_elements_p", "param"], [50, 1, 1, "c.c128_scatter_elements_p", "updates"]], "c128_scatter_elements_s": [[50, 1, 1, "c.c128_scatter_elements_s", "core_mask"], [50, 1, 1, "c.c128_scatter_elements_s", "indices"], [50, 1, 1, "c.c128_scatter_elements_s", "input"], [50, 1, 1, "c.c128_scatter_elements_s", "output"], [50, 1, 1, "c.c128_scatter_elements_s", "param"], [50, 1, 1, "c.c128_scatter_elements_s", "updates"]], "c128_spacetobatch_p": [[52, 1, 1, "c.c128_spacetobatch_p", "block_size"], [52, 1, 1, "c.c128_spacetobatch_p", "data_size"], [52, 1, 1, "c.c128_spacetobatch_p", "input"], [52, 1, 1, "c.c128_spacetobatch_p", "input_shape"], [52, 1, 1, "c.c128_spacetobatch_p", "output"], [52, 1, 1, "c.c128_spacetobatch_p", "paddings"]], "c128_spacetobatch_s": [[52, 1, 1, "c.c128_spacetobatch_s", "block_size"], [52, 1, 1, "c.c128_spacetobatch_s", "core_mask"], [52, 1, 1, "c.c128_spacetobatch_s", "data_size"], [52, 1, 1, "c.c128_spacetobatch_s", "input"], [52, 1, 1, "c.c128_spacetobatch_s", "input_shape"], [52, 1, 1, "c.c128_spacetobatch_s", "output"], [52, 1, 1, "c.c128_spacetobatch_s", "paddings"]], "c128_spacetobatchnd_p": [[53, 1, 1, "c.c128_spacetobatchnd_p", "block_size"], [53, 1, 1, "c.c128_spacetobatchnd_p", "data_size"], [53, 1, 1, "c.c128_spacetobatchnd_p", "input"], [53, 1, 1, "c.c128_spacetobatchnd_p", "input_shape"], [53, 1, 1, "c.c128_spacetobatchnd_p", "output"], [53, 1, 1, "c.c128_spacetobatchnd_p", "paddings"]], "c128_spacetobatchnd_s": [[53, 1, 1, "c.c128_spacetobatchnd_s", "block_size"], [53, 1, 1, "c.c128_spacetobatchnd_s", "core_mask"], [53, 1, 1, "c.c128_spacetobatchnd_s", "data_size"], [53, 1, 1, "c.c128_spacetobatchnd_s", "input"], [53, 1, 1, "c.c128_spacetobatchnd_s", "input_shape"], [53, 1, 1, "c.c128_spacetobatchnd_s", "output"], [53, 1, 1, "c.c128_spacetobatchnd_s", "paddings"]], "c128_spacetodepth_p": [[54, 1, 1, "c.c128_spacetodepth_p", "block"], [54, 1, 1, "c.c128_spacetodepth_p", "data_size"], [54, 1, 1, "c.c128_spacetodepth_p", "in_shape"], [54, 1, 1, "c.c128_spacetodepth_p", "input"], [54, 1, 1, "c.c128_spacetodepth_p", "output"]], "c128_spacetodepth_s": [[54, 1, 1, "c.c128_spacetodepth_s", "block"], [54, 1, 1, "c.c128_spacetodepth_s", "core_mask"], [54, 1, 1, "c.c128_spacetodepth_s", "data_size"], [54, 1, 1, "c.c128_spacetodepth_s", "in_shape"], [54, 1, 1, "c.c128_spacetodepth_s", "input"], [54, 1, 1, "c.c128_spacetodepth_s", "output"]], "c64_batchtospace_p": [[17, 1, 1, "c.c64_batchtospace_p", "block_size"], [17, 1, 1, "c.c64_batchtospace_p", "crops"], [17, 1, 1, "c.c64_batchtospace_p", "data_size"], [17, 1, 1, "c.c64_batchtospace_p", "input"], [17, 1, 1, "c.c64_batchtospace_p", "input_shape"], [17, 1, 1, "c.c64_batchtospace_p", "output"]], "c64_batchtospace_s": [[17, 1, 1, "c.c64_batchtospace_s", "block_size"], [17, 1, 1, "c.c64_batchtospace_s", "core_mask"], [17, 1, 1, "c.c64_batchtospace_s", "crops"], [17, 1, 1, "c.c64_batchtospace_s", "data_size"], [17, 1, 1, "c.c64_batchtospace_s", "input"], [17, 1, 1, "c.c64_batchtospace_s", "input_shape"], [17, 1, 1, "c.c64_batchtospace_s", "output"]], "c64_batchtospacend_p": [[18, 1, 1, "c.c64_batchtospacend_p", "block_size"], [18, 1, 1, "c.c64_batchtospacend_p", "crops"], [18, 1, 1, "c.c64_batchtospacend_p", "data_size"], [18, 1, 1, "c.c64_batchtospacend_p", "input"], [18, 1, 1, "c.c64_batchtospacend_p", "input_shape"], [18, 1, 1, "c.c64_batchtospacend_p", "output"]], "c64_batchtospacend_s": [[18, 1, 1, "c.c64_batchtospacend_s", "block_size"], [18, 1, 1, "c.c64_batchtospacend_s", "core_mask"], [18, 1, 1, "c.c64_batchtospacend_s", "crops"], [18, 1, 1, "c.c64_batchtospacend_s", "data_size"], [18, 1, 1, "c.c64_batchtospacend_s", "input"], [18, 1, 1, "c.c64_batchtospacend_s", "input_shape"], [18, 1, 1, "c.c64_batchtospacend_s", "output"]], "c64_broadcastto_p": [[19, 1, 1, "c.c64_broadcastto_p", "data_size"], [19, 1, 1, "c.c64_broadcastto_p", "input"], [19, 1, 1, "c.c64_broadcastto_p", "input_shape"], [19, 1, 1, "c.c64_broadcastto_p", "input_shape_size"], [19, 1, 1, "c.c64_broadcastto_p", "output"], [19, 1, 1, "c.c64_broadcastto_p", "output_shape"], [19, 1, 1, "c.c64_broadcastto_p", "output_shape_size"]], "c64_broadcastto_s": [[19, 1, 1, "c.c64_broadcastto_s", "core_mask"], [19, 1, 1, "c.c64_broadcastto_s", "data_size"], [19, 1, 1, "c.c64_broadcastto_s", "input"], [19, 1, 1, "c.c64_broadcastto_s", "input_shape"], [19, 1, 1, "c.c64_broadcastto_s", "input_shape_size"], [19, 1, 1, "c.c64_broadcastto_s", "output"], [19, 1, 1, "c.c64_broadcastto_s", "output_shape"], [19, 1, 1, "c.c64_broadcastto_s", "output_shape_size"]], "c64_depthtospace_p": [[26, 1, 1, "c.c64_depthtospace_p", "block_size"], [26, 1, 1, "c.c64_depthtospace_p", "data_size"], [26, 1, 1, "c.c64_depthtospace_p", "in_shape"], [26, 1, 1, "c.c64_depthtospace_p", "input"], [26, 1, 1, "c.c64_depthtospace_p", "output"]], "c64_depthtospace_s": [[26, 1, 1, "c.c64_depthtospace_s", "block_size"], [26, 1, 1, "c.c64_depthtospace_s", "core_mask"], [26, 1, 1, "c.c64_depthtospace_s", "data_size"], [26, 1, 1, "c.c64_depthtospace_s", "in_shape"], [26, 1, 1, "c.c64_depthtospace_s", "input"], [26, 1, 1, "c.c64_depthtospace_s", "output"]], "c64_eltwise_p": [[28, 1, 1, "c.c64_eltwise_p", "Input0"], [28, 1, 1, "c.c64_eltwise_p", "Input1"], [28, 1, 1, "c.c64_eltwise_p", "eltwise_mode_"], [28, 1, 1, "c.c64_eltwise_p", "length"], [28, 1, 1, "c.c64_eltwise_p", "output"]], "c64_eltwise_s": [[28, 1, 1, "c.c64_eltwise_s", "Input0"], [28, 1, 1, "c.c64_eltwise_s", "Input1"], [28, 1, 1, "c.c64_eltwise_s", "core_mask"], [28, 1, 1, "c.c64_eltwise_s", "eltwise_mode_"], [28, 1, 1, "c.c64_eltwise_s", "length"], [28, 1, 1, "c.c64_eltwise_s", "output"]], "c64_equal_p": [[30, 1, 1, "c.c64_equal_p", "Input0"], [30, 1, 1, "c.c64_equal_p", "Input1"], [30, 1, 1, "c.c64_equal_p", "length"], [30, 1, 1, "c.c64_equal_p", "output"]], "c64_equal_s": [[30, 1, 1, "c.c64_equal_s", "Input0"], [30, 1, 1, "c.c64_equal_s", "Input1"], [30, 1, 1, "c.c64_equal_s", "core_mask"], [30, 1, 1, "c.c64_equal_s", "length"], [30, 1, 1, "c.c64_equal_s", "output"]], "c64_expfusion_p": [[32, 1, 1, "c.c64_expfusion_p", "dst_data"], [32, 1, 1, "c.c64_expfusion_p", "in_scale"], [32, 1, 1, "c.c64_expfusion_p", "length"], [32, 1, 1, "c.c64_expfusion_p", "out_scale"], [32, 1, 1, "c.c64_expfusion_p", "scale"], [32, 1, 1, "c.c64_expfusion_p", "src_data"]], "c64_expfusion_s": [[32, 1, 1, "c.c64_expfusion_s", "core_mask"], [32, 1, 1, "c.c64_expfusion_s", "dst_data"], [32, 1, 1, "c.c64_expfusion_s", "in_scale"], [32, 1, 1, "c.c64_expfusion_s", "length"], [32, 1, 1, "c.c64_expfusion_s", "out_scale"], [32, 1, 1, "c.c64_expfusion_s", "scale"], [32, 1, 1, "c.c64_expfusion_s", "src_data"]], "c64_matmulfusion_p": [[42, 1, 1, "c.c64_matmulfusion_p", "A"], [42, 1, 1, "c.c64_matmulfusion_p", "B"], [42, 1, 1, "c.c64_matmulfusion_p", "C"], [42, 1, 1, "c.c64_matmulfusion_p", "K"], [42, 1, 1, "c.c64_matmulfusion_p", "M"], [42, 1, 1, "c.c64_matmulfusion_p", "N"], [42, 1, 1, "c.c64_matmulfusion_p", "activation_type"], [42, 1, 1, "c.c64_matmulfusion_p", "bias"]], "c64_matmulfusion_s": [[42, 1, 1, "c.c64_matmulfusion_s", "A"], [42, 1, 1, "c.c64_matmulfusion_s", "B"], [42, 1, 1, "c.c64_matmulfusion_s", "C"], [42, 1, 1, "c.c64_matmulfusion_s", "K"], [42, 1, 1, "c.c64_matmulfusion_s", "M"], [42, 1, 1, "c.c64_matmulfusion_s", "N"], [42, 1, 1, "c.c64_matmulfusion_s", "activation_type"], [42, 1, 1, "c.c64_matmulfusion_s", "bias"], [42, 1, 1, "c.c64_matmulfusion_s", "core_mask"]], "c64_scatter_elements_p": [[50, 1, 1, "c.c64_scatter_elements_p", "core_mask"], [50, 1, 1, "c.c64_scatter_elements_p", "indices"], [50, 1, 1, "c.c64_scatter_elements_p", "input"], [50, 1, 1, "c.c64_scatter_elements_p", "output"], [50, 1, 1, "c.c64_scatter_elements_p", "param"], [50, 1, 1, "c.c64_scatter_elements_p", "updates"]], "c64_scatter_elements_s": [[50, 1, 1, "c.c64_scatter_elements_s", "core_mask"], [50, 1, 1, "c.c64_scatter_elements_s", "indices"], [50, 1, 1, "c.c64_scatter_elements_s", "input"], [50, 1, 1, "c.c64_scatter_elements_s", "output"], [50, 1, 1, "c.c64_scatter_elements_s", "param"], [50, 1, 1, "c.c64_scatter_elements_s", "updates"]], "c64_spacetobatch_p": [[52, 1, 1, "c.c64_spacetobatch_p", "block_size"], [52, 1, 1, "c.c64_spacetobatch_p", "data_size"], [52, 1, 1, "c.c64_spacetobatch_p", "input"], [52, 1, 1, "c.c64_spacetobatch_p", "input_shape"], [52, 1, 1, "c.c64_spacetobatch_p", "output"], [52, 1, 1, "c.c64_spacetobatch_p", "paddings"]], "c64_spacetobatch_s": [[52, 1, 1, "c.c64_spacetobatch_s", "block_size"], [52, 1, 1, "c.c64_spacetobatch_s", "core_mask"], [52, 1, 1, "c.c64_spacetobatch_s", "data_size"], [52, 1, 1, "c.c64_spacetobatch_s", "input"], [52, 1, 1, "c.c64_spacetobatch_s", "input_shape"], [52, 1, 1, "c.c64_spacetobatch_s", "output"], [52, 1, 1, "c.c64_spacetobatch_s", "paddings"]], "c64_spacetobatchnd_p": [[53, 1, 1, "c.c64_spacetobatchnd_p", "block_size"], [53, 1, 1, "c.c64_spacetobatchnd_p", "data_size"], [53, 1, 1, "c.c64_spacetobatchnd_p", "input"], [53, 1, 1, "c.c64_spacetobatchnd_p", "input_shape"], [53, 1, 1, "c.c64_spacetobatchnd_p", "output"], [53, 1, 1, "c.c64_spacetobatchnd_p", "paddings"]], "c64_spacetobatchnd_s": [[53, 1, 1, "c.c64_spacetobatchnd_s", "block_size"], [53, 1, 1, "c.c64_spacetobatchnd_s", "core_mask"], [53, 1, 1, "c.c64_spacetobatchnd_s", "data_size"], [53, 1, 1, "c.c64_spacetobatchnd_s", "input"], [53, 1, 1, "c.c64_spacetobatchnd_s", "input_shape"], [53, 1, 1, "c.c64_spacetobatchnd_s", "output"], [53, 1, 1, "c.c64_spacetobatchnd_s", "paddings"]], "c64_spacetodepth_p": [[54, 1, 1, "c.c64_spacetodepth_p", "block"], [54, 1, 1, "c.c64_spacetodepth_p", "data_size"], [54, 1, 1, "c.c64_spacetodepth_p", "in_shape"], [54, 1, 1, "c.c64_spacetodepth_p", "input"], [54, 1, 1, "c.c64_spacetodepth_p", "output"]], "c64_spacetodepth_s": [[54, 1, 1, "c.c64_spacetodepth_s", "block"], [54, 1, 1, "c.c64_spacetodepth_s", "core_mask"], [54, 1, 1, "c.c64_spacetodepth_s", "data_size"], [54, 1, 1, "c.c64_spacetodepth_s", "in_shape"], [54, 1, 1, "c.c64_spacetodepth_s", "input"], [54, 1, 1, "c.c64_spacetodepth_s", "output"]], "dp_batchtospace_p": [[17, 1, 1, "c.dp_batchtospace_p", "block_size"], [17, 1, 1, "c.dp_batchtospace_p", "crops"], [17, 1, 1, "c.dp_batchtospace_p", "data_size"], [17, 1, 1, "c.dp_batchtospace_p", "input"], [17, 1, 1, "c.dp_batchtospace_p", "input_shape"], [17, 1, 1, "c.dp_batchtospace_p", "output"]], "dp_batchtospace_s": [[17, 1, 1, "c.dp_batchtospace_s", "block_size"], [17, 1, 1, "c.dp_batchtospace_s", "core_mask"], [17, 1, 1, "c.dp_batchtospace_s", "crops"], [17, 1, 1, "c.dp_batchtospace_s", "data_size"], [17, 1, 1, "c.dp_batchtospace_s", "input"], [17, 1, 1, "c.dp_batchtospace_s", "input_shape"], [17, 1, 1, "c.dp_batchtospace_s", "output"]], "dp_batchtospacend_p": [[18, 1, 1, "c.dp_batchtospacend_p", "block_size"], [18, 1, 1, "c.dp_batchtospacend_p", "crops"], [18, 1, 1, "c.dp_batchtospacend_p", "data_size"], [18, 1, 1, "c.dp_batchtospacend_p", "input"], [18, 1, 1, "c.dp_batchtospacend_p", "input_shape"], [18, 1, 1, "c.dp_batchtospacend_p", "output"]], "dp_batchtospacend_s": [[18, 1, 1, "c.dp_batchtospacend_s", "block_size"], [18, 1, 1, "c.dp_batchtospacend_s", "core_mask"], [18, 1, 1, "c.dp_batchtospacend_s", "crops"], [18, 1, 1, "c.dp_batchtospacend_s", "data_size"], [18, 1, 1, "c.dp_batchtospacend_s", "input"], [18, 1, 1, "c.dp_batchtospacend_s", "input_shape"], [18, 1, 1, "c.dp_batchtospacend_s", "output"]], "dp_broadcastto_p": [[19, 1, 1, "c.dp_broadcastto_p", "data_size"], [19, 1, 1, "c.dp_broadcastto_p", "input"], [19, 1, 1, "c.dp_broadcastto_p", "input_shape"], [19, 1, 1, "c.dp_broadcastto_p", "input_shape_size"], [19, 1, 1, "c.dp_broadcastto_p", "output"], [19, 1, 1, "c.dp_broadcastto_p", "output_shape"], [19, 1, 1, "c.dp_broadcastto_p", "output_shape_size"]], "dp_broadcastto_s": [[19, 1, 1, "c.dp_broadcastto_s", "core_mask"], [19, 1, 1, "c.dp_broadcastto_s", "data_size"], [19, 1, 1, "c.dp_broadcastto_s", "input"], [19, 1, 1, "c.dp_broadcastto_s", "input_shape"], [19, 1, 1, "c.dp_broadcastto_s", "input_shape_size"], [19, 1, 1, "c.dp_broadcastto_s", "output"], [19, 1, 1, "c.dp_broadcastto_s", "output_shape"], [19, 1, 1, "c.dp_broadcastto_s", "output_shape_size"]], "dp_depthtospace_p": [[26, 1, 1, "c.dp_depthtospace_p", "block_size"], [26, 1, 1, "c.dp_depthtospace_p", "data_size"], [26, 1, 1, "c.dp_depthtospace_p", "in_shape"], [26, 1, 1, "c.dp_depthtospace_p", "input"], [26, 1, 1, "c.dp_depthtospace_p", "output"]], "dp_depthtospace_s": [[26, 1, 1, "c.dp_depthtospace_s", "block_size"], [26, 1, 1, "c.dp_depthtospace_s", "core_mask"], [26, 1, 1, "c.dp_depthtospace_s", "data_size"], [26, 1, 1, "c.dp_depthtospace_s", "in_shape"], [26, 1, 1, "c.dp_depthtospace_s", "input"], [26, 1, 1, "c.dp_depthtospace_s", "output"]], "dp_eltwise_p": [[28, 1, 1, "c.dp_eltwise_p", "Input0"], [28, 1, 1, "c.dp_eltwise_p", "Input1"], [28, 1, 1, "c.dp_eltwise_p", "eltwise_mode_"], [28, 1, 1, "c.dp_eltwise_p", "length"], [28, 1, 1, "c.dp_eltwise_p", "output"]], "dp_eltwise_s": [[28, 1, 1, "c.dp_eltwise_s", "Input0"], [28, 1, 1, "c.dp_eltwise_s", "Input1"], [28, 1, 1, "c.dp_eltwise_s", "core_mask"], [28, 1, 1, "c.dp_eltwise_s", "eltwise_mode_"], [28, 1, 1, "c.dp_eltwise_s", "length"], [28, 1, 1, "c.dp_eltwise_s", "output"]], "dp_equal_p": [[30, 1, 1, "c.dp_equal_p", "Input0"], [30, 1, 1, "c.dp_equal_p", "Input1"], [30, 1, 1, "c.dp_equal_p", "length"], [30, 1, 1, "c.dp_equal_p", "output"]], "dp_equal_s": [[30, 1, 1, "c.dp_equal_s", "Input0"], [30, 1, 1, "c.dp_equal_s", "Input1"], [30, 1, 1, "c.dp_equal_s", "core_mask"], [30, 1, 1, "c.dp_equal_s", "length"], [30, 1, 1, "c.dp_equal_s", "output"]], "dp_expfusion_p": [[32, 1, 1, "c.dp_expfusion_p", "dst_data"], [32, 1, 1, "c.dp_expfusion_p", "in_scale"], [32, 1, 1, "c.dp_expfusion_p", "length"], [32, 1, 1, "c.dp_expfusion_p", "out_scale"], [32, 1, 1, "c.dp_expfusion_p", "scale"], [32, 1, 1, "c.dp_expfusion_p", "src_data"]], "dp_expfusion_s": [[32, 1, 1, "c.dp_expfusion_s", "core_mask"], [32, 1, 1, "c.dp_expfusion_s", "dst_data"], [32, 1, 1, "c.dp_expfusion_s", "in_scale"], [32, 1, 1, "c.dp_expfusion_s", "length"], [32, 1, 1, "c.dp_expfusion_s", "out_scale"], [32, 1, 1, "c.dp_expfusion_s", "scale"], [32, 1, 1, "c.dp_expfusion_s", "src_data"]], "dp_floor_p": [[34, 1, 1, "c.dp_floor_p", "dst_data"], [34, 1, 1, "c.dp_floor_p", "length"], [34, 1, 1, "c.dp_floor_p", "src_data"]], "dp_floor_s": [[34, 1, 1, "c.dp_floor_s", "core_mask"], [34, 1, 1, "c.dp_floor_s", "dst_data"], [34, 1, 1, "c.dp_floor_s", "length"], [34, 1, 1, "c.dp_floor_s", "src_data"]], "dp_floordiv_p": [[35, 1, 1, "c.dp_floordiv_p", "dst_data"], [35, 1, 1, "c.dp_floordiv_p", "length"], [35, 1, 1, "c.dp_floordiv_p", "src_data0"], [35, 1, 1, "c.dp_floordiv_p", "src_data1"]], "dp_floordiv_s": [[35, 1, 1, "c.dp_floordiv_s", "core_mask"], [35, 1, 1, "c.dp_floordiv_s", "dst_data"], [35, 1, 1, "c.dp_floordiv_s", "length"], [35, 1, 1, "c.dp_floordiv_s", "src_data0"], [35, 1, 1, "c.dp_floordiv_s", "src_data1"]], "dp_matmulfusion_p": [[42, 1, 1, "c.dp_matmulfusion_p", "A"], [42, 1, 1, "c.dp_matmulfusion_p", "B"], [42, 1, 1, "c.dp_matmulfusion_p", "C"], [42, 1, 1, "c.dp_matmulfusion_p", "K"], [42, 1, 1, "c.dp_matmulfusion_p", "M"], [42, 1, 1, "c.dp_matmulfusion_p", "N"], [42, 1, 1, "c.dp_matmulfusion_p", "activation_type"], [42, 1, 1, "c.dp_matmulfusion_p", "bias"]], "dp_matmulfusion_s": [[42, 1, 1, "c.dp_matmulfusion_s", "A"], [42, 1, 1, "c.dp_matmulfusion_s", "B"], [42, 1, 1, "c.dp_matmulfusion_s", "C"], [42, 1, 1, "c.dp_matmulfusion_s", "K"], [42, 1, 1, "c.dp_matmulfusion_s", "M"], [42, 1, 1, "c.dp_matmulfusion_s", "N"], [42, 1, 1, "c.dp_matmulfusion_s", "activation_type"], [42, 1, 1, "c.dp_matmulfusion_s", "bias"], [42, 1, 1, "c.dp_matmulfusion_s", "core_mask"]], "dp_raggedrange_p": [[43, 1, 1, "c.dp_raggedrange_p", "deltas"], [43, 1, 1, "c.dp_raggedrange_p", "limits"], [43, 1, 1, "c.dp_raggedrange_p", "range_count"], [43, 1, 1, "c.dp_raggedrange_p", "splits"], [43, 1, 1, "c.dp_raggedrange_p", "starts"], [43, 1, 1, "c.dp_raggedrange_p", "values"]], "dp_raggedrange_s": [[43, 1, 1, "c.dp_raggedrange_s", "core_mask"], [43, 1, 1, "c.dp_raggedrange_s", "deltas"], [43, 1, 1, "c.dp_raggedrange_s", "limits"], [43, 1, 1, "c.dp_raggedrange_s", "range_count"], [43, 1, 1, "c.dp_raggedrange_s", "splits"], [43, 1, 1, "c.dp_raggedrange_s", "starts"], [43, 1, 1, "c.dp_raggedrange_s", "values"]], "dp_range_p": [[44, 1, 1, "c.dp_range_p", "delta"], [44, 1, 1, "c.dp_range_p", "length"], [44, 1, 1, "c.dp_range_p", "output"], [44, 1, 1, "c.dp_range_p", "start"]], "dp_range_s": [[44, 1, 1, "c.dp_range_s", "core_mask"], [44, 1, 1, "c.dp_range_s", "delta"], [44, 1, 1, "c.dp_range_s", "length"], [44, 1, 1, "c.dp_range_s", "output"], [44, 1, 1, "c.dp_range_s", "start"]], "dp_reduce_p": [[45, 1, 1, "c.dp_reduce_p", "core_mask"], [45, 1, 1, "c.dp_reduce_p", "dst_data"], [45, 1, 1, "c.dp_reduce_p", "param"], [45, 1, 1, "c.dp_reduce_p", "src_data"], [45, 1, 1, "c.dp_reduce_p", "tmp_dst_data"], [45, 1, 1, "c.dp_reduce_p", "tmp_src_data"]], "dp_reduce_s": [[45, 1, 1, "c.dp_reduce_s", "core_mask"], [45, 1, 1, "c.dp_reduce_s", "dst_data"], [45, 1, 1, "c.dp_reduce_s", "param"], [45, 1, 1, "c.dp_reduce_s", "src_data"]], "dp_scalefusion_p": [[49, 1, 1, "c.dp_scalefusion_p", "bias"], [49, 1, 1, "c.dp_scalefusion_p", "dst_data"], [49, 1, 1, "c.dp_scalefusion_p", "length"], [49, 1, 1, "c.dp_scalefusion_p", "scale"], [49, 1, 1, "c.dp_scalefusion_p", "src_data"]], "dp_scalefusion_s": [[49, 1, 1, "c.dp_scalefusion_s", "bias"], [49, 1, 1, "c.dp_scalefusion_s", "core_mask"], [49, 1, 1, "c.dp_scalefusion_s", "dst_data"], [49, 1, 1, "c.dp_scalefusion_s", "length"], [49, 1, 1, "c.dp_scalefusion_s", "scale"], [49, 1, 1, "c.dp_scalefusion_s", "src_data"]], "dp_scatter_elements_p": [[50, 1, 1, "c.dp_scatter_elements_p", "core_mask"], [50, 1, 1, "c.dp_scatter_elements_p", "indices"], [50, 1, 1, "c.dp_scatter_elements_p", "input"], [50, 1, 1, "c.dp_scatter_elements_p", "output"], [50, 1, 1, "c.dp_scatter_elements_p", "param"], [50, 1, 1, "c.dp_scatter_elements_p", "updates"]], "dp_scatter_elements_s": [[50, 1, 1, "c.dp_scatter_elements_s", "core_mask"], [50, 1, 1, "c.dp_scatter_elements_s", "indices"], [50, 1, 1, "c.dp_scatter_elements_s", "input"], [50, 1, 1, "c.dp_scatter_elements_s", "output"], [50, 1, 1, "c.dp_scatter_elements_s", "param"], [50, 1, 1, "c.dp_scatter_elements_s", "updates"]], "dp_spacetobatch_p": [[52, 1, 1, "c.dp_spacetobatch_p", "block_size"], [52, 1, 1, "c.dp_spacetobatch_p", "data_size"], [52, 1, 1, "c.dp_spacetobatch_p", "input"], [52, 1, 1, "c.dp_spacetobatch_p", "input_shape"], [52, 1, 1, "c.dp_spacetobatch_p", "output"], [52, 1, 1, "c.dp_spacetobatch_p", "paddings"]], "dp_spacetobatch_s": [[52, 1, 1, "c.dp_spacetobatch_s", "block_size"], [52, 1, 1, "c.dp_spacetobatch_s", "core_mask"], [52, 1, 1, "c.dp_spacetobatch_s", "data_size"], [52, 1, 1, "c.dp_spacetobatch_s", "input"], [52, 1, 1, "c.dp_spacetobatch_s", "input_shape"], [52, 1, 1, "c.dp_spacetobatch_s", "output"], [52, 1, 1, "c.dp_spacetobatch_s", "paddings"]], "dp_spacetobatchnd_p": [[53, 1, 1, "c.dp_spacetobatchnd_p", "block_size"], [53, 1, 1, "c.dp_spacetobatchnd_p", "data_size"], [53, 1, 1, "c.dp_spacetobatchnd_p", "input"], [53, 1, 1, "c.dp_spacetobatchnd_p", "input_shape"], [53, 1, 1, "c.dp_spacetobatchnd_p", "output"], [53, 1, 1, "c.dp_spacetobatchnd_p", "paddings"]], "dp_spacetobatchnd_s": [[53, 1, 1, "c.dp_spacetobatchnd_s", "block_size"], [53, 1, 1, "c.dp_spacetobatchnd_s", "core_mask"], [53, 1, 1, "c.dp_spacetobatchnd_s", "data_size"], [53, 1, 1, "c.dp_spacetobatchnd_s", "input"], [53, 1, 1, "c.dp_spacetobatchnd_s", "input_shape"], [53, 1, 1, "c.dp_spacetobatchnd_s", "output"], [53, 1, 1, "c.dp_spacetobatchnd_s", "paddings"]], "dp_spacetodepth_p": [[54, 1, 1, "c.dp_spacetodepth_p", "block"], [54, 1, 1, "c.dp_spacetodepth_p", "data_size"], [54, 1, 1, "c.dp_spacetodepth_p", "in_shape"], [54, 1, 1, "c.dp_spacetodepth_p", "input"], [54, 1, 1, "c.dp_spacetodepth_p", "output"]], "dp_spacetodepth_s": [[54, 1, 1, "c.dp_spacetodepth_s", "block"], [54, 1, 1, "c.dp_spacetodepth_s", "core_mask"], [54, 1, 1, "c.dp_spacetodepth_s", "data_size"], [54, 1, 1, "c.dp_spacetodepth_s", "in_shape"], [54, 1, 1, "c.dp_spacetodepth_s", "input"], [54, 1, 1, "c.dp_spacetodepth_s", "output"]], "fp_Gru_p": [[38, 1, 1, "c.fp_Gru_p", "buffer"], [38, 1, 1, "c.fp_Gru_p", "core_mask"], [38, 1, 1, "c.fp_Gru_p", "gru_param"], [38, 1, 1, "c.fp_Gru_p", "hidden_state"], [38, 1, 1, "c.fp_Gru_p", "input"], [38, 1, 1, "c.fp_Gru_p", "input_bias"], [38, 1, 1, "c.fp_Gru_p", "output"], [38, 1, 1, "c.fp_Gru_p", "state_bias"], [38, 1, 1, "c.fp_Gru_p", "weight_g"], [38, 1, 1, "c.fp_Gru_p", "weight_r"]], "fp_Gru_s": [[38, 1, 1, "c.fp_Gru_s", "buffer"], [38, 1, 1, "c.fp_Gru_s", "core_mask"], [38, 1, 1, "c.fp_Gru_s", "gru_param"], [38, 1, 1, "c.fp_Gru_s", "hidden_state"], [38, 1, 1, "c.fp_Gru_s", "input"], [38, 1, 1, "c.fp_Gru_s", "input_bias"], [38, 1, 1, "c.fp_Gru_s", "output"], [38, 1, 1, "c.fp_Gru_s", "state_bias"], [38, 1, 1, "c.fp_Gru_s", "weight_g"], [38, 1, 1, "c.fp_Gru_s", "weight_r"]], "fp_Lstm_p": [[41, 1, 1, "c.fp_Lstm_p", "buffer"], [41, 1, 1, "c.fp_Lstm_p", "cell_state"], [41, 1, 1, "c.fp_Lstm_p", "hidden_state"], [41, 1, 1, "c.fp_Lstm_p", "input"], [41, 1, 1, "c.fp_Lstm_p", "input_bias"], [41, 1, 1, "c.fp_Lstm_p", "lstm_param"], [41, 1, 1, "c.fp_Lstm_p", "output"], [41, 1, 1, "c.fp_Lstm_p", "state_bias"], [41, 1, 1, "c.fp_Lstm_p", "weight_h"], [41, 1, 1, "c.fp_Lstm_p", "weight_i"]], "fp_Lstm_s": [[41, 1, 1, "c.fp_Lstm_s", "buffer"], [41, 1, 1, "c.fp_Lstm_s", "cell_state"], [41, 1, 1, "c.fp_Lstm_s", "core_mask"], [41, 1, 1, "c.fp_Lstm_s", "hidden_state"], [41, 1, 1, "c.fp_Lstm_s", "input"], [41, 1, 1, "c.fp_Lstm_s", "input_bias"], [41, 1, 1, "c.fp_Lstm_s", "lstm_param"], [41, 1, 1, "c.fp_Lstm_s", "output"], [41, 1, 1, "c.fp_Lstm_s", "state_bias"], [41, 1, 1, "c.fp_Lstm_s", "weight_h"], [41, 1, 1, "c.fp_Lstm_s", "weight_i"]], "fp_adamweightdecay_p": [[11, 1, 1, "c.fp_adamweightdecay_p", "beta1"], [11, 1, 1, "c.fp_adamweightdecay_p", "beta2"], [11, 1, 1, "c.fp_adamweightdecay_p", "decay"], [11, 1, 1, "c.fp_adamweightdecay_p", "epsilon"], [11, 1, 1, "c.fp_adamweightdecay_p", "gradient"], [11, 1, 1, "c.fp_adamweightdecay_p", "length"], [11, 1, 1, "c.fp_adamweightdecay_p", "lr"], [11, 1, 1, "c.fp_adamweightdecay_p", "m"], [11, 1, 1, "c.fp_adamweightdecay_p", "v"], [11, 1, 1, "c.fp_adamweightdecay_p", "var"]], "fp_adamweightdecay_s": [[11, 1, 1, "c.fp_adamweightdecay_s", "beta1"], [11, 1, 1, "c.fp_adamweightdecay_s", "beta2"], [11, 1, 1, "c.fp_adamweightdecay_s", "core_mask"], [11, 1, 1, "c.fp_adamweightdecay_s", "decay"], [11, 1, 1, "c.fp_adamweightdecay_s", "end"], [11, 1, 1, "c.fp_adamweightdecay_s", "epsilon"], [11, 1, 1, "c.fp_adamweightdecay_s", "gradient"], [11, 1, 1, "c.fp_adamweightdecay_s", "lr"], [11, 1, 1, "c.fp_adamweightdecay_s", "m"], [11, 1, 1, "c.fp_adamweightdecay_s", "start"], [11, 1, 1, "c.fp_adamweightdecay_s", "v"], [11, 1, 1, "c.fp_adamweightdecay_s", "var"]], "fp_adder_p": [[12, 1, 1, "c.fp_adder_p", "bias"], [12, 1, 1, "c.fp_adder_p", "conv_param"], [12, 1, 1, "c.fp_adder_p", "core_mask"], [12, 1, 1, "c.fp_adder_p", "input_w"], [12, 1, 1, "c.fp_adder_p", "input_x"], [12, 1, 1, "c.fp_adder_p", "out_y"]], "fp_adder_s": [[12, 1, 1, "c.fp_adder_s", "bias"], [12, 1, 1, "c.fp_adder_s", "core_mask"], [12, 1, 1, "c.fp_adder_s", "input_w"], [12, 1, 1, "c.fp_adder_s", "input_x"], [12, 1, 1, "c.fp_adder_s", "out_y"], [12, 1, 1, "c.fp_adder_s", "param"]], "fp_applymomentum_p": [[13, 1, 1, "c.fp_applymomentum_p", "accumulate"], [13, 1, 1, "c.fp_applymomentum_p", "gradient"], [13, 1, 1, "c.fp_applymomentum_p", "learning_rate"], [13, 1, 1, "c.fp_applymomentum_p", "length"], [13, 1, 1, "c.fp_applymomentum_p", "moment"], [13, 1, 1, "c.fp_applymomentum_p", "nesterov"], [13, 1, 1, "c.fp_applymomentum_p", "weight"]], "fp_applymomentum_s": [[13, 1, 1, "c.fp_applymomentum_s", "accumulate"], [13, 1, 1, "c.fp_applymomentum_s", "core_mask"], [13, 1, 1, "c.fp_applymomentum_s", "end"], [13, 1, 1, "c.fp_applymomentum_s", "gradient"], [13, 1, 1, "c.fp_applymomentum_s", "learning_rate"], [13, 1, 1, "c.fp_applymomentum_s", "moment"], [13, 1, 1, "c.fp_applymomentum_s", "nesterov"], [13, 1, 1, "c.fp_applymomentum_s", "start"], [13, 1, 1, "c.fp_applymomentum_s", "weight"]], "fp_attention_p": [[15, 1, 1, "c.fp_attention_p", "K"], [15, 1, 1, "c.fp_attention_p", "Q"], [15, 1, 1, "c.fp_attention_p", "QK"], [15, 1, 1, "c.fp_attention_p", "V"], [15, 1, 1, "c.fp_attention_p", "batch_size"], [15, 1, 1, "c.fp_attention_p", "head_dim"], [15, 1, 1, "c.fp_attention_p", "head_num"], [15, 1, 1, "c.fp_attention_p", "output"], [15, 1, 1, "c.fp_attention_p", "seq_len"], [15, 1, 1, "c.fp_attention_p", "softmax_out"]], "fp_attention_s": [[15, 1, 1, "c.fp_attention_s", "K"], [15, 1, 1, "c.fp_attention_s", "Q"], [15, 1, 1, "c.fp_attention_s", "QK"], [15, 1, 1, "c.fp_attention_s", "V"], [15, 1, 1, "c.fp_attention_s", "batch_size"], [15, 1, 1, "c.fp_attention_s", "core_mask"], [15, 1, 1, "c.fp_attention_s", "head_dim"], [15, 1, 1, "c.fp_attention_s", "head_num"], [15, 1, 1, "c.fp_attention_s", "output"], [15, 1, 1, "c.fp_attention_s", "seq_len"], [15, 1, 1, "c.fp_attention_s", "softmax_out"]], "fp_avgpoolinggrad_p": [[16, 1, 1, "c.fp_avgpoolinggrad_p", "batch"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "channel"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "end_idx"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "input"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "input_h"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "input_w"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "output"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "output_h"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "output_w"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "pad_l"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "pad_u"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "start_idx"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "stride_h"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "stride_w"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "window_h"], [16, 1, 1, "c.fp_avgpoolinggrad_p", "window_w"]], "fp_avgpoolinggrad_s": [[16, 1, 1, "c.fp_avgpoolinggrad_s", "batch"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "channel"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "core_mask"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "input"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "input_h"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "input_w"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "output"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "output_h"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "output_w"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "pad_l"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "pad_u"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "stride_h"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "stride_w"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "window_h"], [16, 1, 1, "c.fp_avgpoolinggrad_s", "window_w"]], "fp_batchtospace_p": [[17, 1, 1, "c.fp_batchtospace_p", "block_size"], [17, 1, 1, "c.fp_batchtospace_p", "crops"], [17, 1, 1, "c.fp_batchtospace_p", "data_size"], [17, 1, 1, "c.fp_batchtospace_p", "input"], [17, 1, 1, "c.fp_batchtospace_p", "input_shape"], [17, 1, 1, "c.fp_batchtospace_p", "output"]], "fp_batchtospace_s": [[17, 1, 1, "c.fp_batchtospace_s", "block_size"], [17, 1, 1, "c.fp_batchtospace_s", "core_mask"], [17, 1, 1, "c.fp_batchtospace_s", "crops"], [17, 1, 1, "c.fp_batchtospace_s", "data_size"], [17, 1, 1, "c.fp_batchtospace_s", "input"], [17, 1, 1, "c.fp_batchtospace_s", "input_shape"], [17, 1, 1, "c.fp_batchtospace_s", "output"]], "fp_batchtospacend_p": [[18, 1, 1, "c.fp_batchtospacend_p", "block_size"], [18, 1, 1, "c.fp_batchtospacend_p", "crops"], [18, 1, 1, "c.fp_batchtospacend_p", "data_size"], [18, 1, 1, "c.fp_batchtospacend_p", "input"], [18, 1, 1, "c.fp_batchtospacend_p", "input_shape"], [18, 1, 1, "c.fp_batchtospacend_p", "output"]], "fp_batchtospacend_s": [[18, 1, 1, "c.fp_batchtospacend_s", "block_size"], [18, 1, 1, "c.fp_batchtospacend_s", "core_mask"], [18, 1, 1, "c.fp_batchtospacend_s", "crops"], [18, 1, 1, "c.fp_batchtospacend_s", "data_size"], [18, 1, 1, "c.fp_batchtospacend_s", "input"], [18, 1, 1, "c.fp_batchtospacend_s", "input_shape"], [18, 1, 1, "c.fp_batchtospacend_s", "output"]], "fp_broadcastto_p": [[19, 1, 1, "c.fp_broadcastto_p", "data_size"], [19, 1, 1, "c.fp_broadcastto_p", "input"], [19, 1, 1, "c.fp_broadcastto_p", "input_shape"], [19, 1, 1, "c.fp_broadcastto_p", "input_shape_size"], [19, 1, 1, "c.fp_broadcastto_p", "output"], [19, 1, 1, "c.fp_broadcastto_p", "output_shape"], [19, 1, 1, "c.fp_broadcastto_p", "output_shape_size"]], "fp_broadcastto_s": [[19, 1, 1, "c.fp_broadcastto_s", "core_mask"], [19, 1, 1, "c.fp_broadcastto_s", "data_size"], [19, 1, 1, "c.fp_broadcastto_s", "input"], [19, 1, 1, "c.fp_broadcastto_s", "input_shape"], [19, 1, 1, "c.fp_broadcastto_s", "input_shape_size"], [19, 1, 1, "c.fp_broadcastto_s", "output"], [19, 1, 1, "c.fp_broadcastto_s", "output_shape"], [19, 1, 1, "c.fp_broadcastto_s", "output_shape_size"]], "fp_celu_p": [[10, 1, 1, "c.fp_celu_p", "Input0"], [10, 1, 1, "c.fp_celu_p", "alpha"], [10, 1, 1, "c.fp_celu_p", "length"], [10, 1, 1, "c.fp_celu_p", "output"]], "fp_celu_s": [[10, 1, 1, "c.fp_celu_s", "Input0"], [10, 1, 1, "c.fp_celu_s", "alpha"], [10, 1, 1, "c.fp_celu_s", "core_mask"], [10, 1, 1, "c.fp_celu_s", "length"], [10, 1, 1, "c.fp_celu_s", "output"]], "fp_clip_p": [[10, 1, 1, "c.fp_clip_p", "Input0"], [10, 1, 1, "c.fp_clip_p", "length"], [10, 1, 1, "c.fp_clip_p", "max_val"], [10, 1, 1, "c.fp_clip_p", "min_val"], [10, 1, 1, "c.fp_clip_p", "output"]], "fp_clip_s": [[10, 1, 1, "c.fp_clip_s", "Input0"], [10, 1, 1, "c.fp_clip_s", "core_mask"], [10, 1, 1, "c.fp_clip_s", "length"], [10, 1, 1, "c.fp_clip_s", "max_val"], [10, 1, 1, "c.fp_clip_s", "min_val"], [10, 1, 1, "c.fp_clip_s", "output"]], "fp_conv2d_p": [[20, 1, 1, "c.fp_conv2d_p", "bias"], [20, 1, 1, "c.fp_conv2d_p", "conv_param"], [20, 1, 1, "c.fp_conv2d_p", "core_mask"], [20, 1, 1, "c.fp_conv2d_p", "input_w"], [20, 1, 1, "c.fp_conv2d_p", "input_x"], [20, 1, 1, "c.fp_conv2d_p", "out_y"]], "fp_conv2d_s": [[20, 1, 1, "c.fp_conv2d_s", "bias"], [20, 1, 1, "c.fp_conv2d_s", "conv_param"], [20, 1, 1, "c.fp_conv2d_s", "core_mask"], [20, 1, 1, "c.fp_conv2d_s", "input_w"], [20, 1, 1, "c.fp_conv2d_s", "input_x"], [20, 1, 1, "c.fp_conv2d_s", "out_y"]], "fp_conv2dbackpropfilterfusion_p": [[22, 1, 1, "c.fp_conv2dbackpropfilterfusion_p", "conv_param"], [22, 1, 1, "c.fp_conv2dbackpropfilterfusion_p", "dw"], [22, 1, 1, "c.fp_conv2dbackpropfilterfusion_p", "dy"], [22, 1, 1, "c.fp_conv2dbackpropfilterfusion_p", "x"]], "fp_conv2dbackpropfilterfusion_s": [[22, 1, 1, "c.fp_conv2dbackpropfilterfusion_s", "conv_param"], [22, 1, 1, "c.fp_conv2dbackpropfilterfusion_s", "core_mask"], [22, 1, 1, "c.fp_conv2dbackpropfilterfusion_s", "dw"], [22, 1, 1, "c.fp_conv2dbackpropfilterfusion_s", "dy"], [22, 1, 1, "c.fp_conv2dbackpropfilterfusion_s", "x"]], "fp_conv2dbackpropinputfusion_p": [[23, 1, 1, "c.fp_conv2dbackpropinputfusion_p", "conv_param"], [23, 1, 1, "c.fp_conv2dbackpropinputfusion_p", "dx"], [23, 1, 1, "c.fp_conv2dbackpropinputfusion_p", "dy"], [23, 1, 1, "c.fp_conv2dbackpropinputfusion_p", "w"]], "fp_conv2dbackpropinputfusion_s": [[23, 1, 1, "c.fp_conv2dbackpropinputfusion_s", "conv_param"], [23, 1, 1, "c.fp_conv2dbackpropinputfusion_s", "core_mask"], [23, 1, 1, "c.fp_conv2dbackpropinputfusion_s", "dx"], [23, 1, 1, "c.fp_conv2dbackpropinputfusion_s", "dy"], [23, 1, 1, "c.fp_conv2dbackpropinputfusion_s", "w"]], "fp_convtranspose_p": [[21, 1, 1, "c.fp_convtranspose_p", "bias"], [21, 1, 1, "c.fp_convtranspose_p", "conv_param"], [21, 1, 1, "c.fp_convtranspose_p", "core_mask"], [21, 1, 1, "c.fp_convtranspose_p", "input_w"], [21, 1, 1, "c.fp_convtranspose_p", "input_x"], [21, 1, 1, "c.fp_convtranspose_p", "out_y"]], "fp_convtranspose_s": [[21, 1, 1, "c.fp_convtranspose_s", "bias"], [21, 1, 1, "c.fp_convtranspose_s", "conv_param"], [21, 1, 1, "c.fp_convtranspose_s", "core_mask"], [21, 1, 1, "c.fp_convtranspose_s", "input_w"], [21, 1, 1, "c.fp_convtranspose_s", "input_x"], [21, 1, 1, "c.fp_convtranspose_s", "out_y"]], "fp_crop_and_resize_anycore": [[25, 1, 1, "c.fp_crop_and_resize_anycore", "box_idx"], [25, 1, 1, "c.fp_crop_and_resize_anycore", "boxes"], [25, 1, 1, "c.fp_crop_and_resize_anycore", "core_mask"], [25, 1, 1, "c.fp_crop_and_resize_anycore", "dst"], [25, 1, 1, "c.fp_crop_and_resize_anycore", "extrapolation_value"], [25, 1, 1, "c.fp_crop_and_resize_anycore", "param"], [25, 1, 1, "c.fp_crop_and_resize_anycore", "src"]], "fp_depthtospace_p": [[26, 1, 1, "c.fp_depthtospace_p", "block_size"], [26, 1, 1, "c.fp_depthtospace_p", "data_size"], [26, 1, 1, "c.fp_depthtospace_p", "in_shape"], [26, 1, 1, "c.fp_depthtospace_p", "input"], [26, 1, 1, "c.fp_depthtospace_p", "output"]], "fp_depthtospace_s": [[26, 1, 1, "c.fp_depthtospace_s", "block_size"], [26, 1, 1, "c.fp_depthtospace_s", "core_mask"], [26, 1, 1, "c.fp_depthtospace_s", "data_size"], [26, 1, 1, "c.fp_depthtospace_s", "in_shape"], [26, 1, 1, "c.fp_depthtospace_s", "input"], [26, 1, 1, "c.fp_depthtospace_s", "output"]], "fp_eltwise_p": [[28, 1, 1, "c.fp_eltwise_p", "Input0"], [28, 1, 1, "c.fp_eltwise_p", "Input1"], [28, 1, 1, "c.fp_eltwise_p", "eltwise_mode_"], [28, 1, 1, "c.fp_eltwise_p", "length"], [28, 1, 1, "c.fp_eltwise_p", "output"]], "fp_eltwise_s": [[28, 1, 1, "c.fp_eltwise_s", "Input0"], [28, 1, 1, "c.fp_eltwise_s", "Input1"], [28, 1, 1, "c.fp_eltwise_s", "core_mask"], [28, 1, 1, "c.fp_eltwise_s", "eltwise_mode_"], [28, 1, 1, "c.fp_eltwise_s", "length"], [28, 1, 1, "c.fp_eltwise_s", "output"]], "fp_elu_p": [[10, 1, 1, "c.fp_elu_p", "Input0"], [10, 1, 1, "c.fp_elu_p", "alpha"], [10, 1, 1, "c.fp_elu_p", "length"], [10, 1, 1, "c.fp_elu_p", "output"]], "fp_elu_s": [[10, 1, 1, "c.fp_elu_s", "Input0"], [10, 1, 1, "c.fp_elu_s", "alpha"], [10, 1, 1, "c.fp_elu_s", "core_mask"], [10, 1, 1, "c.fp_elu_s", "length"], [10, 1, 1, "c.fp_elu_s", "output"]], "fp_embeddinglookup_p": [[29, 1, 1, "c.fp_embeddinglookup_p", "Input0"], [29, 1, 1, "c.fp_embeddinglookup_p", "Input1"], [29, 1, 1, "c.fp_embeddinglookup_p", "length"], [29, 1, 1, "c.fp_embeddinglookup_p", "output"]], "fp_embeddinglookup_s": [[29, 1, 1, "c.fp_embeddinglookup_s", "core_mask"], [29, 1, 1, "c.fp_embeddinglookup_s", "ids"], [29, 1, 1, "c.fp_embeddinglookup_s", "ids_size_"], [29, 1, 1, "c.fp_embeddinglookup_s", "input_data"], [29, 1, 1, "c.fp_embeddinglookup_s", "is_regulated"], [29, 1, 1, "c.fp_embeddinglookup_s", "layer_num_"], [29, 1, 1, "c.fp_embeddinglookup_s", "layer_size_"], [29, 1, 1, "c.fp_embeddinglookup_s", "max_norm_"], [29, 1, 1, "c.fp_embeddinglookup_s", "output"]], "fp_equal_p": [[30, 1, 1, "c.fp_equal_p", "Input0"], [30, 1, 1, "c.fp_equal_p", "Input1"], [30, 1, 1, "c.fp_equal_p", "length"], [30, 1, 1, "c.fp_equal_p", "output"]], "fp_equal_s": [[30, 1, 1, "c.fp_equal_s", "Input0"], [30, 1, 1, "c.fp_equal_s", "Input1"], [30, 1, 1, "c.fp_equal_s", "core_mask"], [30, 1, 1, "c.fp_equal_s", "length"], [30, 1, 1, "c.fp_equal_s", "output"]], "fp_expfusion_p": [[32, 1, 1, "c.fp_expfusion_p", "dst_data"], [32, 1, 1, "c.fp_expfusion_p", "in_scale"], [32, 1, 1, "c.fp_expfusion_p", "length"], [32, 1, 1, "c.fp_expfusion_p", "out_scale"], [32, 1, 1, "c.fp_expfusion_p", "scale"], [32, 1, 1, "c.fp_expfusion_p", "src_data"]], "fp_expfusion_s": [[32, 1, 1, "c.fp_expfusion_s", "core_mask"], [32, 1, 1, "c.fp_expfusion_s", "dst_data"], [32, 1, 1, "c.fp_expfusion_s", "in_scale"], [32, 1, 1, "c.fp_expfusion_s", "length"], [32, 1, 1, "c.fp_expfusion_s", "out_scale"], [32, 1, 1, "c.fp_expfusion_s", "scale"], [32, 1, 1, "c.fp_expfusion_s", "src_data"]], "fp_floor_p": [[34, 1, 1, "c.fp_floor_p", "dst_data"], [34, 1, 1, "c.fp_floor_p", "length"], [34, 1, 1, "c.fp_floor_p", "src_data"]], "fp_floor_s": [[34, 1, 1, "c.fp_floor_s", "core_mask"], [34, 1, 1, "c.fp_floor_s", "dst_data"], [34, 1, 1, "c.fp_floor_s", "length"], [34, 1, 1, "c.fp_floor_s", "src_data"]], "fp_floordiv_p": [[35, 1, 1, "c.fp_floordiv_p", "dst_data"], [35, 1, 1, "c.fp_floordiv_p", "length"], [35, 1, 1, "c.fp_floordiv_p", "src_data0"], [35, 1, 1, "c.fp_floordiv_p", "src_data1"]], "fp_floordiv_s": [[35, 1, 1, "c.fp_floordiv_s", "core_mask"], [35, 1, 1, "c.fp_floordiv_s", "dst_data"], [35, 1, 1, "c.fp_floordiv_s", "length"], [35, 1, 1, "c.fp_floordiv_s", "src_data0"], [35, 1, 1, "c.fp_floordiv_s", "src_data1"]], "fp_fusedbatchnorm_p": [[36, 1, 1, "c.fp_fusedbatchnorm_p", "channel"], [36, 1, 1, "c.fp_fusedbatchnorm_p", "epsilon"], [36, 1, 1, "c.fp_fusedbatchnorm_p", "input"], [36, 1, 1, "c.fp_fusedbatchnorm_p", "mean"], [36, 1, 1, "c.fp_fusedbatchnorm_p", "offset"], [36, 1, 1, "c.fp_fusedbatchnorm_p", "output"], [36, 1, 1, "c.fp_fusedbatchnorm_p", "scale"], [36, 1, 1, "c.fp_fusedbatchnorm_p", "unit"], [36, 1, 1, "c.fp_fusedbatchnorm_p", "variance"]], "fp_fusedbatchnorm_s": [[36, 1, 1, "c.fp_fusedbatchnorm_s", "channel"], [36, 1, 1, "c.fp_fusedbatchnorm_s", "core_mask"], [36, 1, 1, "c.fp_fusedbatchnorm_s", "epsilon"], [36, 1, 1, "c.fp_fusedbatchnorm_s", "input"], [36, 1, 1, "c.fp_fusedbatchnorm_s", "mean"], [36, 1, 1, "c.fp_fusedbatchnorm_s", "offset"], [36, 1, 1, "c.fp_fusedbatchnorm_s", "output"], [36, 1, 1, "c.fp_fusedbatchnorm_s", "scale"], [36, 1, 1, "c.fp_fusedbatchnorm_s", "unit"], [36, 1, 1, "c.fp_fusedbatchnorm_s", "variance"]], "fp_gelu_p": [[10, 1, 1, "c.fp_gelu_p", "Input0"], [10, 1, 1, "c.fp_gelu_p", "approximate"], [10, 1, 1, "c.fp_gelu_p", "length"], [10, 1, 1, "c.fp_gelu_p", "output"]], "fp_gelu_s": [[10, 1, 1, "c.fp_gelu_s", "Input0"], [10, 1, 1, "c.fp_gelu_s", "approximate"], [10, 1, 1, "c.fp_gelu_s", "core_mask"], [10, 1, 1, "c.fp_gelu_s", "length"], [10, 1, 1, "c.fp_gelu_s", "output"]], "fp_groupnormfusion_p": [[37, 1, 1, "c.fp_groupnormfusion_p", "batch"], [37, 1, 1, "c.fp_groupnormfusion_p", "channel"], [37, 1, 1, "c.fp_groupnormfusion_p", "epsilon"], [37, 1, 1, "c.fp_groupnormfusion_p", "input"], [37, 1, 1, "c.fp_groupnormfusion_p", "mean"], [37, 1, 1, "c.fp_groupnormfusion_p", "num_groups"], [37, 1, 1, "c.fp_groupnormfusion_p", "offset"], [37, 1, 1, "c.fp_groupnormfusion_p", "output"], [37, 1, 1, "c.fp_groupnormfusion_p", "scale"], [37, 1, 1, "c.fp_groupnormfusion_p", "unit"], [37, 1, 1, "c.fp_groupnormfusion_p", "variance"]], "fp_groupnormfusion_s": [[37, 1, 1, "c.fp_groupnormfusion_s", "batch"], [37, 1, 1, "c.fp_groupnormfusion_s", "channel"], [37, 1, 1, "c.fp_groupnormfusion_s", "core_mask"], [37, 1, 1, "c.fp_groupnormfusion_s", "epsilon"], [37, 1, 1, "c.fp_groupnormfusion_s", "input"], [37, 1, 1, "c.fp_groupnormfusion_s", "mean"], [37, 1, 1, "c.fp_groupnormfusion_s", "num_groups"], [37, 1, 1, "c.fp_groupnormfusion_s", "offset"], [37, 1, 1, "c.fp_groupnormfusion_s", "output"], [37, 1, 1, "c.fp_groupnormfusion_s", "scale"], [37, 1, 1, "c.fp_groupnormfusion_s", "unit"], [37, 1, 1, "c.fp_groupnormfusion_s", "variance"]], "fp_hardshrink_p": [[10, 1, 1, "c.fp_hardshrink_p", "Input0"], [10, 1, 1, "c.fp_hardshrink_p", "lambd"], [10, 1, 1, "c.fp_hardshrink_p", "length"], [10, 1, 1, "c.fp_hardshrink_p", "output"]], "fp_hardshrink_s": [[10, 1, 1, "c.fp_hardshrink_s", "Input0"], [10, 1, 1, "c.fp_hardshrink_s", "core_mask"], [10, 1, 1, "c.fp_hardshrink_s", "lambd"], [10, 1, 1, "c.fp_hardshrink_s", "length"], [10, 1, 1, "c.fp_hardshrink_s", "output"]], "fp_hardtanh_p": [[10, 1, 1, "c.fp_hardtanh_p", "Input0"], [10, 1, 1, "c.fp_hardtanh_p", "length"], [10, 1, 1, "c.fp_hardtanh_p", "max_val"], [10, 1, 1, "c.fp_hardtanh_p", "min_val"], [10, 1, 1, "c.fp_hardtanh_p", "output"]], "fp_hardtanh_s": [[10, 1, 1, "c.fp_hardtanh_s", "Input0"], [10, 1, 1, "c.fp_hardtanh_s", "core_mask"], [10, 1, 1, "c.fp_hardtanh_s", "length"], [10, 1, 1, "c.fp_hardtanh_s", "max_val"], [10, 1, 1, "c.fp_hardtanh_s", "min_val"], [10, 1, 1, "c.fp_hardtanh_s", "output"]], "fp_hsigmoid_p": [[10, 1, 1, "c.fp_hsigmoid_p", "Input0"], [10, 1, 1, "c.fp_hsigmoid_p", "length"], [10, 1, 1, "c.fp_hsigmoid_p", "output"]], "fp_hsigmoid_s": [[10, 1, 1, "c.fp_hsigmoid_s", "Input0"], [10, 1, 1, "c.fp_hsigmoid_s", "core_mask"], [10, 1, 1, "c.fp_hsigmoid_s", "length"], [10, 1, 1, "c.fp_hsigmoid_s", "output"]], "fp_hswish_p": [[10, 1, 1, "c.fp_hswish_p", "Input0"], [10, 1, 1, "c.fp_hswish_p", "length"], [10, 1, 1, "c.fp_hswish_p", "output"]], "fp_hswish_s": [[10, 1, 1, "c.fp_hswish_s", "Input0"], [10, 1, 1, "c.fp_hswish_s", "core_mask"], [10, 1, 1, "c.fp_hswish_s", "length"], [10, 1, 1, "c.fp_hswish_s", "output"]], "fp_leaky_relu_p": [[39, 1, 1, "c.fp_leaky_relu_p", "alpha"], [39, 1, 1, "c.fp_leaky_relu_p", "core_mask"], [39, 1, 1, "c.fp_leaky_relu_p", "elem_cnt"], [39, 1, 1, "c.fp_leaky_relu_p", "input"], [39, 1, 1, "c.fp_leaky_relu_p", "output"]], "fp_leaky_relu_s": [[39, 1, 1, "c.fp_leaky_relu_s", "alpha"], [39, 1, 1, "c.fp_leaky_relu_s", "core_mask"], [39, 1, 1, "c.fp_leaky_relu_s", "elem_cnt"], [39, 1, 1, "c.fp_leaky_relu_s", "input"], [39, 1, 1, "c.fp_leaky_relu_s", "output"]], "fp_linspace_p": [[40, 1, 1, "c.fp_linspace_p", "num"], [40, 1, 1, "c.fp_linspace_p", "output"], [40, 1, 1, "c.fp_linspace_p", "start"], [40, 1, 1, "c.fp_linspace_p", "step"]], "fp_linspace_s": [[40, 1, 1, "c.fp_linspace_s", "core_mask"], [40, 1, 1, "c.fp_linspace_s", "end"], [40, 1, 1, "c.fp_linspace_s", "length"], [40, 1, 1, "c.fp_linspace_s", "output"], [40, 1, 1, "c.fp_linspace_s", "start"]], "fp_lrelu_p": [[10, 1, 1, "c.fp_lrelu_p", "Input0"], [10, 1, 1, "c.fp_lrelu_p", "alpha"], [10, 1, 1, "c.fp_lrelu_p", "length"], [10, 1, 1, "c.fp_lrelu_p", "output"]], "fp_lrelu_s": [[10, 1, 1, "c.fp_lrelu_s", "Input0"], [10, 1, 1, "c.fp_lrelu_s", "alpha"], [10, 1, 1, "c.fp_lrelu_s", "core_mask"], [10, 1, 1, "c.fp_lrelu_s", "length"], [10, 1, 1, "c.fp_lrelu_s", "output"]], "fp_matmulfusion_p": [[42, 1, 1, "c.fp_matmulfusion_p", "A"], [42, 1, 1, "c.fp_matmulfusion_p", "B"], [42, 1, 1, "c.fp_matmulfusion_p", "C"], [42, 1, 1, "c.fp_matmulfusion_p", "K"], [42, 1, 1, "c.fp_matmulfusion_p", "M"], [42, 1, 1, "c.fp_matmulfusion_p", "N"], [42, 1, 1, "c.fp_matmulfusion_p", "activation_type"], [42, 1, 1, "c.fp_matmulfusion_p", "bias"]], "fp_matmulfusion_s": [[42, 1, 1, "c.fp_matmulfusion_s", "A"], [42, 1, 1, "c.fp_matmulfusion_s", "B"], [42, 1, 1, "c.fp_matmulfusion_s", "C"], [42, 1, 1, "c.fp_matmulfusion_s", "K"], [42, 1, 1, "c.fp_matmulfusion_s", "M"], [42, 1, 1, "c.fp_matmulfusion_s", "N"], [42, 1, 1, "c.fp_matmulfusion_s", "activation_type"], [42, 1, 1, "c.fp_matmulfusion_s", "bias"], [42, 1, 1, "c.fp_matmulfusion_s", "core_mask"]], "fp_raggedrange_p": [[43, 1, 1, "c.fp_raggedrange_p", "deltas"], [43, 1, 1, "c.fp_raggedrange_p", "limits"], [43, 1, 1, "c.fp_raggedrange_p", "range_count"], [43, 1, 1, "c.fp_raggedrange_p", "splits"], [43, 1, 1, "c.fp_raggedrange_p", "starts"], [43, 1, 1, "c.fp_raggedrange_p", "values"]], "fp_raggedrange_s": [[43, 1, 1, "c.fp_raggedrange_s", "core_mask"], [43, 1, 1, "c.fp_raggedrange_s", "deltas"], [43, 1, 1, "c.fp_raggedrange_s", "limits"], [43, 1, 1, "c.fp_raggedrange_s", "range_count"], [43, 1, 1, "c.fp_raggedrange_s", "splits"], [43, 1, 1, "c.fp_raggedrange_s", "starts"], [43, 1, 1, "c.fp_raggedrange_s", "values"]], "fp_range_p": [[44, 1, 1, "c.fp_range_p", "delta"], [44, 1, 1, "c.fp_range_p", "length"], [44, 1, 1, "c.fp_range_p", "output"], [44, 1, 1, "c.fp_range_p", "start"]], "fp_range_s": [[44, 1, 1, "c.fp_range_s", "core_mask"], [44, 1, 1, "c.fp_range_s", "delta"], [44, 1, 1, "c.fp_range_s", "length"], [44, 1, 1, "c.fp_range_s", "output"], [44, 1, 1, "c.fp_range_s", "start"]], "fp_reduce_p": [[45, 1, 1, "c.fp_reduce_p", "core_mask"], [45, 1, 1, "c.fp_reduce_p", "dst_data"], [45, 1, 1, "c.fp_reduce_p", "param"], [45, 1, 1, "c.fp_reduce_p", "src_data"], [45, 1, 1, "c.fp_reduce_p", "tmp_dst_data"], [45, 1, 1, "c.fp_reduce_p", "tmp_src_data"]], "fp_reduce_s": [[45, 1, 1, "c.fp_reduce_s", "core_mask"], [45, 1, 1, "c.fp_reduce_s", "dst_data"], [45, 1, 1, "c.fp_reduce_s", "param"], [45, 1, 1, "c.fp_reduce_s", "src_data"]], "fp_relu6_p": [[10, 1, 1, "c.fp_relu6_p", "Input0"], [10, 1, 1, "c.fp_relu6_p", "length"], [10, 1, 1, "c.fp_relu6_p", "output"]], "fp_relu6_s": [[10, 1, 1, "c.fp_relu6_s", "Input0"], [10, 1, 1, "c.fp_relu6_s", "core_mask"], [10, 1, 1, "c.fp_relu6_s", "length"], [10, 1, 1, "c.fp_relu6_s", "output"]], "fp_relu_p": [[10, 1, 1, "c.fp_relu_p", "Input0"], [10, 1, 1, "c.fp_relu_p", "length"], [10, 1, 1, "c.fp_relu_p", "output"]], "fp_relu_s": [[10, 1, 1, "c.fp_relu_s", "Input0"], [10, 1, 1, "c.fp_relu_s", "core_mask"], [10, 1, 1, "c.fp_relu_s", "length"], [10, 1, 1, "c.fp_relu_s", "output"]], "fp_resize_anycore": [[46, 1, 1, "c.fp_resize_anycore", "core_mask"], [46, 1, 1, "c.fp_resize_anycore", "input"], [46, 1, 1, "c.fp_resize_anycore", "output"], [46, 1, 1, "c.fp_resize_anycore", "param"]], "fp_scalefusion_p": [[49, 1, 1, "c.fp_scalefusion_p", "bias"], [49, 1, 1, "c.fp_scalefusion_p", "dst_data"], [49, 1, 1, "c.fp_scalefusion_p", "length"], [49, 1, 1, "c.fp_scalefusion_p", "scale"], [49, 1, 1, "c.fp_scalefusion_p", "src_data"]], "fp_scalefusion_s": [[49, 1, 1, "c.fp_scalefusion_s", "bias"], [49, 1, 1, "c.fp_scalefusion_s", "core_mask"], [49, 1, 1, "c.fp_scalefusion_s", "dst_data"], [49, 1, 1, "c.fp_scalefusion_s", "length"], [49, 1, 1, "c.fp_scalefusion_s", "scale"], [49, 1, 1, "c.fp_scalefusion_s", "src_data"]], "fp_scatter_elements_p": [[50, 1, 1, "c.fp_scatter_elements_p", "core_mask"], [50, 1, 1, "c.fp_scatter_elements_p", "indices"], [50, 1, 1, "c.fp_scatter_elements_p", "input"], [50, 1, 1, "c.fp_scatter_elements_p", "output"], [50, 1, 1, "c.fp_scatter_elements_p", "param"], [50, 1, 1, "c.fp_scatter_elements_p", "updates"]], "fp_scatter_elements_s": [[50, 1, 1, "c.fp_scatter_elements_s", "core_mask"], [50, 1, 1, "c.fp_scatter_elements_s", "indices"], [50, 1, 1, "c.fp_scatter_elements_s", "input"], [50, 1, 1, "c.fp_scatter_elements_s", "output"], [50, 1, 1, "c.fp_scatter_elements_s", "param"], [50, 1, 1, "c.fp_scatter_elements_s", "updates"]], "fp_sgd_p": [[51, 1, 1, "c.fp_sgd_p", "accumulate"], [51, 1, 1, "c.fp_sgd_p", "dampening"], [51, 1, 1, "c.fp_sgd_p", "gradient"], [51, 1, 1, "c.fp_sgd_p", "learning_rate"], [51, 1, 1, "c.fp_sgd_p", "length"], [51, 1, 1, "c.fp_sgd_p", "moment"], [51, 1, 1, "c.fp_sgd_p", "nesterov"], [51, 1, 1, "c.fp_sgd_p", "weight"], [51, 1, 1, "c.fp_sgd_p", "weight_decay"]], "fp_sgd_s": [[51, 1, 1, "c.fp_sgd_s", "accumulate"], [51, 1, 1, "c.fp_sgd_s", "core_mask"], [51, 1, 1, "c.fp_sgd_s", "dampening"], [51, 1, 1, "c.fp_sgd_s", "end"], [51, 1, 1, "c.fp_sgd_s", "gradient"], [51, 1, 1, "c.fp_sgd_s", "learning_rate"], [51, 1, 1, "c.fp_sgd_s", "moment"], [51, 1, 1, "c.fp_sgd_s", "nesterov"], [51, 1, 1, "c.fp_sgd_s", "start"], [51, 1, 1, "c.fp_sgd_s", "weight"], [51, 1, 1, "c.fp_sgd_s", "weight_decay"]], "fp_sigmoid_p": [[10, 1, 1, "c.fp_sigmoid_p", "Input0"], [10, 1, 1, "c.fp_sigmoid_p", "length"], [10, 1, 1, "c.fp_sigmoid_p", "output"]], "fp_sigmoid_s": [[10, 1, 1, "c.fp_sigmoid_s", "Input0"], [10, 1, 1, "c.fp_sigmoid_s", "core_mask"], [10, 1, 1, "c.fp_sigmoid_s", "length"], [10, 1, 1, "c.fp_sigmoid_s", "output"]], "fp_softplus_p": [[10, 1, 1, "c.fp_softplus_p", "Input0"], [10, 1, 1, "c.fp_softplus_p", "length"], [10, 1, 1, "c.fp_softplus_p", "output"]], "fp_softplus_s": [[10, 1, 1, "c.fp_softplus_s", "Input0"], [10, 1, 1, "c.fp_softplus_s", "core_mask"], [10, 1, 1, "c.fp_softplus_s", "length"], [10, 1, 1, "c.fp_softplus_s", "output"]], "fp_softshrink_p": [[10, 1, 1, "c.fp_softshrink_p", "Input0"], [10, 1, 1, "c.fp_softshrink_p", "lambd"], [10, 1, 1, "c.fp_softshrink_p", "length"], [10, 1, 1, "c.fp_softshrink_p", "output"]], "fp_softshrink_s": [[10, 1, 1, "c.fp_softshrink_s", "Input0"], [10, 1, 1, "c.fp_softshrink_s", "core_mask"], [10, 1, 1, "c.fp_softshrink_s", "lambd"], [10, 1, 1, "c.fp_softshrink_s", "length"], [10, 1, 1, "c.fp_softshrink_s", "output"]], "fp_softsignopt_p": [[10, 1, 1, "c.fp_softsignopt_p", "Input0"], [10, 1, 1, "c.fp_softsignopt_p", "length"], [10, 1, 1, "c.fp_softsignopt_p", "output"]], "fp_softsignopt_s": [[10, 1, 1, "c.fp_softsignopt_s", "Input0"], [10, 1, 1, "c.fp_softsignopt_s", "core_mask"], [10, 1, 1, "c.fp_softsignopt_s", "length"], [10, 1, 1, "c.fp_softsignopt_s", "output"]], "fp_spacetobatch_p": [[52, 1, 1, "c.fp_spacetobatch_p", "block_size"], [52, 1, 1, "c.fp_spacetobatch_p", "data_size"], [52, 1, 1, "c.fp_spacetobatch_p", "input"], [52, 1, 1, "c.fp_spacetobatch_p", "input_shape"], [52, 1, 1, "c.fp_spacetobatch_p", "output"], [52, 1, 1, "c.fp_spacetobatch_p", "paddings"]], "fp_spacetobatch_s": [[52, 1, 1, "c.fp_spacetobatch_s", "block_size"], [52, 1, 1, "c.fp_spacetobatch_s", "core_mask"], [52, 1, 1, "c.fp_spacetobatch_s", "data_size"], [52, 1, 1, "c.fp_spacetobatch_s", "input"], [52, 1, 1, "c.fp_spacetobatch_s", "input_shape"], [52, 1, 1, "c.fp_spacetobatch_s", "output"], [52, 1, 1, "c.fp_spacetobatch_s", "paddings"]], "fp_spacetobatchnd_p": [[53, 1, 1, "c.fp_spacetobatchnd_p", "block_size"], [53, 1, 1, "c.fp_spacetobatchnd_p", "data_size"], [53, 1, 1, "c.fp_spacetobatchnd_p", "input"], [53, 1, 1, "c.fp_spacetobatchnd_p", "input_shape"], [53, 1, 1, "c.fp_spacetobatchnd_p", "output"], [53, 1, 1, "c.fp_spacetobatchnd_p", "paddings"]], "fp_spacetobatchnd_s": [[53, 1, 1, "c.fp_spacetobatchnd_s", "block_size"], [53, 1, 1, "c.fp_spacetobatchnd_s", "core_mask"], [53, 1, 1, "c.fp_spacetobatchnd_s", "data_size"], [53, 1, 1, "c.fp_spacetobatchnd_s", "input"], [53, 1, 1, "c.fp_spacetobatchnd_s", "input_shape"], [53, 1, 1, "c.fp_spacetobatchnd_s", "output"], [53, 1, 1, "c.fp_spacetobatchnd_s", "paddings"]], "fp_spacetodepth_p": [[54, 1, 1, "c.fp_spacetodepth_p", "block"], [54, 1, 1, "c.fp_spacetodepth_p", "data_size"], [54, 1, 1, "c.fp_spacetodepth_p", "in_shape"], [54, 1, 1, "c.fp_spacetodepth_p", "input"], [54, 1, 1, "c.fp_spacetodepth_p", "output"]], "fp_spacetodepth_s": [[54, 1, 1, "c.fp_spacetodepth_s", "block"], [54, 1, 1, "c.fp_spacetodepth_s", "core_mask"], [54, 1, 1, "c.fp_spacetodepth_s", "data_size"], [54, 1, 1, "c.fp_spacetodepth_s", "in_shape"], [54, 1, 1, "c.fp_spacetodepth_s", "input"], [54, 1, 1, "c.fp_spacetodepth_s", "output"]], "fp_swish_p": [[10, 1, 1, "c.fp_swish_p", "Input0"], [10, 1, 1, "c.fp_swish_p", "length"], [10, 1, 1, "c.fp_swish_p", "output"]], "fp_swish_s": [[10, 1, 1, "c.fp_swish_s", "Input0"], [10, 1, 1, "c.fp_swish_s", "core_mask"], [10, 1, 1, "c.fp_swish_s", "length"], [10, 1, 1, "c.fp_swish_s", "output"]], "fp_tanh_p": [[10, 1, 1, "c.fp_tanh_p", "Input0"], [10, 1, 1, "c.fp_tanh_p", "length"], [10, 1, 1, "c.fp_tanh_p", "output"]], "fp_tanh_s": [[10, 1, 1, "c.fp_tanh_s", "Input0"], [10, 1, 1, "c.fp_tanh_s", "core_mask"], [10, 1, 1, "c.fp_tanh_s", "length"], [10, 1, 1, "c.fp_tanh_s", "output"]], "hp_Gru_p": [[38, 1, 1, "c.hp_Gru_p", "buffer"], [38, 1, 1, "c.hp_Gru_p", "core_mask"], [38, 1, 1, "c.hp_Gru_p", "gru_param"], [38, 1, 1, "c.hp_Gru_p", "hidden_state"], [38, 1, 1, "c.hp_Gru_p", "input"], [38, 1, 1, "c.hp_Gru_p", "input_bias"], [38, 1, 1, "c.hp_Gru_p", "output"], [38, 1, 1, "c.hp_Gru_p", "state_bias"], [38, 1, 1, "c.hp_Gru_p", "weight_g"], [38, 1, 1, "c.hp_Gru_p", "weight_r"]], "hp_Gru_s": [[38, 1, 1, "c.hp_Gru_s", "buffer"], [38, 1, 1, "c.hp_Gru_s", "core_mask"], [38, 1, 1, "c.hp_Gru_s", "gru_param"], [38, 1, 1, "c.hp_Gru_s", "hidden_state"], [38, 1, 1, "c.hp_Gru_s", "input"], [38, 1, 1, "c.hp_Gru_s", "input_bias"], [38, 1, 1, "c.hp_Gru_s", "output"], [38, 1, 1, "c.hp_Gru_s", "state_bias"], [38, 1, 1, "c.hp_Gru_s", "weight_g"], [38, 1, 1, "c.hp_Gru_s", "weight_r"]], "hp_adamweightdecay_p": [[11, 1, 1, "c.hp_adamweightdecay_p", "beta1"], [11, 1, 1, "c.hp_adamweightdecay_p", "beta2"], [11, 1, 1, "c.hp_adamweightdecay_p", "decay"], [11, 1, 1, "c.hp_adamweightdecay_p", "epsilon"], [11, 1, 1, "c.hp_adamweightdecay_p", "gradient"], [11, 1, 1, "c.hp_adamweightdecay_p", "length"], [11, 1, 1, "c.hp_adamweightdecay_p", "lr"], [11, 1, 1, "c.hp_adamweightdecay_p", "m"], [11, 1, 1, "c.hp_adamweightdecay_p", "v"], [11, 1, 1, "c.hp_adamweightdecay_p", "var"]], "hp_adamweightdecay_s": [[11, 1, 1, "c.hp_adamweightdecay_s", "beta1"], [11, 1, 1, "c.hp_adamweightdecay_s", "beta2"], [11, 1, 1, "c.hp_adamweightdecay_s", "core_mask"], [11, 1, 1, "c.hp_adamweightdecay_s", "decay"], [11, 1, 1, "c.hp_adamweightdecay_s", "end"], [11, 1, 1, "c.hp_adamweightdecay_s", "epsilon"], [11, 1, 1, "c.hp_adamweightdecay_s", "gradient"], [11, 1, 1, "c.hp_adamweightdecay_s", "lr"], [11, 1, 1, "c.hp_adamweightdecay_s", "m"], [11, 1, 1, "c.hp_adamweightdecay_s", "start"], [11, 1, 1, "c.hp_adamweightdecay_s", "v"], [11, 1, 1, "c.hp_adamweightdecay_s", "var"]], "hp_adder_p": [[12, 1, 1, "c.hp_adder_p", "bias"], [12, 1, 1, "c.hp_adder_p", "conv_param"], [12, 1, 1, "c.hp_adder_p", "core_mask"], [12, 1, 1, "c.hp_adder_p", "input_w"], [12, 1, 1, "c.hp_adder_p", "input_x"], [12, 1, 1, "c.hp_adder_p", "out_y"]], "hp_adder_s": [[12, 1, 1, "c.hp_adder_s", "bias"], [12, 1, 1, "c.hp_adder_s", "core_mask"], [12, 1, 1, "c.hp_adder_s", "input_w"], [12, 1, 1, "c.hp_adder_s", "input_x"], [12, 1, 1, "c.hp_adder_s", "out_y"], [12, 1, 1, "c.hp_adder_s", "param"]], "hp_applymomentum_p": [[13, 1, 1, "c.hp_applymomentum_p", "accumulate"], [13, 1, 1, "c.hp_applymomentum_p", "gradient"], [13, 1, 1, "c.hp_applymomentum_p", "learning_rate"], [13, 1, 1, "c.hp_applymomentum_p", "length"], [13, 1, 1, "c.hp_applymomentum_p", "moment"], [13, 1, 1, "c.hp_applymomentum_p", "nesterov"], [13, 1, 1, "c.hp_applymomentum_p", "weight"]], "hp_applymomentum_s": [[13, 1, 1, "c.hp_applymomentum_s", "accumulate"], [13, 1, 1, "c.hp_applymomentum_s", "core_mask"], [13, 1, 1, "c.hp_applymomentum_s", "end"], [13, 1, 1, "c.hp_applymomentum_s", "gradient"], [13, 1, 1, "c.hp_applymomentum_s", "learning_rate"], [13, 1, 1, "c.hp_applymomentum_s", "moment"], [13, 1, 1, "c.hp_applymomentum_s", "nesterov"], [13, 1, 1, "c.hp_applymomentum_s", "start"], [13, 1, 1, "c.hp_applymomentum_s", "weight"]], "hp_avgpoolinggrad_p": [[16, 1, 1, "c.hp_avgpoolinggrad_p", "batch"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "channel"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "end_idx"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "input"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "input_h"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "input_w"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "output"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "output_h"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "output_w"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "pad_l"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "pad_u"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "start_idx"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "stride_h"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "stride_w"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "window_h"], [16, 1, 1, "c.hp_avgpoolinggrad_p", "window_w"]], "hp_avgpoolinggrad_s": [[16, 1, 1, "c.hp_avgpoolinggrad_s", "batch"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "channel"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "core_mask"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "input"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "input_h"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "input_w"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "output"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "output_h"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "output_w"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "pad_l"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "pad_u"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "stride_h"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "stride_w"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "window_h"], [16, 1, 1, "c.hp_avgpoolinggrad_s", "window_w"]], "hp_batchtospace_p": [[17, 1, 1, "c.hp_batchtospace_p", "block_size"], [17, 1, 1, "c.hp_batchtospace_p", "crops"], [17, 1, 1, "c.hp_batchtospace_p", "data_size"], [17, 1, 1, "c.hp_batchtospace_p", "input"], [17, 1, 1, "c.hp_batchtospace_p", "input_shape"], [17, 1, 1, "c.hp_batchtospace_p", "output"]], "hp_batchtospace_s": [[17, 1, 1, "c.hp_batchtospace_s", "block_size"], [17, 1, 1, "c.hp_batchtospace_s", "core_mask"], [17, 1, 1, "c.hp_batchtospace_s", "crops"], [17, 1, 1, "c.hp_batchtospace_s", "data_size"], [17, 1, 1, "c.hp_batchtospace_s", "input"], [17, 1, 1, "c.hp_batchtospace_s", "input_shape"], [17, 1, 1, "c.hp_batchtospace_s", "output"]], "hp_batchtospacend_p": [[18, 1, 1, "c.hp_batchtospacend_p", "block_size"], [18, 1, 1, "c.hp_batchtospacend_p", "crops"], [18, 1, 1, "c.hp_batchtospacend_p", "data_size"], [18, 1, 1, "c.hp_batchtospacend_p", "input"], [18, 1, 1, "c.hp_batchtospacend_p", "input_shape"], [18, 1, 1, "c.hp_batchtospacend_p", "output"]], "hp_batchtospacend_s": [[18, 1, 1, "c.hp_batchtospacend_s", "block_size"], [18, 1, 1, "c.hp_batchtospacend_s", "core_mask"], [18, 1, 1, "c.hp_batchtospacend_s", "crops"], [18, 1, 1, "c.hp_batchtospacend_s", "data_size"], [18, 1, 1, "c.hp_batchtospacend_s", "input"], [18, 1, 1, "c.hp_batchtospacend_s", "input_shape"], [18, 1, 1, "c.hp_batchtospacend_s", "output"]], "hp_broadcastto_p": [[19, 1, 1, "c.hp_broadcastto_p", "data_size"], [19, 1, 1, "c.hp_broadcastto_p", "input"], [19, 1, 1, "c.hp_broadcastto_p", "input_shape"], [19, 1, 1, "c.hp_broadcastto_p", "input_shape_size"], [19, 1, 1, "c.hp_broadcastto_p", "output"], [19, 1, 1, "c.hp_broadcastto_p", "output_shape"], [19, 1, 1, "c.hp_broadcastto_p", "output_shape_size"]], "hp_broadcastto_s": [[19, 1, 1, "c.hp_broadcastto_s", "core_mask"], [19, 1, 1, "c.hp_broadcastto_s", "data_size"], [19, 1, 1, "c.hp_broadcastto_s", "input"], [19, 1, 1, "c.hp_broadcastto_s", "input_shape"], [19, 1, 1, "c.hp_broadcastto_s", "input_shape_size"], [19, 1, 1, "c.hp_broadcastto_s", "output"], [19, 1, 1, "c.hp_broadcastto_s", "output_shape"], [19, 1, 1, "c.hp_broadcastto_s", "output_shape_size"]], "hp_celu_p": [[10, 1, 1, "c.hp_celu_p", "Input0"], [10, 1, 1, "c.hp_celu_p", "alpha"], [10, 1, 1, "c.hp_celu_p", "length"], [10, 1, 1, "c.hp_celu_p", "output"]], "hp_celu_s": [[10, 1, 1, "c.hp_celu_s", "Input0"], [10, 1, 1, "c.hp_celu_s", "alpha"], [10, 1, 1, "c.hp_celu_s", "core_mask"], [10, 1, 1, "c.hp_celu_s", "length"], [10, 1, 1, "c.hp_celu_s", "output"]], "hp_clip_p": [[10, 1, 1, "c.hp_clip_p", "Input0"], [10, 1, 1, "c.hp_clip_p", "length"], [10, 1, 1, "c.hp_clip_p", "max_val"], [10, 1, 1, "c.hp_clip_p", "min_val"], [10, 1, 1, "c.hp_clip_p", "output"]], "hp_clip_s": [[10, 1, 1, "c.hp_clip_s", "Input0"], [10, 1, 1, "c.hp_clip_s", "core_mask"], [10, 1, 1, "c.hp_clip_s", "length"], [10, 1, 1, "c.hp_clip_s", "max_val"], [10, 1, 1, "c.hp_clip_s", "min_val"], [10, 1, 1, "c.hp_clip_s", "output"]], "hp_conv2d_p": [[20, 1, 1, "c.hp_conv2d_p", "bias"], [20, 1, 1, "c.hp_conv2d_p", "conv_param"], [20, 1, 1, "c.hp_conv2d_p", "core_mask"], [20, 1, 1, "c.hp_conv2d_p", "input_w"], [20, 1, 1, "c.hp_conv2d_p", "input_x"], [20, 1, 1, "c.hp_conv2d_p", "out_y"]], "hp_conv2d_s": [[20, 1, 1, "c.hp_conv2d_s", "bias"], [20, 1, 1, "c.hp_conv2d_s", "conv_param"], [20, 1, 1, "c.hp_conv2d_s", "core_mask"], [20, 1, 1, "c.hp_conv2d_s", "input_w"], [20, 1, 1, "c.hp_conv2d_s", "input_x"], [20, 1, 1, "c.hp_conv2d_s", "out_y"]], "hp_conv2dbackpropfilterfusion_p": [[22, 1, 1, "c.hp_conv2dbackpropfilterfusion_p", "conv_param"], [22, 1, 1, "c.hp_conv2dbackpropfilterfusion_p", "dw"], [22, 1, 1, "c.hp_conv2dbackpropfilterfusion_p", "dy"], [22, 1, 1, "c.hp_conv2dbackpropfilterfusion_p", "x"]], "hp_conv2dbackpropfilterfusion_s": [[22, 1, 1, "c.hp_conv2dbackpropfilterfusion_s", "conv_param"], [22, 1, 1, "c.hp_conv2dbackpropfilterfusion_s", "core_mask"], [22, 1, 1, "c.hp_conv2dbackpropfilterfusion_s", "dw"], [22, 1, 1, "c.hp_conv2dbackpropfilterfusion_s", "dy"], [22, 1, 1, "c.hp_conv2dbackpropfilterfusion_s", "x"]], "hp_conv2dbackpropinputfusion_p": [[23, 1, 1, "c.hp_conv2dbackpropinputfusion_p", "conv_param"], [23, 1, 1, "c.hp_conv2dbackpropinputfusion_p", "dx"], [23, 1, 1, "c.hp_conv2dbackpropinputfusion_p", "dy"], [23, 1, 1, "c.hp_conv2dbackpropinputfusion_p", "w"]], "hp_conv2dbackpropinputfusion_s": [[23, 1, 1, "c.hp_conv2dbackpropinputfusion_s", "conv_param"], [23, 1, 1, "c.hp_conv2dbackpropinputfusion_s", "core_mask"], [23, 1, 1, "c.hp_conv2dbackpropinputfusion_s", "dx"], [23, 1, 1, "c.hp_conv2dbackpropinputfusion_s", "dy"], [23, 1, 1, "c.hp_conv2dbackpropinputfusion_s", "w"]], "hp_convtranspose_p": [[21, 1, 1, "c.hp_convtranspose_p", "bias"], [21, 1, 1, "c.hp_convtranspose_p", "conv_param"], [21, 1, 1, "c.hp_convtranspose_p", "core_mask"], [21, 1, 1, "c.hp_convtranspose_p", "input_w"], [21, 1, 1, "c.hp_convtranspose_p", "input_x"], [21, 1, 1, "c.hp_convtranspose_p", "out_y"]], "hp_convtranspose_s": [[21, 1, 1, "c.hp_convtranspose_s", "bias"], [21, 1, 1, "c.hp_convtranspose_s", "conv_param"], [21, 1, 1, "c.hp_convtranspose_s", "core_mask"], [21, 1, 1, "c.hp_convtranspose_s", "input_w"], [21, 1, 1, "c.hp_convtranspose_s", "input_x"], [21, 1, 1, "c.hp_convtranspose_s", "out_y"]], "hp_crop_and_resize_anycore": [[25, 1, 1, "c.hp_crop_and_resize_anycore", "box_idx"], [25, 1, 1, "c.hp_crop_and_resize_anycore", "boxes"], [25, 1, 1, "c.hp_crop_and_resize_anycore", "core_mask"], [25, 1, 1, "c.hp_crop_and_resize_anycore", "dst"], [25, 1, 1, "c.hp_crop_and_resize_anycore", "extrapolation_value"], [25, 1, 1, "c.hp_crop_and_resize_anycore", "param"], [25, 1, 1, "c.hp_crop_and_resize_anycore", "src"]], "hp_depthtospace_p": [[26, 1, 1, "c.hp_depthtospace_p", "block_size"], [26, 1, 1, "c.hp_depthtospace_p", "data_size"], [26, 1, 1, "c.hp_depthtospace_p", "in_shape"], [26, 1, 1, "c.hp_depthtospace_p", "input"], [26, 1, 1, "c.hp_depthtospace_p", "output"]], "hp_depthtospace_s": [[26, 1, 1, "c.hp_depthtospace_s", "block_size"], [26, 1, 1, "c.hp_depthtospace_s", "core_mask"], [26, 1, 1, "c.hp_depthtospace_s", "data_size"], [26, 1, 1, "c.hp_depthtospace_s", "in_shape"], [26, 1, 1, "c.hp_depthtospace_s", "input"], [26, 1, 1, "c.hp_depthtospace_s", "output"]], "hp_eltwise_p": [[28, 1, 1, "c.hp_eltwise_p", "Input0"], [28, 1, 1, "c.hp_eltwise_p", "Input1"], [28, 1, 1, "c.hp_eltwise_p", "eltwise_mode_"], [28, 1, 1, "c.hp_eltwise_p", "length"], [28, 1, 1, "c.hp_eltwise_p", "output"]], "hp_eltwise_s": [[28, 1, 1, "c.hp_eltwise_s", "Input0"], [28, 1, 1, "c.hp_eltwise_s", "Input1"], [28, 1, 1, "c.hp_eltwise_s", "core_mask"], [28, 1, 1, "c.hp_eltwise_s", "eltwise_mode_"], [28, 1, 1, "c.hp_eltwise_s", "length"], [28, 1, 1, "c.hp_eltwise_s", "output"]], "hp_elu_p": [[10, 1, 1, "c.hp_elu_p", "Input0"], [10, 1, 1, "c.hp_elu_p", "alpha"], [10, 1, 1, "c.hp_elu_p", "length"], [10, 1, 1, "c.hp_elu_p", "output"]], "hp_elu_s": [[10, 1, 1, "c.hp_elu_s", "Input0"], [10, 1, 1, "c.hp_elu_s", "alpha"], [10, 1, 1, "c.hp_elu_s", "core_mask"], [10, 1, 1, "c.hp_elu_s", "length"], [10, 1, 1, "c.hp_elu_s", "output"]], "hp_embeddinglookup_p": [[29, 1, 1, "c.hp_embeddinglookup_p", "Input0"], [29, 1, 1, "c.hp_embeddinglookup_p", "Input1"], [29, 1, 1, "c.hp_embeddinglookup_p", "length"], [29, 1, 1, "c.hp_embeddinglookup_p", "output"]], "hp_embeddinglookup_s": [[29, 1, 1, "c.hp_embeddinglookup_s", "core_mask"], [29, 1, 1, "c.hp_embeddinglookup_s", "ids"], [29, 1, 1, "c.hp_embeddinglookup_s", "ids_size_"], [29, 1, 1, "c.hp_embeddinglookup_s", "input_data"], [29, 1, 1, "c.hp_embeddinglookup_s", "is_regulated"], [29, 1, 1, "c.hp_embeddinglookup_s", "layer_num_"], [29, 1, 1, "c.hp_embeddinglookup_s", "layer_size_"], [29, 1, 1, "c.hp_embeddinglookup_s", "max_norm_"], [29, 1, 1, "c.hp_embeddinglookup_s", "output"]], "hp_equal_p": [[30, 1, 1, "c.hp_equal_p", "Input0"], [30, 1, 1, "c.hp_equal_p", "Input1"], [30, 1, 1, "c.hp_equal_p", "length"], [30, 1, 1, "c.hp_equal_p", "output"]], "hp_equal_s": [[30, 1, 1, "c.hp_equal_s", "Input0"], [30, 1, 1, "c.hp_equal_s", "Input1"], [30, 1, 1, "c.hp_equal_s", "core_mask"], [30, 1, 1, "c.hp_equal_s", "length"], [30, 1, 1, "c.hp_equal_s", "output"]], "hp_expfusion_p": [[32, 1, 1, "c.hp_expfusion_p", "dst_data"], [32, 1, 1, "c.hp_expfusion_p", "in_scale"], [32, 1, 1, "c.hp_expfusion_p", "length"], [32, 1, 1, "c.hp_expfusion_p", "out_scale"], [32, 1, 1, "c.hp_expfusion_p", "scale"], [32, 1, 1, "c.hp_expfusion_p", "src_data"]], "hp_expfusion_s": [[32, 1, 1, "c.hp_expfusion_s", "core_mask"], [32, 1, 1, "c.hp_expfusion_s", "dst_data"], [32, 1, 1, "c.hp_expfusion_s", "in_scale"], [32, 1, 1, "c.hp_expfusion_s", "length"], [32, 1, 1, "c.hp_expfusion_s", "out_scale"], [32, 1, 1, "c.hp_expfusion_s", "scale"], [32, 1, 1, "c.hp_expfusion_s", "src_data"]], "hp_floor_p": [[34, 1, 1, "c.hp_floor_p", "dst_data"], [34, 1, 1, "c.hp_floor_p", "length"], [34, 1, 1, "c.hp_floor_p", "src_data"]], "hp_floor_s": [[34, 1, 1, "c.hp_floor_s", "core_mask"], [34, 1, 1, "c.hp_floor_s", "dst_data"], [34, 1, 1, "c.hp_floor_s", "length"], [34, 1, 1, "c.hp_floor_s", "src_data"]], "hp_floordiv_p": [[35, 1, 1, "c.hp_floordiv_p", "dst_data"], [35, 1, 1, "c.hp_floordiv_p", "length"], [35, 1, 1, "c.hp_floordiv_p", "src_data0"], [35, 1, 1, "c.hp_floordiv_p", "src_data1"]], "hp_floordiv_s": [[35, 1, 1, "c.hp_floordiv_s", "core_mask"], [35, 1, 1, "c.hp_floordiv_s", "dst_data"], [35, 1, 1, "c.hp_floordiv_s", "length"], [35, 1, 1, "c.hp_floordiv_s", "src_data0"], [35, 1, 1, "c.hp_floordiv_s", "src_data1"]], "hp_fusedbatchnorm_p": [[36, 1, 1, "c.hp_fusedbatchnorm_p", "channel"], [36, 1, 1, "c.hp_fusedbatchnorm_p", "epsilon"], [36, 1, 1, "c.hp_fusedbatchnorm_p", "input"], [36, 1, 1, "c.hp_fusedbatchnorm_p", "mean"], [36, 1, 1, "c.hp_fusedbatchnorm_p", "offset"], [36, 1, 1, "c.hp_fusedbatchnorm_p", "output"], [36, 1, 1, "c.hp_fusedbatchnorm_p", "scale"], [36, 1, 1, "c.hp_fusedbatchnorm_p", "unit"], [36, 1, 1, "c.hp_fusedbatchnorm_p", "variance"]], "hp_fusedbatchnorm_s": [[36, 1, 1, "c.hp_fusedbatchnorm_s", "channel"], [36, 1, 1, "c.hp_fusedbatchnorm_s", "core_mask"], [36, 1, 1, "c.hp_fusedbatchnorm_s", "epsilon"], [36, 1, 1, "c.hp_fusedbatchnorm_s", "input"], [36, 1, 1, "c.hp_fusedbatchnorm_s", "mean"], [36, 1, 1, "c.hp_fusedbatchnorm_s", "offset"], [36, 1, 1, "c.hp_fusedbatchnorm_s", "output"], [36, 1, 1, "c.hp_fusedbatchnorm_s", "scale"], [36, 1, 1, "c.hp_fusedbatchnorm_s", "unit"], [36, 1, 1, "c.hp_fusedbatchnorm_s", "variance"]], "hp_gelu_p": [[10, 1, 1, "c.hp_gelu_p", "Input0"], [10, 1, 1, "c.hp_gelu_p", "approximate"], [10, 1, 1, "c.hp_gelu_p", "length"], [10, 1, 1, "c.hp_gelu_p", "output"]], "hp_gelu_s": [[10, 1, 1, "c.hp_gelu_s", "Input0"], [10, 1, 1, "c.hp_gelu_s", "approximate"], [10, 1, 1, "c.hp_gelu_s", "core_mask"], [10, 1, 1, "c.hp_gelu_s", "length"], [10, 1, 1, "c.hp_gelu_s", "output"]], "hp_groupnormfusion_p": [[37, 1, 1, "c.hp_groupnormfusion_p", "batch"], [37, 1, 1, "c.hp_groupnormfusion_p", "channel"], [37, 1, 1, "c.hp_groupnormfusion_p", "epsilon"], [37, 1, 1, "c.hp_groupnormfusion_p", "input"], [37, 1, 1, "c.hp_groupnormfusion_p", "mean"], [37, 1, 1, "c.hp_groupnormfusion_p", "num_groups"], [37, 1, 1, "c.hp_groupnormfusion_p", "offset"], [37, 1, 1, "c.hp_groupnormfusion_p", "output"], [37, 1, 1, "c.hp_groupnormfusion_p", "scale"], [37, 1, 1, "c.hp_groupnormfusion_p", "unit"], [37, 1, 1, "c.hp_groupnormfusion_p", "variance"]], "hp_groupnormfusion_s": [[37, 1, 1, "c.hp_groupnormfusion_s", "batch"], [37, 1, 1, "c.hp_groupnormfusion_s", "channel"], [37, 1, 1, "c.hp_groupnormfusion_s", "core_mask"], [37, 1, 1, "c.hp_groupnormfusion_s", "epsilon"], [37, 1, 1, "c.hp_groupnormfusion_s", "input"], [37, 1, 1, "c.hp_groupnormfusion_s", "mean"], [37, 1, 1, "c.hp_groupnormfusion_s", "num_groups"], [37, 1, 1, "c.hp_groupnormfusion_s", "offset"], [37, 1, 1, "c.hp_groupnormfusion_s", "output"], [37, 1, 1, "c.hp_groupnormfusion_s", "scale"], [37, 1, 1, "c.hp_groupnormfusion_s", "unit"], [37, 1, 1, "c.hp_groupnormfusion_s", "variance"]], "hp_hardshrink_p": [[10, 1, 1, "c.hp_hardshrink_p", "Input0"], [10, 1, 1, "c.hp_hardshrink_p", "lambd"], [10, 1, 1, "c.hp_hardshrink_p", "length"], [10, 1, 1, "c.hp_hardshrink_p", "output"]], "hp_hardshrink_s": [[10, 1, 1, "c.hp_hardshrink_s", "Input0"], [10, 1, 1, "c.hp_hardshrink_s", "core_mask"], [10, 1, 1, "c.hp_hardshrink_s", "lambd"], [10, 1, 1, "c.hp_hardshrink_s", "length"], [10, 1, 1, "c.hp_hardshrink_s", "output"]], "hp_hardtanh_p": [[10, 1, 1, "c.hp_hardtanh_p", "Input0"], [10, 1, 1, "c.hp_hardtanh_p", "length"], [10, 1, 1, "c.hp_hardtanh_p", "max_val"], [10, 1, 1, "c.hp_hardtanh_p", "min_val"], [10, 1, 1, "c.hp_hardtanh_p", "output"]], "hp_hardtanh_s": [[10, 1, 1, "c.hp_hardtanh_s", "Input0"], [10, 1, 1, "c.hp_hardtanh_s", "core_mask"], [10, 1, 1, "c.hp_hardtanh_s", "length"], [10, 1, 1, "c.hp_hardtanh_s", "max_val"], [10, 1, 1, "c.hp_hardtanh_s", "min_val"], [10, 1, 1, "c.hp_hardtanh_s", "output"]], "hp_hsigmoid_p": [[10, 1, 1, "c.hp_hsigmoid_p", "Input0"], [10, 1, 1, "c.hp_hsigmoid_p", "length"], [10, 1, 1, "c.hp_hsigmoid_p", "output"]], "hp_hsigmoid_s": [[10, 1, 1, "c.hp_hsigmoid_s", "Input0"], [10, 1, 1, "c.hp_hsigmoid_s", "core_mask"], [10, 1, 1, "c.hp_hsigmoid_s", "length"], [10, 1, 1, "c.hp_hsigmoid_s", "output"]], "hp_hswish_p": [[10, 1, 1, "c.hp_hswish_p", "Input0"], [10, 1, 1, "c.hp_hswish_p", "length"], [10, 1, 1, "c.hp_hswish_p", "output"]], "hp_hswish_s": [[10, 1, 1, "c.hp_hswish_s", "Input0"], [10, 1, 1, "c.hp_hswish_s", "core_mask"], [10, 1, 1, "c.hp_hswish_s", "length"], [10, 1, 1, "c.hp_hswish_s", "output"]], "hp_leaky_relu_p": [[39, 1, 1, "c.hp_leaky_relu_p", "alpha"], [39, 1, 1, "c.hp_leaky_relu_p", "core_mask"], [39, 1, 1, "c.hp_leaky_relu_p", "elem_cnt"], [39, 1, 1, "c.hp_leaky_relu_p", "input"], [39, 1, 1, "c.hp_leaky_relu_p", "output"]], "hp_leaky_relu_s": [[39, 1, 1, "c.hp_leaky_relu_s", "alpha"], [39, 1, 1, "c.hp_leaky_relu_s", "core_mask"], [39, 1, 1, "c.hp_leaky_relu_s", "elem_cnt"], [39, 1, 1, "c.hp_leaky_relu_s", "input"], [39, 1, 1, "c.hp_leaky_relu_s", "output"]], "hp_lrelu_p": [[10, 1, 1, "c.hp_lrelu_p", "Input0"], [10, 1, 1, "c.hp_lrelu_p", "alpha"], [10, 1, 1, "c.hp_lrelu_p", "length"], [10, 1, 1, "c.hp_lrelu_p", "output"]], "hp_lrelu_s": [[10, 1, 1, "c.hp_lrelu_s", "Input0"], [10, 1, 1, "c.hp_lrelu_s", "alpha"], [10, 1, 1, "c.hp_lrelu_s", "core_mask"], [10, 1, 1, "c.hp_lrelu_s", "length"], [10, 1, 1, "c.hp_lrelu_s", "output"]], "hp_reduce_p": [[45, 1, 1, "c.hp_reduce_p", "core_mask"], [45, 1, 1, "c.hp_reduce_p", "dst_data"], [45, 1, 1, "c.hp_reduce_p", "param"], [45, 1, 1, "c.hp_reduce_p", "src_data"], [45, 1, 1, "c.hp_reduce_p", "tmp_dst_data"], [45, 1, 1, "c.hp_reduce_p", "tmp_src_data"]], "hp_reduce_s": [[45, 1, 1, "c.hp_reduce_s", "core_mask"], [45, 1, 1, "c.hp_reduce_s", "dst_data"], [45, 1, 1, "c.hp_reduce_s", "param"], [45, 1, 1, "c.hp_reduce_s", "src_data"]], "hp_relu6_p": [[10, 1, 1, "c.hp_relu6_p", "Input0"], [10, 1, 1, "c.hp_relu6_p", "length"], [10, 1, 1, "c.hp_relu6_p", "output"]], "hp_relu6_s": [[10, 1, 1, "c.hp_relu6_s", "Input0"], [10, 1, 1, "c.hp_relu6_s", "core_mask"], [10, 1, 1, "c.hp_relu6_s", "length"], [10, 1, 1, "c.hp_relu6_s", "output"]], "hp_relu_p": [[10, 1, 1, "c.hp_relu_p", "Input0"], [10, 1, 1, "c.hp_relu_p", "length"], [10, 1, 1, "c.hp_relu_p", "output"]], "hp_relu_s": [[10, 1, 1, "c.hp_relu_s", "Input0"], [10, 1, 1, "c.hp_relu_s", "core_mask"], [10, 1, 1, "c.hp_relu_s", "length"], [10, 1, 1, "c.hp_relu_s", "output"]], "hp_resize_anycore": [[46, 1, 1, "c.hp_resize_anycore", "core_mask"], [46, 1, 1, "c.hp_resize_anycore", "input"], [46, 1, 1, "c.hp_resize_anycore", "output"], [46, 1, 1, "c.hp_resize_anycore", "param"]], "hp_scalefusion_p": [[49, 1, 1, "c.hp_scalefusion_p", "bias"], [49, 1, 1, "c.hp_scalefusion_p", "dst_data"], [49, 1, 1, "c.hp_scalefusion_p", "length"], [49, 1, 1, "c.hp_scalefusion_p", "scale"], [49, 1, 1, "c.hp_scalefusion_p", "src_data"]], "hp_scalefusion_s": [[49, 1, 1, "c.hp_scalefusion_s", "bias"], [49, 1, 1, "c.hp_scalefusion_s", "core_mask"], [49, 1, 1, "c.hp_scalefusion_s", "dst_data"], [49, 1, 1, "c.hp_scalefusion_s", "length"], [49, 1, 1, "c.hp_scalefusion_s", "scale"], [49, 1, 1, "c.hp_scalefusion_s", "src_data"]], "hp_scatter_elements_p": [[50, 1, 1, "c.hp_scatter_elements_p", "core_mask"], [50, 1, 1, "c.hp_scatter_elements_p", "indices"], [50, 1, 1, "c.hp_scatter_elements_p", "input"], [50, 1, 1, "c.hp_scatter_elements_p", "output"], [50, 1, 1, "c.hp_scatter_elements_p", "param"], [50, 1, 1, "c.hp_scatter_elements_p", "updates"]], "hp_scatter_elements_s": [[50, 1, 1, "c.hp_scatter_elements_s", "core_mask"], [50, 1, 1, "c.hp_scatter_elements_s", "indices"], [50, 1, 1, "c.hp_scatter_elements_s", "input"], [50, 1, 1, "c.hp_scatter_elements_s", "output"], [50, 1, 1, "c.hp_scatter_elements_s", "param"], [50, 1, 1, "c.hp_scatter_elements_s", "updates"]], "hp_sgd_p": [[51, 1, 1, "c.hp_sgd_p", "accumulate"], [51, 1, 1, "c.hp_sgd_p", "dampening"], [51, 1, 1, "c.hp_sgd_p", "gradient"], [51, 1, 1, "c.hp_sgd_p", "learning_rate"], [51, 1, 1, "c.hp_sgd_p", "length"], [51, 1, 1, "c.hp_sgd_p", "moment"], [51, 1, 1, "c.hp_sgd_p", "nesterov"], [51, 1, 1, "c.hp_sgd_p", "weight"], [51, 1, 1, "c.hp_sgd_p", "weight_decay"]], "hp_sgd_s": [[51, 1, 1, "c.hp_sgd_s", "accumulate"], [51, 1, 1, "c.hp_sgd_s", "core_mask"], [51, 1, 1, "c.hp_sgd_s", "dampening"], [51, 1, 1, "c.hp_sgd_s", "end"], [51, 1, 1, "c.hp_sgd_s", "gradient"], [51, 1, 1, "c.hp_sgd_s", "learning_rate"], [51, 1, 1, "c.hp_sgd_s", "moment"], [51, 1, 1, "c.hp_sgd_s", "nesterov"], [51, 1, 1, "c.hp_sgd_s", "start"], [51, 1, 1, "c.hp_sgd_s", "weight"], [51, 1, 1, "c.hp_sgd_s", "weight_decay"]], "hp_sigmoid_p": [[10, 1, 1, "c.hp_sigmoid_p", "Input0"], [10, 1, 1, "c.hp_sigmoid_p", "length"], [10, 1, 1, "c.hp_sigmoid_p", "output"]], "hp_sigmoid_s": [[10, 1, 1, "c.hp_sigmoid_s", "Input0"], [10, 1, 1, "c.hp_sigmoid_s", "core_mask"], [10, 1, 1, "c.hp_sigmoid_s", "length"], [10, 1, 1, "c.hp_sigmoid_s", "output"]], "hp_softplus_p": [[10, 1, 1, "c.hp_softplus_p", "Input0"], [10, 1, 1, "c.hp_softplus_p", "length"], [10, 1, 1, "c.hp_softplus_p", "output"]], "hp_softplus_s": [[10, 1, 1, "c.hp_softplus_s", "Input0"], [10, 1, 1, "c.hp_softplus_s", "core_mask"], [10, 1, 1, "c.hp_softplus_s", "length"], [10, 1, 1, "c.hp_softplus_s", "output"]], "hp_softshrink_p": [[10, 1, 1, "c.hp_softshrink_p", "Input0"], [10, 1, 1, "c.hp_softshrink_p", "lambd"], [10, 1, 1, "c.hp_softshrink_p", "length"], [10, 1, 1, "c.hp_softshrink_p", "output"]], "hp_softshrink_s": [[10, 1, 1, "c.hp_softshrink_s", "Input0"], [10, 1, 1, "c.hp_softshrink_s", "core_mask"], [10, 1, 1, "c.hp_softshrink_s", "lambd"], [10, 1, 1, "c.hp_softshrink_s", "length"], [10, 1, 1, "c.hp_softshrink_s", "output"]], "hp_softsignopt_p": [[10, 1, 1, "c.hp_softsignopt_p", "Input0"], [10, 1, 1, "c.hp_softsignopt_p", "length"], [10, 1, 1, "c.hp_softsignopt_p", "output"]], "hp_softsignopt_s": [[10, 1, 1, "c.hp_softsignopt_s", "Input0"], [10, 1, 1, "c.hp_softsignopt_s", "core_mask"], [10, 1, 1, "c.hp_softsignopt_s", "length"], [10, 1, 1, "c.hp_softsignopt_s", "output"]], "hp_spacetobatch_p": [[52, 1, 1, "c.hp_spacetobatch_p", "block_size"], [52, 1, 1, "c.hp_spacetobatch_p", "data_size"], [52, 1, 1, "c.hp_spacetobatch_p", "input"], [52, 1, 1, "c.hp_spacetobatch_p", "input_shape"], [52, 1, 1, "c.hp_spacetobatch_p", "output"], [52, 1, 1, "c.hp_spacetobatch_p", "paddings"]], "hp_spacetobatch_s": [[52, 1, 1, "c.hp_spacetobatch_s", "block_size"], [52, 1, 1, "c.hp_spacetobatch_s", "core_mask"], [52, 1, 1, "c.hp_spacetobatch_s", "data_size"], [52, 1, 1, "c.hp_spacetobatch_s", "input"], [52, 1, 1, "c.hp_spacetobatch_s", "input_shape"], [52, 1, 1, "c.hp_spacetobatch_s", "output"], [52, 1, 1, "c.hp_spacetobatch_s", "paddings"]], "hp_spacetobatchnd_p": [[53, 1, 1, "c.hp_spacetobatchnd_p", "block_size"], [53, 1, 1, "c.hp_spacetobatchnd_p", "data_size"], [53, 1, 1, "c.hp_spacetobatchnd_p", "input"], [53, 1, 1, "c.hp_spacetobatchnd_p", "input_shape"], [53, 1, 1, "c.hp_spacetobatchnd_p", "output"], [53, 1, 1, "c.hp_spacetobatchnd_p", "paddings"]], "hp_spacetobatchnd_s": [[53, 1, 1, "c.hp_spacetobatchnd_s", "block_size"], [53, 1, 1, "c.hp_spacetobatchnd_s", "core_mask"], [53, 1, 1, "c.hp_spacetobatchnd_s", "data_size"], [53, 1, 1, "c.hp_spacetobatchnd_s", "input"], [53, 1, 1, "c.hp_spacetobatchnd_s", "input_shape"], [53, 1, 1, "c.hp_spacetobatchnd_s", "output"], [53, 1, 1, "c.hp_spacetobatchnd_s", "paddings"]], "hp_spacetodepth_p": [[54, 1, 1, "c.hp_spacetodepth_p", "block"], [54, 1, 1, "c.hp_spacetodepth_p", "data_size"], [54, 1, 1, "c.hp_spacetodepth_p", "in_shape"], [54, 1, 1, "c.hp_spacetodepth_p", "input"], [54, 1, 1, "c.hp_spacetodepth_p", "output"]], "hp_spacetodepth_s": [[54, 1, 1, "c.hp_spacetodepth_s", "block"], [54, 1, 1, "c.hp_spacetodepth_s", "core_mask"], [54, 1, 1, "c.hp_spacetodepth_s", "data_size"], [54, 1, 1, "c.hp_spacetodepth_s", "in_shape"], [54, 1, 1, "c.hp_spacetodepth_s", "input"], [54, 1, 1, "c.hp_spacetodepth_s", "output"]], "hp_swish_p": [[10, 1, 1, "c.hp_swish_p", "Input0"], [10, 1, 1, "c.hp_swish_p", "length"], [10, 1, 1, "c.hp_swish_p", "output"]], "hp_swish_s": [[10, 1, 1, "c.hp_swish_s", "Input0"], [10, 1, 1, "c.hp_swish_s", "core_mask"], [10, 1, 1, "c.hp_swish_s", "length"], [10, 1, 1, "c.hp_swish_s", "output"]], "hp_tanh_p": [[10, 1, 1, "c.hp_tanh_p", "Input0"], [10, 1, 1, "c.hp_tanh_p", "length"], [10, 1, 1, "c.hp_tanh_p", "output"]], "hp_tanh_s": [[10, 1, 1, "c.hp_tanh_s", "Input0"], [10, 1, 1, "c.hp_tanh_s", "core_mask"], [10, 1, 1, "c.hp_tanh_s", "length"], [10, 1, 1, "c.hp_tanh_s", "output"]], "i16_batchtospace_p": [[17, 1, 1, "c.i16_batchtospace_p", "block_size"], [17, 1, 1, "c.i16_batchtospace_p", "crops"], [17, 1, 1, "c.i16_batchtospace_p", "data_size"], [17, 1, 1, "c.i16_batchtospace_p", "input"], [17, 1, 1, "c.i16_batchtospace_p", "input_shape"], [17, 1, 1, "c.i16_batchtospace_p", "output"]], "i16_batchtospace_s": [[17, 1, 1, "c.i16_batchtospace_s", "block_size"], [17, 1, 1, "c.i16_batchtospace_s", "core_mask"], [17, 1, 1, "c.i16_batchtospace_s", "crops"], [17, 1, 1, "c.i16_batchtospace_s", "data_size"], [17, 1, 1, "c.i16_batchtospace_s", "input"], [17, 1, 1, "c.i16_batchtospace_s", "input_shape"], [17, 1, 1, "c.i16_batchtospace_s", "output"]], "i16_batchtospacend_p": [[18, 1, 1, "c.i16_batchtospacend_p", "block_size"], [18, 1, 1, "c.i16_batchtospacend_p", "crops"], [18, 1, 1, "c.i16_batchtospacend_p", "data_size"], [18, 1, 1, "c.i16_batchtospacend_p", "input"], [18, 1, 1, "c.i16_batchtospacend_p", "input_shape"], [18, 1, 1, "c.i16_batchtospacend_p", "output"]], "i16_batchtospacend_s": [[18, 1, 1, "c.i16_batchtospacend_s", "block_size"], [18, 1, 1, "c.i16_batchtospacend_s", "core_mask"], [18, 1, 1, "c.i16_batchtospacend_s", "crops"], [18, 1, 1, "c.i16_batchtospacend_s", "data_size"], [18, 1, 1, "c.i16_batchtospacend_s", "input"], [18, 1, 1, "c.i16_batchtospacend_s", "input_shape"], [18, 1, 1, "c.i16_batchtospacend_s", "output"]], "i16_broadcastto_p": [[19, 1, 1, "c.i16_broadcastto_p", "data_size"], [19, 1, 1, "c.i16_broadcastto_p", "input"], [19, 1, 1, "c.i16_broadcastto_p", "input_shape"], [19, 1, 1, "c.i16_broadcastto_p", "input_shape_size"], [19, 1, 1, "c.i16_broadcastto_p", "output"], [19, 1, 1, "c.i16_broadcastto_p", "output_shape"], [19, 1, 1, "c.i16_broadcastto_p", "output_shape_size"]], "i16_broadcastto_s": [[19, 1, 1, "c.i16_broadcastto_s", "core_mask"], [19, 1, 1, "c.i16_broadcastto_s", "data_size"], [19, 1, 1, "c.i16_broadcastto_s", "input"], [19, 1, 1, "c.i16_broadcastto_s", "input_shape"], [19, 1, 1, "c.i16_broadcastto_s", "input_shape_size"], [19, 1, 1, "c.i16_broadcastto_s", "output"], [19, 1, 1, "c.i16_broadcastto_s", "output_shape"], [19, 1, 1, "c.i16_broadcastto_s", "output_shape_size"]], "i16_depthtospace_p": [[26, 1, 1, "c.i16_depthtospace_p", "block_size"], [26, 1, 1, "c.i16_depthtospace_p", "data_size"], [26, 1, 1, "c.i16_depthtospace_p", "in_shape"], [26, 1, 1, "c.i16_depthtospace_p", "input"], [26, 1, 1, "c.i16_depthtospace_p", "output"]], "i16_depthtospace_s": [[26, 1, 1, "c.i16_depthtospace_s", "block_size"], [26, 1, 1, "c.i16_depthtospace_s", "core_mask"], [26, 1, 1, "c.i16_depthtospace_s", "data_size"], [26, 1, 1, "c.i16_depthtospace_s", "in_shape"], [26, 1, 1, "c.i16_depthtospace_s", "input"], [26, 1, 1, "c.i16_depthtospace_s", "output"]], "i16_eltwise_p": [[28, 1, 1, "c.i16_eltwise_p", "Input0"], [28, 1, 1, "c.i16_eltwise_p", "Input1"], [28, 1, 1, "c.i16_eltwise_p", "eltwise_mode_"], [28, 1, 1, "c.i16_eltwise_p", "length"], [28, 1, 1, "c.i16_eltwise_p", "output"]], "i16_eltwise_s": [[28, 1, 1, "c.i16_eltwise_s", "Input0"], [28, 1, 1, "c.i16_eltwise_s", "Input1"], [28, 1, 1, "c.i16_eltwise_s", "core_mask"], [28, 1, 1, "c.i16_eltwise_s", "eltwise_mode_"], [28, 1, 1, "c.i16_eltwise_s", "length"], [28, 1, 1, "c.i16_eltwise_s", "output"]], "i16_equal_p": [[30, 1, 1, "c.i16_equal_p", "Input0"], [30, 1, 1, "c.i16_equal_p", "Input1"], [30, 1, 1, "c.i16_equal_p", "length"], [30, 1, 1, "c.i16_equal_p", "output"]], "i16_equal_s": [[30, 1, 1, "c.i16_equal_s", "Input0"], [30, 1, 1, "c.i16_equal_s", "Input1"], [30, 1, 1, "c.i16_equal_s", "core_mask"], [30, 1, 1, "c.i16_equal_s", "length"], [30, 1, 1, "c.i16_equal_s", "output"]], "i16_expfusion_p": [[32, 1, 1, "c.i16_expfusion_p", "dst_data"], [32, 1, 1, "c.i16_expfusion_p", "in_scale"], [32, 1, 1, "c.i16_expfusion_p", "length"], [32, 1, 1, "c.i16_expfusion_p", "out_scale"], [32, 1, 1, "c.i16_expfusion_p", "scale"], [32, 1, 1, "c.i16_expfusion_p", "src_data"]], "i16_expfusion_s": [[32, 1, 1, "c.i16_expfusion_s", "core_mask"], [32, 1, 1, "c.i16_expfusion_s", "dst_data"], [32, 1, 1, "c.i16_expfusion_s", "in_scale"], [32, 1, 1, "c.i16_expfusion_s", "length"], [32, 1, 1, "c.i16_expfusion_s", "out_scale"], [32, 1, 1, "c.i16_expfusion_s", "scale"], [32, 1, 1, "c.i16_expfusion_s", "src_data"]], "i16_matmulfusion_p": [[42, 1, 1, "c.i16_matmulfusion_p", "A"], [42, 1, 1, "c.i16_matmulfusion_p", "B"], [42, 1, 1, "c.i16_matmulfusion_p", "C"], [42, 1, 1, "c.i16_matmulfusion_p", "K"], [42, 1, 1, "c.i16_matmulfusion_p", "M"], [42, 1, 1, "c.i16_matmulfusion_p", "N"], [42, 1, 1, "c.i16_matmulfusion_p", "activation_type"], [42, 1, 1, "c.i16_matmulfusion_p", "bias"]], "i16_matmulfusion_s": [[42, 1, 1, "c.i16_matmulfusion_s", "A"], [42, 1, 1, "c.i16_matmulfusion_s", "B"], [42, 1, 1, "c.i16_matmulfusion_s", "C"], [42, 1, 1, "c.i16_matmulfusion_s", "K"], [42, 1, 1, "c.i16_matmulfusion_s", "M"], [42, 1, 1, "c.i16_matmulfusion_s", "N"], [42, 1, 1, "c.i16_matmulfusion_s", "activation_type"], [42, 1, 1, "c.i16_matmulfusion_s", "bias"], [42, 1, 1, "c.i16_matmulfusion_s", "core_mask"]], "i16_raggedrange_p": [[43, 1, 1, "c.i16_raggedrange_p", "deltas"], [43, 1, 1, "c.i16_raggedrange_p", "limits"], [43, 1, 1, "c.i16_raggedrange_p", "range_count"], [43, 1, 1, "c.i16_raggedrange_p", "splits"], [43, 1, 1, "c.i16_raggedrange_p", "starts"], [43, 1, 1, "c.i16_raggedrange_p", "values"]], "i16_raggedrange_s": [[43, 1, 1, "c.i16_raggedrange_s", "core_mask"], [43, 1, 1, "c.i16_raggedrange_s", "deltas"], [43, 1, 1, "c.i16_raggedrange_s", "limits"], [43, 1, 1, "c.i16_raggedrange_s", "range_count"], [43, 1, 1, "c.i16_raggedrange_s", "splits"], [43, 1, 1, "c.i16_raggedrange_s", "starts"], [43, 1, 1, "c.i16_raggedrange_s", "values"]], "i16_range_p": [[44, 1, 1, "c.i16_range_p", "delta"], [44, 1, 1, "c.i16_range_p", "length"], [44, 1, 1, "c.i16_range_p", "output"], [44, 1, 1, "c.i16_range_p", "start"]], "i16_range_s": [[44, 1, 1, "c.i16_range_s", "core_mask"], [44, 1, 1, "c.i16_range_s", "delta"], [44, 1, 1, "c.i16_range_s", "length"], [44, 1, 1, "c.i16_range_s", "output"], [44, 1, 1, "c.i16_range_s", "start"]], "i16_reduce_p": [[45, 1, 1, "c.i16_reduce_p", "core_mask"], [45, 1, 1, "c.i16_reduce_p", "dst_data"], [45, 1, 1, "c.i16_reduce_p", "param"], [45, 1, 1, "c.i16_reduce_p", "src_data"], [45, 1, 1, "c.i16_reduce_p", "tmp_dst_data"], [45, 1, 1, "c.i16_reduce_p", "tmp_src_data"]], "i16_reduce_s": [[45, 1, 1, "c.i16_reduce_s", "core_mask"], [45, 1, 1, "c.i16_reduce_s", "dst_data"], [45, 1, 1, "c.i16_reduce_s", "param"], [45, 1, 1, "c.i16_reduce_s", "src_data"]], "i16_scalefusion_p": [[49, 1, 1, "c.i16_scalefusion_p", "bias"], [49, 1, 1, "c.i16_scalefusion_p", "dst_data"], [49, 1, 1, "c.i16_scalefusion_p", "length"], [49, 1, 1, "c.i16_scalefusion_p", "scale"], [49, 1, 1, "c.i16_scalefusion_p", "src_data"]], "i16_scalefusion_s": [[49, 1, 1, "c.i16_scalefusion_s", "bias"], [49, 1, 1, "c.i16_scalefusion_s", "core_mask"], [49, 1, 1, "c.i16_scalefusion_s", "dst_data"], [49, 1, 1, "c.i16_scalefusion_s", "length"], [49, 1, 1, "c.i16_scalefusion_s", "scale"], [49, 1, 1, "c.i16_scalefusion_s", "src_data"]], "i16_scatter_elements_p": [[50, 1, 1, "c.i16_scatter_elements_p", "core_mask"], [50, 1, 1, "c.i16_scatter_elements_p", "indices"], [50, 1, 1, "c.i16_scatter_elements_p", "input"], [50, 1, 1, "c.i16_scatter_elements_p", "output"], [50, 1, 1, "c.i16_scatter_elements_p", "param"], [50, 1, 1, "c.i16_scatter_elements_p", "updates"]], "i16_scatter_elements_s": [[50, 1, 1, "c.i16_scatter_elements_s", "core_mask"], [50, 1, 1, "c.i16_scatter_elements_s", "indices"], [50, 1, 1, "c.i16_scatter_elements_s", "input"], [50, 1, 1, "c.i16_scatter_elements_s", "output"], [50, 1, 1, "c.i16_scatter_elements_s", "param"], [50, 1, 1, "c.i16_scatter_elements_s", "updates"]], "i16_spacetobatch_p": [[52, 1, 1, "c.i16_spacetobatch_p", "block_size"], [52, 1, 1, "c.i16_spacetobatch_p", "data_size"], [52, 1, 1, "c.i16_spacetobatch_p", "input"], [52, 1, 1, "c.i16_spacetobatch_p", "input_shape"], [52, 1, 1, "c.i16_spacetobatch_p", "output"], [52, 1, 1, "c.i16_spacetobatch_p", "paddings"]], "i16_spacetobatch_s": [[52, 1, 1, "c.i16_spacetobatch_s", "block_size"], [52, 1, 1, "c.i16_spacetobatch_s", "core_mask"], [52, 1, 1, "c.i16_spacetobatch_s", "data_size"], [52, 1, 1, "c.i16_spacetobatch_s", "input"], [52, 1, 1, "c.i16_spacetobatch_s", "input_shape"], [52, 1, 1, "c.i16_spacetobatch_s", "output"], [52, 1, 1, "c.i16_spacetobatch_s", "paddings"]], "i16_spacetobatchnd_p": [[53, 1, 1, "c.i16_spacetobatchnd_p", "block_size"], [53, 1, 1, "c.i16_spacetobatchnd_p", "data_size"], [53, 1, 1, "c.i16_spacetobatchnd_p", "input"], [53, 1, 1, "c.i16_spacetobatchnd_p", "input_shape"], [53, 1, 1, "c.i16_spacetobatchnd_p", "output"], [53, 1, 1, "c.i16_spacetobatchnd_p", "paddings"]], "i16_spacetobatchnd_s": [[53, 1, 1, "c.i16_spacetobatchnd_s", "block_size"], [53, 1, 1, "c.i16_spacetobatchnd_s", "core_mask"], [53, 1, 1, "c.i16_spacetobatchnd_s", "data_size"], [53, 1, 1, "c.i16_spacetobatchnd_s", "input"], [53, 1, 1, "c.i16_spacetobatchnd_s", "input_shape"], [53, 1, 1, "c.i16_spacetobatchnd_s", "output"], [53, 1, 1, "c.i16_spacetobatchnd_s", "paddings"]], "i16_spacetodepth_p": [[54, 1, 1, "c.i16_spacetodepth_p", "block"], [54, 1, 1, "c.i16_spacetodepth_p", "data_size"], [54, 1, 1, "c.i16_spacetodepth_p", "in_shape"], [54, 1, 1, "c.i16_spacetodepth_p", "input"], [54, 1, 1, "c.i16_spacetodepth_p", "output"]], "i16_spacetodepth_s": [[54, 1, 1, "c.i16_spacetodepth_s", "block"], [54, 1, 1, "c.i16_spacetodepth_s", "core_mask"], [54, 1, 1, "c.i16_spacetodepth_s", "data_size"], [54, 1, 1, "c.i16_spacetodepth_s", "in_shape"], [54, 1, 1, "c.i16_spacetodepth_s", "input"], [54, 1, 1, "c.i16_spacetodepth_s", "output"]], "i32_batchtospace_p": [[17, 1, 1, "c.i32_batchtospace_p", "block_size"], [17, 1, 1, "c.i32_batchtospace_p", "crops"], [17, 1, 1, "c.i32_batchtospace_p", "data_size"], [17, 1, 1, "c.i32_batchtospace_p", "input"], [17, 1, 1, "c.i32_batchtospace_p", "input_shape"], [17, 1, 1, "c.i32_batchtospace_p", "output"]], "i32_batchtospace_s": [[17, 1, 1, "c.i32_batchtospace_s", "block_size"], [17, 1, 1, "c.i32_batchtospace_s", "core_mask"], [17, 1, 1, "c.i32_batchtospace_s", "crops"], [17, 1, 1, "c.i32_batchtospace_s", "data_size"], [17, 1, 1, "c.i32_batchtospace_s", "input"], [17, 1, 1, "c.i32_batchtospace_s", "input_shape"], [17, 1, 1, "c.i32_batchtospace_s", "output"]], "i32_batchtospacend_p": [[18, 1, 1, "c.i32_batchtospacend_p", "block_size"], [18, 1, 1, "c.i32_batchtospacend_p", "crops"], [18, 1, 1, "c.i32_batchtospacend_p", "data_size"], [18, 1, 1, "c.i32_batchtospacend_p", "input"], [18, 1, 1, "c.i32_batchtospacend_p", "input_shape"], [18, 1, 1, "c.i32_batchtospacend_p", "output"]], "i32_batchtospacend_s": [[18, 1, 1, "c.i32_batchtospacend_s", "block_size"], [18, 1, 1, "c.i32_batchtospacend_s", "core_mask"], [18, 1, 1, "c.i32_batchtospacend_s", "crops"], [18, 1, 1, "c.i32_batchtospacend_s", "data_size"], [18, 1, 1, "c.i32_batchtospacend_s", "input"], [18, 1, 1, "c.i32_batchtospacend_s", "input_shape"], [18, 1, 1, "c.i32_batchtospacend_s", "output"]], "i32_broadcastto_p": [[19, 1, 1, "c.i32_broadcastto_p", "data_size"], [19, 1, 1, "c.i32_broadcastto_p", "input"], [19, 1, 1, "c.i32_broadcastto_p", "input_shape"], [19, 1, 1, "c.i32_broadcastto_p", "input_shape_size"], [19, 1, 1, "c.i32_broadcastto_p", "output"], [19, 1, 1, "c.i32_broadcastto_p", "output_shape"], [19, 1, 1, "c.i32_broadcastto_p", "output_shape_size"]], "i32_broadcastto_s": [[19, 1, 1, "c.i32_broadcastto_s", "core_mask"], [19, 1, 1, "c.i32_broadcastto_s", "data_size"], [19, 1, 1, "c.i32_broadcastto_s", "input"], [19, 1, 1, "c.i32_broadcastto_s", "input_shape"], [19, 1, 1, "c.i32_broadcastto_s", "input_shape_size"], [19, 1, 1, "c.i32_broadcastto_s", "output"], [19, 1, 1, "c.i32_broadcastto_s", "output_shape"], [19, 1, 1, "c.i32_broadcastto_s", "output_shape_size"]], "i32_depthtospace_p": [[26, 1, 1, "c.i32_depthtospace_p", "block_size"], [26, 1, 1, "c.i32_depthtospace_p", "data_size"], [26, 1, 1, "c.i32_depthtospace_p", "in_shape"], [26, 1, 1, "c.i32_depthtospace_p", "input"], [26, 1, 1, "c.i32_depthtospace_p", "output"]], "i32_depthtospace_s": [[26, 1, 1, "c.i32_depthtospace_s", "block_size"], [26, 1, 1, "c.i32_depthtospace_s", "core_mask"], [26, 1, 1, "c.i32_depthtospace_s", "data_size"], [26, 1, 1, "c.i32_depthtospace_s", "in_shape"], [26, 1, 1, "c.i32_depthtospace_s", "input"], [26, 1, 1, "c.i32_depthtospace_s", "output"]], "i32_eltwise_p": [[28, 1, 1, "c.i32_eltwise_p", "Input0"], [28, 1, 1, "c.i32_eltwise_p", "Input1"], [28, 1, 1, "c.i32_eltwise_p", "eltwise_mode_"], [28, 1, 1, "c.i32_eltwise_p", "length"], [28, 1, 1, "c.i32_eltwise_p", "output"]], "i32_eltwise_s": [[28, 1, 1, "c.i32_eltwise_s", "Input0"], [28, 1, 1, "c.i32_eltwise_s", "Input1"], [28, 1, 1, "c.i32_eltwise_s", "core_mask"], [28, 1, 1, "c.i32_eltwise_s", "eltwise_mode_"], [28, 1, 1, "c.i32_eltwise_s", "length"], [28, 1, 1, "c.i32_eltwise_s", "output"]], "i32_equal_p": [[30, 1, 1, "c.i32_equal_p", "Input0"], [30, 1, 1, "c.i32_equal_p", "Input1"], [30, 1, 1, "c.i32_equal_p", "length"], [30, 1, 1, "c.i32_equal_p", "output"]], "i32_equal_s": [[30, 1, 1, "c.i32_equal_s", "Input0"], [30, 1, 1, "c.i32_equal_s", "Input1"], [30, 1, 1, "c.i32_equal_s", "core_mask"], [30, 1, 1, "c.i32_equal_s", "length"], [30, 1, 1, "c.i32_equal_s", "output"]], "i32_expfusion_p": [[32, 1, 1, "c.i32_expfusion_p", "dst_data"], [32, 1, 1, "c.i32_expfusion_p", "in_scale"], [32, 1, 1, "c.i32_expfusion_p", "length"], [32, 1, 1, "c.i32_expfusion_p", "out_scale"], [32, 1, 1, "c.i32_expfusion_p", "scale"], [32, 1, 1, "c.i32_expfusion_p", "src_data"]], "i32_expfusion_s": [[32, 1, 1, "c.i32_expfusion_s", "core_mask"], [32, 1, 1, "c.i32_expfusion_s", "dst_data"], [32, 1, 1, "c.i32_expfusion_s", "in_scale"], [32, 1, 1, "c.i32_expfusion_s", "length"], [32, 1, 1, "c.i32_expfusion_s", "out_scale"], [32, 1, 1, "c.i32_expfusion_s", "scale"], [32, 1, 1, "c.i32_expfusion_s", "src_data"]], "i32_matmulfusion_p": [[42, 1, 1, "c.i32_matmulfusion_p", "A"], [42, 1, 1, "c.i32_matmulfusion_p", "B"], [42, 1, 1, "c.i32_matmulfusion_p", "C"], [42, 1, 1, "c.i32_matmulfusion_p", "K"], [42, 1, 1, "c.i32_matmulfusion_p", "M"], [42, 1, 1, "c.i32_matmulfusion_p", "N"], [42, 1, 1, "c.i32_matmulfusion_p", "activation_type"], [42, 1, 1, "c.i32_matmulfusion_p", "bias"]], "i32_matmulfusion_s": [[42, 1, 1, "c.i32_matmulfusion_s", "A"], [42, 1, 1, "c.i32_matmulfusion_s", "B"], [42, 1, 1, "c.i32_matmulfusion_s", "C"], [42, 1, 1, "c.i32_matmulfusion_s", "K"], [42, 1, 1, "c.i32_matmulfusion_s", "M"], [42, 1, 1, "c.i32_matmulfusion_s", "N"], [42, 1, 1, "c.i32_matmulfusion_s", "activation_type"], [42, 1, 1, "c.i32_matmulfusion_s", "bias"], [42, 1, 1, "c.i32_matmulfusion_s", "core_mask"]], "i32_raggedrange_p": [[43, 1, 1, "c.i32_raggedrange_p", "deltas"], [43, 1, 1, "c.i32_raggedrange_p", "limits"], [43, 1, 1, "c.i32_raggedrange_p", "range_count"], [43, 1, 1, "c.i32_raggedrange_p", "splits"], [43, 1, 1, "c.i32_raggedrange_p", "starts"], [43, 1, 1, "c.i32_raggedrange_p", "values"]], "i32_raggedrange_s": [[43, 1, 1, "c.i32_raggedrange_s", "core_mask"], [43, 1, 1, "c.i32_raggedrange_s", "deltas"], [43, 1, 1, "c.i32_raggedrange_s", "limits"], [43, 1, 1, "c.i32_raggedrange_s", "range_count"], [43, 1, 1, "c.i32_raggedrange_s", "splits"], [43, 1, 1, "c.i32_raggedrange_s", "starts"], [43, 1, 1, "c.i32_raggedrange_s", "values"]], "i32_range_p": [[44, 1, 1, "c.i32_range_p", "delta"], [44, 1, 1, "c.i32_range_p", "length"], [44, 1, 1, "c.i32_range_p", "output"], [44, 1, 1, "c.i32_range_p", "start"]], "i32_range_s": [[44, 1, 1, "c.i32_range_s", "core_mask"], [44, 1, 1, "c.i32_range_s", "delta"], [44, 1, 1, "c.i32_range_s", "length"], [44, 1, 1, "c.i32_range_s", "output"], [44, 1, 1, "c.i32_range_s", "start"]], "i32_reduce_p": [[45, 1, 1, "c.i32_reduce_p", "core_mask"], [45, 1, 1, "c.i32_reduce_p", "dst_data"], [45, 1, 1, "c.i32_reduce_p", "param"], [45, 1, 1, "c.i32_reduce_p", "src_data"], [45, 1, 1, "c.i32_reduce_p", "tmp_dst_data"], [45, 1, 1, "c.i32_reduce_p", "tmp_src_data"]], "i32_reduce_s": [[45, 1, 1, "c.i32_reduce_s", "core_mask"], [45, 1, 1, "c.i32_reduce_s", "dst_data"], [45, 1, 1, "c.i32_reduce_s", "param"], [45, 1, 1, "c.i32_reduce_s", "src_data"]], "i32_scalefusion_p": [[49, 1, 1, "c.i32_scalefusion_p", "bias"], [49, 1, 1, "c.i32_scalefusion_p", "dst_data"], [49, 1, 1, "c.i32_scalefusion_p", "length"], [49, 1, 1, "c.i32_scalefusion_p", "scale"], [49, 1, 1, "c.i32_scalefusion_p", "src_data"]], "i32_scalefusion_s": [[49, 1, 1, "c.i32_scalefusion_s", "bias"], [49, 1, 1, "c.i32_scalefusion_s", "core_mask"], [49, 1, 1, "c.i32_scalefusion_s", "dst_data"], [49, 1, 1, "c.i32_scalefusion_s", "length"], [49, 1, 1, "c.i32_scalefusion_s", "scale"], [49, 1, 1, "c.i32_scalefusion_s", "src_data"]], "i32_scatter_elements_p": [[50, 1, 1, "c.i32_scatter_elements_p", "core_mask"], [50, 1, 1, "c.i32_scatter_elements_p", "indices"], [50, 1, 1, "c.i32_scatter_elements_p", "input"], [50, 1, 1, "c.i32_scatter_elements_p", "output"], [50, 1, 1, "c.i32_scatter_elements_p", "param"], [50, 1, 1, "c.i32_scatter_elements_p", "updates"]], "i32_scatter_elements_s": [[50, 1, 1, "c.i32_scatter_elements_s", "core_mask"], [50, 1, 1, "c.i32_scatter_elements_s", "indices"], [50, 1, 1, "c.i32_scatter_elements_s", "input"], [50, 1, 1, "c.i32_scatter_elements_s", "output"], [50, 1, 1, "c.i32_scatter_elements_s", "param"], [50, 1, 1, "c.i32_scatter_elements_s", "updates"]], "i32_spacetobatch_p": [[52, 1, 1, "c.i32_spacetobatch_p", "block_size"], [52, 1, 1, "c.i32_spacetobatch_p", "data_size"], [52, 1, 1, "c.i32_spacetobatch_p", "input"], [52, 1, 1, "c.i32_spacetobatch_p", "input_shape"], [52, 1, 1, "c.i32_spacetobatch_p", "output"], [52, 1, 1, "c.i32_spacetobatch_p", "paddings"]], "i32_spacetobatch_s": [[52, 1, 1, "c.i32_spacetobatch_s", "block_size"], [52, 1, 1, "c.i32_spacetobatch_s", "core_mask"], [52, 1, 1, "c.i32_spacetobatch_s", "data_size"], [52, 1, 1, "c.i32_spacetobatch_s", "input"], [52, 1, 1, "c.i32_spacetobatch_s", "input_shape"], [52, 1, 1, "c.i32_spacetobatch_s", "output"], [52, 1, 1, "c.i32_spacetobatch_s", "paddings"]], "i32_spacetobatchnd_p": [[53, 1, 1, "c.i32_spacetobatchnd_p", "block_size"], [53, 1, 1, "c.i32_spacetobatchnd_p", "data_size"], [53, 1, 1, "c.i32_spacetobatchnd_p", "input"], [53, 1, 1, "c.i32_spacetobatchnd_p", "input_shape"], [53, 1, 1, "c.i32_spacetobatchnd_p", "output"], [53, 1, 1, "c.i32_spacetobatchnd_p", "paddings"]], "i32_spacetobatchnd_s": [[53, 1, 1, "c.i32_spacetobatchnd_s", "block_size"], [53, 1, 1, "c.i32_spacetobatchnd_s", "core_mask"], [53, 1, 1, "c.i32_spacetobatchnd_s", "data_size"], [53, 1, 1, "c.i32_spacetobatchnd_s", "input"], [53, 1, 1, "c.i32_spacetobatchnd_s", "input_shape"], [53, 1, 1, "c.i32_spacetobatchnd_s", "output"], [53, 1, 1, "c.i32_spacetobatchnd_s", "paddings"]], "i32_spacetodepth_p": [[54, 1, 1, "c.i32_spacetodepth_p", "block"], [54, 1, 1, "c.i32_spacetodepth_p", "data_size"], [54, 1, 1, "c.i32_spacetodepth_p", "in_shape"], [54, 1, 1, "c.i32_spacetodepth_p", "input"], [54, 1, 1, "c.i32_spacetodepth_p", "output"]], "i32_spacetodepth_s": [[54, 1, 1, "c.i32_spacetodepth_s", "block"], [54, 1, 1, "c.i32_spacetodepth_s", "core_mask"], [54, 1, 1, "c.i32_spacetodepth_s", "data_size"], [54, 1, 1, "c.i32_spacetodepth_s", "in_shape"], [54, 1, 1, "c.i32_spacetodepth_s", "input"], [54, 1, 1, "c.i32_spacetodepth_s", "output"]], "i8_Gru_p": [[38, 1, 1, "c.i8_Gru_p", "buffer"], [38, 1, 1, "c.i8_Gru_p", "core_mask"], [38, 1, 1, "c.i8_Gru_p", "gru_param"], [38, 1, 1, "c.i8_Gru_p", "hidden_state"], [38, 1, 1, "c.i8_Gru_p", "input"], [38, 1, 1, "c.i8_Gru_p", "input_bias"], [38, 1, 1, "c.i8_Gru_p", "output"], [38, 1, 1, "c.i8_Gru_p", "state_bias"], [38, 1, 1, "c.i8_Gru_p", "weight_g"], [38, 1, 1, "c.i8_Gru_p", "weight_r"]], "i8_Gru_s": [[38, 1, 1, "c.i8_Gru_s", "buffer"], [38, 1, 1, "c.i8_Gru_s", "core_mask"], [38, 1, 1, "c.i8_Gru_s", "gru_param"], [38, 1, 1, "c.i8_Gru_s", "hidden_state"], [38, 1, 1, "c.i8_Gru_s", "input"], [38, 1, 1, "c.i8_Gru_s", "input_bias"], [38, 1, 1, "c.i8_Gru_s", "output"], [38, 1, 1, "c.i8_Gru_s", "state_bias"], [38, 1, 1, "c.i8_Gru_s", "weight_g"], [38, 1, 1, "c.i8_Gru_s", "weight_r"]], "i8_adder_p": [[12, 1, 1, "c.i8_adder_p", "bias"], [12, 1, 1, "c.i8_adder_p", "conv_param"], [12, 1, 1, "c.i8_adder_p", "core_mask"], [12, 1, 1, "c.i8_adder_p", "input_w"], [12, 1, 1, "c.i8_adder_p", "input_x"], [12, 1, 1, "c.i8_adder_p", "out_y"], [12, 1, 1, "c.i8_adder_p", "quant_param"]], "i8_adder_s": [[12, 1, 1, "c.i8_adder_s", "bias"], [12, 1, 1, "c.i8_adder_s", "core_mask"], [12, 1, 1, "c.i8_adder_s", "input_w"], [12, 1, 1, "c.i8_adder_s", "input_x"], [12, 1, 1, "c.i8_adder_s", "out_y"], [12, 1, 1, "c.i8_adder_s", "param"]], "i8_batchtospace_p": [[17, 1, 1, "c.i8_batchtospace_p", "block_size"], [17, 1, 1, "c.i8_batchtospace_p", "crops"], [17, 1, 1, "c.i8_batchtospace_p", "data_size"], [17, 1, 1, "c.i8_batchtospace_p", "input"], [17, 1, 1, "c.i8_batchtospace_p", "input_shape"], [17, 1, 1, "c.i8_batchtospace_p", "output"]], "i8_batchtospace_s": [[17, 1, 1, "c.i8_batchtospace_s", "block_size"], [17, 1, 1, "c.i8_batchtospace_s", "core_mask"], [17, 1, 1, "c.i8_batchtospace_s", "crops"], [17, 1, 1, "c.i8_batchtospace_s", "data_size"], [17, 1, 1, "c.i8_batchtospace_s", "input"], [17, 1, 1, "c.i8_batchtospace_s", "input_shape"], [17, 1, 1, "c.i8_batchtospace_s", "output"]], "i8_batchtospacend_p": [[18, 1, 1, "c.i8_batchtospacend_p", "block_size"], [18, 1, 1, "c.i8_batchtospacend_p", "crops"], [18, 1, 1, "c.i8_batchtospacend_p", "data_size"], [18, 1, 1, "c.i8_batchtospacend_p", "input"], [18, 1, 1, "c.i8_batchtospacend_p", "input_shape"], [18, 1, 1, "c.i8_batchtospacend_p", "output"]], "i8_batchtospacend_s": [[18, 1, 1, "c.i8_batchtospacend_s", "block_size"], [18, 1, 1, "c.i8_batchtospacend_s", "core_mask"], [18, 1, 1, "c.i8_batchtospacend_s", "crops"], [18, 1, 1, "c.i8_batchtospacend_s", "data_size"], [18, 1, 1, "c.i8_batchtospacend_s", "input"], [18, 1, 1, "c.i8_batchtospacend_s", "input_shape"], [18, 1, 1, "c.i8_batchtospacend_s", "output"]], "i8_broadcastto_p": [[19, 1, 1, "c.i8_broadcastto_p", "data_size"], [19, 1, 1, "c.i8_broadcastto_p", "input"], [19, 1, 1, "c.i8_broadcastto_p", "input_shape"], [19, 1, 1, "c.i8_broadcastto_p", "input_shape_size"], [19, 1, 1, "c.i8_broadcastto_p", "output"], [19, 1, 1, "c.i8_broadcastto_p", "output_shape"], [19, 1, 1, "c.i8_broadcastto_p", "output_shape_size"]], "i8_broadcastto_s": [[19, 1, 1, "c.i8_broadcastto_s", "core_mask"], [19, 1, 1, "c.i8_broadcastto_s", "data_size"], [19, 1, 1, "c.i8_broadcastto_s", "input"], [19, 1, 1, "c.i8_broadcastto_s", "input_shape"], [19, 1, 1, "c.i8_broadcastto_s", "input_shape_size"], [19, 1, 1, "c.i8_broadcastto_s", "output"], [19, 1, 1, "c.i8_broadcastto_s", "output_shape"], [19, 1, 1, "c.i8_broadcastto_s", "output_shape_size"]], "i8_celu_p": [[10, 1, 1, "c.i8_celu_p", "Input0"], [10, 1, 1, "c.i8_celu_p", "alpha"], [10, 1, 1, "c.i8_celu_p", "length"], [10, 1, 1, "c.i8_celu_p", "output"]], "i8_celu_s": [[10, 1, 1, "c.i8_celu_s", "Input0"], [10, 1, 1, "c.i8_celu_s", "alpha"], [10, 1, 1, "c.i8_celu_s", "core_mask"], [10, 1, 1, "c.i8_celu_s", "length"], [10, 1, 1, "c.i8_celu_s", "output"]], "i8_clip_p": [[10, 1, 1, "c.i8_clip_p", "Input0"], [10, 1, 1, "c.i8_clip_p", "length"], [10, 1, 1, "c.i8_clip_p", "max_val"], [10, 1, 1, "c.i8_clip_p", "min_val"], [10, 1, 1, "c.i8_clip_p", "output"]], "i8_clip_s": [[10, 1, 1, "c.i8_clip_s", "Input0"], [10, 1, 1, "c.i8_clip_s", "core_mask"], [10, 1, 1, "c.i8_clip_s", "length"], [10, 1, 1, "c.i8_clip_s", "max_val"], [10, 1, 1, "c.i8_clip_s", "min_val"], [10, 1, 1, "c.i8_clip_s", "output"]], "i8_conv2d_p": [[20, 1, 1, "c.i8_conv2d_p", "bias"], [20, 1, 1, "c.i8_conv2d_p", "conv_param"], [20, 1, 1, "c.i8_conv2d_p", "core_mask"], [20, 1, 1, "c.i8_conv2d_p", "input_w"], [20, 1, 1, "c.i8_conv2d_p", "input_x"], [20, 1, 1, "c.i8_conv2d_p", "out_y"], [20, 1, 1, "c.i8_conv2d_p", "quant_param"]], "i8_conv2d_s": [[20, 1, 1, "c.i8_conv2d_s", "bias"], [20, 1, 1, "c.i8_conv2d_s", "conv_param"], [20, 1, 1, "c.i8_conv2d_s", "core_mask"], [20, 1, 1, "c.i8_conv2d_s", "input_w"], [20, 1, 1, "c.i8_conv2d_s", "input_x"], [20, 1, 1, "c.i8_conv2d_s", "out_y"], [20, 1, 1, "c.i8_conv2d_s", "quant_param"]], "i8_convtranspose_p": [[21, 1, 1, "c.i8_convtranspose_p", "bias"], [21, 1, 1, "c.i8_convtranspose_p", "conv_param"], [21, 1, 1, "c.i8_convtranspose_p", "core_mask"], [21, 1, 1, "c.i8_convtranspose_p", "input_w"], [21, 1, 1, "c.i8_convtranspose_p", "input_x"], [21, 1, 1, "c.i8_convtranspose_p", "out_y"]], "i8_convtranspose_s": [[21, 1, 1, "c.i8_convtranspose_s", "bias"], [21, 1, 1, "c.i8_convtranspose_s", "conv_param"], [21, 1, 1, "c.i8_convtranspose_s", "core_mask"], [21, 1, 1, "c.i8_convtranspose_s", "input_w"], [21, 1, 1, "c.i8_convtranspose_s", "input_x"], [21, 1, 1, "c.i8_convtranspose_s", "out_y"]], "i8_crop_and_resize_anycore": [[25, 1, 1, "c.i8_crop_and_resize_anycore", "box_idx"], [25, 1, 1, "c.i8_crop_and_resize_anycore", "boxes"], [25, 1, 1, "c.i8_crop_and_resize_anycore", "core_mask"], [25, 1, 1, "c.i8_crop_and_resize_anycore", "dst"], [25, 1, 1, "c.i8_crop_and_resize_anycore", "extrapolation_value"], [25, 1, 1, "c.i8_crop_and_resize_anycore", "param"], [25, 1, 1, "c.i8_crop_and_resize_anycore", "src"]], "i8_depthtospace_p": [[26, 1, 1, "c.i8_depthtospace_p", "block_size"], [26, 1, 1, "c.i8_depthtospace_p", "data_size"], [26, 1, 1, "c.i8_depthtospace_p", "in_shape"], [26, 1, 1, "c.i8_depthtospace_p", "input"], [26, 1, 1, "c.i8_depthtospace_p", "output"]], "i8_depthtospace_s": [[26, 1, 1, "c.i8_depthtospace_s", "block_size"], [26, 1, 1, "c.i8_depthtospace_s", "core_mask"], [26, 1, 1, "c.i8_depthtospace_s", "data_size"], [26, 1, 1, "c.i8_depthtospace_s", "in_shape"], [26, 1, 1, "c.i8_depthtospace_s", "input"], [26, 1, 1, "c.i8_depthtospace_s", "output"]], "i8_eltwise_p": [[28, 1, 1, "c.i8_eltwise_p", "Input0"], [28, 1, 1, "c.i8_eltwise_p", "Input1"], [28, 1, 1, "c.i8_eltwise_p", "eltwise_mode_"], [28, 1, 1, "c.i8_eltwise_p", "length"], [28, 1, 1, "c.i8_eltwise_p", "output"]], "i8_eltwise_s": [[28, 1, 1, "c.i8_eltwise_s", "Input0"], [28, 1, 1, "c.i8_eltwise_s", "Input1"], [28, 1, 1, "c.i8_eltwise_s", "core_mask"], [28, 1, 1, "c.i8_eltwise_s", "eltwise_mode_"], [28, 1, 1, "c.i8_eltwise_s", "length"], [28, 1, 1, "c.i8_eltwise_s", "output"]], "i8_elu_p": [[10, 1, 1, "c.i8_elu_p", "Input0"], [10, 1, 1, "c.i8_elu_p", "alpha"], [10, 1, 1, "c.i8_elu_p", "length"], [10, 1, 1, "c.i8_elu_p", "output"]], "i8_elu_s": [[10, 1, 1, "c.i8_elu_s", "Input0"], [10, 1, 1, "c.i8_elu_s", "alpha"], [10, 1, 1, "c.i8_elu_s", "core_mask"], [10, 1, 1, "c.i8_elu_s", "length"], [10, 1, 1, "c.i8_elu_s", "output"]], "i8_equal_p": [[30, 1, 1, "c.i8_equal_p", "Input0"], [30, 1, 1, "c.i8_equal_p", "Input1"], [30, 1, 1, "c.i8_equal_p", "length"], [30, 1, 1, "c.i8_equal_p", "output"]], "i8_equal_s": [[30, 1, 1, "c.i8_equal_s", "Input0"], [30, 1, 1, "c.i8_equal_s", "Input1"], [30, 1, 1, "c.i8_equal_s", "core_mask"], [30, 1, 1, "c.i8_equal_s", "length"], [30, 1, 1, "c.i8_equal_s", "output"]], "i8_expfusion_p": [[32, 1, 1, "c.i8_expfusion_p", "dst_data"], [32, 1, 1, "c.i8_expfusion_p", "in_scale"], [32, 1, 1, "c.i8_expfusion_p", "length"], [32, 1, 1, "c.i8_expfusion_p", "out_scale"], [32, 1, 1, "c.i8_expfusion_p", "scale"], [32, 1, 1, "c.i8_expfusion_p", "src_data"]], "i8_expfusion_s": [[32, 1, 1, "c.i8_expfusion_s", "core_mask"], [32, 1, 1, "c.i8_expfusion_s", "dst_data"], [32, 1, 1, "c.i8_expfusion_s", "in_scale"], [32, 1, 1, "c.i8_expfusion_s", "length"], [32, 1, 1, "c.i8_expfusion_s", "out_scale"], [32, 1, 1, "c.i8_expfusion_s", "scale"], [32, 1, 1, "c.i8_expfusion_s", "src_data"]], "i8_gelu_p": [[10, 1, 1, "c.i8_gelu_p", "Input0"], [10, 1, 1, "c.i8_gelu_p", "approximate"], [10, 1, 1, "c.i8_gelu_p", "length"], [10, 1, 1, "c.i8_gelu_p", "output"]], "i8_gelu_s": [[10, 1, 1, "c.i8_gelu_s", "Input0"], [10, 1, 1, "c.i8_gelu_s", "approximate"], [10, 1, 1, "c.i8_gelu_s", "core_mask"], [10, 1, 1, "c.i8_gelu_s", "length"], [10, 1, 1, "c.i8_gelu_s", "output"]], "i8_hardshrink_p": [[10, 1, 1, "c.i8_hardshrink_p", "Input0"], [10, 1, 1, "c.i8_hardshrink_p", "lambd"], [10, 1, 1, "c.i8_hardshrink_p", "length"], [10, 1, 1, "c.i8_hardshrink_p", "output"]], "i8_hardshrink_s": [[10, 1, 1, "c.i8_hardshrink_s", "Input0"], [10, 1, 1, "c.i8_hardshrink_s", "core_mask"], [10, 1, 1, "c.i8_hardshrink_s", "lambd"], [10, 1, 1, "c.i8_hardshrink_s", "length"], [10, 1, 1, "c.i8_hardshrink_s", "output"]], "i8_hardtanh_p": [[10, 1, 1, "c.i8_hardtanh_p", "Input0"], [10, 1, 1, "c.i8_hardtanh_p", "length"], [10, 1, 1, "c.i8_hardtanh_p", "max_val"], [10, 1, 1, "c.i8_hardtanh_p", "min_val"], [10, 1, 1, "c.i8_hardtanh_p", "output"]], "i8_hardtanh_s": [[10, 1, 1, "c.i8_hardtanh_s", "Input0"], [10, 1, 1, "c.i8_hardtanh_s", "core_mask"], [10, 1, 1, "c.i8_hardtanh_s", "length"], [10, 1, 1, "c.i8_hardtanh_s", "max_val"], [10, 1, 1, "c.i8_hardtanh_s", "min_val"], [10, 1, 1, "c.i8_hardtanh_s", "output"]], "i8_hsigmoid_p": [[10, 1, 1, "c.i8_hsigmoid_p", "Input0"], [10, 1, 1, "c.i8_hsigmoid_p", "length"], [10, 1, 1, "c.i8_hsigmoid_p", "output"]], "i8_hsigmoid_s": [[10, 1, 1, "c.i8_hsigmoid_s", "Input0"], [10, 1, 1, "c.i8_hsigmoid_s", "core_mask"], [10, 1, 1, "c.i8_hsigmoid_s", "length"], [10, 1, 1, "c.i8_hsigmoid_s", "output"]], "i8_hswish_p": [[10, 1, 1, "c.i8_hswish_p", "Input0"], [10, 1, 1, "c.i8_hswish_p", "length"], [10, 1, 1, "c.i8_hswish_p", "output"]], "i8_hswish_s": [[10, 1, 1, "c.i8_hswish_s", "Input0"], [10, 1, 1, "c.i8_hswish_s", "core_mask"], [10, 1, 1, "c.i8_hswish_s", "length"], [10, 1, 1, "c.i8_hswish_s", "output"]], "i8_leaky_relu_p": [[39, 1, 1, "c.i8_leaky_relu_p", "alpha"], [39, 1, 1, "c.i8_leaky_relu_p", "core_mask"], [39, 1, 1, "c.i8_leaky_relu_p", "elem_cnt"], [39, 1, 1, "c.i8_leaky_relu_p", "input"], [39, 1, 1, "c.i8_leaky_relu_p", "output"]], "i8_leaky_relu_s": [[39, 1, 1, "c.i8_leaky_relu_s", "alpha"], [39, 1, 1, "c.i8_leaky_relu_s", "core_mask"], [39, 1, 1, "c.i8_leaky_relu_s", "elem_cnt"], [39, 1, 1, "c.i8_leaky_relu_s", "input"], [39, 1, 1, "c.i8_leaky_relu_s", "output"]], "i8_lrelu_p": [[10, 1, 1, "c.i8_lrelu_p", "Input0"], [10, 1, 1, "c.i8_lrelu_p", "alpha"], [10, 1, 1, "c.i8_lrelu_p", "length"], [10, 1, 1, "c.i8_lrelu_p", "output"]], "i8_lrelu_s": [[10, 1, 1, "c.i8_lrelu_s", "Input0"], [10, 1, 1, "c.i8_lrelu_s", "alpha"], [10, 1, 1, "c.i8_lrelu_s", "core_mask"], [10, 1, 1, "c.i8_lrelu_s", "length"], [10, 1, 1, "c.i8_lrelu_s", "output"]], "i8_raggedrange_p": [[43, 1, 1, "c.i8_raggedrange_p", "deltas"], [43, 1, 1, "c.i8_raggedrange_p", "limits"], [43, 1, 1, "c.i8_raggedrange_p", "range_count"], [43, 1, 1, "c.i8_raggedrange_p", "splits"], [43, 1, 1, "c.i8_raggedrange_p", "starts"], [43, 1, 1, "c.i8_raggedrange_p", "values"]], "i8_raggedrange_s": [[43, 1, 1, "c.i8_raggedrange_s", "core_mask"], [43, 1, 1, "c.i8_raggedrange_s", "deltas"], [43, 1, 1, "c.i8_raggedrange_s", "limits"], [43, 1, 1, "c.i8_raggedrange_s", "range_count"], [43, 1, 1, "c.i8_raggedrange_s", "splits"], [43, 1, 1, "c.i8_raggedrange_s", "starts"], [43, 1, 1, "c.i8_raggedrange_s", "values"]], "i8_range_p": [[44, 1, 1, "c.i8_range_p", "delta"], [44, 1, 1, "c.i8_range_p", "length"], [44, 1, 1, "c.i8_range_p", "output"], [44, 1, 1, "c.i8_range_p", "start"]], "i8_range_s": [[44, 1, 1, "c.i8_range_s", "core_mask"], [44, 1, 1, "c.i8_range_s", "delta"], [44, 1, 1, "c.i8_range_s", "length"], [44, 1, 1, "c.i8_range_s", "output"], [44, 1, 1, "c.i8_range_s", "start"]], "i8_reduce_p": [[45, 1, 1, "c.i8_reduce_p", "core_mask"], [45, 1, 1, "c.i8_reduce_p", "dst_data"], [45, 1, 1, "c.i8_reduce_p", "param"], [45, 1, 1, "c.i8_reduce_p", "src_data"], [45, 1, 1, "c.i8_reduce_p", "tmp_dst_data"], [45, 1, 1, "c.i8_reduce_p", "tmp_src_data"]], "i8_reduce_s": [[45, 1, 1, "c.i8_reduce_s", "core_mask"], [45, 1, 1, "c.i8_reduce_s", "dst_data"], [45, 1, 1, "c.i8_reduce_s", "param"], [45, 1, 1, "c.i8_reduce_s", "src_data"]], "i8_relu6_p": [[10, 1, 1, "c.i8_relu6_p", "Input0"], [10, 1, 1, "c.i8_relu6_p", "length"], [10, 1, 1, "c.i8_relu6_p", "output"]], "i8_relu6_s": [[10, 1, 1, "c.i8_relu6_s", "Input0"], [10, 1, 1, "c.i8_relu6_s", "core_mask"], [10, 1, 1, "c.i8_relu6_s", "length"], [10, 1, 1, "c.i8_relu6_s", "output"]], "i8_relu_p": [[10, 1, 1, "c.i8_relu_p", "Input0"], [10, 1, 1, "c.i8_relu_p", "length"], [10, 1, 1, "c.i8_relu_p", "output"]], "i8_relu_s": [[10, 1, 1, "c.i8_relu_s", "Input0"], [10, 1, 1, "c.i8_relu_s", "core_mask"], [10, 1, 1, "c.i8_relu_s", "length"], [10, 1, 1, "c.i8_relu_s", "output"]], "i8_resize_anycore": [[46, 1, 1, "c.i8_resize_anycore", "core_mask"], [46, 1, 1, "c.i8_resize_anycore", "input"], [46, 1, 1, "c.i8_resize_anycore", "output"], [46, 1, 1, "c.i8_resize_anycore", "param"]], "i8_scalefusion_p": [[49, 1, 1, "c.i8_scalefusion_p", "bias"], [49, 1, 1, "c.i8_scalefusion_p", "dst_data"], [49, 1, 1, "c.i8_scalefusion_p", "length"], [49, 1, 1, "c.i8_scalefusion_p", "scale"], [49, 1, 1, "c.i8_scalefusion_p", "src_data"]], "i8_scalefusion_s": [[49, 1, 1, "c.i8_scalefusion_s", "bias"], [49, 1, 1, "c.i8_scalefusion_s", "core_mask"], [49, 1, 1, "c.i8_scalefusion_s", "dst_data"], [49, 1, 1, "c.i8_scalefusion_s", "length"], [49, 1, 1, "c.i8_scalefusion_s", "scale"], [49, 1, 1, "c.i8_scalefusion_s", "src_data"]], "i8_scatter_elements_p": [[50, 1, 1, "c.i8_scatter_elements_p", "core_mask"], [50, 1, 1, "c.i8_scatter_elements_p", "indices"], [50, 1, 1, "c.i8_scatter_elements_p", "input"], [50, 1, 1, "c.i8_scatter_elements_p", "output"], [50, 1, 1, "c.i8_scatter_elements_p", "param"], [50, 1, 1, "c.i8_scatter_elements_p", "updates"]], "i8_scatter_elements_s": [[50, 1, 1, "c.i8_scatter_elements_s", "core_mask"], [50, 1, 1, "c.i8_scatter_elements_s", "indices"], [50, 1, 1, "c.i8_scatter_elements_s", "input"], [50, 1, 1, "c.i8_scatter_elements_s", "output"], [50, 1, 1, "c.i8_scatter_elements_s", "param"], [50, 1, 1, "c.i8_scatter_elements_s", "updates"]], "i8_sigmoid_p": [[10, 1, 1, "c.i8_sigmoid_p", "Input0"], [10, 1, 1, "c.i8_sigmoid_p", "length"], [10, 1, 1, "c.i8_sigmoid_p", "output"]], "i8_sigmoid_s": [[10, 1, 1, "c.i8_sigmoid_s", "Input0"], [10, 1, 1, "c.i8_sigmoid_s", "core_mask"], [10, 1, 1, "c.i8_sigmoid_s", "length"], [10, 1, 1, "c.i8_sigmoid_s", "output"]], "i8_softplus_p": [[10, 1, 1, "c.i8_softplus_p", "Input0"], [10, 1, 1, "c.i8_softplus_p", "length"], [10, 1, 1, "c.i8_softplus_p", "output"]], "i8_softplus_s": [[10, 1, 1, "c.i8_softplus_s", "Input0"], [10, 1, 1, "c.i8_softplus_s", "core_mask"], [10, 1, 1, "c.i8_softplus_s", "length"], [10, 1, 1, "c.i8_softplus_s", "output"]], "i8_softshrink_p": [[10, 1, 1, "c.i8_softshrink_p", "Input0"], [10, 1, 1, "c.i8_softshrink_p", "lambd"], [10, 1, 1, "c.i8_softshrink_p", "length"], [10, 1, 1, "c.i8_softshrink_p", "output"]], "i8_softshrink_s": [[10, 1, 1, "c.i8_softshrink_s", "Input0"], [10, 1, 1, "c.i8_softshrink_s", "core_mask"], [10, 1, 1, "c.i8_softshrink_s", "lambd"], [10, 1, 1, "c.i8_softshrink_s", "length"], [10, 1, 1, "c.i8_softshrink_s", "output"]], "i8_softsignopt_p": [[10, 1, 1, "c.i8_softsignopt_p", "Input0"], [10, 1, 1, "c.i8_softsignopt_p", "length"], [10, 1, 1, "c.i8_softsignopt_p", "output"]], "i8_softsignopt_s": [[10, 1, 1, "c.i8_softsignopt_s", "Input0"], [10, 1, 1, "c.i8_softsignopt_s", "core_mask"], [10, 1, 1, "c.i8_softsignopt_s", "length"], [10, 1, 1, "c.i8_softsignopt_s", "output"]], "i8_spacetobatch_p": [[52, 1, 1, "c.i8_spacetobatch_p", "block_size"], [52, 1, 1, "c.i8_spacetobatch_p", "data_size"], [52, 1, 1, "c.i8_spacetobatch_p", "input"], [52, 1, 1, "c.i8_spacetobatch_p", "input_shape"], [52, 1, 1, "c.i8_spacetobatch_p", "output"], [52, 1, 1, "c.i8_spacetobatch_p", "paddings"]], "i8_spacetobatch_s": [[52, 1, 1, "c.i8_spacetobatch_s", "block_size"], [52, 1, 1, "c.i8_spacetobatch_s", "core_mask"], [52, 1, 1, "c.i8_spacetobatch_s", "data_size"], [52, 1, 1, "c.i8_spacetobatch_s", "input"], [52, 1, 1, "c.i8_spacetobatch_s", "input_shape"], [52, 1, 1, "c.i8_spacetobatch_s", "output"], [52, 1, 1, "c.i8_spacetobatch_s", "paddings"]], "i8_spacetobatchnd_p": [[53, 1, 1, "c.i8_spacetobatchnd_p", "block_size"], [53, 1, 1, "c.i8_spacetobatchnd_p", "data_size"], [53, 1, 1, "c.i8_spacetobatchnd_p", "input"], [53, 1, 1, "c.i8_spacetobatchnd_p", "input_shape"], [53, 1, 1, "c.i8_spacetobatchnd_p", "output"], [53, 1, 1, "c.i8_spacetobatchnd_p", "paddings"]], "i8_spacetobatchnd_s": [[53, 1, 1, "c.i8_spacetobatchnd_s", "block_size"], [53, 1, 1, "c.i8_spacetobatchnd_s", "core_mask"], [53, 1, 1, "c.i8_spacetobatchnd_s", "data_size"], [53, 1, 1, "c.i8_spacetobatchnd_s", "input"], [53, 1, 1, "c.i8_spacetobatchnd_s", "input_shape"], [53, 1, 1, "c.i8_spacetobatchnd_s", "output"], [53, 1, 1, "c.i8_spacetobatchnd_s", "paddings"]], "i8_spacetodepth_p": [[54, 1, 1, "c.i8_spacetodepth_p", "block"], [54, 1, 1, "c.i8_spacetodepth_p", "data_size"], [54, 1, 1, "c.i8_spacetodepth_p", "in_shape"], [54, 1, 1, "c.i8_spacetodepth_p", "input"], [54, 1, 1, "c.i8_spacetodepth_p", "output"]], "i8_spacetodepth_s": [[54, 1, 1, "c.i8_spacetodepth_s", "block"], [54, 1, 1, "c.i8_spacetodepth_s", "core_mask"], [54, 1, 1, "c.i8_spacetodepth_s", "data_size"], [54, 1, 1, "c.i8_spacetodepth_s", "in_shape"], [54, 1, 1, "c.i8_spacetodepth_s", "input"], [54, 1, 1, "c.i8_spacetodepth_s", "output"]], "i8_swish_p": [[10, 1, 1, "c.i8_swish_p", "Input0"], [10, 1, 1, "c.i8_swish_p", "length"], [10, 1, 1, "c.i8_swish_p", "output"]], "i8_swish_s": [[10, 1, 1, "c.i8_swish_s", "Input0"], [10, 1, 1, "c.i8_swish_s", "core_mask"], [10, 1, 1, "c.i8_swish_s", "length"], [10, 1, 1, "c.i8_swish_s", "output"]], "i8_tanh_p": [[10, 1, 1, "c.i8_tanh_p", "Input0"], [10, 1, 1, "c.i8_tanh_p", "length"], [10, 1, 1, "c.i8_tanh_p", "output"]], "i8_tanh_s": [[10, 1, 1, "c.i8_tanh_s", "Input0"], [10, 1, 1, "c.i8_tanh_s", "core_mask"], [10, 1, 1, "c.i8_tanh_s", "length"], [10, 1, 1, "c.i8_tanh_s", "output"]], "mindradar": [[6, 2, 1, "", "ComplexAbs"], [7, 2, 1, "", "FFT"], [8, 2, 1, "", "IFFT"]]}, "objnames": {"0": ["c", "function", "C \u51fd\u6570"], "1": ["c", "functionParam", "C \u51fd\u6570\u53c2\u6570"], "2": ["py", "class", "Python \u7c7b"]}, "objtypes": {"0": "c:function", "1": "c:functionParam", "2": "py:class"}, "terms": {"004": 4, "01": 0, "044715": 10, "0b0001": [12, 20, 21, 24, 25, 31, 33, 38, 39, 45, 46, 47, 50, 55, 56], "0b1111": [12, 20, 21, 24, 25, 31, 33, 38, 39, 45, 46, 47, 48, 50, 55, 56], "0f": [40, 51], "0x10000": [22, 23], "0x1000000": 45, "0x10000000": [10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 50, 51, 52, 53, 54], "0x10000200": 41, "0x10000400": 41, "0x10000600": 41, "0x10000800": 41, "0x10000a00": 41, "0x10000c00": 41, "0x10000e00": 41, "0x10001000": [21, 41, 43, 50], "0x10001200": 41, "0x10001400": 41, "0x10001600": 41, "0x10001800": 41, "0x10001a00": 41, "0x10001c00": 41, "0x10001f00": 41, "0x10002000": [11, 13, 21, 41, 43, 50, 51], "0x10002200": 41, "0x10003000": [21, 43, 50], "0x10004000": [10, 11, 13, 16, 21, 36, 37, 38, 43, 50, 51], "0x10005000": [21, 50], "0x10006000": [11, 21, 50], "0x10008000": [36, 37, 38], "0x1000c000": [36, 37, 38], "0x1000ll": 48, "0x10010000": [12, 17, 18, 20, 33, 36, 37, 38, 39, 45, 54], "0x10014000": [36, 37, 38], "0x10018000": 38, "0x1001c000": 38, "0x10020000": [12, 19, 20, 22, 23, 38, 42, 45], "0x10021000": 45, "0x10022000": 45, "0x10023000": 45, "0x10024000": [38, 45], "0x10030000": [12, 20, 38], "0x10034000": 38, "0x10038000": 38, "0x1003c000": 38, "0x10040000": [12, 15, 20, 22, 23, 26, 42, 52, 53], "0x10060000": [12, 20, 22, 23], "0x10070000": [12, 20, 22, 23], "0x10080000": 15, "0x100c0000": 15, "0x10100000": 15, "0x10200000": 15, "0x10810000": [28, 29, 30, 32, 35, 49], "0x10820000": [28, 29, 30, 32, 35, 49], "0x10830000": [28, 30, 35, 49], "0x10840000": 49, "0x20000": [22, 23], "0x82000000": 39, "0x84000000": [46, 48], "0x84003000": 48, "0x84004000": 48, "0x84005000": 48, "0x84006000": 48, "0x84007000": 48, "0x85000000": 46, "0x86000000": 46, "0x87000000": 46, "0x87100000": 46, "0x88000000": [12, 20, 21, 24, 25, 31, 33, 38, 39, 45, 46, 47, 48, 50, 55, 56], "0x88100000": 38, "0x88200000": 38, "0x88300000": 38, "0x88400000": 38, "0x88500000": 38, "0x88600000": 38, "0x88700000": 38, "0x88800000": 38, "0x88900000": 38, "0x88a00000": 38, "0x88b00000": 38, "0x88c00000": 38, "0x88d00000": 38, "0x89000000": [12, 20, 21, 25, 46], "0x8a000000": [25, 46], "0x8b000000": [25, 46], "0x8c000000": [25, 46], "0x8d000000": [25, 46], "0x8e000000": [25, 46], "0x8f000000": 25, "0x90000000": [12, 20, 21, 25, 41], "0x91000000": [12, 20, 21, 25], "0x92000000": [12, 20, 21, 25], "0x93000000": 25, "0x94000000": [21, 25], "0x95000000": 25, "0x98000000": [24, 31, 45, 47, 50, 55, 56], "0xa0000000": [10, 11, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 26, 28, 29, 30, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 49, 51, 52, 53, 54], "0xa0100000": 43, "0xa0200000": 43, "0xa0300000": 43, "0xa0400000": 43, "0xa0872c00": 29, "0xa1000000": [15, 41, 42], "0xa2000000": [15, 42], "0xa3000000": [15, 41, 42], "0xa4000000": 15, "0xa5000000": 15, "0xa8000000": [24, 47, 48, 50], "0xa8010000": 47, "0xa8020000": 47, "0xa8200000": 24, "0xa8410000": 24, "0xa8480000": 45, "0xa8483000": 45, "0xa8484000": 45, "0xa8485000": 45, "0xa8486000": 45, "0xa8490000": 45, "0xb0000000": [11, 13, 16, 17, 18, 19, 22, 23, 26, 28, 30, 35, 36, 37, 41, 49, 51, 52, 53, 54], "0xb0001000": [22, 23, 36, 37], "0xb0002000": [22, 23, 36, 37], "0xb0003000": [36, 37], "0xb0100000": 41, "0xb0200000": 41, "0xb0300000": 41, "0xb0400000": 41, "0xb0500000": 41, "0xb0600000": 41, "0xb0700000": 41, "0xb0800000": 41, "0xb0900000": 41, "0xb0b00000": 41, "0xb1000000": 49, "0xb8000000": [47, 50], "0xc0000000": [10, 11, 13, 14, 22, 23, 28, 29, 30, 32, 34, 35, 36, 37, 41, 49, 51], "0xc0100000": 41, "0xc0200000": 41, "0xc8000000": [47, 48, 50], "0xc8020000": 50, "0xc8040000": 50, "0xd0000000": 11, "0xff": [10, 11, 13, 15, 16, 17, 18, 19, 22, 23, 26, 28, 29, 30, 32, 34, 35, 36, 37, 40, 41, 42, 43, 44, 49, 51, 52, 53, 54], "10": [0, 7, 8, 12, 19, 20, 26, 31, 47, 48, 52, 53, 55, 56, 62], "100": [35, 40, 52, 53], "1000": [10, 28, 30, 32, 33, 34, 35, 39, 40, 44, 48, 49], "1001": 40, "1024": [21, 36], "10pt": 29, "11": [4, 62], "114": 0, "12": 62, "128": [0, 15, 16, 42, 64], "128x128": 0, "12pt": 29, "14": [16, 62], "1536": 4, "16": [16, 26, 37, 64], "1733": 4, "18": 4, "1e": [11, 13, 36, 37, 51], "1i": 4, "1j": 4, "1x1": [22, 23], "20": [4, 19, 41], "2000": 41, "2016": 10, "2019": 62, "2023": 4, "2048": [4, 11, 12, 13, 20, 51], "255": 0, "299": 0, "2_": 37, "2f": [11, 13, 51], "2i": 4, "2j": 4, "2x2": 60, "30": [12, 20, 50, 62], "3072": 4, "32": [0, 15, 36, 37, 62, 64], "32768": 0, "3328": 4, "3414": 4, "36": 37, "3f": [11, 13, 51], "3j": [6, 7, 8], "400": [17, 18], "4096": [4, 11, 13, 51], "47": 4, "49": 37, "4f": [11, 36, 37], "4i": 4, "4j": 4, "50": [0, 4, 19], "512": [36, 42], "587": 0, "5e": [11, 13, 51], "5f": [36, 37, 40, 44], "64": [0, 15, 16, 36, 37, 62, 64], "6678e": 58, "6900": 4, "6f": 11, "6pt": [10, 28, 41], "7004": 58, "7062": 4, "75": 46, "789": 33, "88": 10, "8f": 11, "999f": 11, "99f": 13, "9f": [11, 13, 51], "__init__": [0, 4, 60], "__main__": 0, "__name__": 0, "_count": 43, "_decay": 51, "_h": 16, "_i": 40, "_k": 43, "_len": 41, "_p": 64, "_rate": [13, 51], "_relu": 39, "_s": 64, "_scale": 32, "_shape": 54, "_size": [29, 41], "_t": [11, 51], "_val": 10, "_w": 16, "a_i": 6, "abs": [4, 58], "absgrad": 58, "accu_": 13, "accu_t": 13, "accumul": [0, 13, 51], "accuraci": 0, "act": 42, "activ": [27, 57, 58, 62], "activation_typ": 42, "activationgrad": 58, "adam": [0, 11, 58], "adamweightdecay": [27, 57], "adapthisteq": 4, "add": [50, 62], "add_channel": 0, "adder": [27, 57], "adderfus": 58, "adderparamet": 12, "addfus": 58, "addgrad": 58, "addn": 58, "affin": 58, "after": 0, "ai": [0, 5, 59], "align": [10, 11, 13, 17, 38, 41, 43, 51], "align_corn": 46, "all": [4, 58], "allgath": 58, "alpha": [4, 10, 39], "am": [12, 20, 21, 38, 39, 45, 50], "amd64": 62, "amzipp": 58, "anaconda": 62, "anaconda3": 62, "and": [0, 47], "ani": 62, "anytype_crop_anycor": 24, "anytype_expand_dims_anycor": 31, "anytype_fillv2_": 33, "anytype_fillv2_p": 33, "anytype_reverse_sequence_anycor": 47, "anytype_reversev2_anycor": 48, "anytype_squeeze_anycor": 55, "anytype_unsqueeze_anycor": 56, "api": [4, 57, 59], "app": 0, "append": 4, "applymomentum": [27, 57, 58], "approxim": 10, "arang": [4, 6, 7, 8], "arcsin": 58, "arg": 10, "argc": [10, 14, 15, 17, 18, 19, 26, 28, 29, 30, 32, 34, 35, 40, 41, 42, 43, 44, 49, 52, 53, 54], "argmax": 0, "argmax_indic": 0, "argmaxfus": 58, "argminfus": 58, "argv": [10, 14, 15, 17, 18, 19, 26, 28, 29, 30, 32, 34, 35, 40, 41, 42, 43, 44, 49, 52, 53, 54], "arm": [60, 62], "arm_toolchain": 60, "array": [0, 4, 48], "as": [0, 4, 6, 7, 8, 60], "asnumpi": 0, "assert": [27, 57, 58], "assert_": 14, "assign": 58, "astyp": [0, 6, 7, 8], "at": 47, "attent": [27, 57], "auto": 0, "avgpoolfus": 58, "avgpoolgrad": 58, "avgpoolinggrad": [27, 57], "axe": 45, "axi": [0, 4, 24, 45, 47, 48, 50, 55], "axis_": 50, "axis_flag": 48, "axis_flag_": 48, "axis_ndim": 48, "axis_ndim_": 48, "axis_sizes_": 45, "azimuthfftfftshift": 58, "azimuthifft": 58, "b_": [38, 41], "b_f": 41, "b_g": 41, "b_h": 17, "b_i": [6, 41], "b_o": 41, "b_w": 17, "backprop": [22, 23], "backward": [7, 8], "bat": 60, "batch": [0, 16, 17, 18, 20, 21, 22, 23, 26, 36, 37, 38, 41, 52, 53], "batch_": [38, 41], "batch_dim": 47, "batch_dim_": 47, "batch_siz": [0, 15, 38], "batchnorm": 58, "batchnormgrad": 58, "batchtospac": [27, 57, 58], "batchtospacend": [27, 57, 58], "be": 47, "been": 62, "befor": [0, 47], "begin": [0, 10, 11, 13, 14, 17, 28, 29, 30, 32, 38, 39, 41, 43, 51], "beta1": 11, "beta2": 11, "beta_1": 11, "beta_2": 11, "between": 47, "bias": [12, 20, 21, 41, 42, 49], "bias_data": [12, 20, 21], "bias_i": 49, "biasadd": 58, "biasaddgrad": 58, "bidirect": 38, "bidirectional_": [38, 41], "bigl": 10, "bigr": 10, "bilinear": 46, "binari": 62, "binarycrossentropi": 58, "binarycrossentropygrad": 58, "bitrev": 58, "block": [18, 26, 54], "block_h": [17, 18, 52, 53], "block_siz": [17, 18, 26, 52, 53], "block_w": [17, 18, 52, 53], "bool": [13, 14, 28, 29, 30, 41, 51, 58], "bottom": [17, 18, 52, 53], "box": 25, "box_idx": 25, "box_index": 25, "brdm_2": 0, "break": 45, "broadcastto": [27, 57, 58], "btr_60": 0, "buffer": [38, 41], "buffer_size_": [12, 20, 21, 22, 23], "build": [0, 60], "by": 48, "c128": 64, "c128_add_": 64, "c128_add_p": 64, "c128_batchtospace_": 17, "c128_batchtospace_p": 17, "c128_batchtospacend_": 18, "c128_batchtospacend_p": 18, "c128_broadcastto_": 19, "c128_broadcastto_p": 19, "c128_depthtospace_": 26, "c128_depthtospace_p": 26, "c128_eltwise_": 28, "c128_eltwise_p": 28, "c128_equal_": 30, "c128_equal_p": 30, "c128_expfusion_": 32, "c128_expfusion_p": 32, "c128_matmulfusion_": 42, "c128_matmulfusion_p": 42, "c128_scatter_elements_": 50, "c128_scatter_elements_p": 50, "c128_spacetobatch_": 52, "c128_spacetobatch_p": 52, "c128_spacetobatchnd_": 53, "c128_spacetobatchnd_p": 53, "c128_spacetodepth_": 54, "c128_spacetodepth_p": 54, "c64": 64, "c64_add_": 64, "c64_add_p": 64, "c64_batchtospace_": 17, "c64_batchtospace_p": 17, "c64_batchtospacend_": 18, "c64_batchtospacend_p": 18, "c64_broadcastto_": 19, "c64_broadcastto_p": 19, "c64_depthtospace_": 26, "c64_depthtospace_p": 26, "c64_eltwise_": 28, "c64_eltwise_p": 28, "c64_equal_": 30, "c64_equal_p": 30, "c64_expfusion_": 32, "c64_expfusion_p": 32, "c64_matmulfusion_": 42, "c64_matmulfusion_p": 42, "c64_scatter_elements_": 50, "c64_scatter_elements_p": 50, "c64_spacetobatch_": 52, "c64_spacetobatch_p": 52, "c64_spacetobatchnd_": 53, "c64_spacetobatchnd_p": 53, "c64_spacetodepth_": 54, "c64_spacetodepth_p": 54, "c_": [12, 17, 20, 21, 41], "c_str": 0, "c_t": 41, "calcul": [47, 62], "call": 58, "callback": 0, "case": [10, 13, 14, 28, 29, 30, 32, 39, 51], "cast": [4, 58], "cc": 0, "ccor": 20, "cd_run_param": 4, "cddata1": 4, "cddata2": 4, "cdot": [10, 11, 13, 16, 28, 29, 32, 36, 37, 39, 40, 41, 43, 49, 51], "ceil": 58, "cell": [0, 4, 41, 60], "cell_buff": 41, "cell_stat": 41, "cell_state_": 41, "celu": 10, "cfar": 58, "channel": [0, 16, 17, 18, 26, 36, 37, 52, 53, 54], "char": [10, 14, 15, 17, 18, 19, 26, 28, 29, 30, 32, 34, 35, 40, 41, 42, 43, 44, 49, 52, 53, 54], "check": [21, 45, 46, 47, 48], "check_output_hidden_st": 38, "check_seq_len": 38, "check_seq_len_": 38, "chmod": 60, "cin_channel": 0, "circshift": 4, "ckpt": 0, "class": [0, 4, 6, 7, 8, 60], "class_label": 0, "class_nam": 0, "clip": [0, 10, 58], "clip_by_valu": 0, "cliplimit": 4, "close": 4, "cmake": 60, "cmakelist": [0, 60], "cmd": 62, "cnn": 0, "cnn_model": 0, "col": 0, "color": 0, "color_imag": 0, "color_rgb2gray": 0, "complex": [4, 42], "complex128": [6, 7, 8, 64], "complex64": [4, 6, 7, 8, 64], "complexab": [4, 9, 57, 58, 62], "compon": 62, "compos": 0, "computestrid": 47, "concat": 58, "connect": 0, "const": [0, 11, 13, 16, 17, 18, 19, 22, 23, 26, 36, 37, 39, 41, 51, 52, 53, 54, 60], "constant": 4, "constant_valu": 4, "constantofshap": 58, "construct": [0, 4, 60], "context": [0, 60], "continu": 10, "conv1": 0, "conv2": 0, "conv2d": [0, 21, 22, 23, 27, 57], "conv2dbackpropfilterfus": [27, 57, 58], "conv2dbackpropinputfus": [27, 57, 58], "conv2dfus": 58, "conv2dgradfilt": 22, "conv2dtranspos": [27, 57], "conv2dtransposefus": 58, "conv3": 0, "conv_param": [12, 20, 21, 22, 23], "conv_paramet": [22, 23], "convert": 60, "convert_gray": 0, "convertcolor": 0, "converter_lit": 0, "convertmod": 0, "convertto": 0, "convertto2d": 0, "convparamet": [12, 20, 22, 23], "convquantparamet": [12, 20], "convtransposeparamet": 21, "coordinate_transform_mode_": 46, "coordinatetransformmod": 46, "copi": 47, "copy_elem_num_": 47, "core_id": [12, 20, 21, 24, 25, 33, 38, 45, 46, 47, 48, 50], "core_mask": [10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56], "core_num": [12, 20, 21, 24, 25, 31, 33, 38, 45, 46, 47, 48, 50, 55, 56], "correct": 62, "correl": 20, "cos": 58, "countelementafterdim": 47, "countelementbeforedim": 47, "cout": 0, "cplx128": [17, 18, 19, 26, 28, 30, 31, 32, 33, 47, 48, 50, 52, 53, 54, 55, 56, 58], "cplx64": [17, 18, 19, 26, 28, 30, 31, 32, 33, 47, 48, 50, 52, 53, 54, 55, 56, 58], "cpu": [0, 6, 7, 8, 58, 60, 62], "cpu_info": 0, "cpudeviceinfo": 0, "creat": 62, "create_dict_iter": 0, "crop": [17, 18, 27, 57, 58], "cropandres": [27, 57, 58], "cropandresizeparamet": 25, "cross": 20, "crossentropyloss": 0, "cs": 4, "cubic": 46, "cubic_coeff": 46, "cubic_coeff_": 46, "cumsum": 58, "cur_coord": 48, "cur_coord_": 48, "current": 62, "custom": 62, "customextractfeatur": 58, "customnorm": 58, "custompredict": 58, "cv": 0, "cv2": 0, "cv_32f": 0, "cvmulcv": 58, "cvmulcvifft": 58, "d_k": 15, "dampen": 51, "data": [0, 4], "data_buffers_": 45, "data_handl": [0, 60], "data_it": 0, "data_path": 0, "data_s": [17, 18, 19, 26, 52, 53, 54, 60], "datas": 0, "dataset": 0, "dataset_dir": 0, "dataset_sink_mod": 0, "ddr": [10, 11, 13, 15, 16, 17, 18, 19, 22, 23, 26, 28, 29, 30, 32, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 49, 51, 52, 53, 54], "decay": 11, "decod": 0, "deconv2dgradfilt": 58, "def": [0, 4, 60], "defin": [0, 28], "delegatemod": 0, "delta": [43, 44], "delta_k": 43, "dens": 0, "dense1": 0, "dense2": 0, "depth": 26, "depthtospac": [27, 57, 58], "depthwis": [22, 23], "detectionpostprocess": 58, "device_list": 0, "device_target": [0, 62], "differenti": 10, "dilat": [12, 20, 21, 22, 23], "dilation_h_": [12, 20, 21, 22, 23], "dilation_w_": [12, 20, 21, 22, 23], "dim": [4, 7, 8], "directori": 0, "displaystyl": 29, "distribut": 4, "divfus": 58, "divgrad": 58, "dma": 41, "doppler": 4, "dot": [7, 8, 15, 40, 43, 44], "doubl": [4, 17, 18, 19, 26, 28, 30, 32, 34, 35, 42, 43, 44, 45, 49, 50, 52, 53, 54], "download": 62, "dp": 64, "dp_add_": 64, "dp_add_p": 64, "dp_batchtospace_": 17, "dp_batchtospace_p": 17, "dp_batchtospacend_": 18, "dp_batchtospacend_p": 18, "dp_broadcastto_": 19, "dp_broadcastto_p": 19, "dp_depthtospace_": 26, "dp_depthtospace_p": 26, "dp_eltwise_": 28, "dp_eltwise_p": 28, "dp_equal_": 30, "dp_equal_p": 30, "dp_expfusion_": 32, "dp_expfusion_p": 32, "dp_floor_": 34, "dp_floor_p": 34, "dp_floordiv_": 35, "dp_floordiv_p": 35, "dp_matmulfusion_": 42, "dp_matmulfusion_p": 42, "dp_raggedrange_": 43, "dp_raggedrange_p": 43, "dp_range_": 44, "dp_range_p": 44, "dp_reduce_": 45, "dp_reduce_p": 45, "dp_scalefusion_": 49, "dp_scalefusion_p": 49, "dp_scatter_elements_": 50, "dp_scatter_elements_p": 50, "dp_spacetobatch_": 52, "dp_spacetobatch_p": 52, "dp_spacetobatchnd_": 53, "dp_spacetobatchnd_p": 53, "dp_spacetodepth_": 54, "dp_spacetodepth_p": 54, "dp_xxx_xxx": 64, "dropout": 58, "dropoutgrad": 58, "ds": 0, "dsp": [0, 5, 31, 55, 56, 57, 58, 59, 65], "dsp_info": 0, "dst": [25, 31, 47, 48, 55, 56], "dst_data": [32, 34, 35, 45, 49], "dst_i": [32, 34, 35, 49], "dst_ptr": 0, "dtype": [0, 4, 60], "dw": 22, "dx": 23, "dy": [22, 23], "dynamicqu": 58, "echo": 4, "echo1": 4, "echo2": 4, "echo_d1_mf": 4, "echo_d3_mf": 4, "echo_r": 4, "echo_s1": 4, "echo_s2": 4, "echo_s3": 4, "echo_s4": 4, "echo_s5": 4, "echo_shap": 4, "elem_cnt": 39, "element": [0, 47], "element_count": 0, "elementnum": 0, "els": [0, 46], "eltwis": [27, 57, 58], "eltwise_maximum": 28, "eltwise_mod": 28, "eltwise_mode_": 28, "eltwise_prod": 28, "eltwise_sum": 28, "elu": [10, 58], "embeddinglookup": [27, 57], "embeddinglookupfus": 58, "empti": 0, "end": [0, 10, 11, 13, 14, 17, 28, 29, 30, 32, 38, 39, 40, 41, 43, 51], "end_idx": 16, "endl": 0, "epsilon": [11, 36, 37], "equal": [27, 57, 58], "erf": [10, 58], "error": 10, "exe": 62, "exp": [0, 4, 6, 7, 8, 32], "exp_x": 0, "expand_dim": 0, "expanddim": [27, 57, 58], "expfus": [27, 57, 58], "exponenti": 4, "export": [0, 4, 60], "export_cnn": 0, "export_connect": 0, "export_gray": 0, "ext": 17, "extens": 0, "extrapolation_valu": 25, "f0": 4, "f32_typecast": 0, "f_nc": 4, "f_t": 41, "fa": 4, "fa_axi": 4, "fail": 0, "fals": [0, 4, 10, 13, 14, 30, 41, 51], "fft": [4, 8, 9, 57, 58], "fft1": 4, "fft_nobitrev": 58, "fft_time": 58, "fftshift": [4, 58], "figur": 4, "file_format": [0, 4, 60], "file_nam": [0, 4, 60], "fill": 58, "fillv2": [27, 57], "filter": [12, 22], "filter_zp_ptr_": 20, "finish": 62, "flag": 10, "flatten": [0, 58], "flattengrad": 58, "flip": 4, "flipud": 4, "float": [0, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56], "float16": 64, "float32": [0, 4, 6, 40, 60, 64], "float64": [6, 64], "floatarraytovector": 0, "floor": [27, 57, 58], "floordiv": [27, 57, 58], "floorf": [34, 35], "floormod": 58, "fmk": 0, "for": [0, 45, 47, 48, 50, 62], "foral": 29, "forg": 62, "forget": 41, "forward": [7, 8], "fourpointinterpolatori": 58, "fp": 64, "fp16": [10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58], "fp32": [10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58], "fp64": [17, 18, 19, 26, 28, 30, 31, 32, 33, 34, 35, 43, 44, 45, 47, 48, 49, 50, 52, 53, 54, 55, 56, 58], "fp_adamweightdecay_": 11, "fp_adamweightdecay_p": 11, "fp_add_": 64, "fp_add_p": 64, "fp_adder_": 12, "fp_adder_p": 12, "fp_applymomentum_": 13, "fp_applymomentum_p": 13, "fp_attention_": 15, "fp_attention_p": 15, "fp_avgpoolinggrad_": 16, "fp_avgpoolinggrad_p": 16, "fp_batchtospace_": 17, "fp_batchtospace_p": 17, "fp_batchtospacend_": 18, "fp_batchtospacend_p": 18, "fp_broadcastto_": 19, "fp_broadcastto_p": 19, "fp_celu_": 10, "fp_celu_p": 10, "fp_clip_": 10, "fp_clip_p": 10, "fp_conv2d_": 20, "fp_conv2d_p": 20, "fp_conv2dbackpropfilterfusion_": 22, "fp_conv2dbackpropfilterfusion_p": 22, "fp_conv2dbackpropinputfusion_": 23, "fp_conv2dbackpropinputfusion_p": 23, "fp_convtranspose_": 21, "fp_convtranspose_p": 21, "fp_crop_and_resize_anycor": 25, "fp_depthtospace_": 26, "fp_depthtospace_p": 26, "fp_eltwise_": 28, "fp_eltwise_p": 28, "fp_elu_": 10, "fp_elu_p": 10, "fp_embeddinglookup_": 29, "fp_embeddinglookup_p": 29, "fp_equal_": 30, "fp_equal_p": 30, "fp_expfusion_": 32, "fp_expfusion_p": 32, "fp_floor_": 34, "fp_floor_p": 34, "fp_floordiv_": 35, "fp_floordiv_p": 35, "fp_fusedbatchnorm_": 36, "fp_fusedbatchnorm_p": 36, "fp_gelu_": 10, "fp_gelu_p": 10, "fp_groupnormfusion_": 37, "fp_groupnormfusion_p": 37, "fp_gru_": 38, "fp_gru_p": 38, "fp_hardshrink_": 10, "fp_hardshrink_p": 10, "fp_hardtanh_": 10, "fp_hardtanh_p": 10, "fp_hsigmoid_": 10, "fp_hsigmoid_p": 10, "fp_hswish_": 10, "fp_hswish_p": 10, "fp_leaky_relu_": 39, "fp_leaky_relu_p": 39, "fp_linspace_": 40, "fp_linspace_p": 40, "fp_lrelu_": 10, "fp_lrelu_p": 10, "fp_lstm_p": 41, "fp_lstm_s": 41, "fp_matmulfusion_": 42, "fp_matmulfusion_p": 42, "fp_raggedrange_": 43, "fp_raggedrange_p": 43, "fp_range_": 44, "fp_range_p": 44, "fp_reduce_": 45, "fp_reduce_p": 45, "fp_relu6_": 10, "fp_relu6_p": 10, "fp_relu_": 10, "fp_relu_p": 10, "fp_resize_anycor": 46, "fp_scalefusion_": 49, "fp_scalefusion_p": 49, "fp_scatter_elements_": 50, "fp_scatter_elements_p": 50, "fp_sgd_p": 51, "fp_sgd_s": 51, "fp_sigmoid_": 10, "fp_sigmoid_p": 10, "fp_softplus_": 10, "fp_softplus_p": 10, "fp_softshrink_": 10, "fp_softshrink_p": 10, "fp_softsignopt_": 10, "fp_softsignopt_p": 10, "fp_spacetobatch_": 52, "fp_spacetobatch_p": 52, "fp_spacetobatchnd_": 53, "fp_spacetobatchnd_p": 53, "fp_spacetodepth_": 54, "fp_spacetodepth_p": 54, "fp_swish_": 10, "fp_swish_p": 10, "fp_tanh_": 10, "fp_tanh_p": 10, "fp_xxx_xxx": 64, "fprintf": 0, "fr": 4, "fr_axi": 4, "fr_gap": 4, "frac": [7, 8, 10, 11, 15, 16, 17, 29, 35, 36, 37, 40, 43], "from": [0, 4, 60, 62], "ft78ne": [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 60], "ft78nedeviceinfo": 0, "ftp": 62, "full": 4, "fullconnect": 58, "fuse": 36, "fusedbatchnorm": [27, 57, 58], "fusion": [22, 23, 37], "g_t": [11, 13, 41, 51], "gate": [10, 41], "gather": [4, 58], "gatherd": 58, "gathernd": 58, "gaussian": 10, "gcc": 62, "ge": 10, "gelu": 10, "geq": 39, "get": 0, "get_core_id": [12, 20, 21, 24, 25, 33, 38, 45, 46, 47, 48, 50], "getcorenum": [12, 20, 21, 24, 25, 31, 33, 38, 45, 46, 47, 48, 50, 55, 56], "getinput": 60, "getinputdata": 60, "getlogiccoreid": [12, 20, 21, 24, 25, 33, 38, 45, 46, 47, 48, 50], "getoutput": 60, "getoutputdata": [0, 60], "gimpel": 10, "glu": 58, "gnueabihf": 62, "googl": 10, "gradient": [11, 13, 51], "graph_mod": 0, "graphcel": 0, "gray": 0, "gray_cnn": 1, "graycnn": 0, "greater": [47, 58], "greater_dim": 47, "greaterequ": 58, "group": [12, 20, 21, 22, 23, 37], "group_": [12, 20, 21, 22, 23], "groupnormfus": [27, 57, 58], "gru": [27, 57, 58], "gru_param": 38, "gruparamet": 38, "gsm": [42, 43], "gt": 10, "h_": [17, 20, 21, 38, 41, 54], "h_t": [38, 41], "hadamard": 38, "half": [10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 28, 29, 30, 32, 34, 35, 36, 37, 38, 39, 45, 46, 49, 50, 51, 52, 53, 54], "hard": 10, "hardshrink": 10, "hardtanh": 10, "has": 62, "has_bia": 0, "has_bias_": 41, "hashtablelookup": 58, "hat": [11, 36, 37], "head_dim": 15, "head_num": 15, "height": [0, 17, 18, 26, 52, 53], "hellodsp": [4, 59, 61], "hendryck": 10, "heterogen": [0, 60], "hf": 41, "hg": 41, "hi": 41, "hidden": 41, "hidden_buff": 41, "hidden_s": [38, 41], "hidden_size_": [38, 41], "hidden_st": [38, 41], "hidden_state_": 41, "hidden_state_batch": 38, "hn": 38, "ho": 41, "hp": 64, "hp_adamweightdecay_": 11, "hp_adamweightdecay_p": 11, "hp_add_": 64, "hp_add_p": 64, "hp_adder_": 12, "hp_adder_p": 12, "hp_applymomentum_": 13, "hp_applymomentum_p": 13, "hp_avgpoolinggrad_": 16, "hp_avgpoolinggrad_p": 16, "hp_batchtospace_": 17, "hp_batchtospace_p": 17, "hp_batchtospacend_": 18, "hp_batchtospacend_p": 18, "hp_broadcastto_": 19, "hp_broadcastto_p": 19, "hp_celu_": 10, "hp_celu_p": 10, "hp_clip_": 10, "hp_clip_p": 10, "hp_conv2d_": 20, "hp_conv2d_p": 20, "hp_conv2dbackpropfilterfusion_": 22, "hp_conv2dbackpropfilterfusion_p": 22, "hp_conv2dbackpropinputfusion_": 23, "hp_conv2dbackpropinputfusion_p": 23, "hp_convtranspose_": 21, "hp_convtranspose_p": 21, "hp_crop_and_resize_anycor": 25, "hp_depthtospace_": 26, "hp_depthtospace_p": 26, "hp_eltwise_": 28, "hp_eltwise_p": 28, "hp_elu_": 10, "hp_elu_p": 10, "hp_embeddinglookup_": 29, "hp_embeddinglookup_p": 29, "hp_equal_": 30, "hp_equal_p": 30, "hp_expfusion_": 32, "hp_expfusion_p": 32, "hp_floor_": 34, "hp_floor_p": 34, "hp_floordiv_": 35, "hp_floordiv_p": 35, "hp_fusedbatchnorm_": 36, "hp_fusedbatchnorm_p": 36, "hp_gelu_": 10, "hp_gelu_p": 10, "hp_groupnormfusion_": 37, "hp_groupnormfusion_p": 37, "hp_gru_": 38, "hp_gru_p": 38, "hp_hardshrink_": 10, "hp_hardshrink_p": 10, "hp_hardtanh_": 10, "hp_hardtanh_p": 10, "hp_hsigmoid_": 10, "hp_hsigmoid_p": 10, "hp_hswish_": 10, "hp_hswish_p": 10, "hp_leaky_relu_": 39, "hp_leaky_relu_p": 39, "hp_lrelu_": 10, "hp_lrelu_p": 10, "hp_reduce_": 45, "hp_reduce_p": 45, "hp_relu6_": 10, "hp_relu6_p": 10, "hp_relu_": 10, "hp_relu_p": 10, "hp_resize_anycor": 46, "hp_scalefusion_": 49, "hp_scalefusion_p": 49, "hp_scatter_elements_": 50, "hp_scatter_elements_p": 50, "hp_sgd_p": 51, "hp_sgd_s": 51, "hp_sigmoid_": 10, "hp_sigmoid_p": 10, "hp_softplus_": 10, "hp_softplus_p": 10, "hp_softshrink_": 10, "hp_softshrink_p": 10, "hp_softsignopt_": 10, "hp_softsignopt_p": 10, "hp_spacetobatch_": 52, "hp_spacetobatch_p": 52, "hp_spacetobatchnd_": 53, "hp_spacetobatchnd_p": 53, "hp_spacetodepth_": 54, "hp_spacetodepth_p": 54, "hp_swish_": 10, "hp_swish_p": 10, "hp_tanh_": 10, "hp_tanh_p": 10, "hpp": 0, "hr": 38, "hsigmoid": 10, "hswish": 10, "https": [0, 62], "hwc2chw": 0, "hyperbol": 10, "hz": 38, "i16": 64, "i16_add_": 64, "i16_add_p": 64, "i16_batchtospace_": 17, "i16_batchtospace_p": 17, "i16_batchtospacend_": 18, "i16_batchtospacend_p": 18, "i16_broadcastto_": 19, "i16_broadcastto_p": 19, "i16_depthtospace_": 26, "i16_depthtospace_p": 26, "i16_eltwise_": 28, "i16_eltwise_p": 28, "i16_equal_": 30, "i16_equal_p": 30, "i16_expfusion_": 32, "i16_expfusion_p": 32, "i16_matmulfusion_": 42, "i16_matmulfusion_p": 42, "i16_raggedrange_": 43, "i16_raggedrange_p": 43, "i16_range_": 44, "i16_range_p": 44, "i16_reduce_": 45, "i16_reduce_p": 45, "i16_scalefusion_": 49, "i16_scalefusion_p": 49, "i16_scatter_elements_": 50, "i16_scatter_elements_p": 50, "i16_spacetobatch_": 52, "i16_spacetobatch_p": 52, "i16_spacetobatchnd_": 53, "i16_spacetobatchnd_p": 53, "i16_spacetodepth_": 54, "i16_spacetodepth_p": 54, "i32": 64, "i32_add_": 64, "i32_add_p": 64, "i32_batchtospace_": 17, "i32_batchtospace_p": 17, "i32_batchtospacend_": 18, "i32_batchtospacend_p": 18, "i32_broadcastto_": 19, "i32_broadcastto_p": 19, "i32_depthtospace_": 26, "i32_depthtospace_p": 26, "i32_eltwise_": 28, "i32_eltwise_p": 28, "i32_equal_": 30, "i32_equal_p": 30, "i32_expfusion_": 32, "i32_expfusion_p": 32, "i32_matmulfusion_": 42, "i32_matmulfusion_p": 42, "i32_raggedrange_": 43, "i32_raggedrange_p": 43, "i32_range_": 44, "i32_range_p": 44, "i32_reduce_": 45, "i32_reduce_p": 45, "i32_scalefusion_": 49, "i32_scalefusion_p": 49, "i32_scatter_elements_": 50, "i32_scatter_elements_p": 50, "i32_spacetobatch_": 52, "i32_spacetobatch_p": 52, "i32_spacetobatchnd_": 53, "i32_spacetobatchnd_p": 53, "i32_spacetodepth_": 54, "i32_spacetodepth_p": 54, "i686": 62, "i8": 64, "i8_add_": 64, "i8_add_p": 64, "i8_adder_": 12, "i8_adder_p": 12, "i8_batchtospace_": 17, "i8_batchtospace_p": 17, "i8_batchtospacend_": 18, "i8_batchtospacend_p": 18, "i8_broadcastto_": 19, "i8_broadcastto_p": 19, "i8_celu_": 10, "i8_celu_p": 10, "i8_clip_": 10, "i8_clip_p": 10, "i8_conv2d_": 20, "i8_conv2d_p": 20, "i8_convtranspose_": 21, "i8_convtranspose_p": 21, "i8_crop_and_resize_anycor": 25, "i8_depthtospace_": 26, "i8_depthtospace_p": 26, "i8_eltwise_": 28, "i8_eltwise_p": 28, "i8_elu_": 10, "i8_elu_p": 10, "i8_equal_": 30, "i8_equal_p": 30, "i8_expfusion_": 32, "i8_expfusion_p": 32, "i8_gelu_": 10, "i8_gelu_p": 10, "i8_gru_": 38, "i8_gru_p": 38, "i8_hardshrink_": 10, "i8_hardshrink_p": 10, "i8_hardtanh_": 10, "i8_hardtanh_p": 10, "i8_hsigmoid_": 10, "i8_hsigmoid_p": 10, "i8_hswish_": 10, "i8_hswish_p": 10, "i8_leaky_relu_": 39, "i8_leaky_relu_p": 39, "i8_lrelu_": 10, "i8_lrelu_p": 10, "i8_raggedrange_": 43, "i8_raggedrange_p": 43, "i8_range_": 44, "i8_range_p": 44, "i8_reduce_": 45, "i8_reduce_p": 45, "i8_relu6_": 10, "i8_relu6_p": 10, "i8_relu_": 10, "i8_relu_p": 10, "i8_resize_anycor": 46, "i8_scalefusion_": 49, "i8_scalefusion_p": 49, "i8_scatter_elements_": 50, "i8_scatter_elements_p": 50, "i8_sigmoid_": 10, "i8_sigmoid_p": 10, "i8_softplus_": 10, "i8_softplus_p": 10, "i8_softshrink_": 10, "i8_softshrink_p": 10, "i8_softsignopt_": 10, "i8_softsignopt_p": 10, "i8_spacetobatch_": 52, "i8_spacetobatch_p": 52, "i8_spacetobatchnd_": 53, "i8_spacetobatchnd_p": 53, "i8_spacetodepth_": 54, "i8_spacetodepth_p": 54, "i8_swish_": 10, "i8_swish_p": 10, "i8_tanh_": 10, "i8_tanh_p": 10, "i_k": 29, "i_t": 41, "ide": [0, 4, 60], "ident": 42, "ids": 29, "ids_siz": 29, "ids_size_": 29, "if": [0, 10, 12, 13, 14, 20, 21, 24, 25, 28, 29, 30, 33, 38, 39, 41, 45, 46, 47, 48, 50, 51], "ifft": [4, 9, 57, 58], "ifft1": 4, "ifft_nobitrev": 58, "ifft_tim": 58, "ig": 41, "ii": 41, "imag": [0, 4], "image_four_channel": 0, "image_height": 25, "image_origin": 0, "imagefolderdataset": 0, "imagepath": 0, "imagesc": 4, "img_siz": 0, "import": [0, 4, 6, 7, 8, 60, 62], "importdata": 4, "imread": 0, "imread_color": 0, "imshow": 4, "in": [12, 20, 21, 29, 32, 38], "in_channel": [12, 20, 21, 22, 23], "in_h": [22, 23], "in_scal": 32, "in_shap": [24, 26, 54], "in_w": [22, 23], "includ": [0, 10, 11, 13, 14, 15, 16, 17, 18, 19, 22, 23, 26, 28, 29, 30, 32, 34, 35, 36, 37, 40, 41, 42, 43, 44, 49, 51, 52, 53, 54], "index": 0, "indic": 50, "indices_data": 50, "indices_shap": 50, "indices_stride_": 50, "indices_total_num_": 50, "initi": 48, "inner_count": 47, "inner_count_": 47, "inner_s": 45, "inner_sizes_": 45, "inner_stride_": 47, "inp_box": 25, "inp_box_idx": 25, "input": [0, 4, 6, 10, 14, 16, 17, 18, 19, 23, 24, 25, 26, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 41, 45, 46, 49, 50, 52, 53, 54, 60], "input0": [10, 28, 29, 30, 32, 34, 35, 49], "input0_i": [28, 30, 35], "input1": [28, 29, 30, 35], "input1_i": [28, 30, 35], "input_": 16, "input_axis_size_": 50, "input_batch_": [12, 20, 21, 22, 23], "input_bia": [38, 41], "input_bias_": 41, "input_channel_": [12, 20, 21, 22, 23], "input_col_align": 38, "input_col_align_": [38, 41], "input_column": 0, "input_data": [12, 20, 21, 29, 47, 48, 50], "input_dims_": 50, "input_h": 16, "input_h_": [12, 20, 21, 22, 23], "input_i": [10, 14], "input_row_align_": [38, 41], "input_s": [38, 41], "input_shap": [12, 17, 18, 19, 20, 21, 24, 25, 45, 46, 50, 52, 53], "input_shape_": [25, 46, 48], "input_shape_s": 19, "input_size_": [38, 41], "input_strides_": 48, "input_tensor": 0, "input_total_num_": 50, "input_w": [12, 16, 20, 21], "input_w_": [12, 20, 21, 22, 23], "input_x": [12, 20, 21], "instal": [4, 62], "instancenorm": 58, "int": [0, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56], "int16": [17, 18, 19, 26, 28, 30, 31, 32, 33, 42, 43, 44, 45, 47, 48, 49, 50, 52, 53, 54, 55, 56, 58, 64], "int16_t": [17, 18, 19, 26, 28, 30, 32, 42, 43, 44, 45, 49, 50, 52, 53, 54], "int32": [17, 18, 19, 26, 28, 30, 31, 32, 33, 42, 43, 44, 45, 47, 48, 49, 50, 52, 53, 54, 55, 56, 58, 64], "int32_t": [17, 18, 19, 20, 25, 26, 28, 30, 42, 43, 44, 52, 53, 54], "int8": [4, 10, 12, 17, 18, 19, 20, 21, 24, 25, 26, 28, 30, 31, 32, 33, 38, 39, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 58, 64], "int8_t": [10, 12, 17, 18, 19, 20, 21, 25, 26, 28, 30, 32, 38, 39, 43, 44, 45, 46, 49, 50, 52, 53, 54], "inter_linear": 0, "interpol": 0, "invertpermut": 58, "io": [4, 41], "ip": 60, "ir": [38, 60], "is": [0, 62], "is_regul": 29, "is_regulated_": 29, "isfinit": 58, "iz": 38, "jpeg": 0, "jpg": [0, 4], "ka": 4, "keep_dim": 45, "keepdim": 0, "kernel_h": [22, 23], "kernel_h_": [12, 20, 21, 22, 23], "kernel_s": [0, 20], "kernel_w": [22, 23], "kernel_w_": [12, 20, 21, 22, 23], "kpnna": 0, "kr": 4, "l1": 12, "l2": [11, 13, 15, 16, 17, 18, 19, 22, 23, 26, 28, 30, 32, 34, 35, 36, 37, 40, 42, 43, 44, 49, 51, 52, 53, 54], "l2normalizefus": 58, "l_k": 43, "lambd": 10, "lambda": [0, 10], "lamda": 4, "layer": 29, "layer_num": 29, "layer_num_": 29, "layer_s": 29, "layer_size_": 29, "layernormfus": 58, "layernormgrad": 58, "lceil": 43, "leaki": [10, 39], "leakyrelu": [27, 57, 58], "learn": [13, 51], "learning_r": [0, 13, 51], "left": [10, 15, 17, 18, 43, 52, 53], "left_matrix": 41, "left_shift_": 20, "leftarrow": 29, "len": 0, "length": [10, 11, 13, 28, 29, 30, 32, 33, 34, 35, 39, 40, 44, 45, 49, 51], "less": [47, 58], "less_dim": 47, "lessequ": 58, "lib": 0, "librari": [57, 59], "limit": 43, "limit_k": 43, "linaro": 62, "line_buffers_": [25, 46], "linear": 10, "linspac": [27, 57], "linux": 62, "lite": [0, 4, 58, 66], "ln": 10, "load": 0, "load_checkpoint": 0, "load_param_into_net": 0, "loadmat": 4, "log": 58, "log1p": 58, "loggrad": 58, "logic_core_id": [12, 20, 21, 24, 25, 33, 38, 45, 46, 47, 48, 50], "logicaland": 58, "logicalnot": 58, "logicalor": 58, "logsoftmax": 58, "loss": 0, "loss_fn": 0, "lossmonitor": 0, "lr": 11, "lrelu": 10, "lrn": 58, "lshproject": 58, "lstm": [27, 57, 58], "lstm_param": 41, "lstmgrad": 58, "lstmgraddata": 58, "lstmgradweight": 58, "lstmp": 41, "lstmparamet": 41, "m_": [11, 51], "m_t": [11, 51], "main": [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56], "major": 15, "make_shar": 0, "map": 0, "mat": [0, 4], "mathbf": 28, "mathrm": 10, "matio": 4, "matmul": [4, 60], "matmulfus": [27, 57, 58], "matplotlib": 4, "max": [10, 28], "max_norm": 29, "max_norm_": 29, "max_val": 10, "maxi_": 20, "maximum": 58, "maximumgrad": 58, "maxpool2d": 0, "maxpoolfus": 58, "maxpoolgrad": 58, "mean": [0, 36, 37], "mean_c": 36, "memcpi": [0, 12, 20, 21, 24, 25, 38, 46, 47], "memset": 21, "merg": 58, "method": 46, "method_": 46, "metric": 0, "midir": 0, "min": 10, "min_val": 10, "mindir": [0, 4, 60], "mindradar": [4, 6, 7, 8], "mindspor": [0, 6, 7, 8, 38, 58, 65, 66], "mindspore_py38": 62, "mingw32_arm": 62, "mini_": 20, "miniconda3": 62, "minimum": 58, "minimumgrad": 58, "minsdpor": 66, "mobilenetv3": 10, "mod": 58, "mode": [0, 45, 46], "mode_": 45, "model": [0, 4, 60], "model_buf": 60, "model_context": 60, "model_data": 60, "model_typ": 60, "modelfil": 0, "modetyp": 60, "moment": [13, 51], "momentum": 13, "mr": [4, 6, 7, 8], "ms": [0, 4, 6, 7, 8, 60], "mstensor": [0, 60], "mt7004": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56], "mu_": 37, "mulfus": 58, "mulgrad": 58, "multipl": 62, "multipli": 4, "multiplier_": 20, "mutabledeviceinfo": [0, 60], "my_model": 0, "n_": 17, "n_1": [7, 8], "n_d": [7, 8], "n_i": [7, 8, 20], "n_t": 38, "na": 4, "name": 0, "ndim": [45, 47, 48, 50], "ndim_": [47, 48], "nearest": 46, "neg": 58, "neggrad": 58, "neq": [30, 32], "nesterov": [13, 51], "net": 6, "netron": 0, "new_shap": 4, "next": 62, "nhwc": [12, 20, 21, 54], "nllloss": 58, "nlllossgrad": 58, "nn": [0, 4, 60], "none": [42, 50, 62], "nonmaxsupppress": 58, "nonzero": 58, "norm": [7, 8], "normal": [36, 37], "notequ": 58, "np": [0, 4, 6, 7, 8, 60], "nr": 4, "null": 42, "num": [0, 40], "num_ax": 45, "num_axes_": 45, "num_class": 0, "num_direct": 38, "num_elem_": 48, "num_epoch": 0, "num_group": 37, "number": 47, "numpi": [0, 4, 6, 7, 8, 60], "numpy_exp": 0, "nweights_": [22, 23], "o_t": 41, "odot": [38, 41], "of": [47, 62], "offset": [24, 36, 37], "offset_": 24, "offset_c": [36, 37], "offset_s": 45, "omega_1": [7, 8], "omega_d": [7, 8], "omega_i": [7, 8], "on": 62, "one": [0, 47, 60], "onehot": 58, "oneslik": 58, "opencv": 0, "opencv2": 0, "oper": 0, "operatornam": [15, 42], "ops": [0, 4, 60], "optim": [0, 10], "org": 62, "orig_seq_length": 47, "ortho": [7, 8], "other": 41, "otherwis": [10, 13, 39, 51], "out": [0, 6, 7, 8, 17, 20, 32, 54, 60], "out_channel": [12, 20, 21, 22, 23], "out_data": 0, "out_h": [22, 23], "out_i": [6, 12, 20, 21], "out_j": 20, "out_scal": 32, "out_shap": 24, "out_w": [22, 23], "outer_count_": 47, "outer_s": 45, "outer_sizes_": 45, "outer_stride_": 47, "output": [0, 10, 14, 15, 16, 17, 18, 19, 24, 25, 26, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 46, 49, 50, 52, 53, 54, 60], "output_": [16, 41], "output_batch_": [12, 20, 21, 22, 23], "output_channel_": [12, 20, 21, 22, 23], "output_column": 0, "output_data": [12, 20, 21, 29, 47, 48, 50], "output_h": 16, "output_h_": [12, 20, 21, 22, 23], "output_hidden_st": 38, "output_i": [10, 14, 28, 30, 44], "output_np": 0, "output_num": 0, "output_num_": 45, "output_prob": 0, "output_shap": [12, 19, 20, 21, 24, 25, 46], "output_shape_": [25, 46], "output_shape_s": 19, "output_size_": 41, "output_step_": [38, 41], "output_stride_": 50, "output_w": 16, "output_w_": [12, 20, 21, 22, 23], "output_zp_": 20, "outputfil": 0, "packed_input_": 41, "packed_output": 41, "packed_ptr": 41, "packed_st": 41, "packparam": [45, 50], "pad": [4, 12, 20, 21, 22, 23, 52, 53], "pad_d_": [22, 23], "pad_l": 16, "pad_l_": [12, 20, 21, 22, 23], "pad_r_": [22, 23], "pad_u": 16, "pad_u_": [12, 20, 21, 22, 23], "padarray": 4, "padfus": 58, "para": 4, "param": [12, 20, 21, 22, 23, 25, 38, 45, 46, 47, 48, 50], "param_dict": 0, "param_not_load": 0, "paramet": [0, 4, 41], "parti": 62, "partialfus": 58, "pass": 0, "path": 62, "pcolor": 4, "per_channel_": 20, "phasemul": 58, "phi": 10, "pi": [4, 6, 7, 8, 10], "pil": 0, "pip": [4, 62], "platform": 62, "plt": 4, "png": 0, "pool1": 0, "pool2": 0, "pool3": 0, "powergrad": 58, "powfus": 58, "predict": [0, 60], "predicted_class": 0, "prelufus": 58, "preparecropandresizebilinear": 25, "prepareresizebicub": 46, "prepareresizebilinear": 46, "prf": 4, "print": [0, 4, 6, 7, 8, 60], "priorbox": 58, "prod_": 8, "product": 15, "proj_col_align_": 41, "project_size_": 41, "promt": 62, "ptr": 0, "push_back": 0, "py": [0, 60], "py3": 62, "py_transform": 0, "pynative_mod": 0, "pyplot": 4, "python": 4, "python3": 62, "pytorch": 38, "qk": 15, "quad": [29, 32, 36, 37, 40, 43, 44], "quant_param": [12, 20], "quantdtypecast": 58, "r0": 4, "r_t": 38, "raggedrang": [27, 57, 58], "randn": 0, "random": 0, "randomnorm": 58, "randomstandardnorm": 58, "rang": [4, 27, 43, 57, 58], "range_count": 43, "rangfft": 58, "rank": 58, "rceil": 43, "rd": 4, "rdsar": 3, "rdsarv3": 4, "read": 0, "readfil": 60, "readimag": 0, "realdiv": 58, "reciproc": 58, "rectifi": 10, "reduc": [27, 57], "reduce_asum": 45, "reduce_axi": 45, "reduce_l2norm": 45, "reduce_max": 45, "reduce_mean": 45, "reduce_min": 45, "reduce_prod": 45, "reduce_sum": 45, "reduce_sumsquar": 45, "reducefus": 58, "reduceparamet": 45, "reducescatt": 58, "reduct": [0, 50], "reduction_typ": 50, "reduction_type_": 50, "refer": [57, 59], "reinterpret_cast": 0, "releas": 62, "reload_cnn": 0, "relu": [0, 10, 39, 42], "relu6": [10, 42], "requir": 62, "rescale_to_0_1": 0, "rescale_transform": 0, "reserv": 0, "reshap": [0, 7, 8, 58], "resiz": [0, 27, 47, 48, 57, 58], "resize_op": 0, "resized_imag": 0, "resized_image_tensor": 0, "resizegrad": 58, "resizemethod": 46, "resizeparamet": 46, "reslut": 0, "result": [0, 4, 62], "return": [0, 4, 10, 11, 13, 14, 15, 16, 17, 18, 19, 22, 23, 26, 28, 29, 30, 32, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 49, 51, 52, 53, 54, 60], "revers": 58, "reversesequ": [27, 57, 58], "reversesequenceparamet": 47, "reversev2": [27, 57, 58], "reversev2paramet": 48, "rgb": 0, "right": [10, 15, 17, 18, 43, 52, 53], "right_shift_": 20, "rnn": [38, 41], "roipool": 58, "roll": 4, "round": [4, 58], "row": [0, 15], "rsqrt": 58, "rsqrtgrad": 58, "run_check": 62, "s_": 32, "sar": [0, 3], "sar_imaging_with_rd_cs_wk": 4, "satur": 4, "saturation_tensor": 4, "save_checkpoint": 0, "savefig": 4, "scale": [15, 32, 36, 37, 49], "scale_c": [36, 37], "scale_i": 49, "scalefus": [27, 57, 58], "scatterel": [27, 57], "scatterelementsparamet": 50, "scatternd": 58, "scatterndupd": 58, "scipi": 4, "select": 58, "self": [0, 4, 10, 60], "selu": 58, "seq": 41, "seq_dim": 47, "seq_dim_": 47, "seq_len": [15, 38, 41], "seq_len_": [38, 41], "seq_length": 47, "serial": 0, "set_context": [0, 62], "setbuiltindeleg": 0, "sgd": [27, 57, 58], "shape": [0, 4, 20, 21, 31, 33, 47, 48, 55, 56, 58, 60], "shape_": 47, "shared_ptr": 60, "shift": 4, "should": 47, "show": 4, "shrinkag": 10, "sigma": [10, 37, 38, 41], "sigmoid": [10, 38, 41], "sigmoidcroosentropywithlogit": 58, "sigmoidcroosentropywithlogitsgrad": 58, "signal": [60, 62, 65], "signal_ndim": [7, 8], "simd": 41, "sin": 58, "sio": 4, "size": [0, 4, 20, 21, 47, 58], "size_t": [0, 60], "sizeof": [0, 12, 17, 18, 19, 20, 21, 24, 25, 26, 31, 38, 46, 47, 52, 53, 54, 55, 56], "skipgram": 58, "slice": 24, "slicefus": 58, "slici": 0, "sm": 15, "smc": [42, 43, 45], "smoothl1loss": 58, "smoothl1lossgrad": 58, "soft": 10, "softmax": [15, 58], "softmax_out": 15, "softmaxgrad": 58, "softplus": [10, 58], "softshrink": 10, "softsign": 10, "softsignopt": 10, "space": 26, "spacetobatch": [27, 57, 58], "spacetobatchnd": [27, 57, 58], "spacetodepth": [27, 57, 58], "sparsesoftmaxcrossentropywithlogit": 58, "sparsetodens": 58, "splice": 58, "split": [0, 43, 58], "splitwithoverlap": 58, "sq_fa_axi": 4, "sq_fr_axi": 4, "sqrt": [6, 7, 8, 10, 11, 15, 36, 37, 58], "sqrtgrad": 58, "squar": [4, 58], "squareddiffer": 58, "squeez": [0, 27, 57, 58], "src": [25, 31, 47, 48, 55, 56], "src_data": [32, 34, 45, 49], "src_data0": 35, "src_data1": 35, "src_i": [32, 34, 49], "src_ptr": 0, "ssh": 60, "stack": 58, "start": [11, 13, 40, 43, 44, 51], "start_idx": 16, "start_k": 43, "state_bia": [38, 41], "state_bias_": 41, "state_col_align": 38, "state_col_align_": [38, 41], "state_g": 41, "state_row_align_": [38, 41], "std": [0, 60], "stdbool": [13, 14, 42, 43, 44, 51], "stderr": 0, "stdio": [10, 11, 13, 14, 15, 16, 17, 18, 19, 22, 23, 26, 28, 29, 30, 32, 34, 35, 36, 37, 40, 41, 42, 43, 44, 49, 51, 52, 53, 54], "step": [4, 40], "str": [7, 8], "strict_load": 0, "stride": [0, 12, 20, 21, 22, 23, 47], "stride_h": 16, "stride_h_": [12, 20, 21, 22, 23], "stride_w": 16, "stride_w_": [12, 20, 21, 22, 23], "stridedslic": 58, "stridedslicegrad": 58, "strides_": 47, "string": 0, "struct": [12, 20, 21, 25, 38, 41, 45, 46, 47, 48, 50], "subfus": 58, "subgrad": 58, "success": 62, "sum": 0, "sum_": [7, 8, 12, 20, 29], "sum_row": 0, "super": [0, 4, 60], "swish": 10, "switch": 58, "switchlay": 58, "sys_bar": [12, 20, 21, 24, 25, 33, 38, 45, 46, 47, 48, 50], "system": 62, "t62": 0, "ta_axi": 4, "ta_gap": 4, "tangent": 10, "tanh": [10, 38, 41], "tar": 62, "target": 0, "tdpp": 58, "temp": 4, "temp1": 4, "temp2": 4, "temp3": 4, "tensor": [0, 4, 6, 7, 8, 20, 25, 33, 48, 50, 55, 60], "tensorlistfromtensor": 58, "tensorlistgetitem": 58, "tensorlistreserv": 58, "tensorlistsetitem": 58, "tensorliststack": 58, "tensorscatteradd": 58, "test_matmul": 60, "testadderl2fp32": 12, "testaddersmcfp32": 12, "testconvl2fp32": 20, "testconvsmcfp32": 20, "testconvtransposel2fp32": 21, "testconvtransposesmcfp32": 21, "testcropandresizesmcfp32": 25, "testcropsmcfp32": 24, "testgrul2fp32": 38, "testgrusmcfp32": 38, "testreducel2fp32": 45, "testreducesmcfp32": 45, "testresizefp32smc": 46, "testreversesequencefp32": 47, "testreversev2": 48, "testscatterelementsl2": 50, "testscatterelementssmc": 50, "text": [10, 13, 14, 15, 16, 17, 20, 22, 23, 28, 29, 30, 32, 39, 40, 41, 42, 43, 44, 51, 54], "textbf": 29, "tfrac": 10, "the": [47, 62], "third": 62, "tilefus": 58, "time": [0, 15, 17, 42, 44, 47], "titl": 4, "tmp_dst_data": 45, "tmp_input": 45, "tmp_input_shap": 45, "tmp_output": 45, "tmp_src_data": 45, "to": 62, "toolchain": 62, "top": [15, 17, 18, 23, 52, 53], "topkfus": 58, "total_copy_s": [31, 55, 56], "total_num": 45, "total_num_": 45, "tr": 4, "tr_axi": 4, "train": 0, "train_data": 0, "trainable_param": 0, "transform": 0, "transpos": 58, "true": [0, 4, 10, 13, 14, 30, 41, 51], "twod": 0, "txt": [0, 60, 62], "type_s": [24, 33, 48], "type_size_": [47, 48], "typecast": 0, "typedef": [12, 20, 21, 25, 38, 41, 45, 46, 47, 48, 50], "u_t": 51, "uint8": [0, 58], "uniformr": 58, "uniqu": 58, "unit": [10, 36, 37], "unsortedsegmentsum": 58, "unsqueez": [4, 27, 57, 58], "unstack": 58, "updat": 50, "update_t": 13, "updates_data": 50, "user": 62, "v3": 4, "v_": 11, "v_t": 11, "valu": [33, 43], "var": 11, "var_": 11, "var_t": 11, "varianc": [36, 37], "variance_c": 36, "vec": 0, "vecatan": 58, "vector": [0, 60], "version": 62, "vision": 0, "void": [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 60], "vr": 4, "vscode": 60, "w_": [17, 20, 21, 38, 41, 51, 54], "w_t": 51, "weight": [11, 12, 13, 20, 21, 51], "weight_": 13, "weight_decay": 51, "weight_g": 38, "weight_h": 41, "weight_i": 41, "weight_r": 38, "weight_shap": [12, 20, 21], "weight_t": 13, "where": [4, 32, 58], "whl": 62, "width": [0, 17, 18, 26, 52, 53], "win_amd64": 62, "window": [16, 60, 62], "window_h": 16, "window_w": 16, "workspac": [12, 20], "workspace_": [12, 20, 21, 22, 23], "www": 62, "x1": [0, 25, 60], "x1_tensor": 60, "x2": [25, 60], "x2_tensor": 60, "x86": 62, "x_": [29, 36, 37], "x_h": 16, "x_lefts_": [25, 46], "x_rights_": [25, 46], "x_t": [38, 41], "x_tensor": [6, 7, 8], "x_w": 16, "x_weights_": [25, 46], "xxx": [60, 62, 67], "xxx_add_sub_xxx": 64, "xxx_add_xxx": 64, "xxx_mul_xxx": 64, "xxx_xxx_p": 64, "xxx_xxx_s": 64, "xxx_xxx_xxx": 64, "xz": 62, "y1": 25, "y2": 25, "y_": [36, 37], "y_bottoms_": [25, 46], "y_h": 16, "y_k": 29, "y_tops_": [25, 46], "y_w": 16, "y_weights_": [25, 46], "yhft": [0, 4, 60], "z_t": 38, "zeroslik": 58, "zoneout": 41, "zoneout_cell_": 41, "zoneout_hidden_": 41, "zsu_23_4": 0}, "titles": ["GRAY_CNN(\u56fe\u7247\u7070\u5ea6\u5316\u5904\u7406+\u56fe\u7247\u8bc6\u522b)", "AI+DSP\u5e94\u7528\u793a\u4f8b", "AI\u8f85\u52a9\u5f00\u53d1\u793a\u4f8b", "DSP\u5e94\u7528\u793a\u4f8b", "RDSAR\uff08\u8ddd\u79bb-\u591a\u666e\u52d2SAR\u6210\u50cf\u7b97\u6cd5\uff09", "\u5e94\u7528\u5f00\u53d1\u793a\u4f8b", "ComplexAbs", "FFT", "IFFT", "\u81ea\u5b9a\u4e49\u7b97\u5b50\u5217\u8868", "Activation", "AdamWeightDecay", "Adder", "ApplyMomentum", "Assert", "Attention", "AvgPoolingGrad", "BatchToSpace", "BatchToSpaceND", "BroadcastTo", "Conv2d", "Conv2dTranspose", "Conv2DBackpropFilterFusion", "Conv2DBackpropInputFusion", "Crop", "CropAndResize", "DepthToSpace", "DSP Library C API Reference", "Eltwise", "EmbeddingLookup", "Equal", "ExpandDims", "ExpFusion", "FillV2", "Floor", "FloorDiv", "FusedBatchNorm", "GroupNormFusion", "GRU", "LeakyReLu", "LinSpace", "LSTM", "MatMulFusion", "RaggedRange", "Range", "Reduce", "Resize", "ReverseSequence", "ReverseV2", "ScaleFusion", "ScatterElements", "SGD", "SpaceToBatch", "SpaceToBatchND", "SpaceToDepth", "Squeeze", "UnSqueeze", "\u7b97\u5b50\u5e93\u652f\u6301", "\u7b97\u5b50\u5e93\u652f\u6301\u60c5\u51b5", "MindSpore Signal+ \u4f7f\u7528\u624b\u518c", "HelloDSP", "\u5feb\u901f\u5165\u95e8", "\u73af\u5883\u5b89\u88c5", "\u6574\u4f53\u6982\u89c8", "DSP\u7b97\u5b50C\u63a5\u53e3\u547d\u540d\u89c4\u8303", "\u53c2\u8003\u8d44\u6599", "\u5b98\u65b9\u8d44\u6599", "MindSpore Signal+ \u8c03\u5ea6\u65b9\u6848"], "titleterms": {"activ": 10, "adamweightdecay": 11, "adder": 12, "ai": [1, 2], "api": 27, "applymomentum": 13, "assert": 14, "attent": 15, "avgpoolinggrad": 16, "batchtospac": 17, "batchtospacend": 18, "broadcastto": 19, "cc": 60, "cmake": 62, "complexab": 6, "conda": 62, "conv2d": 20, "conv2dbackpropfilterfus": 22, "conv2dbackpropinputfus": 23, "conv2dtranspos": 21, "crop": 24, "cropandres": 25, "depthtospac": 26, "dsp": [1, 3, 27, 64], "eltwis": 28, "embeddinglookup": 29, "equal": 30, "expanddim": 31, "expfus": 32, "fft": 7, "fillv2": 33, "floor": 34, "floordiv": 35, "fusedbatchnorm": 36, "gray_cnn": 0, "groupnormfus": 37, "gru": 38, "hellodsp": 60, "ide": 62, "ifft": 8, "leakyrelu": 39, "librari": 27, "linspac": 40, "lite": 60, "lstm": 41, "main": 60, "matlab": 4, "matmulfus": 42, "mindradar": 62, "mindspor": [4, 59, 60, 62, 67], "mt7004": 60, "netron": 62, "python": [0, 60, 62], "radar": 62, "raggedrang": 43, "rang": 44, "rdsar": 4, "reduc": 45, "refer": 27, "resiz": 46, "reversesequ": 47, "reversev2": 48, "sar": 4, "scalefus": 49, "scatterel": 50, "sgd": 51, "signal": [4, 59, 67], "spacetobatch": 52, "spacetobatchnd": 53, "spacetodepth": 54, "squeez": 55, "unsqueez": 56, "yhft": 62}}) \ No newline at end of file +Search.setIndex({"alltitles": {"1. \u57fa\u672c\u539f\u5219": [[235, "id1"]], "1. \u5b9a\u4e49\u6a21\u578b": [[0, "id3"]], "1. \u6570\u636e\u8bfb\u53d6": [[4, "id2"]], "1. \u65b0\u5efa\u5de5\u7a0b": [[231, "id4"]], "1.1 \u4e0b\u8f7d\u5b89\u88c5\u5305": [[233, "id3"]], "1.1 \u65b0\u5efaPython\u6587\u4ef6": [[231, "id1"]], "1.2 \u5f00\u59cb\u5b89\u88c5": [[233, "id4"]], "1.2 \u7f16\u5199Python\u4ee3\u7801": [[231, "id2"]], "1.3 \u8fd0\u884cPython\u4ee3\u7801": [[231, "id3"]], "1.3 \u9a8c\u8bc1\u5b89\u88c5": [[233, "id5"]], "1.MindSpore Python\u7aef": [[231, "mindspore-python"]], "1.\u5b89\u88c5\u5305\u65b9\u5f0f\u5b89\u88c5": [[233, "id2"]], "2. \u5177\u4f53\u547d\u540d\u793a\u4f8b": [[235, "id2"]], "2. \u5de5\u7a0b\u76ee\u5f55\u7ed3\u6784": [[231, "id5"]], "2. \u6570\u636e\u9884\u5904\u7406": [[4, "id3"]], "2. \u6a21\u578b\u8bad\u7ec3": [[0, "model-training"]], "2.1 \u52a0\u6cd5\u7b97\u5b50": [[235, "id3"]], "2.Conda\u65b9\u5f0f\u5b89\u88c5": [[233, "conda"]], "3. \u5176\u4ed6\u6ce8\u610f\u4e8b\u9879": [[235, "id4"]], "3. \u66f4\u6539\u8f93\u5165\u6570\u636e": [[231, "id6"]], "3. \u6838\u5fc3\u8ba1\u7b97": [[4, "id4"]], "3. \u91cd\u65b0\u7ec4\u7f51": [[0, "id5"]], "4. main.cc \u529f\u80fd\u4ecb\u7ecd": [[231, "main-cc"]], "4. \u6570\u636e\u540e\u5904\u7406": [[4, "id5"]], "4. \u8f6c\u6362\u6a21\u578b": [[0, "id6"]], "4.1 \u8bfb\u53d6\u6a21\u578b\u6587\u4ef6": [[231, "id7"]], "4.2 \u8bbe\u7f6e\u8fd0\u884c\u540e\u7aef": [[231, "id8"]], "4.3 \u7f16\u8bd1\u6a21\u578b\u56fe": [[231, "id9"]], "4.4 \u83b7\u53d6\u6a21\u578b\u8f93\u5165": [[231, "id10"]], "4.5 \u6267\u884c\u6a21\u578b\u63a8\u7406": [[231, "id11"]], "4.6 \u83b7\u53d6\u6a21\u578b\u7ed3\u679c": [[231, "id12"]], "5. \u7f16\u8bd1\u5de5\u7a0b": [[231, "id13"]], "5. \u90e8\u7f72\u548c\u8fd0\u884c\u7a0b\u5e8f": [[0, "id7"]], "6. \u8fd0\u884c\u5de5\u7a0b": [[231, "id14"]], "6.1 \u8fde\u63a5 MT7004 \u677f\u5361": [[231, "mt7004"]], "6.2 \u90e8\u7f72\u548c\u8fd0\u884c\u7a0b\u5e8f": [[231, "id15"]], "AI+DSP\u5e94\u7528\u793a\u4f8b": [[1, null]], "AI\u8f85\u52a9\u5f00\u53d1\u793a\u4f8b": [[2, null]], "Abs": [[10, null]], "Absgrad": [[11, null]], "Activation": [[12, null]], "ActivationGrad": [[13, null]], "Adam": [[14, null]], "AdamWeightDecay": [[15, null]], "AddN": [[19, null]], "Adder": [[16, null]], "Addfusion": [[17, null]], "Addgrad": [[18, null]], "Affine": [[20, null]], "All": [[21, null]], "AllGather": [[22, null]], "ApplyMomentum": [[23, null]], "Argmax": [[24, null]], "Argmin": [[25, null]], "Assert": [[26, null]], "Assign": [[27, null]], "AssignAdd": [[28, null]], "Attention": [[29, null]], "AudioSpectrogram": [[30, null]], "AvgPoolingGrad": [[32, null]], "Avgpooling": [[31, null]], "BatchNorm": [[33, null]], "BatchToSpace": [[35, null]], "BatchToSpaceND": [[36, null]], "Batchnormgrad": [[34, null]], "Biasadd": [[37, null]], "Biasaddgrad": [[38, null]], "Binarycrossentropy": [[39, null]], "Binarycrossentropygrad": [[40, null]], "BroadcastTo": [[41, null]], "Cast": [[42, null]], "Ceil": [[43, null]], "Clip": [[44, null]], "ComplexAbs": [[6, null]], "Concat": [[45, null]], "ConstantOfShape": [[46, null]], "Conv2DBackpropFilterFusion": [[49, null]], "Conv2DBackpropInputFusion": [[50, null]], "Conv2d": [[47, null]], "Conv2dTranspose": [[48, null]], "Cos": [[51, null]], "Crop": [[52, null]], "CropAndResize": [[53, null]], "Cumsum": [[54, null]], "CustomExtractFeatures": [[55, null]], "CustomPredict": [[57, null]], "Customnormalize": [[56, null]], "DSP Library C API Reference": [[65, null]], "DSP\u5e94\u7528\u793a\u4f8b": [[3, null]], "DSP\u7b97\u5b50C\u63a5\u53e3\u547d\u540d\u89c4\u8303": [[235, null]], "DeconvGradFilter": [[58, null]], "DepthToSpace": [[59, null]], "DetectionPostProcess": [[60, null]], "DivFusion": [[61, null]], "Divgrad": [[62, null]], "Dropout": [[63, null]], "Dropoutgrad": [[64, null]], "DynamicQuant": [[66, null]], "Eltwise": [[67, null]], "Elu": [[68, null]], "EmbeddingLookup": [[69, null]], "Equal": [[70, null]], "Erf": [[71, null]], "ExpFusion": [[73, null]], "ExpandDims": [[72, null]], "FFT": [[7, null]], "FFTImag": [[76, null]], "FFTReal": [[77, null]], "FakeQuantWithMinMaxVars": [[74, null]], "FakeQuantWithMinMaxVarsPerChannel": [[75, null]], "Fill": [[78, null]], "FillV2": [[79, null]], "Flatten": [[80, null]], "FlattenGrad": [[81, null]], "Floor": [[82, null]], "FloorDiv": [[83, null]], "Floormod": [[84, null]], "FormatTranspose": [[85, null]], "FullConnection": [[86, null]], "FusedBatchNorm": [[87, null]], "GLU": [[91, null]], "GRAY_CNN(\u56fe\u7247\u7070\u5ea6\u5316\u5904\u7406+\u56fe\u7247\u8bc6\u522b)": [[0, null]], "GRU": [[95, null]], "Gather": [[88, null]], "GatherD": [[90, null]], "GatherNd": [[89, null]], "Greater": [[92, null]], "Greaterequal": [[93, null]], "GroupNormFusion": [[94, null]], "HashtableLookup": [[96, null]], "HelloDSP": [[231, null]], "IFFT": [[8, null]], "InstanceNorm": [[97, null]], "InvertPermutation": [[98, null]], "Isfinite": [[99, null]], "L2norm": [[100, null]], "LSTM": [[117, null]], "LayerNormFusion": [[101, null]], "Layernormgrad": [[102, null]], "LeakyReLu": [[103, null]], "Less": [[104, null]], "Lessequal": [[105, null]], "LinSpace": [[106, null]], "Log": [[107, null]], "Log1p": [[108, null]], "LogGrad": [[109, null]], "LogSoftmax": [[113, null]], "LogicalAnd": [[112, null]], "LogicalNot": [[110, null]], "LogicalOr": [[111, null]], "LpNormalization": [[114, null]], "Lrn": [[115, null]], "LshProjection": [[116, null]], "LstmGrad": [[118, null]], "LstmGradData": [[119, null]], "LstmGradWeight": [[120, null]], "MATLAB \u5b9e\u73b0": [[4, "matlab"]], "MFCC": [[126, null]], "MatMulFusion": [[121, null]], "MaxPoolFusion": [[124, null]], "MaxPoolGrad": [[125, null]], "Maximum": [[122, null]], "Maximumgrad": [[123, null]], "MindSpore Lite\u7aef": [[231, "mindspore-lite"]], "MindSpore Signal+ \u4f7f\u7528\u624b\u518c": [[230, null], [239, null]], "MindSpore Signal+ \u5b9e\u73b0": [[4, "mindspore-signal"]], "MindSpore Signal+ \u8c03\u5ea6\u65b9\u6848": [[238, null]], "Minimum": [[127, null]], "Minimumgrad": [[128, null]], "Mod": [[129, null]], "Mul": [[130, null]], "Mulgrad": [[131, null]], "NLLLoss": [[134, null]], "NLLLossGrad": [[135, null]], "Neg": [[132, null]], "NegGrad": [[133, null]], "NonMaxSuppression": [[136, null]], "NonZero": [[137, null]], "NotEqual": [[138, null]], "OneHot": [[139, null]], "OnesLike": [[140, null]], "PReLUFusion": [[144, null]], "PadFusion": [[141, null]], "PowFusion": [[142, null]], "PowerGrad": [[143, null]], "Priorbox": [[145, null]], "QuantDTypeCast": [[146, null]], "RDSAR\uff08\u8ddd\u79bb-\u591a\u666e\u52d2SAR\u6210\u50cf\u7b97\u6cd5\uff09": [[4, null]], "RFFT": [[161, null]], "ROIPooling": [[162, null]], "RaggedRange": [[147, null]], "RandomNormal": [[148, null]], "RandomStandardNormal": [[149, null]], "Range": [[150, null]], "Rank": [[151, null]], "RealDiv": [[152, null]], "Reciprocal": [[153, null]], "Reduce": [[154, null]], "ReduceScatter": [[155, null]], "Reshape": [[156, null]], "Resize": [[157, null]], "Resizegrad": [[158, null]], "ReverseSequence": [[159, null]], "ReverseV2": [[160, null]], "Round": [[163, null]], "Rsqrt": [[164, null]], "Rsqrtgrad": [[165, null]], "SGD": [[171, null]], "ScaleFusion": [[166, null]], "ScatterElements": [[167, null]], "ScatterNd": [[168, null]], "ScatterNdUpdate": [[169, null]], "Select": [[170, null]], "Shape": [[172, null]], "SigmoidCrossEntropyWithLogits": [[174, null]], "SigmoidCrossEntropyWithLogitsGrad": [[173, null]], "Sin": [[175, null]], "Size": [[176, null]], "Skipgram": [[177, null]], "Slice": [[178, null]], "SmoothL1Loss": [[179, null]], "Smoothl1lossgrad": [[180, null]], "Softmax": [[181, null]], "SoftmaxCrossEntropyWithLogits": [[182, null]], "SpaceToBatch": [[183, null]], "SpaceToBatchND": [[184, null]], "SpaceToDepth": [[185, null]], "SparseFillEmptyRows": [[187, null]], "SparseSoftmaxCrossEntropyWithLogits": [[186, null]], "Sparsereshape": [[188, null]], "Sparsesegmentsum": [[189, null]], "Sparsetodense": [[190, null]], "Splice": [[191, null]], "Split": [[192, null]], "SplitWithOverlap": [[193, null]], "Sqrt": [[194, null]], "Sqrtgrad": [[195, null]], "Square": [[196, null]], "Squaredifference": [[197, null]], "Squeeze": [[198, null]], "Stack": [[199, null]], "Stridedslice": [[200, null]], "Stridedslicegrad": [[201, null]], "Subfusion": [[202, null]], "Subgrad": [[203, null]], "Switch": [[204, null]], "Switchlayer": [[205, null]], "TensorScatterAdd": [[206, null]], "Tensorarray": [[207, null]], "TensorarrayWrite": [[209, null]], "Tensorarrayread": [[208, null]], "Tensorlistfromtensor": [[210, null]], "Tensorlistgetitem": [[211, null]], "Tensorlistreserve": [[212, null]], "Tensorlistsetitem": [[213, null]], "Tensorliststack": [[214, null]], "Tile": [[215, null]], "TopkFusion": [[216, null]], "Transpose": [[217, null]], "Tril": [[218, null]], "Triu": [[219, null]], "UnSqueeze": [[223, null]], "UniformReal": [[220, null]], "Unique": [[221, null]], "UnsortedSegmentSum": [[222, null]], "Unstack": [[224, null]], "Where": [[225, null]], "ZerosLike": [[226, null]], "python\u5b8c\u6574\u4ee3\u7801\u793a\u4f8b": [[0, "python"]], "\u521b\u5efa\u5e76\u8fdb\u5165Conda\u865a\u62df\u73af\u5883": [[233, "id6"]], "\u53c2\u8003\u4e0e\u6e90\u7801": [[4, "id7"]], "\u53c2\u8003\u8d44\u6599": [[236, null]], "\u5b89\u88c5CMake": [[233, "cmake"]], "\u5b89\u88c5MindRadar": [[233, "mindradar"]], "\u5b89\u88c5MindSpore": [[233, "mindspore"]], "\u5b89\u88c5MindSpore Radar \u4e0e\u4f9d\u8d56\u8f6f\u4ef6": [[233, "mindspore-radar"]], "\u5b89\u88c5Netron": [[233, "netron"]], "\u5b89\u88c5Python": [[233, "python"]], "\u5b89\u88c5YHFT-IDE": [[233, "yhft-ide"]], "\u5b98\u65b9\u8d44\u6599": [[237, null]], "\u5e94\u7528\u5f00\u53d1\u793a\u4f8b": [[5, null]], "\u5e94\u7528\u6982\u8ff0": [[0, "id1"]], "\u5f00\u53d1\u6d41\u7a0b": [[0, "id2"]], "\u5feb\u901f\u5165\u95e8": [[232, null]], "\u6574\u4f53\u6982\u89c8": [[234, null]], "\u677f\u5361\u90e8\u7f72": [[4, "id6"]], "\u73af\u5883\u5b89\u88c5": [[233, null]], "\u7b97\u5b50\u5e93\u652f\u6301": [[227, null], [228, null]], "\u7b97\u5b50\u5e93\u652f\u6301\u60c5\u51b5": [[229, null]], "\u7b97\u6cd5\u6982\u8ff0": [[4, "id1"]], "\u81ea\u5b9a\u4e49\u7b97\u5b50\u5217\u8868": [[9, null]], "\u914d\u7f6e\u4ea4\u53c9\u7f16\u8bd1\u5de5\u5177\u94fe": [[233, "toolchain"]]}, "docnames": ["appdevelop/ai_dsp/gray_cnn", "appdevelop/ai_dsp/index", "appdevelop/autocodegen/index", "appdevelop/dsp/index", "appdevelop/dsp/rdsar", "appdevelop/index", "functionlib/custom_op/complex_abs", "functionlib/custom_op/fft", "functionlib/custom_op/ifft", "functionlib/custom_op/index", "functionlib/dsplib/abs", "functionlib/dsplib/absgrad", "functionlib/dsplib/activation", "functionlib/dsplib/activation_grad", "functionlib/dsplib/adam", "functionlib/dsplib/adamweightdecay", "functionlib/dsplib/adder", "functionlib/dsplib/addfusion", "functionlib/dsplib/addgrad", "functionlib/dsplib/addn", "functionlib/dsplib/affine", "functionlib/dsplib/all", "functionlib/dsplib/allgather", "functionlib/dsplib/applymomentum", "functionlib/dsplib/argmax", "functionlib/dsplib/argmin", "functionlib/dsplib/assert", "functionlib/dsplib/assign", "functionlib/dsplib/assignadd", "functionlib/dsplib/attention", "functionlib/dsplib/audio_spectrogram", "functionlib/dsplib/avgpooling", "functionlib/dsplib/avgpoolinggrad", "functionlib/dsplib/batchnorm", "functionlib/dsplib/batchnormgrad", "functionlib/dsplib/batchtospace", "functionlib/dsplib/batchtospacend", "functionlib/dsplib/biasadd", "functionlib/dsplib/biasaddgrad", "functionlib/dsplib/binarycrossentropy", "functionlib/dsplib/binarycrossentropygrad", "functionlib/dsplib/broadcastto", "functionlib/dsplib/cast", "functionlib/dsplib/ceil", "functionlib/dsplib/clip", "functionlib/dsplib/concat", "functionlib/dsplib/constant_of_shape", "functionlib/dsplib/conv2d", "functionlib/dsplib/conv2d_transpose", "functionlib/dsplib/conv2dbackpropfilterfusion", "functionlib/dsplib/conv2dbackpropinputfusion", "functionlib/dsplib/cos", "functionlib/dsplib/crop", "functionlib/dsplib/crop_and_resize", "functionlib/dsplib/cumsum", "functionlib/dsplib/customextractfeatures", "functionlib/dsplib/customnormalize", "functionlib/dsplib/custompredict", "functionlib/dsplib/deconvgradfilter", "functionlib/dsplib/depthtospace", "functionlib/dsplib/detection_post_process", "functionlib/dsplib/div_fusion", "functionlib/dsplib/divgrad", "functionlib/dsplib/dropout", "functionlib/dsplib/dropoutgrad", "functionlib/dsplib/dsplib_index", "functionlib/dsplib/dynamicquant", "functionlib/dsplib/eltwise", "functionlib/dsplib/elu", "functionlib/dsplib/embeddinglookup", "functionlib/dsplib/equal", "functionlib/dsplib/erf", "functionlib/dsplib/expand_dims", "functionlib/dsplib/expfusion", "functionlib/dsplib/fake_quant_with_min_max_vars", "functionlib/dsplib/fake_quant_with_min_max_vars_per_channel", "functionlib/dsplib/fftimag", "functionlib/dsplib/fftreal", "functionlib/dsplib/fill", "functionlib/dsplib/fillv2", "functionlib/dsplib/flatten", "functionlib/dsplib/flattengrad", "functionlib/dsplib/floor", "functionlib/dsplib/floordiv", "functionlib/dsplib/floormod", "functionlib/dsplib/formattranspose", "functionlib/dsplib/fullconnection", "functionlib/dsplib/fusedbatchnorm", "functionlib/dsplib/gather", "functionlib/dsplib/gather_nd", "functionlib/dsplib/gatherd", "functionlib/dsplib/glu", "functionlib/dsplib/greater", "functionlib/dsplib/greaterequal", "functionlib/dsplib/groupnormfusion", "functionlib/dsplib/gru", "functionlib/dsplib/hashtablelookup", "functionlib/dsplib/instancenorm", "functionlib/dsplib/invertpermutation", "functionlib/dsplib/isfinite", "functionlib/dsplib/l2norm", "functionlib/dsplib/layernormfusion", "functionlib/dsplib/layernormgrad", "functionlib/dsplib/leaky_relu", "functionlib/dsplib/less", "functionlib/dsplib/lessequal", "functionlib/dsplib/linspace", "functionlib/dsplib/log", "functionlib/dsplib/log1p", "functionlib/dsplib/loggrad", "functionlib/dsplib/logical_not", "functionlib/dsplib/logical_or", "functionlib/dsplib/logicaland", "functionlib/dsplib/logsoftmax", "functionlib/dsplib/lpnormalization", "functionlib/dsplib/lrn", "functionlib/dsplib/lsh_projection", "functionlib/dsplib/lstm", "functionlib/dsplib/lstmgrad", "functionlib/dsplib/lstmgraddata", "functionlib/dsplib/lstmgradweight", "functionlib/dsplib/matmulfusion", "functionlib/dsplib/maximum", "functionlib/dsplib/maximumgrad", "functionlib/dsplib/maxpoolfusion", "functionlib/dsplib/maxpoolgrad", "functionlib/dsplib/mfcc", "functionlib/dsplib/minimum", "functionlib/dsplib/minimumgrad", "functionlib/dsplib/mod", "functionlib/dsplib/mul", "functionlib/dsplib/mulgrad", "functionlib/dsplib/neg", "functionlib/dsplib/neg_grad", "functionlib/dsplib/nllloss", "functionlib/dsplib/nlllossgrad", "functionlib/dsplib/non_max_suppression", "functionlib/dsplib/nonzero", "functionlib/dsplib/not_equal", "functionlib/dsplib/onehot", "functionlib/dsplib/ones_like", "functionlib/dsplib/padfusion", "functionlib/dsplib/pow_fusion", "functionlib/dsplib/power_grad", "functionlib/dsplib/prelufusion", "functionlib/dsplib/priorbox", "functionlib/dsplib/quantdtypecast", "functionlib/dsplib/raggedrange", "functionlib/dsplib/random_normal", "functionlib/dsplib/random_standard_normal", "functionlib/dsplib/range", "functionlib/dsplib/rank", "functionlib/dsplib/real_div", "functionlib/dsplib/reciprocal", "functionlib/dsplib/reduce", "functionlib/dsplib/reducescatter", "functionlib/dsplib/reshape", "functionlib/dsplib/resize", "functionlib/dsplib/resizegrad", "functionlib/dsplib/reverse_sequence", "functionlib/dsplib/reversev2", "functionlib/dsplib/rfft", "functionlib/dsplib/roipooling", "functionlib/dsplib/round", "functionlib/dsplib/rsqrt", "functionlib/dsplib/rsqrtgrad", "functionlib/dsplib/scalefusion", "functionlib/dsplib/scatter_elements", "functionlib/dsplib/scatter_nd", "functionlib/dsplib/scatter_nd_update", "functionlib/dsplib/select", "functionlib/dsplib/sgd", "functionlib/dsplib/shape", "functionlib/dsplib/sigmoidcrossentropwithlogitsgrad", "functionlib/dsplib/sigmoidcrossentropywithlogits", "functionlib/dsplib/sin", "functionlib/dsplib/size", "functionlib/dsplib/skipgram", "functionlib/dsplib/slice", "functionlib/dsplib/smooth1loss", "functionlib/dsplib/smoothl1lossgrad", "functionlib/dsplib/softmax", "functionlib/dsplib/softmax_cross_entropy_with_logits", "functionlib/dsplib/spacetobatch", "functionlib/dsplib/spacetobatchnd", "functionlib/dsplib/spacetodepth", "functionlib/dsplib/sparse_softmax_cross_entropy_with_logits", "functionlib/dsplib/sparsefillemptyrows", "functionlib/dsplib/sparsereshape", "functionlib/dsplib/sparsesegmentsum", "functionlib/dsplib/sparsetodense", "functionlib/dsplib/splice", "functionlib/dsplib/split", "functionlib/dsplib/split_with_overlap", "functionlib/dsplib/sqrt", "functionlib/dsplib/sqrtgrad", "functionlib/dsplib/square", "functionlib/dsplib/squaredifference", "functionlib/dsplib/squeeze", "functionlib/dsplib/stack", "functionlib/dsplib/stridedslice", "functionlib/dsplib/stridedslicegrad", "functionlib/dsplib/subfusion", "functionlib/dsplib/subgrad", "functionlib/dsplib/switch", "functionlib/dsplib/switchlayer", "functionlib/dsplib/tensor_scatter_add", "functionlib/dsplib/tensorarray", "functionlib/dsplib/tensorarrayread", "functionlib/dsplib/tensorarraywrite", "functionlib/dsplib/tensorlistfromtensor", "functionlib/dsplib/tensorlistgetitem", "functionlib/dsplib/tensorlistreserve", "functionlib/dsplib/tensorlistsetitem", "functionlib/dsplib/tensorliststack", "functionlib/dsplib/tile", "functionlib/dsplib/topkfusion", "functionlib/dsplib/transpose", "functionlib/dsplib/tril", "functionlib/dsplib/triu", "functionlib/dsplib/uniform_real", "functionlib/dsplib/unique", "functionlib/dsplib/unsortedsegmentsum", "functionlib/dsplib/unsqueeze", "functionlib/dsplib/unstack", "functionlib/dsplib/where", "functionlib/dsplib/zeroslike", "functionlib/index", "functionlib/rstfiles", "functionlib/supported_op", "index", "quickstart/hellodsp", "quickstart/index", "quickstart/installation", "quickstart/overview", "refdoc/dsplib_description", "refdoc/index", "refdoc/mindspore", "refdoc/signal_scheduling", "rstfiles"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["appdevelop/ai_dsp/gray_cnn.rst", "appdevelop/ai_dsp/index.rst", "appdevelop/autocodegen/index.rst", "appdevelop/dsp/index.rst", "appdevelop/dsp/rdsar.md", "appdevelop/index.rst", "functionlib/custom_op/complex_abs.rst", "functionlib/custom_op/fft.rst", "functionlib/custom_op/ifft.rst", "functionlib/custom_op/index.rst", "functionlib/dsplib/abs.rst", "functionlib/dsplib/absgrad.rst", "functionlib/dsplib/activation.rst", "functionlib/dsplib/activation_grad.rst", "functionlib/dsplib/adam.rst", "functionlib/dsplib/adamweightdecay.rst", "functionlib/dsplib/adder.rst", "functionlib/dsplib/addfusion.rst", "functionlib/dsplib/addgrad.rst", "functionlib/dsplib/addn.rst", "functionlib/dsplib/affine.rst", "functionlib/dsplib/all.rst", "functionlib/dsplib/allgather.rst", "functionlib/dsplib/applymomentum.rst", "functionlib/dsplib/argmax.rst", "functionlib/dsplib/argmin.rst", "functionlib/dsplib/assert.rst", "functionlib/dsplib/assign.rst", "functionlib/dsplib/assignadd.rst", "functionlib/dsplib/attention.rst", "functionlib/dsplib/audio_spectrogram.rst", "functionlib/dsplib/avgpooling.rst", "functionlib/dsplib/avgpoolinggrad.rst", "functionlib/dsplib/batchnorm.rst", "functionlib/dsplib/batchnormgrad.rst", "functionlib/dsplib/batchtospace.rst", "functionlib/dsplib/batchtospacend.rst", "functionlib/dsplib/biasadd.rst", "functionlib/dsplib/biasaddgrad.rst", "functionlib/dsplib/binarycrossentropy.rst", "functionlib/dsplib/binarycrossentropygrad.rst", "functionlib/dsplib/broadcastto.rst", "functionlib/dsplib/cast.rst", "functionlib/dsplib/ceil.rst", "functionlib/dsplib/clip.rst", "functionlib/dsplib/concat.rst", "functionlib/dsplib/constant_of_shape.rst", "functionlib/dsplib/conv2d.rst", "functionlib/dsplib/conv2d_transpose.rst", "functionlib/dsplib/conv2dbackpropfilterfusion.rst", "functionlib/dsplib/conv2dbackpropinputfusion.rst", "functionlib/dsplib/cos.rst", "functionlib/dsplib/crop.rst", "functionlib/dsplib/crop_and_resize.rst", "functionlib/dsplib/cumsum.rst", "functionlib/dsplib/customextractfeatures.rst", "functionlib/dsplib/customnormalize.rst", "functionlib/dsplib/custompredict.rst", "functionlib/dsplib/deconvgradfilter.rst", "functionlib/dsplib/depthtospace.rst", "functionlib/dsplib/detection_post_process.rst", "functionlib/dsplib/div_fusion.rst", "functionlib/dsplib/divgrad.rst", "functionlib/dsplib/dropout.rst", "functionlib/dsplib/dropoutgrad.rst", "functionlib/dsplib/dsplib_index.rst", "functionlib/dsplib/dynamicquant.rst", "functionlib/dsplib/eltwise.rst", "functionlib/dsplib/elu.rst", "functionlib/dsplib/embeddinglookup.rst", "functionlib/dsplib/equal.rst", "functionlib/dsplib/erf.rst", "functionlib/dsplib/expand_dims.rst", "functionlib/dsplib/expfusion.rst", "functionlib/dsplib/fake_quant_with_min_max_vars.rst", "functionlib/dsplib/fake_quant_with_min_max_vars_per_channel.rst", "functionlib/dsplib/fftimag.rst", "functionlib/dsplib/fftreal.rst", "functionlib/dsplib/fill.rst", "functionlib/dsplib/fillv2.rst", "functionlib/dsplib/flatten.rst", "functionlib/dsplib/flattengrad.rst", "functionlib/dsplib/floor.rst", "functionlib/dsplib/floordiv.rst", "functionlib/dsplib/floormod.rst", "functionlib/dsplib/formattranspose.rst", "functionlib/dsplib/fullconnection.rst", "functionlib/dsplib/fusedbatchnorm.rst", "functionlib/dsplib/gather.rst", "functionlib/dsplib/gather_nd.rst", "functionlib/dsplib/gatherd.rst", "functionlib/dsplib/glu.rst", "functionlib/dsplib/greater.rst", "functionlib/dsplib/greaterequal.rst", "functionlib/dsplib/groupnormfusion.rst", "functionlib/dsplib/gru.rst", "functionlib/dsplib/hashtablelookup.rst", "functionlib/dsplib/instancenorm.rst", "functionlib/dsplib/invertpermutation.rst", "functionlib/dsplib/isfinite.rst", "functionlib/dsplib/l2norm.rst", "functionlib/dsplib/layernormfusion.rst", "functionlib/dsplib/layernormgrad.rst", "functionlib/dsplib/leaky_relu.rst", "functionlib/dsplib/less.rst", "functionlib/dsplib/lessequal.rst", "functionlib/dsplib/linspace.rst", "functionlib/dsplib/log.rst", "functionlib/dsplib/log1p.rst", "functionlib/dsplib/loggrad.rst", "functionlib/dsplib/logical_not.rst", "functionlib/dsplib/logical_or.rst", "functionlib/dsplib/logicaland.rst", "functionlib/dsplib/logsoftmax.rst", "functionlib/dsplib/lpnormalization.rst", "functionlib/dsplib/lrn.rst", "functionlib/dsplib/lsh_projection.rst", "functionlib/dsplib/lstm.rst", "functionlib/dsplib/lstmgrad.rst", "functionlib/dsplib/lstmgraddata.rst", "functionlib/dsplib/lstmgradweight.rst", "functionlib/dsplib/matmulfusion.rst", "functionlib/dsplib/maximum.rst", "functionlib/dsplib/maximumgrad.rst", "functionlib/dsplib/maxpoolfusion.rst", "functionlib/dsplib/maxpoolgrad.rst", "functionlib/dsplib/mfcc.rst", "functionlib/dsplib/minimum.rst", "functionlib/dsplib/minimumgrad.rst", "functionlib/dsplib/mod.rst", "functionlib/dsplib/mul.rst", "functionlib/dsplib/mulgrad.rst", "functionlib/dsplib/neg.rst", "functionlib/dsplib/neg_grad.rst", "functionlib/dsplib/nllloss.rst", "functionlib/dsplib/nlllossgrad.rst", "functionlib/dsplib/non_max_suppression.rst", "functionlib/dsplib/nonzero.rst", "functionlib/dsplib/not_equal.rst", "functionlib/dsplib/onehot.rst", "functionlib/dsplib/ones_like.rst", "functionlib/dsplib/padfusion.rst", "functionlib/dsplib/pow_fusion.rst", "functionlib/dsplib/power_grad.rst", "functionlib/dsplib/prelufusion.rst", "functionlib/dsplib/priorbox.rst", "functionlib/dsplib/quantdtypecast.rst", "functionlib/dsplib/raggedrange.rst", "functionlib/dsplib/random_normal.rst", "functionlib/dsplib/random_standard_normal.rst", "functionlib/dsplib/range.rst", "functionlib/dsplib/rank.rst", "functionlib/dsplib/real_div.rst", "functionlib/dsplib/reciprocal.rst", "functionlib/dsplib/reduce.rst", "functionlib/dsplib/reducescatter.rst", "functionlib/dsplib/reshape.rst", "functionlib/dsplib/resize.rst", "functionlib/dsplib/resizegrad.rst", "functionlib/dsplib/reverse_sequence.rst", "functionlib/dsplib/reversev2.rst", "functionlib/dsplib/rfft.rst", "functionlib/dsplib/roipooling.rst", "functionlib/dsplib/round.rst", "functionlib/dsplib/rsqrt.rst", "functionlib/dsplib/rsqrtgrad.rst", "functionlib/dsplib/scalefusion.rst", "functionlib/dsplib/scatter_elements.rst", "functionlib/dsplib/scatter_nd.rst", "functionlib/dsplib/scatter_nd_update.rst", "functionlib/dsplib/select.rst", "functionlib/dsplib/sgd.rst", "functionlib/dsplib/shape.rst", "functionlib/dsplib/sigmoidcrossentropwithlogitsgrad.rst", "functionlib/dsplib/sigmoidcrossentropywithlogits.rst", "functionlib/dsplib/sin.rst", "functionlib/dsplib/size.rst", "functionlib/dsplib/skipgram.rst", "functionlib/dsplib/slice.rst", "functionlib/dsplib/smooth1loss.rst", "functionlib/dsplib/smoothl1lossgrad.rst", "functionlib/dsplib/softmax.rst", "functionlib/dsplib/softmax_cross_entropy_with_logits.rst", "functionlib/dsplib/spacetobatch.rst", "functionlib/dsplib/spacetobatchnd.rst", "functionlib/dsplib/spacetodepth.rst", "functionlib/dsplib/sparse_softmax_cross_entropy_with_logits.rst", "functionlib/dsplib/sparsefillemptyrows.rst", "functionlib/dsplib/sparsereshape.rst", "functionlib/dsplib/sparsesegmentsum.rst", "functionlib/dsplib/sparsetodense.rst", "functionlib/dsplib/splice.rst", "functionlib/dsplib/split.rst", "functionlib/dsplib/split_with_overlap.rst", "functionlib/dsplib/sqrt.rst", "functionlib/dsplib/sqrtgrad.rst", "functionlib/dsplib/square.rst", "functionlib/dsplib/squaredifference.rst", "functionlib/dsplib/squeeze.rst", "functionlib/dsplib/stack.rst", "functionlib/dsplib/stridedslice.rst", "functionlib/dsplib/stridedslicegrad.rst", "functionlib/dsplib/subfusion.rst", "functionlib/dsplib/subgrad.rst", "functionlib/dsplib/switch.rst", "functionlib/dsplib/switchlayer.rst", "functionlib/dsplib/tensor_scatter_add.rst", "functionlib/dsplib/tensorarray.rst", "functionlib/dsplib/tensorarrayread.rst", "functionlib/dsplib/tensorarraywrite.rst", "functionlib/dsplib/tensorlistfromtensor.rst", "functionlib/dsplib/tensorlistgetitem.rst", "functionlib/dsplib/tensorlistreserve.rst", "functionlib/dsplib/tensorlistsetitem.rst", "functionlib/dsplib/tensorliststack.rst", "functionlib/dsplib/tile.rst", "functionlib/dsplib/topkfusion.rst", "functionlib/dsplib/transpose.rst", "functionlib/dsplib/tril.rst", "functionlib/dsplib/triu.rst", "functionlib/dsplib/uniform_real.rst", "functionlib/dsplib/unique.rst", "functionlib/dsplib/unsortedsegmentsum.rst", "functionlib/dsplib/unsqueeze.rst", "functionlib/dsplib/unstack.rst", "functionlib/dsplib/where.rst", "functionlib/dsplib/zeroslike.rst", "functionlib/index.rst", "functionlib/rstfiles.rst", "functionlib/supported_op.md", "index.rst", "quickstart/hellodsp.md", "quickstart/index.rst", "quickstart/installation.md", "quickstart/overview.md", "refdoc/dsplib_description.md", "refdoc/index.rst", "refdoc/mindspore.md", "refdoc/signal_scheduling.md", "rstfiles.rst"], "indexentries": {"anytype_crop_anycore\uff08c function\uff09": [[52, "c.anytype_crop_anycore", false]], "anytype_expand_dims_anycore\uff08c function\uff09": [[72, "c.anytype_expand_dims_anycore", false]], "anytype_fillv2_p\uff08c function\uff09": [[79, "c.anytype_fillv2_p", false]], "anytype_fillv2_s\uff08c function\uff09": [[79, "c.anytype_fillv2_s", false]], "anytype_reverse_sequence_anycore\uff08c function\uff09": [[159, "c.anytype_reverse_sequence_anycore", false]], "anytype_reversev2_anycore\uff08c function\uff09": [[160, "c.anytype_reversev2_anycore", false]], "anytype_squeeze_anycore\uff08c function\uff09": [[198, "c.anytype_squeeze_anycore", false]], "anytype_unsqueeze_anycore\uff08c function\uff09": [[223, "c.anytype_unsqueeze_anycore", false]], "assert\uff08c function\uff09": [[26, "c.assert", false]], "c128_abs_p\uff08c function\uff09": [[10, "c.c128_abs_p", false]], "c128_abs_s\uff08c function\uff09": [[10, "c.c128_abs_s", false]], "c128_addext_p\uff08c function\uff09": [[17, "c.c128_addext_p", false]], "c128_addext_s\uff08c function\uff09": [[17, "c.c128_addext_s", false]], "c128_addn_p\uff08c function\uff09": [[19, "c.c128_addn_p", false]], "c128_addn_s\uff08c function\uff09": [[19, "c.c128_addn_s", false]], "c128_addrelu6_p\uff08c function\uff09": [[17, "c.c128_addrelu6_p", false]], "c128_addrelu6_s\uff08c function\uff09": [[17, "c.c128_addrelu6_s", false]], "c128_addrelu_p\uff08c function\uff09": [[17, "c.c128_addrelu_p", false]], "c128_addrelu_s\uff08c function\uff09": [[17, "c.c128_addrelu_s", false]], "c128_allgather_p\uff08c function\uff09": [[22, "c.c128_allgather_p", false]], "c128_allgather_s\uff08c function\uff09": [[22, "c.c128_allgather_s", false]], "c128_assign_p\uff08c function\uff09": [[27, "c.c128_assign_p", false]], "c128_assign_s\uff08c function\uff09": [[27, "c.c128_assign_s", false]], "c128_assignadd_p\uff08c function\uff09": [[28, "c.c128_assignadd_p", false]], "c128_assignadd_s\uff08c function\uff09": [[28, "c.c128_assignadd_s", false]], "c128_batchtospace_p\uff08c function\uff09": [[35, "c.c128_batchtospace_p", false]], "c128_batchtospace_s\uff08c function\uff09": [[35, "c.c128_batchtospace_s", false]], "c128_batchtospacend_p\uff08c function\uff09": [[36, "c.c128_batchtospacend_p", false]], "c128_batchtospacend_s\uff08c function\uff09": [[36, "c.c128_batchtospacend_s", false]], "c128_biasadd_p\uff08c function\uff09": [[37, "c.c128_biasadd_p", false]], "c128_biasadd_s\uff08c function\uff09": [[37, "c.c128_biasadd_s", false]], "c128_broadcastto_p\uff08c function\uff09": [[41, "c.c128_broadcastto_p", false]], "c128_broadcastto_s\uff08c function\uff09": [[41, "c.c128_broadcastto_s", false]], "c128_concat_p\uff08c function\uff09": [[45, "c.c128_concat_p", false]], "c128_concat_s\uff08c function\uff09": [[45, "c.c128_concat_s", false]], "c128_constant_of_shape_p\uff08c function\uff09": [[46, "c.c128_constant_of_shape_p", false]], "c128_constant_of_shape_s\uff08c function\uff09": [[46, "c.c128_constant_of_shape_s", false]], "c128_cumsum_p\uff08c function\uff09": [[54, "c.c128_cumsum_p", false]], "c128_cumsum_s\uff08c function\uff09": [[54, "c.c128_cumsum_s", false]], "c128_depthtospace_p\uff08c function\uff09": [[59, "c.c128_depthtospace_p", false]], "c128_depthtospace_s\uff08c function\uff09": [[59, "c.c128_depthtospace_s", false]], "c128_div_fusion_p\uff08c function\uff09": [[61, "c.c128_div_fusion_p", false]], "c128_div_fusion_s\uff08c function\uff09": [[61, "c.c128_div_fusion_s", false]], "c128_eltwise_p\uff08c function\uff09": [[67, "c.c128_eltwise_p", false]], "c128_eltwise_s\uff08c function\uff09": [[67, "c.c128_eltwise_s", false]], "c128_equal_p\uff08c function\uff09": [[70, "c.c128_equal_p", false]], "c128_equal_s\uff08c function\uff09": [[70, "c.c128_equal_s", false]], "c128_expfusion_p\uff08c function\uff09": [[73, "c.c128_expfusion_p", false]], "c128_expfusion_s\uff08c function\uff09": [[73, "c.c128_expfusion_s", false]], "c128_extract_features_p\uff08c function\uff09": [[55, "c.c128_extract_features_p", false]], "c128_extract_features_s\uff08c function\uff09": [[55, "c.c128_extract_features_s", false]], "c128_fill_p\uff08c function\uff09": [[78, "c.c128_fill_p", false]], "c128_fill_s\uff08c function\uff09": [[78, "c.c128_fill_s", false]], "c128_formattranspose_p\uff08c function\uff09": [[85, "c.c128_formattranspose_p", false]], "c128_formattranspose_s\uff08c function\uff09": [[85, "c.c128_formattranspose_s", false]], "c128_gather_nd_p\uff08c function\uff09": [[89, "c.c128_gather_nd_p", false]], "c128_gather_nd_s\uff08c function\uff09": [[89, "c.c128_gather_nd_s", false]], "c128_gather_p\uff08c function\uff09": [[88, "c.c128_gather_p", false]], "c128_gather_s\uff08c function\uff09": [[88, "c.c128_gather_s", false]], "c128_gatherd_p\uff08c function\uff09": [[90, "c.c128_gatherd_p", false]], "c128_gatherd_s\uff08c function\uff09": [[90, "c.c128_gatherd_s", false]], "c128_isfinite_p\uff08c function\uff09": [[99, "c.c128_isfinite_p", false]], "c128_isfinite_s\uff08c function\uff09": [[99, "c.c128_isfinite_s", false]], "c128_matmulfusion_p\uff08c function\uff09": [[121, "c.c128_matmulfusion_p", false]], "c128_matmulfusion_s\uff08c function\uff09": [[121, "c.c128_matmulfusion_s", false]], "c128_mul_p\uff08c function\uff09": [[130, "c.c128_mul_p", false]], "c128_mul_s\uff08c function\uff09": [[130, "c.c128_mul_s", false]], "c128_neg_grad_p\uff08c function\uff09": [[133, "c.c128_neg_grad_p", false]], "c128_neg_grad_s\uff08c function\uff09": [[133, "c.c128_neg_grad_s", false]], "c128_neg_p\uff08c function\uff09": [[132, "c.c128_neg_p", false]], "c128_neg_s\uff08c function\uff09": [[132, "c.c128_neg_s", false]], "c128_nonzero_p\uff08c function\uff09": [[137, "c.c128_nonzero_p", false]], "c128_nonzero_s\uff08c function\uff09": [[137, "c.c128_nonzero_s", false]], "c128_not_equal_p\uff08c function\uff09": [[138, "c.c128_not_equal_p", false]], "c128_not_equal_s\uff08c function\uff09": [[138, "c.c128_not_equal_s", false]], "c128_onehot_p\uff08c function\uff09": [[139, "c.c128_onehot_p", false]], "c128_onehot_s\uff08c function\uff09": [[139, "c.c128_onehot_s", false]], "c128_ones_like_p\uff08c function\uff09": [[140, "c.c128_ones_like_p", false]], "c128_ones_like_s\uff08c function\uff09": [[140, "c.c128_ones_like_s", false]], "c128_padfusion_p\uff08c function\uff09": [[141, "c.c128_padfusion_p", false]], "c128_padfusion_s\uff08c function\uff09": [[141, "c.c128_padfusion_s", false]], "c128_real_div_p\uff08c function\uff09": [[152, "c.c128_real_div_p", false]], "c128_real_div_s\uff08c function\uff09": [[152, "c.c128_real_div_s", false]], "c128_reciprocal_p\uff08c function\uff09": [[153, "c.c128_reciprocal_p", false]], "c128_reciprocal_s\uff08c function\uff09": [[153, "c.c128_reciprocal_s", false]], "c128_reduceall_p\uff08c function\uff09": [[21, "c.c128_reduceall_p", false]], "c128_reduceall_s\uff08c function\uff09": [[21, "c.c128_reduceall_s", false]], "c128_reshape_p\uff08c function\uff09": [[156, "c.c128_reshape_p", false]], "c128_reshape_s\uff08c function\uff09": [[156, "c.c128_reshape_s", false]], "c128_rfft_p\uff08c function\uff09": [[161, "c.c128_rfft_p", false]], "c128_rfft_s\uff08c function\uff09": [[161, "c.c128_rfft_s", false]], "c128_rsqrt_p\uff08c function\uff09": [[164, "c.c128_rsqrt_p", false]], "c128_rsqrt_s\uff08c function\uff09": [[164, "c.c128_rsqrt_s", false]], "c128_scatter_elements_p\uff08c function\uff09": [[167, "c.c128_scatter_elements_p", false]], "c128_scatter_elements_s\uff08c function\uff09": [[167, "c.c128_scatter_elements_s", false]], "c128_scatter_nd_p\uff08c function\uff09": [[168, "c.c128_scatter_nd_p", false]], "c128_scatter_nd_s\uff08c function\uff09": [[168, "c.c128_scatter_nd_s", false]], "c128_scatter_nd_update_p\uff08c function\uff09": [[169, "c.c128_scatter_nd_update_p", false]], "c128_scatter_nd_update_s\uff08c function\uff09": [[169, "c.c128_scatter_nd_update_s", false]], "c128_select_p\uff08c function\uff09": [[170, "c.c128_select_p", false]], "c128_select_s\uff08c function\uff09": [[170, "c.c128_select_s", false]], "c128_slice_p\uff08c function\uff09": [[178, "c.c128_slice_p", false]], "c128_slice_s\uff08c function\uff09": [[178, "c.c128_slice_s", false]], "c128_spacetobatch_p\uff08c function\uff09": [[183, "c.c128_spacetobatch_p", false]], "c128_spacetobatch_s\uff08c function\uff09": [[183, "c.c128_spacetobatch_s", false]], "c128_spacetobatchnd_p\uff08c function\uff09": [[184, "c.c128_spacetobatchnd_p", false]], "c128_spacetobatchnd_s\uff08c function\uff09": [[184, "c.c128_spacetobatchnd_s", false]], "c128_spacetodepth_p\uff08c function\uff09": [[185, "c.c128_spacetodepth_p", false]], "c128_spacetodepth_s\uff08c function\uff09": [[185, "c.c128_spacetodepth_s", false]], "c128_sparsefillemptyrows_p\uff08c function\uff09": [[187, "c.c128_sparsefillemptyrows_p", false]], "c128_sparsefillemptyrows_s\uff08c function\uff09": [[187, "c.c128_sparsefillemptyrows_s", false]], "c128_sparsesegmentsum_p\uff08c function\uff09": [[189, "c.c128_sparsesegmentsum_p", false]], "c128_sparsesegmentsum_s\uff08c function\uff09": [[189, "c.c128_sparsesegmentsum_s", false]], "c128_sparsetodense_p\uff08c function\uff09": [[190, "c.c128_sparsetodense_p", false]], "c128_sparsetodense_s\uff08c function\uff09": [[190, "c.c128_sparsetodense_s", false]], "c128_splice_p\uff08c function\uff09": [[191, "c.c128_splice_p", false]], "c128_splice_s\uff08c function\uff09": [[191, "c.c128_splice_s", false]], "c128_split_p\uff08c function\uff09": [[192, "c.c128_split_p", false]], "c128_split_s\uff08c function\uff09": [[192, "c.c128_split_s", false]], "c128_split_with_overlap_p\uff08c function\uff09": [[193, "c.c128_split_with_overlap_p", false]], "c128_split_with_overlap_s\uff08c function\uff09": [[193, "c.c128_split_with_overlap_s", false]], "c128_sqrt_p\uff08c function\uff09": [[194, "c.c128_sqrt_p", false]], "c128_sqrt_s\uff08c function\uff09": [[194, "c.c128_sqrt_s", false]], "c128_sqrtgrad_p\uff08c function\uff09": [[195, "c.c128_sqrtgrad_p", false]], "c128_sqrtgrad_s\uff08c function\uff09": [[195, "c.c128_sqrtgrad_s", false]], "c128_square_p\uff08c function\uff09": [[196, "c.c128_square_p", false]], "c128_square_s\uff08c function\uff09": [[196, "c.c128_square_s", false]], "c128_squaredifference_p\uff08c function\uff09": [[197, "c.c128_squaredifference_p", false]], "c128_squaredifference_s\uff08c function\uff09": [[197, "c.c128_squaredifference_s", false]], "c128_stack_p\uff08c function\uff09": [[199, "c.c128_stack_p", false]], "c128_stack_s\uff08c function\uff09": [[199, "c.c128_stack_s", false]], "c128_subext_p\uff08c function\uff09": [[202, "c.c128_subext_p", false]], "c128_subext_s\uff08c function\uff09": [[202, "c.c128_subext_s", false]], "c128_subrelu6_p\uff08c function\uff09": [[202, "c.c128_subrelu6_p", false]], "c128_subrelu6_s\uff08c function\uff09": [[202, "c.c128_subrelu6_s", false]], "c128_subrelu_p\uff08c function\uff09": [[202, "c.c128_subrelu_p", false]], "c128_subrelu_s\uff08c function\uff09": [[202, "c.c128_subrelu_s", false]], "c128_tensor_scatter_add_p\uff08c function\uff09": [[206, "c.c128_tensor_scatter_add_p", false]], "c128_tensor_scatter_add_s\uff08c function\uff09": [[206, "c.c128_tensor_scatter_add_s", false]], "c128_tensorarrayread_p\uff08c function\uff09": [[208, "c.c128_tensorarrayread_p", false]], "c128_tensorarrayread_s\uff08c function\uff09": [[208, "c.c128_tensorarrayread_s", false]], "c128_tensorlistfromtensor_p\uff08c function\uff09": [[210, "c.c128_tensorlistfromtensor_p", false]], "c128_tensorlistfromtensor_s\uff08c function\uff09": [[210, "c.c128_tensorlistfromtensor_s", false]], "c128_tile_p\uff08c function\uff09": [[215, "c.c128_tile_p", false]], "c128_tile_s\uff08c function\uff09": [[215, "c.c128_tile_s", false]], "c128_transpose_p\uff08c function\uff09": [[217, "c.c128_transpose_p", false]], "c128_transpose_s\uff08c function\uff09": [[217, "c.c128_transpose_s", false]], "c128_tril_p\uff08c function\uff09": [[218, "c.c128_tril_p", false]], "c128_tril_s\uff08c function\uff09": [[218, "c.c128_tril_s", false]], "c128_triu_p\uff08c function\uff09": [[219, "c.c128_triu_p", false]], "c128_triu_s\uff08c function\uff09": [[219, "c.c128_triu_s", false]], "c128_unique_p\uff08c function\uff09": [[221, "c.c128_Unique_p", false]], "c128_unique_s\uff08c function\uff09": [[221, "c.c128_Unique_s", false]], "c128_unsorted_segment_sum_p\uff08c function\uff09": [[222, "c.c128_unsorted_segment_sum_p", false]], "c128_unsorted_segment_sum_s\uff08c function\uff09": [[222, "c.c128_unsorted_segment_sum_s", false]], "c128_where_p\uff08c function\uff09": [[225, "c.c128_where_p", false]], "c128_where_s\uff08c function\uff09": [[225, "c.c128_where_s", false]], "c128_zerolike_p\uff08c function\uff09": [[226, "c.c128_zerolike_p", false]], "c128_zerolike_s\uff08c function\uff09": [[226, "c.c128_zerolike_s", false]], "c64_abs_p\uff08c function\uff09": [[10, "c.c64_abs_p", false]], "c64_abs_s\uff08c function\uff09": [[10, "c.c64_abs_s", false]], "c64_addext_p\uff08c function\uff09": [[17, "c.c64_addext_p", false]], "c64_addext_s\uff08c function\uff09": [[17, "c.c64_addext_s", false]], "c64_addn_p\uff08c function\uff09": [[19, "c.c64_addn_p", false]], "c64_addn_s\uff08c function\uff09": [[19, "c.c64_addn_s", false]], "c64_addrelu6_p\uff08c function\uff09": [[17, "c.c64_addrelu6_p", false]], "c64_addrelu6_s\uff08c function\uff09": [[17, "c.c64_addrelu6_s", false]], "c64_addrelu_p\uff08c function\uff09": [[17, "c.c64_addrelu_p", false]], "c64_addrelu_s\uff08c function\uff09": [[17, "c.c64_addrelu_s", false]], "c64_allgather_p\uff08c function\uff09": [[22, "c.c64_allgather_p", false]], "c64_allgather_s\uff08c function\uff09": [[22, "c.c64_allgather_s", false]], "c64_assign_p\uff08c function\uff09": [[27, "c.c64_assign_p", false]], "c64_assign_s\uff08c function\uff09": [[27, "c.c64_assign_s", false]], "c64_assignadd_p\uff08c function\uff09": [[28, "c.c64_assignadd_p", false]], "c64_assignadd_s\uff08c function\uff09": [[28, "c.c64_assignadd_s", false]], "c64_batchtospace_p\uff08c function\uff09": [[35, "c.c64_batchtospace_p", false]], "c64_batchtospace_s\uff08c function\uff09": [[35, "c.c64_batchtospace_s", false]], "c64_batchtospacend_p\uff08c function\uff09": [[36, "c.c64_batchtospacend_p", false]], "c64_batchtospacend_s\uff08c function\uff09": [[36, "c.c64_batchtospacend_s", false]], "c64_biasadd_p\uff08c function\uff09": [[37, "c.c64_biasadd_p", false]], "c64_biasadd_s\uff08c function\uff09": [[37, "c.c64_biasadd_s", false]], "c64_broadcastto_p\uff08c function\uff09": [[41, "c.c64_broadcastto_p", false]], "c64_broadcastto_s\uff08c function\uff09": [[41, "c.c64_broadcastto_s", false]], "c64_concat_p\uff08c function\uff09": [[45, "c.c64_concat_p", false]], "c64_concat_s\uff08c function\uff09": [[45, "c.c64_concat_s", false]], "c64_constant_of_shape_p\uff08c function\uff09": [[46, "c.c64_constant_of_shape_p", false]], "c64_constant_of_shape_s\uff08c function\uff09": [[46, "c.c64_constant_of_shape_s", false]], "c64_cumsum_p\uff08c function\uff09": [[54, "c.c64_cumsum_p", false]], "c64_cumsum_s\uff08c function\uff09": [[54, "c.c64_cumsum_s", false]], "c64_depthtospace_p\uff08c function\uff09": [[59, "c.c64_depthtospace_p", false]], "c64_depthtospace_s\uff08c function\uff09": [[59, "c.c64_depthtospace_s", false]], "c64_div_fusion_p\uff08c function\uff09": [[61, "c.c64_div_fusion_p", false]], "c64_div_fusion_s\uff08c function\uff09": [[61, "c.c64_div_fusion_s", false]], "c64_eltwise_p\uff08c function\uff09": [[67, "c.c64_eltwise_p", false]], "c64_eltwise_s\uff08c function\uff09": [[67, "c.c64_eltwise_s", false]], "c64_equal_p\uff08c function\uff09": [[70, "c.c64_equal_p", false]], "c64_equal_s\uff08c function\uff09": [[70, "c.c64_equal_s", false]], "c64_expfusion_p\uff08c function\uff09": [[73, "c.c64_expfusion_p", false]], "c64_expfusion_s\uff08c function\uff09": [[73, "c.c64_expfusion_s", false]], "c64_extract_features_p\uff08c function\uff09": [[55, "c.c64_extract_features_p", false]], "c64_extract_features_s\uff08c function\uff09": [[55, "c.c64_extract_features_s", false]], "c64_fill_p\uff08c function\uff09": [[78, "c.c64_fill_p", false]], "c64_fill_s\uff08c function\uff09": [[78, "c.c64_fill_s", false]], "c64_formattranspose_p\uff08c function\uff09": [[85, "c.c64_formattranspose_p", false]], "c64_formattranspose_s\uff08c function\uff09": [[85, "c.c64_formattranspose_s", false]], "c64_gather_nd_p\uff08c function\uff09": [[89, "c.c64_gather_nd_p", false]], "c64_gather_nd_s\uff08c function\uff09": [[89, "c.c64_gather_nd_s", false]], "c64_gather_p\uff08c function\uff09": [[88, "c.c64_gather_p", false]], "c64_gather_s\uff08c function\uff09": [[88, "c.c64_gather_s", false]], "c64_gatherd_p\uff08c function\uff09": [[90, "c.c64_gatherd_p", false]], "c64_gatherd_s\uff08c function\uff09": [[90, "c.c64_gatherd_s", false]], "c64_isfinite_p\uff08c function\uff09": [[99, "c.c64_isfinite_p", false]], "c64_isfinite_s\uff08c function\uff09": [[99, "c.c64_isfinite_s", false]], "c64_matmulfusion_p\uff08c function\uff09": [[121, "c.c64_matmulfusion_p", false]], "c64_matmulfusion_s\uff08c function\uff09": [[121, "c.c64_matmulfusion_s", false]], "c64_mul_p\uff08c function\uff09": [[130, "c.c64_mul_p", false]], "c64_mul_s\uff08c function\uff09": [[130, "c.c64_mul_s", false]], "c64_neg_grad_p\uff08c function\uff09": [[133, "c.c64_neg_grad_p", false]], "c64_neg_grad_s\uff08c function\uff09": [[133, "c.c64_neg_grad_s", false]], "c64_neg_p\uff08c function\uff09": [[132, "c.c64_neg_p", false]], "c64_neg_s\uff08c function\uff09": [[132, "c.c64_neg_s", false]], "c64_nonzero_p\uff08c function\uff09": [[137, "c.c64_nonzero_p", false]], "c64_nonzero_s\uff08c function\uff09": [[137, "c.c64_nonzero_s", false]], "c64_not_equal_p\uff08c function\uff09": [[138, "c.c64_not_equal_p", false]], "c64_not_equal_s\uff08c function\uff09": [[138, "c.c64_not_equal_s", false]], "c64_onehot_p\uff08c function\uff09": [[139, "c.c64_onehot_p", false]], "c64_onehot_s\uff08c function\uff09": [[139, "c.c64_onehot_s", false]], "c64_ones_like_p\uff08c function\uff09": [[140, "c.c64_ones_like_p", false]], "c64_ones_like_s\uff08c function\uff09": [[140, "c.c64_ones_like_s", false]], "c64_padfusion_p\uff08c function\uff09": [[141, "c.c64_padfusion_p", false]], "c64_padfusion_s\uff08c function\uff09": [[141, "c.c64_padfusion_s", false]], "c64_real_div_p\uff08c function\uff09": [[152, "c.c64_real_div_p", false]], "c64_real_div_s\uff08c function\uff09": [[152, "c.c64_real_div_s", false]], "c64_reciprocal_p\uff08c function\uff09": [[153, "c.c64_reciprocal_p", false]], "c64_reciprocal_s\uff08c function\uff09": [[153, "c.c64_reciprocal_s", false]], "c64_reduceall_p\uff08c function\uff09": [[21, "c.c64_reduceall_p", false]], "c64_reduceall_s\uff08c function\uff09": [[21, "c.c64_reduceall_s", false]], "c64_reshape_p\uff08c function\uff09": [[156, "c.c64_reshape_p", false]], "c64_reshape_s\uff08c function\uff09": [[156, "c.c64_reshape_s", false]], "c64_rfft_p\uff08c function\uff09": [[161, "c.c64_rfft_p", false]], "c64_rfft_s\uff08c function\uff09": [[161, "c.c64_rfft_s", false]], "c64_rsqrt_p\uff08c function\uff09": [[164, "c.c64_rsqrt_p", false]], "c64_rsqrt_s\uff08c function\uff09": [[164, "c.c64_rsqrt_s", false]], "c64_scatter_elements_p\uff08c function\uff09": [[167, "c.c64_scatter_elements_p", false]], "c64_scatter_elements_s\uff08c function\uff09": [[167, "c.c64_scatter_elements_s", false]], "c64_scatter_nd_p\uff08c function\uff09": [[168, "c.c64_scatter_nd_p", false]], "c64_scatter_nd_s\uff08c function\uff09": [[168, "c.c64_scatter_nd_s", false]], "c64_scatter_nd_update_p\uff08c function\uff09": [[169, "c.c64_scatter_nd_update_p", false]], "c64_scatter_nd_update_s\uff08c function\uff09": [[169, "c.c64_scatter_nd_update_s", false]], "c64_select_p\uff08c function\uff09": [[170, "c.c64_select_p", false]], "c64_select_s\uff08c function\uff09": [[170, "c.c64_select_s", false]], "c64_slice_p\uff08c function\uff09": [[178, "c.c64_slice_p", false]], "c64_slice_s\uff08c function\uff09": [[178, "c.c64_slice_s", false]], "c64_spacetobatch_p\uff08c function\uff09": [[183, "c.c64_spacetobatch_p", false]], "c64_spacetobatch_s\uff08c function\uff09": [[183, "c.c64_spacetobatch_s", false]], "c64_spacetobatchnd_p\uff08c function\uff09": [[184, "c.c64_spacetobatchnd_p", false]], "c64_spacetobatchnd_s\uff08c function\uff09": [[184, "c.c64_spacetobatchnd_s", false]], "c64_spacetodepth_p\uff08c function\uff09": [[185, "c.c64_spacetodepth_p", false]], "c64_spacetodepth_s\uff08c function\uff09": [[185, "c.c64_spacetodepth_s", false]], "c64_sparsefillemptyrows_p\uff08c function\uff09": [[187, "c.c64_sparsefillemptyrows_p", false]], "c64_sparsefillemptyrows_s\uff08c function\uff09": [[187, "c.c64_sparsefillemptyrows_s", false]], "c64_sparsesegmentsum_p\uff08c function\uff09": [[189, "c.c64_sparsesegmentsum_p", false]], "c64_sparsesegmentsum_s\uff08c function\uff09": [[189, "c.c64_sparsesegmentsum_s", false]], "c64_sparsetodense_p\uff08c function\uff09": [[190, "c.c64_sparsetodense_p", false]], "c64_sparsetodense_s\uff08c function\uff09": [[190, "c.c64_sparsetodense_s", false]], "c64_splice_p\uff08c function\uff09": [[191, "c.c64_splice_p", false]], "c64_splice_s\uff08c function\uff09": [[191, "c.c64_splice_s", false]], "c64_split_p\uff08c function\uff09": [[192, "c.c64_split_p", false]], "c64_split_s\uff08c function\uff09": [[192, "c.c64_split_s", false]], "c64_split_with_overlap_p\uff08c function\uff09": [[193, "c.c64_split_with_overlap_p", false]], "c64_split_with_overlap_s\uff08c function\uff09": [[193, "c.c64_split_with_overlap_s", false]], "c64_sqrt_p\uff08c function\uff09": [[194, "c.c64_sqrt_p", false]], "c64_sqrt_s\uff08c function\uff09": [[194, "c.c64_sqrt_s", false]], "c64_sqrtgrad_p\uff08c function\uff09": [[195, "c.c64_sqrtgrad_p", false]], "c64_sqrtgrad_s\uff08c function\uff09": [[195, "c.c64_sqrtgrad_s", false]], "c64_square_p\uff08c function\uff09": [[196, "c.c64_square_p", false]], "c64_square_s\uff08c function\uff09": [[196, "c.c64_square_s", false]], "c64_squaredifference_p\uff08c function\uff09": [[197, "c.c64_squaredifference_p", false]], "c64_squaredifference_s\uff08c function\uff09": [[197, "c.c64_squaredifference_s", false]], "c64_stack_p\uff08c function\uff09": [[199, "c.c64_stack_p", false]], "c64_stack_s\uff08c function\uff09": [[199, "c.c64_stack_s", false]], "c64_subext_p\uff08c function\uff09": [[202, "c.c64_subext_p", false]], "c64_subext_s\uff08c function\uff09": [[202, "c.c64_subext_s", false]], "c64_subrelu6_p\uff08c function\uff09": [[202, "c.c64_subrelu6_p", false]], "c64_subrelu6_s\uff08c function\uff09": [[202, "c.c64_subrelu6_s", false]], "c64_subrelu_p\uff08c function\uff09": [[202, "c.c64_subrelu_p", false]], "c64_subrelu_s\uff08c function\uff09": [[202, "c.c64_subrelu_s", false]], "c64_tensor_scatter_add_p\uff08c function\uff09": [[206, "c.c64_tensor_scatter_add_p", false]], "c64_tensor_scatter_add_s\uff08c function\uff09": [[206, "c.c64_tensor_scatter_add_s", false]], "c64_tensorarrayread_p\uff08c function\uff09": [[208, "c.c64_tensorarrayread_p", false]], "c64_tensorarrayread_s\uff08c function\uff09": [[208, "c.c64_tensorarrayread_s", false]], "c64_tensorlistfromtensor_p\uff08c function\uff09": [[210, "c.c64_tensorlistfromtensor_p", false]], "c64_tensorlistfromtensor_s\uff08c function\uff09": [[210, "c.c64_tensorlistfromtensor_s", false]], "c64_tile_p\uff08c function\uff09": [[215, "c.c64_tile_p", false]], "c64_tile_s\uff08c function\uff09": [[215, "c.c64_tile_s", false]], "c64_transpose_p\uff08c function\uff09": [[217, "c.c64_transpose_p", false]], "c64_transpose_s\uff08c function\uff09": [[217, "c.c64_transpose_s", false]], "c64_tril_p\uff08c function\uff09": [[218, "c.c64_tril_p", false]], "c64_tril_s\uff08c function\uff09": [[218, "c.c64_tril_s", false]], "c64_triu_p\uff08c function\uff09": [[219, "c.c64_triu_p", false]], "c64_triu_s\uff08c function\uff09": [[219, "c.c64_triu_s", false]], "c64_unique_p\uff08c function\uff09": [[221, "c.c64_Unique_p", false]], "c64_unique_s\uff08c function\uff09": [[221, "c.c64_Unique_s", false]], "c64_unsorted_segment_sum_p\uff08c function\uff09": [[222, "c.c64_unsorted_segment_sum_p", false]], "c64_unsorted_segment_sum_s\uff08c function\uff09": [[222, "c.c64_unsorted_segment_sum_s", false]], "c64_where_p\uff08c function\uff09": [[225, "c.c64_where_p", false]], "c64_where_s\uff08c function\uff09": [[225, "c.c64_where_s", false]], "c64_zerolike_p\uff08c function\uff09": [[226, "c.c64_zerolike_p", false]], "c64_zerolike_s\uff08c function\uff09": [[226, "c.c64_zerolike_s", false]], "castc128toc128_p\uff08c function\uff09": [[42, "c.castc128Toc128_p", false]], "castc128toc128_s\uff08c function\uff09": [[42, "c.castc128Toc128_s", false]], "castc64toc64_p\uff08c function\uff09": [[42, "c.castc64Toc64_p", false]], "castc64toc64_s\uff08c function\uff09": [[42, "c.castc64Toc64_s", false]], "castdptodp_p\uff08c function\uff09": [[42, "c.castdpTodp_p", false]], "castdptodp_s\uff08c function\uff09": [[42, "c.castdpTodp_s", false]], "castdptofp_p\uff08c function\uff09": [[42, "c.castdpTofp_p", false]], "castdptofp_s\uff08c function\uff09": [[42, "c.castdpTofp_s", false]], "castfptofp_p\uff08c function\uff09": [[42, "c.castfpTofp_p", false]], "castfptofp_s\uff08c function\uff09": [[42, "c.castfpTofp_s", false]], "castfptoint16_p\uff08c function\uff09": [[42, "c.castfpToint16_p", false]], "castfptoint16_s\uff08c function\uff09": [[42, "c.castfpToint16_s", false]], "castfptoint32_p\uff08c function\uff09": [[42, "c.castfpToint32_p", false]], "castfptoint32_s\uff08c function\uff09": [[42, "c.castfpToint32_s", false]], "castfptoint8_p\uff08c function\uff09": [[42, "c.castfpToint8_p", false]], "castfptoint8_s\uff08c function\uff09": [[42, "c.castfpToint8_s", false]], "casti16tofp_p\uff08c function\uff09": [[42, "c.casti16Tofp_p", false]], "casti16tofp_s\uff08c function\uff09": [[42, "c.casti16Tofp_s", false]], "casti16tointi16_p\uff08c function\uff09": [[42, "c.casti16Tointi16_p", false]], "casti16tointi16_s\uff08c function\uff09": [[42, "c.casti16Tointi16_s", false]], "casti16tointi32_p\uff08c function\uff09": [[42, "c.casti16Tointi32_p", false]], "casti16tointi32_s\uff08c function\uff09": [[42, "c.casti16Tointi32_s", false]], "casti16tointi8_p\uff08c function\uff09": [[42, "c.casti16Tointi8_p", false]], "casti16tointi8_s\uff08c function\uff09": [[42, "c.casti16Tointi8_s", false]], "casti32tofp_p\uff08c function\uff09": [[42, "c.casti32Tofp_p", false]], "casti32tofp_s\uff08c function\uff09": [[42, "c.casti32Tofp_s", false]], "casti32tointi16_p\uff08c function\uff09": [[42, "c.casti32Tointi16_p", false]], "casti32tointi16_s\uff08c function\uff09": [[42, "c.casti32Tointi16_s", false]], "casti32tointi32_p\uff08c function\uff09": [[42, "c.casti32Tointi32_p", false]], "casti32tointi32_s\uff08c function\uff09": [[42, "c.casti32Tointi32_s", false]], "casti32tointi8_p\uff08c function\uff09": [[42, "c.casti32Tointi8_p", false]], "casti32tointi8_s\uff08c function\uff09": [[42, "c.casti32Tointi8_s", false]], "casti8tofp_p\uff08c function\uff09": [[42, "c.casti8Tofp_p", false]], "casti8tofp_s\uff08c function\uff09": [[42, "c.casti8Tofp_s", false]], "casti8tointi16_p\uff08c function\uff09": [[42, "c.casti8Tointi16_p", false]], "casti8tointi16_s\uff08c function\uff09": [[42, "c.casti8Tointi16_s", false]], "casti8tointi32_p\uff08c function\uff09": [[42, "c.casti8Tointi32_p", false]], "casti8tointi32_s\uff08c function\uff09": [[42, "c.casti8Tointi32_s", false]], "casti8tointi8_p\uff08c function\uff09": [[42, "c.casti8Tointi8_p", false]], "casti8tointi8_s\uff08c function\uff09": [[42, "c.casti8Tointi8_s", false]], "customnormalize_p\uff08c function\uff09": [[56, "c.customnormalize_p", false]], "customnormalize_s\uff08c function\uff09": [[56, "c.customnormalize_s", false]], "custompredict_p\uff08c function\uff09": [[57, "c.custompredict_p", false]], "custompredict_s\uff08c function\uff09": [[57, "c.custompredict_s", false]], "dp_abs_p\uff08c function\uff09": [[10, "c.dp_abs_p", false]], "dp_abs_s\uff08c function\uff09": [[10, "c.dp_abs_s", false]], "dp_addext_p\uff08c function\uff09": [[17, "c.dp_addext_p", false]], "dp_addext_s\uff08c function\uff09": [[17, "c.dp_addext_s", false]], "dp_addn_p\uff08c function\uff09": [[19, "c.dp_addn_p", false]], "dp_addn_s\uff08c function\uff09": [[19, "c.dp_addn_s", false]], "dp_addrelu6_p\uff08c function\uff09": [[17, "c.dp_addrelu6_p", false]], "dp_addrelu6_s\uff08c function\uff09": [[17, "c.dp_addrelu6_s", false]], "dp_addrelu_p\uff08c function\uff09": [[17, "c.dp_addrelu_p", false]], "dp_addrelu_s\uff08c function\uff09": [[17, "c.dp_addrelu_s", false]], "dp_allgather_p\uff08c function\uff09": [[22, "c.dp_allgather_p", false]], "dp_allgather_s\uff08c function\uff09": [[22, "c.dp_allgather_s", false]], "dp_and_p\uff08c function\uff09": [[112, "c.dp_and_p", false]], "dp_and_s\uff08c function\uff09": [[112, "c.dp_and_s", false]], "dp_assign_p\uff08c function\uff09": [[27, "c.dp_assign_p", false]], "dp_assign_s\uff08c function\uff09": [[27, "c.dp_assign_s", false]], "dp_assignadd_p\uff08c function\uff09": [[28, "c.dp_assignadd_p", false]], "dp_assignadd_s\uff08c function\uff09": [[28, "c.dp_assignadd_s", false]], "dp_batchtospace_p\uff08c function\uff09": [[35, "c.dp_batchtospace_p", false]], "dp_batchtospace_s\uff08c function\uff09": [[35, "c.dp_batchtospace_s", false]], "dp_batchtospacend_p\uff08c function\uff09": [[36, "c.dp_batchtospacend_p", false]], "dp_batchtospacend_s\uff08c function\uff09": [[36, "c.dp_batchtospacend_s", false]], "dp_biasadd_p\uff08c function\uff09": [[37, "c.dp_biasadd_p", false]], "dp_biasadd_s\uff08c function\uff09": [[37, "c.dp_biasadd_s", false]], "dp_broadcastto_p\uff08c function\uff09": [[41, "c.dp_broadcastto_p", false]], "dp_broadcastto_s\uff08c function\uff09": [[41, "c.dp_broadcastto_s", false]], "dp_ceil_p\uff08c function\uff09": [[43, "c.dp_ceil_p", false]], "dp_ceil_s\uff08c function\uff09": [[43, "c.dp_ceil_s", false]], "dp_clip_p\uff08c function\uff09": [[44, "c.dp_clip_p", false]], "dp_clip_s\uff08c function\uff09": [[44, "c.dp_clip_s", false]], "dp_concat_p\uff08c function\uff09": [[45, "c.dp_concat_p", false]], "dp_concat_s\uff08c function\uff09": [[45, "c.dp_concat_s", false]], "dp_constant_of_shape_p\uff08c function\uff09": [[46, "c.dp_constant_of_shape_p", false]], "dp_constant_of_shape_s\uff08c function\uff09": [[46, "c.dp_constant_of_shape_s", false]], "dp_cos_p\uff08c function\uff09": [[51, "c.dp_cos_p", false]], "dp_cos_s\uff08c function\uff09": [[51, "c.dp_cos_s", false]], "dp_cumsum_p\uff08c function\uff09": [[54, "c.dp_cumsum_p", false]], "dp_cumsum_s\uff08c function\uff09": [[54, "c.dp_cumsum_s", false]], "dp_depthtospace_p\uff08c function\uff09": [[59, "c.dp_depthtospace_p", false]], "dp_depthtospace_s\uff08c function\uff09": [[59, "c.dp_depthtospace_s", false]], "dp_div_fusion_p\uff08c function\uff09": [[61, "c.dp_div_fusion_p", false]], "dp_div_fusion_s\uff08c function\uff09": [[61, "c.dp_div_fusion_s", false]], "dp_eltwise_p\uff08c function\uff09": [[67, "c.dp_eltwise_p", false]], "dp_eltwise_s\uff08c function\uff09": [[67, "c.dp_eltwise_s", false]], "dp_equal_p\uff08c function\uff09": [[70, "c.dp_equal_p", false]], "dp_equal_s\uff08c function\uff09": [[70, "c.dp_equal_s", false]], "dp_erf_p\uff08c function\uff09": [[71, "c.dp_erf_p", false]], "dp_erf_s\uff08c function\uff09": [[71, "c.dp_erf_s", false]], "dp_expfusion_p\uff08c function\uff09": [[73, "c.dp_expfusion_p", false]], "dp_expfusion_s\uff08c function\uff09": [[73, "c.dp_expfusion_s", false]], "dp_extract_features_p\uff08c function\uff09": [[55, "c.dp_extract_features_p", false]], "dp_extract_features_s\uff08c function\uff09": [[55, "c.dp_extract_features_s", false]], "dp_fill_p\uff08c function\uff09": [[78, "c.dp_fill_p", false]], "dp_fill_s\uff08c function\uff09": [[78, "c.dp_fill_s", false]], "dp_floor_p\uff08c function\uff09": [[82, "c.dp_floor_p", false]], "dp_floor_s\uff08c function\uff09": [[82, "c.dp_floor_s", false]], "dp_floordiv_p\uff08c function\uff09": [[83, "c.dp_floordiv_p", false]], "dp_floordiv_s\uff08c function\uff09": [[83, "c.dp_floordiv_s", false]], "dp_floormod_p\uff08c function\uff09": [[84, "c.dp_floormod_p", false]], "dp_floormod_s\uff08c function\uff09": [[84, "c.dp_floormod_s", false]], "dp_formattranspose_p\uff08c function\uff09": [[85, "c.dp_formattranspose_p", false]], "dp_formattranspose_s\uff08c function\uff09": [[85, "c.dp_formattranspose_s", false]], "dp_gather_nd_p\uff08c function\uff09": [[89, "c.dp_gather_nd_p", false]], "dp_gather_nd_s\uff08c function\uff09": [[89, "c.dp_gather_nd_s", false]], "dp_gather_p\uff08c function\uff09": [[88, "c.dp_gather_p", false]], "dp_gather_s\uff08c function\uff09": [[88, "c.dp_gather_s", false]], "dp_gatherd_p\uff08c function\uff09": [[90, "c.dp_gatherd_p", false]], "dp_gatherd_s\uff08c function\uff09": [[90, "c.dp_gatherd_s", false]], "dp_greater_s\uff08c function\uff09": [[92, "c.dp_greater_s", false]], "dp_greaterequal_s\uff08c function\uff09": [[93, "c.dp_greaterequal_s", false]], "dp_isfinite_p\uff08c function\uff09": [[99, "c.dp_isfinite_p", false]], "dp_isfinite_s\uff08c function\uff09": [[99, "c.dp_isfinite_s", false]], "dp_less_p\uff08c function\uff09": [[104, "c.dp_less_p", false]], "dp_less_s\uff08c function\uff09": [[104, "c.dp_less_s", false]], "dp_lessequal_p\uff08c function\uff09": [[105, "c.dp_lessequal_p", false]], "dp_lessequal_s\uff08c function\uff09": [[105, "c.dp_lessequal_s", false]], "dp_log1p_p\uff08c function\uff09": [[108, "c.dp_log1p_p", false]], "dp_log1p_s\uff08c function\uff09": [[108, "c.dp_log1p_s", false]], "dp_logical_not_p\uff08c function\uff09": [[110, "c.dp_logical_not_p", false]], "dp_logical_not_s\uff08c function\uff09": [[110, "c.dp_logical_not_s", false]], "dp_logical_or_p\uff08c function\uff09": [[111, "c.dp_logical_or_p", false]], "dp_logical_or_s\uff08c function\uff09": [[111, "c.dp_logical_or_s", false]], "dp_lsh_projection_p\uff08c function\uff09": [[116, "c.dp_lsh_projection_p", false]], "dp_lsh_projection_s\uff08c function\uff09": [[116, "c.dp_lsh_projection_s", false]], "dp_matmulfusion_p\uff08c function\uff09": [[121, "c.dp_matmulfusion_p", false]], "dp_matmulfusion_s\uff08c function\uff09": [[121, "c.dp_matmulfusion_s", false]], "dp_maximum_p\uff08c function\uff09": [[122, "c.dp_maximum_p", false]], "dp_maximum_s\uff08c function\uff09": [[122, "c.dp_maximum_s", false]], "dp_maxpool_fusion_p\uff08c function\uff09": [[124, "c.dp_maxpool_fusion_p", false]], "dp_maxpool_fusion_s\uff08c function\uff09": [[124, "c.dp_maxpool_fusion_s", false]], "dp_maxpool_grad_p\uff08c function\uff09": [[125, "c.dp_maxpool_grad_p", false]], "dp_maxpool_grad_s\uff08c function\uff09": [[125, "c.dp_maxpool_grad_s", false]], "dp_minimum_p\uff08c function\uff09": [[127, "c.dp_minimum_p", false]], "dp_minimum_s\uff08c function\uff09": [[127, "c.dp_minimum_s", false]], "dp_mod_p\uff08c function\uff09": [[129, "c.dp_mod_p", false]], "dp_mod_s\uff08c function\uff09": [[129, "c.dp_mod_s", false]], "dp_mul_p\uff08c function\uff09": [[130, "c.dp_mul_p", false]], "dp_mul_s\uff08c function\uff09": [[130, "c.dp_mul_s", false]], "dp_neg_grad_p\uff08c function\uff09": [[133, "c.dp_neg_grad_p", false]], "dp_neg_grad_s\uff08c function\uff09": [[133, "c.dp_neg_grad_s", false]], "dp_neg_p\uff08c function\uff09": [[132, "c.dp_neg_p", false]], "dp_neg_s\uff08c function\uff09": [[132, "c.dp_neg_s", false]], "dp_nonzero_p\uff08c function\uff09": [[137, "c.dp_nonzero_p", false]], "dp_nonzero_s\uff08c function\uff09": [[137, "c.dp_nonzero_s", false]], "dp_not_equal_p\uff08c function\uff09": [[138, "c.dp_not_equal_p", false]], "dp_not_equal_s\uff08c function\uff09": [[138, "c.dp_not_equal_s", false]], "dp_onehot_p\uff08c function\uff09": [[139, "c.dp_onehot_p", false]], "dp_onehot_s\uff08c function\uff09": [[139, "c.dp_onehot_s", false]], "dp_ones_like_p\uff08c function\uff09": [[140, "c.dp_ones_like_p", false]], "dp_ones_like_s\uff08c function\uff09": [[140, "c.dp_ones_like_s", false]], "dp_padfusion_p\uff08c function\uff09": [[141, "c.dp_padfusion_p", false]], "dp_padfusion_s\uff08c function\uff09": [[141, "c.dp_padfusion_s", false]], "dp_pow_fusion_p\uff08c function\uff09": [[142, "c.dp_pow_fusion_p", false]], "dp_pow_fusion_s\uff08c function\uff09": [[142, "c.dp_pow_fusion_s", false]], "dp_raggedrange_p\uff08c function\uff09": [[147, "c.dp_raggedrange_p", false]], "dp_raggedrange_s\uff08c function\uff09": [[147, "c.dp_raggedrange_s", false]], "dp_range_p\uff08c function\uff09": [[150, "c.dp_range_p", false]], "dp_range_s\uff08c function\uff09": [[150, "c.dp_range_s", false]], "dp_real_div_p\uff08c function\uff09": [[152, "c.dp_real_div_p", false]], "dp_real_div_s\uff08c function\uff09": [[152, "c.dp_real_div_s", false]], "dp_reciprocal_p\uff08c function\uff09": [[153, "c.dp_reciprocal_p", false]], "dp_reciprocal_s\uff08c function\uff09": [[153, "c.dp_reciprocal_s", false]], "dp_reduce_p\uff08c function\uff09": [[154, "c.dp_reduce_p", false]], "dp_reduce_s\uff08c function\uff09": [[154, "c.dp_reduce_s", false]], "dp_reduceall_p\uff08c function\uff09": [[21, "c.dp_reduceall_p", false]], "dp_reduceall_s\uff08c function\uff09": [[21, "c.dp_reduceall_s", false]], "dp_reducescatter_p\uff08c function\uff09": [[155, "c.dp_reducescatter_p", false]], "dp_reducescatter_s\uff08c function\uff09": [[155, "c.dp_reducescatter_s", false]], "dp_reshape_p\uff08c function\uff09": [[156, "c.dp_reshape_p", false]], "dp_reshape_s\uff08c function\uff09": [[156, "c.dp_reshape_s", false]], "dp_round_p\uff08c function\uff09": [[163, "c.dp_round_p", false]], "dp_round_s\uff08c function\uff09": [[163, "c.dp_round_s", false]], "dp_rsqrt_p\uff08c function\uff09": [[164, "c.dp_rsqrt_p", false]], "dp_rsqrt_s\uff08c function\uff09": [[164, "c.dp_rsqrt_s", false]], "dp_scalefusion_p\uff08c function\uff09": [[166, "c.dp_scalefusion_p", false]], "dp_scalefusion_s\uff08c function\uff09": [[166, "c.dp_scalefusion_s", false]], "dp_scatter_elements_p\uff08c function\uff09": [[167, "c.dp_scatter_elements_p", false]], "dp_scatter_elements_s\uff08c function\uff09": [[167, "c.dp_scatter_elements_s", false]], "dp_scatter_nd_p\uff08c function\uff09": [[168, "c.dp_scatter_nd_p", false]], "dp_scatter_nd_s\uff08c function\uff09": [[168, "c.dp_scatter_nd_s", false]], "dp_scatter_nd_update_p\uff08c function\uff09": [[169, "c.dp_scatter_nd_update_p", false]], "dp_scatter_nd_update_s\uff08c function\uff09": [[169, "c.dp_scatter_nd_update_s", false]], "dp_select_p\uff08c function\uff09": [[170, "c.dp_select_p", false]], "dp_select_s\uff08c function\uff09": [[170, "c.dp_select_s", false]], "dp_sin_p\uff08c function\uff09": [[175, "c.dp_sin_p", false]], "dp_sin_s\uff08c function\uff09": [[175, "c.dp_sin_s", false]], "dp_slice_p\uff08c function\uff09": [[178, "c.dp_slice_p", false]], "dp_slice_s\uff08c function\uff09": [[178, "c.dp_slice_s", false]], "dp_spacetobatch_p\uff08c function\uff09": [[183, "c.dp_spacetobatch_p", false]], "dp_spacetobatch_s\uff08c function\uff09": [[183, "c.dp_spacetobatch_s", false]], "dp_spacetobatchnd_p\uff08c function\uff09": [[184, "c.dp_spacetobatchnd_p", false]], "dp_spacetobatchnd_s\uff08c function\uff09": [[184, "c.dp_spacetobatchnd_s", false]], "dp_spacetodepth_p\uff08c function\uff09": [[185, "c.dp_spacetodepth_p", false]], "dp_spacetodepth_s\uff08c function\uff09": [[185, "c.dp_spacetodepth_s", false]], "dp_sparsefillemptyrows_p\uff08c function\uff09": [[187, "c.dp_sparsefillemptyrows_p", false]], "dp_sparsefillemptyrows_s\uff08c function\uff09": [[187, "c.dp_sparsefillemptyrows_s", false]], "dp_sparsesegmentsum_p\uff08c function\uff09": [[189, "c.dp_sparsesegmentsum_p", false]], "dp_sparsesegmentsum_s\uff08c function\uff09": [[189, "c.dp_sparsesegmentsum_s", false]], "dp_sparsetodense_p\uff08c function\uff09": [[190, "c.dp_sparsetodense_p", false]], "dp_sparsetodense_s\uff08c function\uff09": [[190, "c.dp_sparsetodense_s", false]], "dp_splice_p\uff08c function\uff09": [[191, "c.dp_splice_p", false]], "dp_splice_s\uff08c function\uff09": [[191, "c.dp_splice_s", false]], "dp_split_p\uff08c function\uff09": [[192, "c.dp_split_p", false]], "dp_split_s\uff08c function\uff09": [[192, "c.dp_split_s", false]], "dp_split_with_overlap_p\uff08c function\uff09": [[193, "c.dp_split_with_overlap_p", false]], "dp_split_with_overlap_s\uff08c function\uff09": [[193, "c.dp_split_with_overlap_s", false]], "dp_sqrt_p\uff08c function\uff09": [[194, "c.dp_sqrt_p", false]], "dp_sqrt_s\uff08c function\uff09": [[194, "c.dp_sqrt_s", false]], "dp_sqrtgrad_p\uff08c function\uff09": [[195, "c.dp_sqrtgrad_p", false]], "dp_sqrtgrad_s\uff08c function\uff09": [[195, "c.dp_sqrtgrad_s", false]], "dp_square_p\uff08c function\uff09": [[196, "c.dp_square_p", false]], "dp_square_s\uff08c function\uff09": [[196, "c.dp_square_s", false]], "dp_squaredifference_p\uff08c function\uff09": [[197, "c.dp_squaredifference_p", false]], "dp_squaredifference_s\uff08c function\uff09": [[197, "c.dp_squaredifference_s", false]], "dp_stack_p\uff08c function\uff09": [[199, "c.dp_stack_p", false]], "dp_stack_s\uff08c function\uff09": [[199, "c.dp_stack_s", false]], "dp_subext_p\uff08c function\uff09": [[202, "c.dp_subext_p", false]], "dp_subext_s\uff08c function\uff09": [[202, "c.dp_subext_s", false]], "dp_subrelu6_p\uff08c function\uff09": [[202, "c.dp_subrelu6_p", false]], "dp_subrelu6_s\uff08c function\uff09": [[202, "c.dp_subrelu6_s", false]], "dp_subrelu_p\uff08c function\uff09": [[202, "c.dp_subrelu_p", false]], "dp_subrelu_s\uff08c function\uff09": [[202, "c.dp_subrelu_s", false]], "dp_tensor_scatter_add_p\uff08c function\uff09": [[206, "c.dp_tensor_scatter_add_p", false]], "dp_tensor_scatter_add_s\uff08c function\uff09": [[206, "c.dp_tensor_scatter_add_s", false]], "dp_tensorarrayread_p\uff08c function\uff09": [[208, "c.dp_tensorarrayread_p", false]], "dp_tensorarrayread_s\uff08c function\uff09": [[208, "c.dp_tensorarrayread_s", false]], "dp_tensorlistfromtensor_p\uff08c function\uff09": [[210, "c.dp_tensorlistfromtensor_p", false]], "dp_tensorlistfromtensor_s\uff08c function\uff09": [[210, "c.dp_tensorlistfromtensor_s", false]], "dp_tile_p\uff08c function\uff09": [[215, "c.dp_tile_p", false]], "dp_tile_s\uff08c function\uff09": [[215, "c.dp_tile_s", false]], "dp_transpose_p\uff08c function\uff09": [[217, "c.dp_transpose_p", false]], "dp_transpose_s\uff08c function\uff09": [[217, "c.dp_transpose_s", false]], "dp_tril_p\uff08c function\uff09": [[218, "c.dp_tril_p", false]], "dp_tril_s\uff08c function\uff09": [[218, "c.dp_tril_s", false]], "dp_triu_p\uff08c function\uff09": [[219, "c.dp_triu_p", false]], "dp_triu_s\uff08c function\uff09": [[219, "c.dp_triu_s", false]], "dp_unique_p\uff08c function\uff09": [[221, "c.dp_Unique_p", false]], "dp_unique_s\uff08c function\uff09": [[221, "c.dp_Unique_s", false]], "dp_unsorted_segment_sum_p\uff08c function\uff09": [[222, "c.dp_unsorted_segment_sum_p", false]], "dp_unsorted_segment_sum_s\uff08c function\uff09": [[222, "c.dp_unsorted_segment_sum_s", false]], "dp_where_p\uff08c function\uff09": [[225, "c.dp_where_p", false]], "dp_where_s\uff08c function\uff09": [[225, "c.dp_where_s", false]], "dp_zerolike_p\uff08c function\uff09": [[226, "c.dp_zerolike_p", false]], "dp_zerolike_s\uff08c function\uff09": [[226, "c.dp_zerolike_s", false]], "flatten\uff08c function\uff09": [[80, "c.Flatten", false]], "fp_abs_p\uff08c function\uff09": [[10, "c.fp_abs_p", false]], "fp_abs_s\uff08c function\uff09": [[10, "c.fp_abs_s", false]], "fp_absgrad_p\uff08c function\uff09": [[11, "c.fp_absgrad_p", false]], "fp_absgrad_s\uff08c function\uff09": [[11, "c.fp_absgrad_s", false]], "fp_adam_p\uff08c function\uff09": [[14, "c.fp_adam_p", false]], "fp_adam_s\uff08c function\uff09": [[14, "c.fp_adam_s", false]], "fp_adamweightdecay_p\uff08c function\uff09": [[15, "c.fp_adamweightdecay_p", false]], "fp_adamweightdecay_s\uff08c function\uff09": [[15, "c.fp_adamweightdecay_s", false]], "fp_adder_p\uff08c function\uff09": [[16, "c.fp_adder_p", false]], "fp_adder_s\uff08c function\uff09": [[16, "c.fp_adder_s", false]], "fp_addext_p\uff08c function\uff09": [[17, "c.fp_addext_p", false]], "fp_addext_s\uff08c function\uff09": [[17, "c.fp_addext_s", false]], "fp_addgrad_p\uff08c function\uff09": [[18, "c.fp_addgrad_p", false]], "fp_addgrad_s\uff08c function\uff09": [[18, "c.fp_addgrad_s", false]], "fp_addn_p\uff08c function\uff09": [[19, "c.fp_addn_p", false]], "fp_addn_s\uff08c function\uff09": [[19, "c.fp_addn_s", false]], "fp_addrelu6_p\uff08c function\uff09": [[17, "c.fp_addrelu6_p", false]], "fp_addrelu6_s\uff08c function\uff09": [[17, "c.fp_addrelu6_s", false]], "fp_addrelu_p\uff08c function\uff09": [[17, "c.fp_addrelu_p", false]], "fp_addrelu_s\uff08c function\uff09": [[17, "c.fp_addrelu_s", false]], "fp_affine_p\uff08c function\uff09": [[20, "c.fp_affine_p", false]], "fp_affine_s\uff08c function\uff09": [[20, "c.fp_affine_s", false]], "fp_allgather_p\uff08c function\uff09": [[22, "c.fp_allgather_p", false]], "fp_allgather_s\uff08c function\uff09": [[22, "c.fp_allgather_s", false]], "fp_and_p\uff08c function\uff09": [[112, "c.fp_and_p", false]], "fp_and_s\uff08c function\uff09": [[112, "c.fp_and_s", false]], "fp_applymomentum_p\uff08c function\uff09": [[23, "c.fp_applymomentum_p", false]], "fp_applymomentum_s\uff08c function\uff09": [[23, "c.fp_applymomentum_s", false]], "fp_argmax_p\uff08c function\uff09": [[24, "c.fp_argmax_p", false]], "fp_argmax_s\uff08c function\uff09": [[24, "c.fp_argmax_s", false]], "fp_argmin_p\uff08c function\uff09": [[25, "c.fp_argmin_p", false]], "fp_argmin_s\uff08c function\uff09": [[25, "c.fp_argmin_s", false]], "fp_assign_p\uff08c function\uff09": [[27, "c.fp_assign_p", false]], "fp_assign_s\uff08c function\uff09": [[27, "c.fp_assign_s", false]], "fp_assignadd_p\uff08c function\uff09": [[28, "c.fp_assignadd_p", false]], "fp_assignadd_s\uff08c function\uff09": [[28, "c.fp_assignadd_s", false]], "fp_attention_p\uff08c function\uff09": [[29, "c.fp_attention_p", false]], "fp_attention_s\uff08c function\uff09": [[29, "c.fp_attention_s", false]], "fp_audio_spectrogram_p\uff08c function\uff09": [[30, "c.fp_audio_spectrogram_p", false]], "fp_audio_spectrogram_s\uff08c function\uff09": [[30, "c.fp_audio_spectrogram_s", false]], "fp_avgpool_fusion_p\uff08c function\uff09": [[31, "c.fp_avgpool_fusion_p", false]], "fp_avgpool_fusion_s\uff08c function\uff09": [[31, "c.fp_avgpool_fusion_s", false]], "fp_avgpoolinggrad_p\uff08c function\uff09": [[32, "c.fp_avgpoolinggrad_p", false]], "fp_avgpoolinggrad_s\uff08c function\uff09": [[32, "c.fp_avgpoolinggrad_s", false]], "fp_batchnorm_p\uff08c function\uff09": [[33, "c.fp_batchnorm_p", false]], "fp_batchnorm_s\uff08c function\uff09": [[33, "c.fp_batchnorm_s", false]], "fp_batchnormgrad_p\uff08c function\uff09": [[34, "c.fp_batchnormgrad_p", false]], "fp_batchnormgrad_s\uff08c function\uff09": [[34, "c.fp_batchnormgrad_s", false]], "fp_batchtospace_p\uff08c function\uff09": [[35, "c.fp_batchtospace_p", false]], "fp_batchtospace_s\uff08c function\uff09": [[35, "c.fp_batchtospace_s", false]], "fp_batchtospacend_p\uff08c function\uff09": [[36, "c.fp_batchtospacend_p", false]], "fp_batchtospacend_s\uff08c function\uff09": [[36, "c.fp_batchtospacend_s", false]], "fp_biasadd_p\uff08c function\uff09": [[37, "c.fp_biasadd_p", false]], "fp_biasadd_s\uff08c function\uff09": [[37, "c.fp_biasadd_s", false]], "fp_biasaddgrad_p\uff08c function\uff09": [[38, "c.fp_biasaddgrad_p", false]], "fp_biasaddgrad_s\uff08c function\uff09": [[38, "c.fp_biasaddgrad_s", false]], "fp_binarycrossentropy_p\uff08c function\uff09": [[39, "c.fp_binarycrossentropy_p", false]], "fp_binarycrossentropy_s\uff08c function\uff09": [[39, "c.fp_binarycrossentropy_s", false]], "fp_binarycrossentropygrad_p\uff08c function\uff09": [[40, "c.fp_binarycrossentropygrad_p", false]], "fp_binarycrossentropygrad_s\uff08c function\uff09": [[40, "c.fp_binarycrossentropygrad_s", false]], "fp_broadcastto_p\uff08c function\uff09": [[41, "c.fp_broadcastto_p", false]], "fp_broadcastto_s\uff08c function\uff09": [[41, "c.fp_broadcastto_s", false]], "fp_ceil_p\uff08c function\uff09": [[43, "c.fp_ceil_p", false]], "fp_ceil_s\uff08c function\uff09": [[43, "c.fp_ceil_s", false]], "fp_celu_p\uff08c function\uff09": [[12, "c.fp_celu_p", false]], "fp_celu_s\uff08c function\uff09": [[12, "c.fp_celu_s", false]], "fp_clip_p\uff08c function\uff09": [[12, "c.fp_clip_p", false], [44, "c.fp_clip_p", false]], "fp_clip_s\uff08c function\uff09": [[12, "c.fp_clip_s", false], [44, "c.fp_clip_s", false]], "fp_concat_p\uff08c function\uff09": [[45, "c.fp_concat_p", false]], "fp_concat_s\uff08c function\uff09": [[45, "c.fp_concat_s", false]], "fp_constant_of_shape_p\uff08c function\uff09": [[46, "c.fp_constant_of_shape_p", false]], "fp_constant_of_shape_s\uff08c function\uff09": [[46, "c.fp_constant_of_shape_s", false]], "fp_conv2d_p\uff08c function\uff09": [[47, "c.fp_conv2d_p", false]], "fp_conv2d_s\uff08c function\uff09": [[47, "c.fp_conv2d_s", false]], "fp_conv2dbackpropfilterfusion_p\uff08c function\uff09": [[49, "c.fp_conv2dbackpropfilterfusion_p", false]], "fp_conv2dbackpropfilterfusion_s\uff08c function\uff09": [[49, "c.fp_conv2dbackpropfilterfusion_s", false]], "fp_conv2dbackpropinputfusion_p\uff08c function\uff09": [[50, "c.fp_conv2dbackpropinputfusion_p", false]], "fp_conv2dbackpropinputfusion_s\uff08c function\uff09": [[50, "c.fp_conv2dbackpropinputfusion_s", false]], "fp_convtranspose_p\uff08c function\uff09": [[48, "c.fp_convtranspose_p", false]], "fp_convtranspose_s\uff08c function\uff09": [[48, "c.fp_convtranspose_s", false]], "fp_cos_p\uff08c function\uff09": [[51, "c.fp_cos_p", false]], "fp_cos_s\uff08c function\uff09": [[51, "c.fp_cos_s", false]], "fp_crop_and_resize_anycore\uff08c function\uff09": [[53, "c.fp_crop_and_resize_anycore", false]], "fp_cumsum_p\uff08c function\uff09": [[54, "c.fp_cumsum_p", false]], "fp_cumsum_s\uff08c function\uff09": [[54, "c.fp_cumsum_s", false]], "fp_deconvgradfilter_p\uff08c function\uff09": [[58, "c.fp_deconvgradfilter_p", false]], "fp_deconvgradfilter_s\uff08c function\uff09": [[58, "c.fp_deconvgradfilter_s", false]], "fp_depthtospace_p\uff08c function\uff09": [[59, "c.fp_depthtospace_p", false]], "fp_depthtospace_s\uff08c function\uff09": [[59, "c.fp_depthtospace_s", false]], "fp_detection_post_process_p\uff08c function\uff09": [[60, "c.fp_detection_post_process_p", false]], "fp_detection_post_process_s\uff08c function\uff09": [[60, "c.fp_detection_post_process_s", false]], "fp_div_fusion_p\uff08c function\uff09": [[61, "c.fp_div_fusion_p", false]], "fp_div_fusion_s\uff08c function\uff09": [[61, "c.fp_div_fusion_s", false]], "fp_dropout_p\uff08c function\uff09": [[63, "c.fp_dropout_p", false]], "fp_dropout_s\uff08c function\uff09": [[63, "c.fp_dropout_s", false]], "fp_dropoutgrad_p\uff08c function\uff09": [[64, "c.fp_dropoutgrad_p", false]], "fp_dropoutgrad_s\uff08c function\uff09": [[64, "c.fp_dropoutgrad_s", false]], "fp_eltwise_p\uff08c function\uff09": [[67, "c.fp_eltwise_p", false]], "fp_eltwise_s\uff08c function\uff09": [[67, "c.fp_eltwise_s", false]], "fp_elu_grad_p\uff08c function\uff09": [[13, "c.fp_elu_grad_p", false]], "fp_elu_grad_s\uff08c function\uff09": [[13, "c.fp_elu_grad_s", false]], "fp_elu_p\uff08c function\uff09": [[12, "c.fp_elu_p", false], [68, "c.fp_elu_p", false]], "fp_elu_s\uff08c function\uff09": [[12, "c.fp_elu_s", false], [68, "c.fp_elu_s", false]], "fp_embeddinglookup_p\uff08c function\uff09": [[69, "c.fp_embeddinglookup_p", false]], "fp_embeddinglookup_s\uff08c function\uff09": [[69, "c.fp_embeddinglookup_s", false]], "fp_equal_p\uff08c function\uff09": [[70, "c.fp_equal_p", false]], "fp_equal_s\uff08c function\uff09": [[70, "c.fp_equal_s", false]], "fp_erf_p\uff08c function\uff09": [[71, "c.fp_erf_p", false]], "fp_erf_s\uff08c function\uff09": [[71, "c.fp_erf_s", false]], "fp_expfusion_p\uff08c function\uff09": [[73, "c.fp_expfusion_p", false]], "fp_expfusion_s\uff08c function\uff09": [[73, "c.fp_expfusion_s", false]], "fp_extract_features_p\uff08c function\uff09": [[55, "c.fp_extract_features_p", false]], "fp_extract_features_s\uff08c function\uff09": [[55, "c.fp_extract_features_s", false]], "fp_fake_quant_with_min_max_vars_per_channel_p\uff08c function\uff09": [[75, "c.fp_fake_quant_with_min_max_vars_per_channel_p", false]], "fp_fake_quant_with_min_max_vars_per_channel_s\uff08c function\uff09": [[75, "c.fp_fake_quant_with_min_max_vars_per_channel_s", false]], "fp_fake_quant_with_min_max_vars_p\uff08c function\uff09": [[74, "c.fp_fake_quant_with_min_max_vars_p", false]], "fp_fake_quant_with_min_max_vars_s\uff08c function\uff09": [[74, "c.fp_fake_quant_with_min_max_vars_s", false]], "fp_fill_p\uff08c function\uff09": [[78, "c.fp_fill_p", false]], "fp_fill_s\uff08c function\uff09": [[78, "c.fp_fill_s", false]], "fp_flattengrad_p\uff08c function\uff09": [[81, "c.fp_flattengrad_p", false]], "fp_flattengrad_s\uff08c function\uff09": [[81, "c.fp_flattengrad_s", false]], "fp_floor_p\uff08c function\uff09": [[82, "c.fp_floor_p", false]], "fp_floor_s\uff08c function\uff09": [[82, "c.fp_floor_s", false]], "fp_floordiv_p\uff08c function\uff09": [[83, "c.fp_floordiv_p", false]], "fp_floordiv_s\uff08c function\uff09": [[83, "c.fp_floordiv_s", false]], "fp_floormod_p\uff08c function\uff09": [[84, "c.fp_floormod_p", false]], "fp_floormod_s\uff08c function\uff09": [[84, "c.fp_floormod_s", false]], "fp_formattranspose_p\uff08c function\uff09": [[85, "c.fp_formattranspose_p", false]], "fp_formattranspose_s\uff08c function\uff09": [[85, "c.fp_formattranspose_s", false]], "fp_fullconnection_p\uff08c function\uff09": [[86, "c.fp_fullconnection_p", false]], "fp_fullconnection_s\uff08c function\uff09": [[86, "c.fp_fullconnection_s", false]], "fp_fusedbatchnorm_p\uff08c function\uff09": [[87, "c.fp_fusedbatchnorm_p", false]], "fp_fusedbatchnorm_s\uff08c function\uff09": [[87, "c.fp_fusedbatchnorm_s", false]], "fp_gather_nd_p\uff08c function\uff09": [[89, "c.fp_gather_nd_p", false]], "fp_gather_nd_s\uff08c function\uff09": [[89, "c.fp_gather_nd_s", false]], "fp_gather_p\uff08c function\uff09": [[88, "c.fp_gather_p", false]], "fp_gather_s\uff08c function\uff09": [[88, "c.fp_gather_s", false]], "fp_gatherd_p\uff08c function\uff09": [[90, "c.fp_gatherd_p", false]], "fp_gatherd_s\uff08c function\uff09": [[90, "c.fp_gatherd_s", false]], "fp_gelu_grad_p\uff08c function\uff09": [[13, "c.fp_gelu_grad_p", false]], "fp_gelu_grad_s\uff08c function\uff09": [[13, "c.fp_gelu_grad_s", false]], "fp_gelu_p\uff08c function\uff09": [[12, "c.fp_gelu_p", false]], "fp_gelu_s\uff08c function\uff09": [[12, "c.fp_gelu_s", false]], "fp_glu_p\uff08c function\uff09": [[91, "c.fp_glu_p", false]], "fp_glu_s\uff08c function\uff09": [[91, "c.fp_glu_s", false]], "fp_graddiv1l_p\uff08c function\uff09": [[62, "c.fp_graddiv1l_p", false]], "fp_graddiv1l_s\uff08c function\uff09": [[62, "c.fp_graddiv1l_s", false]], "fp_graddiv2l_p\uff08c function\uff09": [[62, "c.fp_graddiv2l_p", false]], "fp_graddiv2l_s\uff08c function\uff09": [[62, "c.fp_graddiv2l_s", false]], "fp_graddiv_p\uff08c function\uff09": [[62, "c.fp_graddiv_p", false]], "fp_graddiv_s\uff08c function\uff09": [[62, "c.fp_graddiv_s", false]], "fp_gradmul1l_p\uff08c function\uff09": [[131, "c.fp_gradmul1l_p", false]], "fp_gradmul1l_s\uff08c function\uff09": [[131, "c.fp_gradmul1l_s", false]], "fp_gradmul2l_p\uff08c function\uff09": [[131, "c.fp_gradmul2l_p", false]], "fp_gradmul2l_s\uff08c function\uff09": [[131, "c.fp_gradmul2l_s", false]], "fp_gradmul_p\uff08c function\uff09": [[131, "c.fp_gradmul_p", false]], "fp_gradmul_s\uff08c function\uff09": [[131, "c.fp_gradmul_s", false]], "fp_greater_p\uff08c function\uff09": [[92, "c.fp_greater_p", false]], "fp_greater_s\uff08c function\uff09": [[92, "c.fp_greater_s", false]], "fp_greaterequal_p\uff08c function\uff09": [[93, "c.fp_greaterequal_p", false]], "fp_greaterequal_s\uff08c function\uff09": [[93, "c.fp_greaterequal_s", false]], "fp_groupnormfusion_p\uff08c function\uff09": [[94, "c.fp_groupnormfusion_p", false]], "fp_groupnormfusion_s\uff08c function\uff09": [[94, "c.fp_groupnormfusion_s", false]], "fp_gru_p\uff08c function\uff09": [[95, "c.fp_Gru_p", false]], "fp_gru_s\uff08c function\uff09": [[95, "c.fp_Gru_s", false]], "fp_h_sigmoid_grad_p\uff08c function\uff09": [[13, "c.fp_h_sigmoid_grad_p", false]], "fp_h_sigmoid_grad_s\uff08c function\uff09": [[13, "c.fp_h_sigmoid_grad_s", false]], "fp_h_swish_grad_p\uff08c function\uff09": [[13, "c.fp_h_swish_grad_p", false]], "fp_h_swish_grad_s\uff08c function\uff09": [[13, "c.fp_h_swish_grad_s", false]], "fp_hard_shrink_grad_p\uff08c function\uff09": [[13, "c.fp_hard_shrink_grad_p", false]], "fp_hard_shrink_grad_s\uff08c function\uff09": [[13, "c.fp_hard_shrink_grad_s", false]], "fp_hardshrink_p\uff08c function\uff09": [[12, "c.fp_hardshrink_p", false]], "fp_hardshrink_s\uff08c function\uff09": [[12, "c.fp_hardshrink_s", false]], "fp_hardtanh_p\uff08c function\uff09": [[12, "c.fp_hardtanh_p", false]], "fp_hardtanh_s\uff08c function\uff09": [[12, "c.fp_hardtanh_s", false]], "fp_hsigmoid_p\uff08c function\uff09": [[12, "c.fp_hsigmoid_p", false]], "fp_hsigmoid_s\uff08c function\uff09": [[12, "c.fp_hsigmoid_s", false]], "fp_hswish_p\uff08c function\uff09": [[12, "c.fp_hswish_p", false]], "fp_hswish_s\uff08c function\uff09": [[12, "c.fp_hswish_s", false]], "fp_instancenorm_p\uff08c function\uff09": [[97, "c.fp_instancenorm_p", false]], "fp_instancenorm_s\uff08c function\uff09": [[97, "c.fp_instancenorm_s", false]], "fp_isfinite_p\uff08c function\uff09": [[99, "c.fp_isfinite_p", false]], "fp_isfinite_s\uff08c function\uff09": [[99, "c.fp_isfinite_s", false]], "fp_l2norm_p\uff08c function\uff09": [[100, "c.fp_l2norm_p", false]], "fp_l2norm_s\uff08c function\uff09": [[100, "c.fp_l2norm_s", false]], "fp_l_relu_grad_p\uff08c function\uff09": [[13, "c.fp_l_relu_grad_p", false]], "fp_l_relu_grad_s\uff08c function\uff09": [[13, "c.fp_l_relu_grad_s", false]], "fp_layernormfusion_p\uff08c function\uff09": [[101, "c.fp_layernormfusion_p", false]], "fp_layernormfusion_s\uff08c function\uff09": [[101, "c.fp_layernormfusion_s", false]], "fp_layernormgrad_p\uff08c function\uff09": [[102, "c.fp_layernormgrad_p", false]], "fp_layernormgrad_s\uff08c function\uff09": [[102, "c.fp_layernormgrad_s", false]], "fp_leaky_relu_p\uff08c function\uff09": [[103, "c.fp_leaky_relu_p", false]], "fp_leaky_relu_s\uff08c function\uff09": [[103, "c.fp_leaky_relu_s", false]], "fp_less_p\uff08c function\uff09": [[104, "c.fp_less_p", false]], "fp_less_s\uff08c function\uff09": [[104, "c.fp_less_s", false]], "fp_lessequal_p\uff08c function\uff09": [[105, "c.fp_lessequal_p", false]], "fp_lessequal_s\uff08c function\uff09": [[105, "c.fp_lessequal_s", false]], "fp_linspace_p\uff08c function\uff09": [[106, "c.fp_linspace_p", false]], "fp_linspace_s\uff08c function\uff09": [[106, "c.fp_linspace_s", false]], "fp_log1p_p\uff08c function\uff09": [[108, "c.fp_log1p_p", false]], "fp_log1p_s\uff08c function\uff09": [[108, "c.fp_log1p_s", false]], "fp_log_grad_p\uff08c function\uff09": [[109, "c.fp_log_grad_p", false]], "fp_log_grad_s\uff08c function\uff09": [[109, "c.fp_log_grad_s", false]], "fp_log_p\uff08c function\uff09": [[107, "c.fp_log_p", false]], "fp_log_s\uff08c function\uff09": [[107, "c.fp_log_s", false]], "fp_logical_not_p\uff08c function\uff09": [[110, "c.fp_logical_not_p", false]], "fp_logical_not_s\uff08c function\uff09": [[110, "c.fp_logical_not_s", false]], "fp_logical_or_p\uff08c function\uff09": [[111, "c.fp_logical_or_p", false]], "fp_logical_or_s\uff08c function\uff09": [[111, "c.fp_logical_or_s", false]], "fp_logsoftmax_p\uff08c function\uff09": [[113, "c.fp_logsoftmax_p", false]], "fp_logsoftmax_s\uff08c function\uff09": [[113, "c.fp_logsoftmax_s", false]], "fp_lpnorm_p\uff08c function\uff09": [[114, "c.fp_lpnorm_p", false]], "fp_lpnorm_s\uff08c function\uff09": [[114, "c.fp_lpnorm_s", false]], "fp_lrelu_p\uff08c function\uff09": [[12, "c.fp_lrelu_p", false]], "fp_lrelu_s\uff08c function\uff09": [[12, "c.fp_lrelu_s", false]], "fp_lrn_p\uff08c function\uff09": [[115, "c.fp_lrn_p", false]], "fp_lrn_s\uff08c function\uff09": [[115, "c.fp_lrn_s", false]], "fp_lsh_projection_p\uff08c function\uff09": [[116, "c.fp_lsh_projection_p", false]], "fp_lsh_projection_s\uff08c function\uff09": [[116, "c.fp_lsh_projection_s", false]], "fp_lstm_p\uff08c function\uff09": [[117, "c.fp_Lstm_p", false]], "fp_lstm_s\uff08c function\uff09": [[117, "c.fp_Lstm_s", false]], "fp_lstmgrad_p\uff08c function\uff09": [[118, "c.fp_lstmgrad_p", false]], "fp_lstmgrad_s\uff08c function\uff09": [[118, "c.fp_lstmgrad_s", false]], "fp_lstmgraddata_p\uff08c function\uff09": [[119, "c.fp_lstmgraddata_p", false]], "fp_lstmgraddata_s\uff08c function\uff09": [[119, "c.fp_lstmgraddata_s", false]], "fp_lstmgradweight_p\uff08c function\uff09": [[120, "c.fp_lstmgradweight_p", false]], "fp_lstmgradweight_s\uff08c function\uff09": [[120, "c.fp_lstmgradweight_s", false]], "fp_matmulfusion_p\uff08c function\uff09": [[121, "c.fp_matmulfusion_p", false]], "fp_matmulfusion_s\uff08c function\uff09": [[121, "c.fp_matmulfusion_s", false]], "fp_maximum_p\uff08c function\uff09": [[122, "c.fp_maximum_p", false]], "fp_maximum_s\uff08c function\uff09": [[122, "c.fp_maximum_s", false]], "fp_maximumgrad_p\uff08c function\uff09": [[123, "c.fp_maximumgrad_p", false]], "fp_maximumgrad_s\uff08c function\uff09": [[123, "c.fp_maximumgrad_s", false]], "fp_maxpool_fusion_p\uff08c function\uff09": [[124, "c.fp_maxpool_fusion_p", false]], "fp_maxpool_fusion_s\uff08c function\uff09": [[124, "c.fp_maxpool_fusion_s", false]], "fp_maxpool_grad_p\uff08c function\uff09": [[125, "c.fp_maxpool_grad_p", false]], "fp_maxpool_grad_s\uff08c function\uff09": [[125, "c.fp_maxpool_grad_s", false]], "fp_mfcc_p\uff08c function\uff09": [[126, "c.fp_mfcc_p", false]], "fp_mfcc_s\uff08c function\uff09": [[126, "c.fp_mfcc_s", false]], "fp_minimum_p\uff08c function\uff09": [[127, "c.fp_minimum_p", false]], "fp_minimum_s\uff08c function\uff09": [[127, "c.fp_minimum_s", false]], "fp_minimumgrad_p\uff08c function\uff09": [[128, "c.fp_minimumgrad_p", false]], "fp_minimumgrad_s\uff08c function\uff09": [[128, "c.fp_minimumgrad_s", false]], "fp_mod_p\uff08c function\uff09": [[129, "c.fp_mod_p", false]], "fp_mod_s\uff08c function\uff09": [[129, "c.fp_mod_s", false]], "fp_mul_p\uff08c function\uff09": [[130, "c.fp_mul_p", false]], "fp_mul_s\uff08c function\uff09": [[130, "c.fp_mul_s", false]], "fp_neg_grad_p\uff08c function\uff09": [[133, "c.fp_neg_grad_p", false]], "fp_neg_grad_s\uff08c function\uff09": [[133, "c.fp_neg_grad_s", false]], "fp_neg_p\uff08c function\uff09": [[132, "c.fp_neg_p", false]], "fp_neg_s\uff08c function\uff09": [[132, "c.fp_neg_s", false]], "fp_nllloss_p\uff08c function\uff09": [[134, "c.fp_nllloss_p", false]], "fp_nllloss_s\uff08c function\uff09": [[134, "c.fp_nllloss_s", false]], "fp_nlllossgrad_p\uff08c function\uff09": [[135, "c.fp_nlllossgrad_p", false]], "fp_nlllossgrad_s\uff08c function\uff09": [[135, "c.fp_nlllossgrad_s", false]], "fp_non_max_suppression_p\uff08c function\uff09": [[136, "c.fp_non_max_suppression_p", false]], "fp_non_max_suppression_s\uff08c function\uff09": [[136, "c.fp_non_max_suppression_s", false]], "fp_nonzero_p\uff08c function\uff09": [[137, "c.fp_nonzero_p", false]], "fp_nonzero_s\uff08c function\uff09": [[137, "c.fp_nonzero_s", false]], "fp_not_equal_p\uff08c function\uff09": [[138, "c.fp_not_equal_p", false]], "fp_not_equal_s\uff08c function\uff09": [[138, "c.fp_not_equal_s", false]], "fp_onehot_p\uff08c function\uff09": [[139, "c.fp_onehot_p", false]], "fp_onehot_s\uff08c function\uff09": [[139, "c.fp_onehot_s", false]], "fp_ones_like_p\uff08c function\uff09": [[140, "c.fp_ones_like_p", false]], "fp_ones_like_s\uff08c function\uff09": [[140, "c.fp_ones_like_s", false]], "fp_padfusion_p\uff08c function\uff09": [[141, "c.fp_padfusion_p", false]], "fp_padfusion_s\uff08c function\uff09": [[141, "c.fp_padfusion_s", false]], "fp_pow_fusion_p\uff08c function\uff09": [[142, "c.fp_pow_fusion_p", false]], "fp_pow_fusion_s\uff08c function\uff09": [[142, "c.fp_pow_fusion_s", false]], "fp_power_grad_p\uff08c function\uff09": [[143, "c.fp_power_grad_p", false]], "fp_power_grad_s\uff08c function\uff09": [[143, "c.fp_power_grad_s", false]], "fp_prelufusion_p\uff08c function\uff09": [[144, "c.fp_prelufusion_p", false]], "fp_prelufusion_s\uff08c function\uff09": [[144, "c.fp_prelufusion_s", false]], "fp_priorbox_p\uff08c function\uff09": [[145, "c.fp_priorbox_p", false]], "fp_priorbox_s\uff08c function\uff09": [[145, "c.fp_priorbox_s", false]], "fp_quantdata_p\uff08c function\uff09": [[66, "c.fp_QuantData_p", false]], "fp_quantdata_s\uff08c function\uff09": [[66, "c.fp_QuantData_s", false]], "fp_raggedrange_p\uff08c function\uff09": [[147, "c.fp_raggedrange_p", false]], "fp_raggedrange_s\uff08c function\uff09": [[147, "c.fp_raggedrange_s", false]], "fp_random_normal_p\uff08c function\uff09": [[148, "c.fp_random_normal_p", false]], "fp_random_normal_s\uff08c function\uff09": [[148, "c.fp_random_normal_s", false]], "fp_random_standard_normal_p\uff08c function\uff09": [[149, "c.fp_random_standard_normal_p", false]], "fp_random_standard_normal_s\uff08c function\uff09": [[149, "c.fp_random_standard_normal_s", false]], "fp_range_p\uff08c function\uff09": [[150, "c.fp_range_p", false]], "fp_range_s\uff08c function\uff09": [[150, "c.fp_range_s", false]], "fp_real_div_p\uff08c function\uff09": [[152, "c.fp_real_div_p", false]], "fp_real_div_s\uff08c function\uff09": [[152, "c.fp_real_div_s", false]], "fp_reciprocal_p\uff08c function\uff09": [[153, "c.fp_reciprocal_p", false]], "fp_reciprocal_s\uff08c function\uff09": [[153, "c.fp_reciprocal_s", false]], "fp_reduce_p\uff08c function\uff09": [[154, "c.fp_reduce_p", false]], "fp_reduce_s\uff08c function\uff09": [[154, "c.fp_reduce_s", false]], "fp_reduceall_p\uff08c function\uff09": [[21, "c.fp_reduceall_p", false]], "fp_reduceall_s\uff08c function\uff09": [[21, "c.fp_reduceall_s", false]], "fp_reducescatter_p\uff08c function\uff09": [[155, "c.fp_reducescatter_p", false]], "fp_reducescatter_s\uff08c function\uff09": [[155, "c.fp_reducescatter_s", false]], "fp_relu6_grad_p\uff08c function\uff09": [[13, "c.fp_relu6_grad_p", false]], "fp_relu6_grad_s\uff08c function\uff09": [[13, "c.fp_relu6_grad_s", false]], "fp_relu6_p\uff08c function\uff09": [[12, "c.fp_relu6_p", false]], "fp_relu6_s\uff08c function\uff09": [[12, "c.fp_relu6_s", false]], "fp_relu_grad_p\uff08c function\uff09": [[13, "c.fp_relu_grad_p", false]], "fp_relu_grad_s\uff08c function\uff09": [[13, "c.fp_relu_grad_s", false]], "fp_relu_p\uff08c function\uff09": [[12, "c.fp_relu_p", false]], "fp_relu_s\uff08c function\uff09": [[12, "c.fp_relu_s", false]], "fp_reshape_p\uff08c function\uff09": [[156, "c.fp_reshape_p", false]], "fp_reshape_s\uff08c function\uff09": [[156, "c.fp_reshape_s", false]], "fp_resize_anycore\uff08c function\uff09": [[157, "c.fp_resize_anycore", false]], "fp_resizebilineargrad_p\uff08c function\uff09": [[158, "c.fp_resizebilineargrad_p", false]], "fp_resizebilineargrad_s\uff08c function\uff09": [[158, "c.fp_resizebilineargrad_s", false]], "fp_resizenearestneighborgrad_p\uff08c function\uff09": [[158, "c.fp_resizenearestneighborgrad_p", false]], "fp_resizenearestneighborgrad_s\uff08c function\uff09": [[158, "c.fp_resizenearestneighborgrad_s", false]], "fp_roipooling_p\uff08c function\uff09": [[162, "c.fp_roipooling_p", false]], "fp_roipooling_s\uff08c function\uff09": [[162, "c.fp_roipooling_s", false]], "fp_round_p\uff08c function\uff09": [[163, "c.fp_round_p", false]], "fp_round_s\uff08c function\uff09": [[163, "c.fp_round_s", false]], "fp_rsqrt_p\uff08c function\uff09": [[164, "c.fp_rsqrt_p", false]], "fp_rsqrt_s\uff08c function\uff09": [[164, "c.fp_rsqrt_s", false]], "fp_rsqrtgrad_p\uff08c function\uff09": [[165, "c.fp_rsqrtgrad_p", false]], "fp_rsqrtgrad_s\uff08c function\uff09": [[165, "c.fp_rsqrtgrad_s", false]], "fp_scalefusion_p\uff08c function\uff09": [[166, "c.fp_scalefusion_p", false]], "fp_scalefusion_s\uff08c function\uff09": [[166, "c.fp_scalefusion_s", false]], "fp_scatter_elements_p\uff08c function\uff09": [[167, "c.fp_scatter_elements_p", false]], "fp_scatter_elements_s\uff08c function\uff09": [[167, "c.fp_scatter_elements_s", false]], "fp_scatter_nd_p\uff08c function\uff09": [[168, "c.fp_scatter_nd_p", false]], "fp_scatter_nd_s\uff08c function\uff09": [[168, "c.fp_scatter_nd_s", false]], "fp_scatter_nd_update_p\uff08c function\uff09": [[169, "c.fp_scatter_nd_update_p", false]], "fp_scatter_nd_update_s\uff08c function\uff09": [[169, "c.fp_scatter_nd_update_s", false]], "fp_select_p\uff08c function\uff09": [[170, "c.fp_select_p", false]], "fp_select_s\uff08c function\uff09": [[170, "c.fp_select_s", false]], "fp_sgd_p\uff08c function\uff09": [[171, "c.fp_sgd_p", false]], "fp_sgd_s\uff08c function\uff09": [[171, "c.fp_sgd_s", false]], "fp_sigmoid_grad_p\uff08c function\uff09": [[13, "c.fp_sigmoid_grad_p", false]], "fp_sigmoid_grad_s\uff08c function\uff09": [[13, "c.fp_sigmoid_grad_s", false]], "fp_sigmoid_p\uff08c function\uff09": [[12, "c.fp_sigmoid_p", false]], "fp_sigmoid_s\uff08c function\uff09": [[12, "c.fp_sigmoid_s", false]], "fp_sigmoidcrossentropywithlogits_p\uff08c function\uff09": [[174, "c.fp_sigmoidcrossentropywithlogits_p", false]], "fp_sigmoidcrossentropywithlogits_s\uff08c function\uff09": [[174, "c.fp_sigmoidcrossentropywithlogits_s", false]], "fp_sigmoidcrossentropywithlogitsgrad_p\uff08c function\uff09": [[173, "c.fp_sigmoidcrossentropywithlogitsgrad_p", false]], "fp_sigmoidcrossentropywithlogitsgrad_s\uff08c function\uff09": [[173, "c.fp_sigmoidcrossentropywithlogitsgrad_s", false]], "fp_sin_p\uff08c function\uff09": [[175, "c.fp_sin_p", false]], "fp_sin_s\uff08c function\uff09": [[175, "c.fp_sin_s", false]], "fp_slice_p\uff08c function\uff09": [[178, "c.fp_slice_p", false]], "fp_slice_s\uff08c function\uff09": [[178, "c.fp_slice_s", false]], "fp_smoothl1loss_p\uff08c function\uff09": [[179, "c.fp_smoothl1loss_p", false]], "fp_smoothl1loss_s\uff08c function\uff09": [[179, "c.fp_smoothl1loss_s", false]], "fp_smoothl1lossgrad_p\uff08c function\uff09": [[180, "c.fp_smoothl1lossgrad_p", false]], "fp_smoothl1lossgrad_s\uff08c function\uff09": [[180, "c.fp_smoothl1lossgrad_s", false]], "fp_softmax_cross_entropy_with_logits_p\uff08c function\uff09": [[182, "c.fp_softmax_cross_entropy_with_logits_p", false]], "fp_softmax_cross_entropy_with_logits_s\uff08c function\uff09": [[182, "c.fp_softmax_cross_entropy_with_logits_s", false]], "fp_softmax_p\uff08c function\uff09": [[181, "c.fp_softmax_p", false]], "fp_softmax_s\uff08c function\uff09": [[181, "c.fp_softmax_s", false]], "fp_softplus_grad_p\uff08c function\uff09": [[13, "c.fp_softplus_grad_p", false]], "fp_softplus_grad_s\uff08c function\uff09": [[13, "c.fp_softplus_grad_s", false]], "fp_softplus_p\uff08c function\uff09": [[12, "c.fp_softplus_p", false]], "fp_softplus_s\uff08c function\uff09": [[12, "c.fp_softplus_s", false]], "fp_softshrink_grad_p\uff08c function\uff09": [[13, "c.fp_softshrink_grad_p", false]], "fp_softshrink_grad_s\uff08c function\uff09": [[13, "c.fp_softshrink_grad_s", false]], "fp_softshrink_p\uff08c function\uff09": [[12, "c.fp_softshrink_p", false]], "fp_softshrink_s\uff08c function\uff09": [[12, "c.fp_softshrink_s", false]], "fp_softsignopt_p\uff08c function\uff09": [[12, "c.fp_softsignopt_p", false]], "fp_softsignopt_s\uff08c function\uff09": [[12, "c.fp_softsignopt_s", false]], "fp_spacetobatch_p\uff08c function\uff09": [[183, "c.fp_spacetobatch_p", false]], "fp_spacetobatch_s\uff08c function\uff09": [[183, "c.fp_spacetobatch_s", false]], "fp_spacetobatchnd_p\uff08c function\uff09": [[184, "c.fp_spacetobatchnd_p", false]], "fp_spacetobatchnd_s\uff08c function\uff09": [[184, "c.fp_spacetobatchnd_s", false]], "fp_spacetodepth_p\uff08c function\uff09": [[185, "c.fp_spacetodepth_p", false]], "fp_spacetodepth_s\uff08c function\uff09": [[185, "c.fp_spacetodepth_s", false]], "fp_sparse_softmax_cross_entropy_with_logits_p\uff08c function\uff09": [[186, "c.fp_sparse_softmax_cross_entropy_with_logits_p", false]], "fp_sparse_softmax_cross_entropy_with_logits_s\uff08c function\uff09": [[186, "c.fp_sparse_softmax_cross_entropy_with_logits_s", false]], "fp_sparsefillemptyrows_p\uff08c function\uff09": [[187, "c.fp_sparsefillemptyrows_p", false]], "fp_sparsefillemptyrows_s\uff08c function\uff09": [[187, "c.fp_sparsefillemptyrows_s", false]], "fp_sparsesegmentsum_p\uff08c function\uff09": [[189, "c.fp_sparsesegmentsum_p", false]], "fp_sparsesegmentsum_s\uff08c function\uff09": [[189, "c.fp_sparsesegmentsum_s", false]], "fp_sparsetodense_p\uff08c function\uff09": [[190, "c.fp_sparsetodense_p", false]], "fp_sparsetodense_s\uff08c function\uff09": [[190, "c.fp_sparsetodense_s", false]], "fp_splice_p\uff08c function\uff09": [[191, "c.fp_splice_p", false]], "fp_splice_s\uff08c function\uff09": [[191, "c.fp_splice_s", false]], "fp_split_p\uff08c function\uff09": [[192, "c.fp_split_p", false]], "fp_split_s\uff08c function\uff09": [[192, "c.fp_split_s", false]], "fp_split_with_overlap_p\uff08c function\uff09": [[193, "c.fp_split_with_overlap_p", false]], "fp_split_with_overlap_s\uff08c function\uff09": [[193, "c.fp_split_with_overlap_s", false]], "fp_sqrt_p\uff08c function\uff09": [[194, "c.fp_sqrt_p", false]], "fp_sqrt_s\uff08c function\uff09": [[194, "c.fp_sqrt_s", false]], "fp_sqrtgrad_p\uff08c function\uff09": [[195, "c.fp_sqrtgrad_p", false]], "fp_sqrtgrad_s\uff08c function\uff09": [[195, "c.fp_sqrtgrad_s", false]], "fp_square_p\uff08c function\uff09": [[196, "c.fp_square_p", false]], "fp_square_s\uff08c function\uff09": [[196, "c.fp_square_s", false]], "fp_squaredifference_p\uff08c function\uff09": [[197, "c.fp_squaredifference_p", false]], "fp_squaredifference_s\uff08c function\uff09": [[197, "c.fp_squaredifference_s", false]], "fp_stack_p\uff08c function\uff09": [[199, "c.fp_stack_p", false]], "fp_stack_s\uff08c function\uff09": [[199, "c.fp_stack_s", false]], "fp_stridedslicegrad_p\uff08c function\uff09": [[201, "c.fp_stridedslicegrad_p", false]], "fp_stridedslicegrad_s\uff08c function\uff09": [[201, "c.fp_stridedslicegrad_s", false]], "fp_subext_p\uff08c function\uff09": [[202, "c.fp_subext_p", false]], "fp_subext_s\uff08c function\uff09": [[202, "c.fp_subext_s", false]], "fp_subgrad_p\uff08c function\uff09": [[203, "c.fp_subgrad_p", false]], "fp_subgrad_s\uff08c function\uff09": [[203, "c.fp_subgrad_s", false]], "fp_subrelu6_p\uff08c function\uff09": [[202, "c.fp_subrelu6_p", false]], "fp_subrelu6_s\uff08c function\uff09": [[202, "c.fp_subrelu6_s", false]], "fp_subrelu_p\uff08c function\uff09": [[202, "c.fp_subrelu_p", false]], "fp_subrelu_s\uff08c function\uff09": [[202, "c.fp_subrelu_s", false]], "fp_swish_p\uff08c function\uff09": [[12, "c.fp_swish_p", false]], "fp_swish_s\uff08c function\uff09": [[12, "c.fp_swish_s", false]], "fp_tanh_grad_p\uff08c function\uff09": [[13, "c.fp_tanh_grad_p", false]], "fp_tanh_grad_s\uff08c function\uff09": [[13, "c.fp_tanh_grad_s", false]], "fp_tanh_p\uff08c function\uff09": [[12, "c.fp_tanh_p", false]], "fp_tanh_s\uff08c function\uff09": [[12, "c.fp_tanh_s", false]], "fp_tensor_scatter_add_p\uff08c function\uff09": [[206, "c.fp_tensor_scatter_add_p", false]], "fp_tensor_scatter_add_s\uff08c function\uff09": [[206, "c.fp_tensor_scatter_add_s", false]], "fp_tensorarrayread_p\uff08c function\uff09": [[208, "c.fp_tensorarrayread_p", false]], "fp_tensorarrayread_s\uff08c function\uff09": [[208, "c.fp_tensorarrayread_s", false]], "fp_tensorlistfromtensor_p\uff08c function\uff09": [[210, "c.fp_tensorlistfromtensor_p", false]], "fp_tensorlistfromtensor_s\uff08c function\uff09": [[210, "c.fp_tensorlistfromtensor_s", false]], "fp_tile_p\uff08c function\uff09": [[215, "c.fp_tile_p", false]], "fp_tile_s\uff08c function\uff09": [[215, "c.fp_tile_s", false]], "fp_to_i8_quant_p\uff08c function\uff09": [[146, "c.fp_to_i8_quant_p", false]], "fp_to_i8_quant_s\uff08c function\uff09": [[146, "c.fp_to_i8_quant_s", false]], "fp_topk_fusion_p\uff08c function\uff09": [[216, "c.fp_topk_fusion_p", false]], "fp_topk_fusion_s\uff08c function\uff09": [[216, "c.fp_topk_fusion_s", false]], "fp_transpose_p\uff08c function\uff09": [[217, "c.fp_transpose_p", false]], "fp_transpose_s\uff08c function\uff09": [[217, "c.fp_transpose_s", false]], "fp_tril_p\uff08c function\uff09": [[218, "c.fp_tril_p", false]], "fp_tril_s\uff08c function\uff09": [[218, "c.fp_tril_s", false]], "fp_triu_p\uff08c function\uff09": [[219, "c.fp_triu_p", false]], "fp_triu_s\uff08c function\uff09": [[219, "c.fp_triu_s", false]], "fp_uniform_real_p\uff08c function\uff09": [[220, "c.fp_uniform_real_p", false]], "fp_uniform_real_s\uff08c function\uff09": [[220, "c.fp_uniform_real_s", false]], "fp_unique_p\uff08c function\uff09": [[221, "c.fp_Unique_p", false]], "fp_unique_s\uff08c function\uff09": [[221, "c.fp_Unique_s", false]], "fp_unsorted_segment_sum_p\uff08c function\uff09": [[222, "c.fp_unsorted_segment_sum_p", false]], "fp_unsorted_segment_sum_s\uff08c function\uff09": [[222, "c.fp_unsorted_segment_sum_s", false]], "fp_where_p\uff08c function\uff09": [[225, "c.fp_where_p", false]], "fp_where_s\uff08c function\uff09": [[225, "c.fp_where_s", false]], "fp_zerolike_p\uff08c function\uff09": [[226, "c.fp_zerolike_p", false]], "fp_zerolike_s\uff08c function\uff09": [[226, "c.fp_zerolike_s", false]], "hp_abs_p\uff08c function\uff09": [[10, "c.hp_abs_p", false]], "hp_abs_s\uff08c function\uff09": [[10, "c.hp_abs_s", false]], "hp_absgrad_p\uff08c function\uff09": [[11, "c.hp_absgrad_p", false]], "hp_absgrad_s\uff08c function\uff09": [[11, "c.hp_absgrad_s", false]], "hp_adamweightdecay_p\uff08c function\uff09": [[15, "c.hp_adamweightdecay_p", false]], "hp_adamweightdecay_s\uff08c function\uff09": [[15, "c.hp_adamweightdecay_s", false]], "hp_adder_p\uff08c function\uff09": [[16, "c.hp_adder_p", false]], "hp_adder_s\uff08c function\uff09": [[16, "c.hp_adder_s", false]], "hp_addext_p\uff08c function\uff09": [[17, "c.hp_addext_p", false]], "hp_addext_s\uff08c function\uff09": [[17, "c.hp_addext_s", false]], "hp_addgrad_p\uff08c function\uff09": [[18, "c.hp_addgrad_p", false]], "hp_addgrad_s\uff08c function\uff09": [[18, "c.hp_addgrad_s", false]], "hp_addrelu6_p\uff08c function\uff09": [[17, "c.hp_addrelu6_p", false]], "hp_addrelu6_s\uff08c function\uff09": [[17, "c.hp_addrelu6_s", false]], "hp_addrelu_p\uff08c function\uff09": [[17, "c.hp_addrelu_p", false]], "hp_addrelu_s\uff08c function\uff09": [[17, "c.hp_addrelu_s", false]], "hp_affine_p\uff08c function\uff09": [[20, "c.hp_affine_p", false]], "hp_affine_s\uff08c function\uff09": [[20, "c.hp_affine_s", false]], "hp_and_p\uff08c function\uff09": [[112, "c.hp_and_p", false]], "hp_and_s\uff08c function\uff09": [[112, "c.hp_and_s", false]], "hp_applymomentum_p\uff08c function\uff09": [[23, "c.hp_applymomentum_p", false]], "hp_applymomentum_s\uff08c function\uff09": [[23, "c.hp_applymomentum_s", false]], "hp_argmax_p\uff08c function\uff09": [[24, "c.hp_argmax_p", false]], "hp_argmax_s\uff08c function\uff09": [[24, "c.hp_argmax_s", false]], "hp_argmin_p\uff08c function\uff09": [[25, "c.hp_argmin_p", false]], "hp_argmin_s\uff08c function\uff09": [[25, "c.hp_argmin_s", false]], "hp_assign_p\uff08c function\uff09": [[27, "c.hp_assign_p", false]], "hp_assign_s\uff08c function\uff09": [[27, "c.hp_assign_s", false]], "hp_assignadd_p\uff08c function\uff09": [[28, "c.hp_assignadd_p", false]], "hp_assignadd_s\uff08c function\uff09": [[28, "c.hp_assignadd_s", false]], "hp_avgpool_fusion_p\uff08c function\uff09": [[31, "c.hp_avgpool_fusion_p", false]], "hp_avgpool_fusion_s\uff08c function\uff09": [[31, "c.hp_avgpool_fusion_s", false]], "hp_avgpoolinggrad_p\uff08c function\uff09": [[32, "c.hp_avgpoolinggrad_p", false]], "hp_avgpoolinggrad_s\uff08c function\uff09": [[32, "c.hp_avgpoolinggrad_s", false]], "hp_batchnorm_p\uff08c function\uff09": [[33, "c.hp_batchnorm_p", false]], "hp_batchnorm_s\uff08c function\uff09": [[33, "c.hp_batchnorm_s", false]], "hp_batchnormgrad_p\uff08c function\uff09": [[34, "c.hp_batchnormgrad_p", false]], "hp_batchnormgrad_s\uff08c function\uff09": [[34, "c.hp_batchnormgrad_s", false]], "hp_batchtospace_p\uff08c function\uff09": [[35, "c.hp_batchtospace_p", false]], "hp_batchtospace_s\uff08c function\uff09": [[35, "c.hp_batchtospace_s", false]], "hp_batchtospacend_p\uff08c function\uff09": [[36, "c.hp_batchtospacend_p", false]], "hp_batchtospacend_s\uff08c function\uff09": [[36, "c.hp_batchtospacend_s", false]], "hp_biasadd_p\uff08c function\uff09": [[37, "c.hp_biasadd_p", false]], "hp_biasadd_s\uff08c function\uff09": [[37, "c.hp_biasadd_s", false]], "hp_biasaddgrad_p\uff08c function\uff09": [[38, "c.hp_biasaddgrad_p", false]], "hp_biasaddgrad_s\uff08c function\uff09": [[38, "c.hp_biasaddgrad_s", false]], "hp_binarycrossentropy_p\uff08c function\uff09": [[39, "c.hp_binarycrossentropy_p", false]], "hp_binarycrossentropy_s\uff08c function\uff09": [[39, "c.hp_binarycrossentropy_s", false]], "hp_binarycrossentropygrad_p\uff08c function\uff09": [[40, "c.hp_binarycrossentropygrad_p", false]], "hp_binarycrossentropygrad_s\uff08c function\uff09": [[40, "c.hp_binarycrossentropygrad_s", false]], "hp_broadcastto_p\uff08c function\uff09": [[41, "c.hp_broadcastto_p", false]], "hp_broadcastto_s\uff08c function\uff09": [[41, "c.hp_broadcastto_s", false]], "hp_ceil_p\uff08c function\uff09": [[43, "c.hp_ceil_p", false]], "hp_ceil_s\uff08c function\uff09": [[43, "c.hp_ceil_s", false]], "hp_celu_p\uff08c function\uff09": [[12, "c.hp_celu_p", false]], "hp_celu_s\uff08c function\uff09": [[12, "c.hp_celu_s", false]], "hp_clip_p\uff08c function\uff09": [[12, "c.hp_clip_p", false], [44, "c.hp_clip_p", false]], "hp_clip_s\uff08c function\uff09": [[12, "c.hp_clip_s", false], [44, "c.hp_clip_s", false]], "hp_concat_p\uff08c function\uff09": [[45, "c.hp_concat_p", false]], "hp_concat_s\uff08c function\uff09": [[45, "c.hp_concat_s", false]], "hp_conv2d_p\uff08c function\uff09": [[47, "c.hp_conv2d_p", false]], "hp_conv2d_s\uff08c function\uff09": [[47, "c.hp_conv2d_s", false]], "hp_conv2dbackpropfilterfusion_p\uff08c function\uff09": [[49, "c.hp_conv2dbackpropfilterfusion_p", false]], "hp_conv2dbackpropfilterfusion_s\uff08c function\uff09": [[49, "c.hp_conv2dbackpropfilterfusion_s", false]], "hp_conv2dbackpropinputfusion_p\uff08c function\uff09": [[50, "c.hp_conv2dbackpropinputfusion_p", false]], "hp_conv2dbackpropinputfusion_s\uff08c function\uff09": [[50, "c.hp_conv2dbackpropinputfusion_s", false]], "hp_convtranspose_p\uff08c function\uff09": [[48, "c.hp_convtranspose_p", false]], "hp_convtranspose_s\uff08c function\uff09": [[48, "c.hp_convtranspose_s", false]], "hp_cos_p\uff08c function\uff09": [[51, "c.hp_cos_p", false]], "hp_cos_s\uff08c function\uff09": [[51, "c.hp_cos_s", false]], "hp_crop_and_resize_anycore\uff08c function\uff09": [[53, "c.hp_crop_and_resize_anycore", false]], "hp_cumsum_p\uff08c function\uff09": [[54, "c.hp_cumsum_p", false]], "hp_cumsum_s\uff08c function\uff09": [[54, "c.hp_cumsum_s", false]], "hp_deconvgradfilter_p\uff08c function\uff09": [[58, "c.hp_deconvgradfilter_p", false]], "hp_deconvgradfilter_s\uff08c function\uff09": [[58, "c.hp_deconvgradfilter_s", false]], "hp_depthtospace_p\uff08c function\uff09": [[59, "c.hp_depthtospace_p", false]], "hp_depthtospace_s\uff08c function\uff09": [[59, "c.hp_depthtospace_s", false]], "hp_detection_post_process_p\uff08c function\uff09": [[60, "c.hp_detection_post_process_p", false]], "hp_detection_post_process_s\uff08c function\uff09": [[60, "c.hp_detection_post_process_s", false]], "hp_div_fusion_p\uff08c function\uff09": [[61, "c.hp_div_fusion_p", false]], "hp_div_fusion_s\uff08c function\uff09": [[61, "c.hp_div_fusion_s", false]], "hp_dropout_p\uff08c function\uff09": [[63, "c.hp_dropout_p", false]], "hp_dropout_s\uff08c function\uff09": [[63, "c.hp_dropout_s", false]], "hp_dropoutgrad_p\uff08c function\uff09": [[64, "c.hp_dropoutgrad_p", false]], "hp_dropoutgrad_s\uff08c function\uff09": [[64, "c.hp_dropoutgrad_s", false]], "hp_eltwise_p\uff08c function\uff09": [[67, "c.hp_eltwise_p", false]], "hp_eltwise_s\uff08c function\uff09": [[67, "c.hp_eltwise_s", false]], "hp_elu_p\uff08c function\uff09": [[12, "c.hp_elu_p", false], [68, "c.hp_elu_p", false]], "hp_elu_s\uff08c function\uff09": [[12, "c.hp_elu_s", false], [68, "c.hp_elu_s", false]], "hp_embeddinglookup_p\uff08c function\uff09": [[69, "c.hp_embeddinglookup_p", false]], "hp_embeddinglookup_s\uff08c function\uff09": [[69, "c.hp_embeddinglookup_s", false]], "hp_equal_p\uff08c function\uff09": [[70, "c.hp_equal_p", false]], "hp_equal_s\uff08c function\uff09": [[70, "c.hp_equal_s", false]], "hp_erf_p\uff08c function\uff09": [[71, "c.hp_erf_p", false]], "hp_erf_s\uff08c function\uff09": [[71, "c.hp_erf_s", false]], "hp_expfusion_p\uff08c function\uff09": [[73, "c.hp_expfusion_p", false]], "hp_expfusion_s\uff08c function\uff09": [[73, "c.hp_expfusion_s", false]], "hp_fake_quant_with_min_max_vars_per_channel_p\uff08c function\uff09": [[75, "c.hp_fake_quant_with_min_max_vars_per_channel_p", false]], "hp_fake_quant_with_min_max_vars_per_channel_s\uff08c function\uff09": [[75, "c.hp_fake_quant_with_min_max_vars_per_channel_s", false]], "hp_fake_quant_with_min_max_vars_p\uff08c function\uff09": [[74, "c.hp_fake_quant_with_min_max_vars_p", false]], "hp_fake_quant_with_min_max_vars_s\uff08c function\uff09": [[74, "c.hp_fake_quant_with_min_max_vars_s", false]], "hp_fill_p\uff08c function\uff09": [[78, "c.hp_fill_p", false]], "hp_fill_s\uff08c function\uff09": [[78, "c.hp_fill_s", false]], "hp_flattengrad_p\uff08c function\uff09": [[81, "c.hp_flattengrad_p", false]], "hp_flattengrad_s\uff08c function\uff09": [[81, "c.hp_flattengrad_s", false]], "hp_floor_p\uff08c function\uff09": [[82, "c.hp_floor_p", false]], "hp_floor_s\uff08c function\uff09": [[82, "c.hp_floor_s", false]], "hp_floordiv_p\uff08c function\uff09": [[83, "c.hp_floordiv_p", false]], "hp_floordiv_s\uff08c function\uff09": [[83, "c.hp_floordiv_s", false]], "hp_floormod_p\uff08c function\uff09": [[84, "c.hp_floormod_p", false]], "hp_floormod_s\uff08c function\uff09": [[84, "c.hp_floormod_s", false]], "hp_formattranspose_p\uff08c function\uff09": [[85, "c.hp_formattranspose_p", false]], "hp_formattranspose_s\uff08c function\uff09": [[85, "c.hp_formattranspose_s", false]], "hp_fullconnection_p\uff08c function\uff09": [[86, "c.hp_fullconnection_p", false]], "hp_fullconnection_s\uff08c function\uff09": [[86, "c.hp_fullconnection_s", false]], "hp_fusedbatchnorm_p\uff08c function\uff09": [[87, "c.hp_fusedbatchnorm_p", false]], "hp_fusedbatchnorm_s\uff08c function\uff09": [[87, "c.hp_fusedbatchnorm_s", false]], "hp_gather_nd_p\uff08c function\uff09": [[89, "c.hp_gather_nd_p", false]], "hp_gather_nd_s\uff08c function\uff09": [[89, "c.hp_gather_nd_s", false]], "hp_gather_p\uff08c function\uff09": [[88, "c.hp_gather_p", false]], "hp_gather_s\uff08c function\uff09": [[88, "c.hp_gather_s", false]], "hp_gelu_p\uff08c function\uff09": [[12, "c.hp_gelu_p", false]], "hp_gelu_s\uff08c function\uff09": [[12, "c.hp_gelu_s", false]], "hp_glu_p\uff08c function\uff09": [[91, "c.hp_glu_p", false]], "hp_glu_s\uff08c function\uff09": [[91, "c.hp_glu_s", false]], "hp_graddiv1l_p\uff08c function\uff09": [[62, "c.hp_graddiv1l_p", false]], "hp_graddiv1l_s\uff08c function\uff09": [[62, "c.hp_graddiv1l_s", false]], "hp_graddiv2l_p\uff08c function\uff09": [[62, "c.hp_graddiv2l_p", false]], "hp_graddiv2l_s\uff08c function\uff09": [[62, "c.hp_graddiv2l_s", false]], "hp_graddiv_p\uff08c function\uff09": [[62, "c.hp_graddiv_p", false]], "hp_graddiv_s\uff08c function\uff09": [[62, "c.hp_graddiv_s", false]], "hp_gradmul1l_p\uff08c function\uff09": [[131, "c.hp_gradmul1l_p", false]], "hp_gradmul1l_s\uff08c function\uff09": [[131, "c.hp_gradmul1l_s", false]], "hp_gradmul2l_p\uff08c function\uff09": [[131, "c.hp_gradmul2l_p", false]], "hp_gradmul2l_s\uff08c function\uff09": [[131, "c.hp_gradmul2l_s", false]], "hp_gradmul_p\uff08c function\uff09": [[131, "c.hp_gradmul_p", false]], "hp_gradmul_s\uff08c function\uff09": [[131, "c.hp_gradmul_s", false]], "hp_greater_p\uff08c function\uff09": [[92, "c.hp_greater_p", false]], "hp_greater_s\uff08c function\uff09": [[92, "c.hp_greater_s", false]], "hp_greaterequal_p\uff08c function\uff09": [[93, "c.hp_greaterequal_p", false]], "hp_greaterequal_s\uff08c function\uff09": [[93, "c.hp_greaterequal_s", false]], "hp_groupnormfusion_p\uff08c function\uff09": [[94, "c.hp_groupnormfusion_p", false]], "hp_groupnormfusion_s\uff08c function\uff09": [[94, "c.hp_groupnormfusion_s", false]], "hp_gru_p\uff08c function\uff09": [[95, "c.hp_Gru_p", false]], "hp_gru_s\uff08c function\uff09": [[95, "c.hp_Gru_s", false]], "hp_hardshrink_p\uff08c function\uff09": [[12, "c.hp_hardshrink_p", false]], "hp_hardshrink_s\uff08c function\uff09": [[12, "c.hp_hardshrink_s", false]], "hp_hardtanh_p\uff08c function\uff09": [[12, "c.hp_hardtanh_p", false]], "hp_hardtanh_s\uff08c function\uff09": [[12, "c.hp_hardtanh_s", false]], "hp_hsigmoid_p\uff08c function\uff09": [[12, "c.hp_hsigmoid_p", false]], "hp_hsigmoid_s\uff08c function\uff09": [[12, "c.hp_hsigmoid_s", false]], "hp_hswish_p\uff08c function\uff09": [[12, "c.hp_hswish_p", false]], "hp_hswish_s\uff08c function\uff09": [[12, "c.hp_hswish_s", false]], "hp_instancenorm_p\uff08c function\uff09": [[97, "c.hp_instancenorm_p", false]], "hp_instancenorm_s\uff08c function\uff09": [[97, "c.hp_instancenorm_s", false]], "hp_isfinite_p\uff08c function\uff09": [[99, "c.hp_isfinite_p", false]], "hp_isfinite_s\uff08c function\uff09": [[99, "c.hp_isfinite_s", false]], "hp_l2norm_p\uff08c function\uff09": [[100, "c.hp_l2norm_p", false]], "hp_l2norm_s\uff08c function\uff09": [[100, "c.hp_l2norm_s", false]], "hp_layernormfusion_p\uff08c function\uff09": [[101, "c.hp_layernormfusion_p", false]], "hp_layernormfusion_s\uff08c function\uff09": [[101, "c.hp_layernormfusion_s", false]], "hp_layernormgrad_p\uff08c function\uff09": [[102, "c.hp_layernormgrad_p", false]], "hp_layernormgrad_s\uff08c function\uff09": [[102, "c.hp_layernormgrad_s", false]], "hp_leaky_relu_p\uff08c function\uff09": [[103, "c.hp_leaky_relu_p", false]], "hp_leaky_relu_s\uff08c function\uff09": [[103, "c.hp_leaky_relu_s", false]], "hp_less_p\uff08c function\uff09": [[104, "c.hp_less_p", false]], "hp_less_s\uff08c function\uff09": [[104, "c.hp_less_s", false]], "hp_lessequal_p\uff08c function\uff09": [[105, "c.hp_lessequal_p", false]], "hp_lessequal_s\uff08c function\uff09": [[105, "c.hp_lessequal_s", false]], "hp_log1p_p\uff08c function\uff09": [[108, "c.hp_log1p_p", false]], "hp_log1p_s\uff08c function\uff09": [[108, "c.hp_log1p_s", false]], "hp_log_grad_p\uff08c function\uff09": [[109, "c.hp_log_grad_p", false]], "hp_log_grad_s\uff08c function\uff09": [[109, "c.hp_log_grad_s", false]], "hp_log_p\uff08c function\uff09": [[107, "c.hp_log_p", false]], "hp_log_s\uff08c function\uff09": [[107, "c.hp_log_s", false]], "hp_logical_not_p\uff08c function\uff09": [[110, "c.hp_logical_not_p", false]], "hp_logical_not_s\uff08c function\uff09": [[110, "c.hp_logical_not_s", false]], "hp_logical_or_p\uff08c function\uff09": [[111, "c.hp_logical_or_p", false]], "hp_logical_or_s\uff08c function\uff09": [[111, "c.hp_logical_or_s", false]], "hp_logsoftmax_p\uff08c function\uff09": [[113, "c.hp_logsoftmax_p", false]], "hp_logsoftmax_s\uff08c function\uff09": [[113, "c.hp_logsoftmax_s", false]], "hp_lpnorm_p\uff08c function\uff09": [[114, "c.hp_lpnorm_p", false]], "hp_lpnorm_s\uff08c function\uff09": [[114, "c.hp_lpnorm_s", false]], "hp_lrelu_p\uff08c function\uff09": [[12, "c.hp_lrelu_p", false]], "hp_lrelu_s\uff08c function\uff09": [[12, "c.hp_lrelu_s", false]], "hp_lrn_p\uff08c function\uff09": [[115, "c.hp_lrn_p", false]], "hp_lrn_s\uff08c function\uff09": [[115, "c.hp_lrn_s", false]], "hp_lsh_projection_p\uff08c function\uff09": [[116, "c.hp_lsh_projection_p", false]], "hp_lsh_projection_s\uff08c function\uff09": [[116, "c.hp_lsh_projection_s", false]], "hp_lstm_p\uff08c function\uff09": [[117, "c.hp_Lstm_p", false]], "hp_lstm_s\uff08c function\uff09": [[117, "c.hp_Lstm_s", false]], "hp_lstmgrad_p\uff08c function\uff09": [[118, "c.hp_lstmgrad_p", false]], "hp_lstmgrad_s\uff08c function\uff09": [[118, "c.hp_lstmgrad_s", false]], "hp_lstmgraddata_p\uff08c function\uff09": [[119, "c.hp_lstmgraddata_p", false]], "hp_lstmgraddata_s\uff08c function\uff09": [[119, "c.hp_lstmgraddata_s", false]], "hp_lstmgradweight_p\uff08c function\uff09": [[120, "c.hp_lstmgradweight_p", false]], "hp_lstmgradweight_s\uff08c function\uff09": [[120, "c.hp_lstmgradweight_s", false]], "hp_maximum_p\uff08c function\uff09": [[122, "c.hp_maximum_p", false]], "hp_maximum_s\uff08c function\uff09": [[122, "c.hp_maximum_s", false]], "hp_maximumgrad_p\uff08c function\uff09": [[123, "c.hp_maximumgrad_p", false]], "hp_maximumgrad_s\uff08c function\uff09": [[123, "c.hp_maximumgrad_s", false]], "hp_maxpool_fusion_p\uff08c function\uff09": [[124, "c.hp_maxpool_fusion_p", false]], "hp_maxpool_fusion_s\uff08c function\uff09": [[124, "c.hp_maxpool_fusion_s", false]], "hp_maxpool_grad_p\uff08c function\uff09": [[125, "c.hp_maxpool_grad_p", false]], "hp_maxpool_grad_s\uff08c function\uff09": [[125, "c.hp_maxpool_grad_s", false]], "hp_mfcc_p\uff08c function\uff09": [[126, "c.hp_mfcc_p", false]], "hp_mfcc_s\uff08c function\uff09": [[126, "c.hp_mfcc_s", false]], "hp_minimum_p\uff08c function\uff09": [[127, "c.hp_minimum_p", false]], "hp_minimum_s\uff08c function\uff09": [[127, "c.hp_minimum_s", false]], "hp_minimumgrad_p\uff08c function\uff09": [[128, "c.hp_minimumgrad_p", false]], "hp_minimumgrad_s\uff08c function\uff09": [[128, "c.hp_minimumgrad_s", false]], "hp_mod_p\uff08c function\uff09": [[129, "c.hp_mod_p", false]], "hp_mod_s\uff08c function\uff09": [[129, "c.hp_mod_s", false]], "hp_mul_p\uff08c function\uff09": [[130, "c.hp_mul_p", false]], "hp_mul_s\uff08c function\uff09": [[130, "c.hp_mul_s", false]], "hp_neg_grad_p\uff08c function\uff09": [[133, "c.hp_neg_grad_p", false]], "hp_neg_grad_s\uff08c function\uff09": [[133, "c.hp_neg_grad_s", false]], "hp_neg_p\uff08c function\uff09": [[132, "c.hp_neg_p", false]], "hp_neg_s\uff08c function\uff09": [[132, "c.hp_neg_s", false]], "hp_nllloss_p\uff08c function\uff09": [[134, "c.hp_nllloss_p", false]], "hp_nllloss_s\uff08c function\uff09": [[134, "c.hp_nllloss_s", false]], "hp_nlllossgrad_p\uff08c function\uff09": [[135, "c.hp_nlllossgrad_p", false]], "hp_nlllossgrad_s\uff08c function\uff09": [[135, "c.hp_nlllossgrad_s", false]], "hp_non_max_suppression_p\uff08c function\uff09": [[136, "c.hp_non_max_suppression_p", false]], "hp_non_max_suppression_s\uff08c function\uff09": [[136, "c.hp_non_max_suppression_s", false]], "hp_not_equal_p\uff08c function\uff09": [[138, "c.hp_not_equal_p", false]], "hp_not_equal_s\uff08c function\uff09": [[138, "c.hp_not_equal_s", false]], "hp_onehot_p\uff08c function\uff09": [[139, "c.hp_onehot_p", false]], "hp_onehot_s\uff08c function\uff09": [[139, "c.hp_onehot_s", false]], "hp_ones_like_p\uff08c function\uff09": [[140, "c.hp_ones_like_p", false]], "hp_ones_like_s\uff08c function\uff09": [[140, "c.hp_ones_like_s", false]], "hp_padfusion_p\uff08c function\uff09": [[141, "c.hp_padfusion_p", false]], "hp_padfusion_s\uff08c function\uff09": [[141, "c.hp_padfusion_s", false]], "hp_pow_fusion_p\uff08c function\uff09": [[142, "c.hp_pow_fusion_p", false]], "hp_pow_fusion_s\uff08c function\uff09": [[142, "c.hp_pow_fusion_s", false]], "hp_power_grad_p\uff08c function\uff09": [[143, "c.hp_power_grad_p", false]], "hp_power_grad_s\uff08c function\uff09": [[143, "c.hp_power_grad_s", false]], "hp_prelufusion_p\uff08c function\uff09": [[144, "c.hp_prelufusion_p", false]], "hp_prelufusion_s\uff08c function\uff09": [[144, "c.hp_prelufusion_s", false]], "hp_priorbox_p\uff08c function\uff09": [[145, "c.hp_priorbox_p", false]], "hp_priorbox_s\uff08c function\uff09": [[145, "c.hp_priorbox_s", false]], "hp_quantdata_p\uff08c function\uff09": [[66, "c.hp_QuantData_p", false]], "hp_quantdata_s\uff08c function\uff09": [[66, "c.hp_QuantData_s", false]], "hp_random_normal_p\uff08c function\uff09": [[148, "c.hp_random_normal_p", false]], "hp_random_normal_s\uff08c function\uff09": [[148, "c.hp_random_normal_s", false]], "hp_random_standard_normal_p\uff08c function\uff09": [[149, "c.hp_random_standard_normal_p", false]], "hp_random_standard_normal_s\uff08c function\uff09": [[149, "c.hp_random_standard_normal_s", false]], "hp_real_div_p\uff08c function\uff09": [[152, "c.hp_real_div_p", false]], "hp_real_div_s\uff08c function\uff09": [[152, "c.hp_real_div_s", false]], "hp_reciprocal_p\uff08c function\uff09": [[153, "c.hp_reciprocal_p", false]], "hp_reciprocal_s\uff08c function\uff09": [[153, "c.hp_reciprocal_s", false]], "hp_reduce_p\uff08c function\uff09": [[154, "c.hp_reduce_p", false]], "hp_reduce_s\uff08c function\uff09": [[154, "c.hp_reduce_s", false]], "hp_reduceall_p\uff08c function\uff09": [[21, "c.hp_reduceall_p", false]], "hp_reduceall_s\uff08c function\uff09": [[21, "c.hp_reduceall_s", false]], "hp_reducescatter_p\uff08c function\uff09": [[155, "c.hp_reducescatter_p", false]], "hp_reducescatter_s\uff08c function\uff09": [[155, "c.hp_reducescatter_s", false]], "hp_relu6_p\uff08c function\uff09": [[12, "c.hp_relu6_p", false]], "hp_relu6_s\uff08c function\uff09": [[12, "c.hp_relu6_s", false]], "hp_relu_grad_p\uff08c function\uff09": [[13, "c.hp_relu_grad_p", false]], "hp_relu_grad_s\uff08c function\uff09": [[13, "c.hp_relu_grad_s", false]], "hp_relu_p\uff08c function\uff09": [[12, "c.hp_relu_p", false]], "hp_relu_s\uff08c function\uff09": [[12, "c.hp_relu_s", false]], "hp_reshape_p\uff08c function\uff09": [[156, "c.hp_reshape_p", false]], "hp_reshape_s\uff08c function\uff09": [[156, "c.hp_reshape_s", false]], "hp_resize_anycore\uff08c function\uff09": [[157, "c.hp_resize_anycore", false]], "hp_resizebilineargrad_p\uff08c function\uff09": [[158, "c.hp_resizebilineargrad_p", false]], "hp_resizebilineargrad_s\uff08c function\uff09": [[158, "c.hp_resizebilineargrad_s", false]], "hp_resizenearestneighborgrad_p\uff08c function\uff09": [[158, "c.hp_resizenearestneighborgrad_p", false]], "hp_resizenearestneighborgrad_s\uff08c function\uff09": [[158, "c.hp_resizenearestneighborgrad_s", false]], "hp_roipooling_p\uff08c function\uff09": [[162, "c.hp_roipooling_p", false]], "hp_roipooling_s\uff08c function\uff09": [[162, "c.hp_roipooling_s", false]], "hp_round_p\uff08c function\uff09": [[163, "c.hp_round_p", false]], "hp_round_s\uff08c function\uff09": [[163, "c.hp_round_s", false]], "hp_rsqrt_p\uff08c function\uff09": [[164, "c.hp_rsqrt_p", false]], "hp_rsqrt_s\uff08c function\uff09": [[164, "c.hp_rsqrt_s", false]], "hp_rsqrtgrad_p\uff08c function\uff09": [[165, "c.hp_rsqrtgrad_p", false]], "hp_rsqrtgrad_s\uff08c function\uff09": [[165, "c.hp_rsqrtgrad_s", false]], "hp_scalefusion_p\uff08c function\uff09": [[166, "c.hp_scalefusion_p", false]], "hp_scalefusion_s\uff08c function\uff09": [[166, "c.hp_scalefusion_s", false]], "hp_scatter_elements_p\uff08c function\uff09": [[167, "c.hp_scatter_elements_p", false]], "hp_scatter_elements_s\uff08c function\uff09": [[167, "c.hp_scatter_elements_s", false]], "hp_scatter_nd_p\uff08c function\uff09": [[168, "c.hp_scatter_nd_p", false]], "hp_scatter_nd_s\uff08c function\uff09": [[168, "c.hp_scatter_nd_s", false]], "hp_scatter_nd_update_p\uff08c function\uff09": [[169, "c.hp_scatter_nd_update_p", false]], "hp_scatter_nd_update_s\uff08c function\uff09": [[169, "c.hp_scatter_nd_update_s", false]], "hp_select_p\uff08c function\uff09": [[170, "c.hp_select_p", false]], "hp_select_s\uff08c function\uff09": [[170, "c.hp_select_s", false]], "hp_sgd_p\uff08c function\uff09": [[171, "c.hp_sgd_p", false]], "hp_sgd_s\uff08c function\uff09": [[171, "c.hp_sgd_s", false]], "hp_sigmoid_p\uff08c function\uff09": [[12, "c.hp_sigmoid_p", false]], "hp_sigmoid_s\uff08c function\uff09": [[12, "c.hp_sigmoid_s", false]], "hp_sigmoidcrossentropywithlogits_p\uff08c function\uff09": [[174, "c.hp_sigmoidcrossentropywithlogits_p", false]], "hp_sigmoidcrossentropywithlogits_s\uff08c function\uff09": [[174, "c.hp_sigmoidcrossentropywithlogits_s", false]], "hp_sigmoidcrossentropywithlogitsgrad_p\uff08c function\uff09": [[173, "c.hp_sigmoidcrossentropywithlogitsgrad_p", false]], "hp_sigmoidcrossentropywithlogitsgrad_s\uff08c function\uff09": [[173, "c.hp_sigmoidcrossentropywithlogitsgrad_s", false]], "hp_sin_p\uff08c function\uff09": [[175, "c.hp_sin_p", false]], "hp_sin_s\uff08c function\uff09": [[175, "c.hp_sin_s", false]], "hp_slice_p\uff08c function\uff09": [[178, "c.hp_slice_p", false]], "hp_slice_s\uff08c function\uff09": [[178, "c.hp_slice_s", false]], "hp_smoothl1loss_p\uff08c function\uff09": [[179, "c.hp_smoothl1loss_p", false]], "hp_smoothl1loss_s\uff08c function\uff09": [[179, "c.hp_smoothl1loss_s", false]], "hp_smoothl1lossgrad_p\uff08c function\uff09": [[180, "c.hp_smoothl1lossgrad_p", false]], "hp_smoothl1lossgrad_s\uff08c function\uff09": [[180, "c.hp_smoothl1lossgrad_s", false]], "hp_softmax_cross_entropy_with_logits_p\uff08c function\uff09": [[182, "c.hp_softmax_cross_entropy_with_logits_p", false]], "hp_softmax_cross_entropy_with_logits_s\uff08c function\uff09": [[182, "c.hp_softmax_cross_entropy_with_logits_s", false]], "hp_softmax_p\uff08c function\uff09": [[181, "c.hp_softmax_p", false]], "hp_softmax_s\uff08c function\uff09": [[181, "c.hp_softmax_s", false]], "hp_softplus_p\uff08c function\uff09": [[12, "c.hp_softplus_p", false]], "hp_softplus_s\uff08c function\uff09": [[12, "c.hp_softplus_s", false]], "hp_softshrink_p\uff08c function\uff09": [[12, "c.hp_softshrink_p", false]], "hp_softshrink_s\uff08c function\uff09": [[12, "c.hp_softshrink_s", false]], "hp_softsignopt_p\uff08c function\uff09": [[12, "c.hp_softsignopt_p", false]], "hp_softsignopt_s\uff08c function\uff09": [[12, "c.hp_softsignopt_s", false]], "hp_spacetobatch_p\uff08c function\uff09": [[183, "c.hp_spacetobatch_p", false]], "hp_spacetobatch_s\uff08c function\uff09": [[183, "c.hp_spacetobatch_s", false]], "hp_spacetobatchnd_p\uff08c function\uff09": [[184, "c.hp_spacetobatchnd_p", false]], "hp_spacetobatchnd_s\uff08c function\uff09": [[184, "c.hp_spacetobatchnd_s", false]], "hp_spacetodepth_p\uff08c function\uff09": [[185, "c.hp_spacetodepth_p", false]], "hp_spacetodepth_s\uff08c function\uff09": [[185, "c.hp_spacetodepth_s", false]], "hp_sparse_softmax_cross_entropy_with_logits_p\uff08c function\uff09": [[186, "c.hp_sparse_softmax_cross_entropy_with_logits_p", false]], "hp_sparse_softmax_cross_entropy_with_logits_s\uff08c function\uff09": [[186, "c.hp_sparse_softmax_cross_entropy_with_logits_s", false]], "hp_sparsefillemptyrows_p\uff08c function\uff09": [[187, "c.hp_sparsefillemptyrows_p", false]], "hp_sparsefillemptyrows_s\uff08c function\uff09": [[187, "c.hp_sparsefillemptyrows_s", false]], "hp_sparsesegmentsum_p\uff08c function\uff09": [[189, "c.hp_sparsesegmentsum_p", false]], "hp_sparsesegmentsum_s\uff08c function\uff09": [[189, "c.hp_sparsesegmentsum_s", false]], "hp_sparsetodense_p\uff08c function\uff09": [[190, "c.hp_sparsetodense_p", false]], "hp_sparsetodense_s\uff08c function\uff09": [[190, "c.hp_sparsetodense_s", false]], "hp_splice_p\uff08c function\uff09": [[191, "c.hp_splice_p", false]], "hp_splice_s\uff08c function\uff09": [[191, "c.hp_splice_s", false]], "hp_split_p\uff08c function\uff09": [[192, "c.hp_split_p", false]], "hp_split_s\uff08c function\uff09": [[192, "c.hp_split_s", false]], "hp_split_with_overlap_p\uff08c function\uff09": [[193, "c.hp_split_with_overlap_p", false]], "hp_split_with_overlap_s\uff08c function\uff09": [[193, "c.hp_split_with_overlap_s", false]], "hp_sqrt_p\uff08c function\uff09": [[194, "c.hp_sqrt_p", false]], "hp_sqrt_s\uff08c function\uff09": [[194, "c.hp_sqrt_s", false]], "hp_sqrtgrad_p\uff08c function\uff09": [[195, "c.hp_sqrtgrad_p", false]], "hp_sqrtgrad_s\uff08c function\uff09": [[195, "c.hp_sqrtgrad_s", false]], "hp_square_p\uff08c function\uff09": [[196, "c.hp_square_p", false]], "hp_square_s\uff08c function\uff09": [[196, "c.hp_square_s", false]], "hp_squaredifference_p\uff08c function\uff09": [[197, "c.hp_squaredifference_p", false]], "hp_squaredifference_s\uff08c function\uff09": [[197, "c.hp_squaredifference_s", false]], "hp_stack_p\uff08c function\uff09": [[199, "c.hp_stack_p", false]], "hp_stack_s\uff08c function\uff09": [[199, "c.hp_stack_s", false]], "hp_stridedslicegrad_p\uff08c function\uff09": [[201, "c.hp_stridedslicegrad_p", false]], "hp_stridedslicegrad_s\uff08c function\uff09": [[201, "c.hp_stridedslicegrad_s", false]], "hp_subext_p\uff08c function\uff09": [[202, "c.hp_subext_p", false]], "hp_subext_s\uff08c function\uff09": [[202, "c.hp_subext_s", false]], "hp_subgrad_p\uff08c function\uff09": [[203, "c.hp_subgrad_p", false]], "hp_subgrad_s\uff08c function\uff09": [[203, "c.hp_subgrad_s", false]], "hp_subrelu6_p\uff08c function\uff09": [[202, "c.hp_subrelu6_p", false]], "hp_subrelu6_s\uff08c function\uff09": [[202, "c.hp_subrelu6_s", false]], "hp_subrelu_p\uff08c function\uff09": [[202, "c.hp_subrelu_p", false]], "hp_subrelu_s\uff08c function\uff09": [[202, "c.hp_subrelu_s", false]], "hp_swish_p\uff08c function\uff09": [[12, "c.hp_swish_p", false]], "hp_swish_s\uff08c function\uff09": [[12, "c.hp_swish_s", false]], "hp_tanh_p\uff08c function\uff09": [[12, "c.hp_tanh_p", false]], "hp_tanh_s\uff08c function\uff09": [[12, "c.hp_tanh_s", false]], "hp_tensor_scatter_add_p\uff08c function\uff09": [[206, "c.hp_tensor_scatter_add_p", false]], "hp_tensor_scatter_add_s\uff08c function\uff09": [[206, "c.hp_tensor_scatter_add_s", false]], "hp_tensorarrayread_p\uff08c function\uff09": [[208, "c.hp_tensorarrayread_p", false]], "hp_tensorarrayread_s\uff08c function\uff09": [[208, "c.hp_tensorarrayread_s", false]], "hp_tensorlistfromtensor_p\uff08c function\uff09": [[210, "c.hp_tensorlistfromtensor_p", false]], "hp_tensorlistfromtensor_s\uff08c function\uff09": [[210, "c.hp_tensorlistfromtensor_s", false]], "hp_tile_p\uff08c function\uff09": [[215, "c.hp_tile_p", false]], "hp_tile_s\uff08c function\uff09": [[215, "c.hp_tile_s", false]], "hp_to_i8_quant_p\uff08c function\uff09": [[146, "c.hp_to_i8_quant_p", false]], "hp_to_i8_quant_s\uff08c function\uff09": [[146, "c.hp_to_i8_quant_s", false]], "hp_topk_fusion_p\uff08c function\uff09": [[216, "c.hp_topk_fusion_p", false]], "hp_topk_fusion_s\uff08c function\uff09": [[216, "c.hp_topk_fusion_s", false]], "hp_transpose_p\uff08c function\uff09": [[217, "c.hp_transpose_p", false]], "hp_transpose_s\uff08c function\uff09": [[217, "c.hp_transpose_s", false]], "hp_tril_p\uff08c function\uff09": [[218, "c.hp_tril_p", false]], "hp_tril_s\uff08c function\uff09": [[218, "c.hp_tril_s", false]], "hp_triu_p\uff08c function\uff09": [[219, "c.hp_triu_p", false]], "hp_triu_s\uff08c function\uff09": [[219, "c.hp_triu_s", false]], "hp_uniform_real_p\uff08c function\uff09": [[220, "c.hp_uniform_real_p", false]], "hp_uniform_real_s\uff08c function\uff09": [[220, "c.hp_uniform_real_s", false]], "hp_unique_p\uff08c function\uff09": [[221, "c.hp_Unique_p", false]], "hp_unique_s\uff08c function\uff09": [[221, "c.hp_Unique_s", false]], "hp_where_p\uff08c function\uff09": [[225, "c.hp_where_p", false]], "hp_where_s\uff08c function\uff09": [[225, "c.hp_where_s", false]], "hp_zerolike_p\uff08c function\uff09": [[226, "c.hp_zerolike_p", false]], "hp_zerolike_s\uff08c function\uff09": [[226, "c.hp_zerolike_s", false]], "i16_abs_p\uff08c function\uff09": [[10, "c.i16_abs_p", false]], "i16_abs_s\uff08c function\uff09": [[10, "c.i16_abs_s", false]], "i16_addext_p\uff08c function\uff09": [[17, "c.i16_addext_p", false]], "i16_addext_s\uff08c function\uff09": [[17, "c.i16_addext_s", false]], "i16_addn_p\uff08c function\uff09": [[19, "c.i16_addn_p", false]], "i16_addn_s\uff08c function\uff09": [[19, "c.i16_addn_s", false]], "i16_addrelu6_p\uff08c function\uff09": [[17, "c.i16_addrelu6_p", false]], "i16_addrelu6_s\uff08c function\uff09": [[17, "c.i16_addrelu6_s", false]], "i16_addrelu_p\uff08c function\uff09": [[17, "c.i16_addrelu_p", false]], "i16_addrelu_s\uff08c function\uff09": [[17, "c.i16_addrelu_s", false]], "i16_allgather_p\uff08c function\uff09": [[22, "c.i16_allgather_p", false]], "i16_allgather_s\uff08c function\uff09": [[22, "c.i16_allgather_s", false]], "i16_and_p\uff08c function\uff09": [[112, "c.i16_and_p", false]], "i16_and_s\uff08c function\uff09": [[112, "c.i16_and_s", false]], "i16_assign_p\uff08c function\uff09": [[27, "c.i16_assign_p", false]], "i16_assign_s\uff08c function\uff09": [[27, "c.i16_assign_s", false]], "i16_assignadd_p\uff08c function\uff09": [[28, "c.i16_assignadd_p", false]], "i16_assignadd_s\uff08c function\uff09": [[28, "c.i16_assignadd_s", false]], "i16_batchtospace_p\uff08c function\uff09": [[35, "c.i16_batchtospace_p", false]], "i16_batchtospace_s\uff08c function\uff09": [[35, "c.i16_batchtospace_s", false]], "i16_batchtospacend_p\uff08c function\uff09": [[36, "c.i16_batchtospacend_p", false]], "i16_batchtospacend_s\uff08c function\uff09": [[36, "c.i16_batchtospacend_s", false]], "i16_biasadd_p\uff08c function\uff09": [[37, "c.i16_biasadd_p", false]], "i16_biasadd_s\uff08c function\uff09": [[37, "c.i16_biasadd_s", false]], "i16_broadcastto_p\uff08c function\uff09": [[41, "c.i16_broadcastto_p", false]], "i16_broadcastto_s\uff08c function\uff09": [[41, "c.i16_broadcastto_s", false]], "i16_clip_p\uff08c function\uff09": [[44, "c.i16_clip_p", false]], "i16_clip_s\uff08c function\uff09": [[44, "c.i16_clip_s", false]], "i16_concat_p\uff08c function\uff09": [[45, "c.i16_concat_p", false]], "i16_concat_s\uff08c function\uff09": [[45, "c.i16_concat_s", false]], "i16_constant_of_shape_p\uff08c function\uff09": [[46, "c.i16_constant_of_shape_p", false]], "i16_constant_of_shape_s\uff08c function\uff09": [[46, "c.i16_constant_of_shape_s", false]], "i16_cos_p\uff08c function\uff09": [[51, "c.i16_cos_p", false]], "i16_cos_s\uff08c function\uff09": [[51, "c.i16_cos_s", false]], "i16_cumsum_p\uff08c function\uff09": [[54, "c.i16_cumsum_p", false]], "i16_cumsum_s\uff08c function\uff09": [[54, "c.i16_cumsum_s", false]], "i16_depthtospace_p\uff08c function\uff09": [[59, "c.i16_depthtospace_p", false]], "i16_depthtospace_s\uff08c function\uff09": [[59, "c.i16_depthtospace_s", false]], "i16_div_fusion_p\uff08c function\uff09": [[61, "c.i16_div_fusion_p", false]], "i16_div_fusion_s\uff08c function\uff09": [[61, "c.i16_div_fusion_s", false]], "i16_eltwise_p\uff08c function\uff09": [[67, "c.i16_eltwise_p", false]], "i16_eltwise_s\uff08c function\uff09": [[67, "c.i16_eltwise_s", false]], "i16_equal_p\uff08c function\uff09": [[70, "c.i16_equal_p", false]], "i16_equal_s\uff08c function\uff09": [[70, "c.i16_equal_s", false]], "i16_expfusion_p\uff08c function\uff09": [[73, "c.i16_expfusion_p", false]], "i16_expfusion_s\uff08c function\uff09": [[73, "c.i16_expfusion_s", false]], "i16_extract_features_p\uff08c function\uff09": [[55, "c.i16_extract_features_p", false]], "i16_extract_features_s\uff08c function\uff09": [[55, "c.i16_extract_features_s", false]], "i16_fill_p\uff08c function\uff09": [[78, "c.i16_fill_p", false]], "i16_fill_s\uff08c function\uff09": [[78, "c.i16_fill_s", false]], "i16_formattranspose_p\uff08c function\uff09": [[85, "c.i16_formattranspose_p", false]], "i16_formattranspose_s\uff08c function\uff09": [[85, "c.i16_formattranspose_s", false]], "i16_gather_nd_p\uff08c function\uff09": [[89, "c.i16_gather_nd_p", false]], "i16_gather_nd_s\uff08c function\uff09": [[89, "c.i16_gather_nd_s", false]], "i16_gather_p\uff08c function\uff09": [[88, "c.i16_gather_p", false]], "i16_gather_s\uff08c function\uff09": [[88, "c.i16_gather_s", false]], "i16_gatherd_p\uff08c function\uff09": [[90, "c.i16_gatherd_p", false]], "i16_gatherd_s\uff08c function\uff09": [[90, "c.i16_gatherd_s", false]], "i16_greater_p\uff08c function\uff09": [[92, "c.i16_greater_p", false]], "i16_greater_s\uff08c function\uff09": [[92, "c.i16_greater_s", false]], "i16_greaterequal_p\uff08c function\uff09": [[93, "c.i16_greaterequal_p", false]], "i16_greaterequal_s\uff08c function\uff09": [[93, "c.i16_greaterequal_s", false]], "i16_invertpermutation_p\uff08c function\uff09": [[98, "c.i16_invertpermutation_p", false]], "i16_invertpermutation_s\uff08c function\uff09": [[98, "c.i16_invertpermutation_s", false]], "i16_isfinite_p\uff08c function\uff09": [[99, "c.i16_isfinite_p", false]], "i16_isfinite_s\uff08c function\uff09": [[99, "c.i16_isfinite_s", false]], "i16_less_p\uff08c function\uff09": [[104, "c.i16_less_p", false]], "i16_less_s\uff08c function\uff09": [[104, "c.i16_less_s", false]], "i16_lessequal_p\uff08c function\uff09": [[105, "c.i16_lessequal_p", false]], "i16_lessequal_s\uff08c function\uff09": [[105, "c.i16_lessequal_s", false]], "i16_log1p_p\uff08c function\uff09": [[108, "c.i16_log1p_p", false]], "i16_log1p_s\uff08c function\uff09": [[108, "c.i16_log1p_s", false]], "i16_log_p\uff08c function\uff09": [[107, "c.i16_log_p", false]], "i16_log_s\uff08c function\uff09": [[107, "c.i16_log_s", false]], "i16_logical_not_p\uff08c function\uff09": [[110, "c.i16_logical_not_p", false]], "i16_logical_not_s\uff08c function\uff09": [[110, "c.i16_logical_not_s", false]], "i16_logical_or_p\uff08c function\uff09": [[111, "c.i16_logical_or_p", false]], "i16_logical_or_s\uff08c function\uff09": [[111, "c.i16_logical_or_s", false]], "i16_lsh_projection_p\uff08c function\uff09": [[116, "c.i16_lsh_projection_p", false]], "i16_lsh_projection_s\uff08c function\uff09": [[116, "c.i16_lsh_projection_s", false]], "i16_matmulfusion_p\uff08c function\uff09": [[121, "c.i16_matmulfusion_p", false]], "i16_matmulfusion_s\uff08c function\uff09": [[121, "c.i16_matmulfusion_s", false]], "i16_maximum_p\uff08c function\uff09": [[122, "c.i16_maximum_p", false]], "i16_maximum_s\uff08c function\uff09": [[122, "c.i16_maximum_s", false]], "i16_minimum_p\uff08c function\uff09": [[127, "c.i16_minimum_p", false]], "i16_minimum_s\uff08c function\uff09": [[127, "c.i16_minimum_s", false]], "i16_mod_p\uff08c function\uff09": [[129, "c.i16_mod_p", false]], "i16_mod_s\uff08c function\uff09": [[129, "c.i16_mod_s", false]], "i16_mul_p\uff08c function\uff09": [[130, "c.i16_mul_p", false]], "i16_mul_s\uff08c function\uff09": [[130, "c.i16_mul_s", false]], "i16_neg_grad_p\uff08c function\uff09": [[133, "c.i16_neg_grad_p", false]], "i16_neg_grad_s\uff08c function\uff09": [[133, "c.i16_neg_grad_s", false]], "i16_neg_p\uff08c function\uff09": [[132, "c.i16_neg_p", false]], "i16_neg_s\uff08c function\uff09": [[132, "c.i16_neg_s", false]], "i16_nonzero_p\uff08c function\uff09": [[137, "c.i16_nonzero_p", false]], "i16_nonzero_s\uff08c function\uff09": [[137, "c.i16_nonzero_s", false]], "i16_not_equal_p\uff08c function\uff09": [[138, "c.i16_not_equal_p", false]], "i16_not_equal_s\uff08c function\uff09": [[138, "c.i16_not_equal_s", false]], "i16_onehot_p\uff08c function\uff09": [[139, "c.i16_onehot_p", false]], "i16_onehot_s\uff08c function\uff09": [[139, "c.i16_onehot_s", false]], "i16_ones_like_p\uff08c function\uff09": [[140, "c.i16_ones_like_p", false]], "i16_ones_like_s\uff08c function\uff09": [[140, "c.i16_ones_like_s", false]], "i16_padfusion_p\uff08c function\uff09": [[141, "c.i16_padfusion_p", false]], "i16_padfusion_s\uff08c function\uff09": [[141, "c.i16_padfusion_s", false]], "i16_pow_fusion_p\uff08c function\uff09": [[142, "c.i16_pow_fusion_p", false]], "i16_pow_fusion_s\uff08c function\uff09": [[142, "c.i16_pow_fusion_s", false]], "i16_raggedrange_p\uff08c function\uff09": [[147, "c.i16_raggedrange_p", false]], "i16_raggedrange_s\uff08c function\uff09": [[147, "c.i16_raggedrange_s", false]], "i16_range_p\uff08c function\uff09": [[150, "c.i16_range_p", false]], "i16_range_s\uff08c function\uff09": [[150, "c.i16_range_s", false]], "i16_real_div_p\uff08c function\uff09": [[152, "c.i16_real_div_p", false]], "i16_real_div_s\uff08c function\uff09": [[152, "c.i16_real_div_s", false]], "i16_reciprocal_p\uff08c function\uff09": [[153, "c.i16_reciprocal_p", false]], "i16_reciprocal_s\uff08c function\uff09": [[153, "c.i16_reciprocal_s", false]], "i16_reduce_p\uff08c function\uff09": [[154, "c.i16_reduce_p", false]], "i16_reduce_s\uff08c function\uff09": [[154, "c.i16_reduce_s", false]], "i16_reduceall_p\uff08c function\uff09": [[21, "c.i16_reduceall_p", false]], "i16_reduceall_s\uff08c function\uff09": [[21, "c.i16_reduceall_s", false]], "i16_reducescatter_p\uff08c function\uff09": [[155, "c.i16_reducescatter_p", false]], "i16_reducescatter_s\uff08c function\uff09": [[155, "c.i16_reducescatter_s", false]], "i16_reshape_p\uff08c function\uff09": [[156, "c.i16_reshape_p", false]], "i16_reshape_s\uff08c function\uff09": [[156, "c.i16_reshape_s", false]], "i16_rsqrt_p\uff08c function\uff09": [[164, "c.i16_rsqrt_p", false]], "i16_rsqrt_s\uff08c function\uff09": [[164, "c.i16_rsqrt_s", false]], "i16_scalefusion_p\uff08c function\uff09": [[166, "c.i16_scalefusion_p", false]], "i16_scalefusion_s\uff08c function\uff09": [[166, "c.i16_scalefusion_s", false]], "i16_scatter_elements_p\uff08c function\uff09": [[167, "c.i16_scatter_elements_p", false]], "i16_scatter_elements_s\uff08c function\uff09": [[167, "c.i16_scatter_elements_s", false]], "i16_scatter_nd_p\uff08c function\uff09": [[168, "c.i16_scatter_nd_p", false]], "i16_scatter_nd_s\uff08c function\uff09": [[168, "c.i16_scatter_nd_s", false]], "i16_scatter_nd_update_p\uff08c function\uff09": [[169, "c.i16_scatter_nd_update_p", false]], "i16_scatter_nd_update_s\uff08c function\uff09": [[169, "c.i16_scatter_nd_update_s", false]], "i16_select_p\uff08c function\uff09": [[170, "c.i16_select_p", false]], "i16_select_s\uff08c function\uff09": [[170, "c.i16_select_s", false]], "i16_sin_p\uff08c function\uff09": [[175, "c.i16_sin_p", false]], "i16_sin_s\uff08c function\uff09": [[175, "c.i16_sin_s", false]], "i16_slice_p\uff08c function\uff09": [[178, "c.i16_slice_p", false]], "i16_slice_s\uff08c function\uff09": [[178, "c.i16_slice_s", false]], "i16_spacetobatch_p\uff08c function\uff09": [[183, "c.i16_spacetobatch_p", false]], "i16_spacetobatch_s\uff08c function\uff09": [[183, "c.i16_spacetobatch_s", false]], "i16_spacetobatchnd_p\uff08c function\uff09": [[184, "c.i16_spacetobatchnd_p", false]], "i16_spacetobatchnd_s\uff08c function\uff09": [[184, "c.i16_spacetobatchnd_s", false]], "i16_spacetodepth_p\uff08c function\uff09": [[185, "c.i16_spacetodepth_p", false]], "i16_spacetodepth_s\uff08c function\uff09": [[185, "c.i16_spacetodepth_s", false]], "i16_sparsefillemptyrows_p\uff08c function\uff09": [[187, "c.i16_sparsefillemptyrows_p", false]], "i16_sparsefillemptyrows_s\uff08c function\uff09": [[187, "c.i16_sparsefillemptyrows_s", false]], "i16_sparsesegmentsum_p\uff08c function\uff09": [[189, "c.i16_sparsesegmentsum_p", false]], "i16_sparsesegmentsum_s\uff08c function\uff09": [[189, "c.i16_sparsesegmentsum_s", false]], "i16_sparsetodense_p\uff08c function\uff09": [[190, "c.i16_sparsetodense_p", false]], "i16_sparsetodense_s\uff08c function\uff09": [[190, "c.i16_sparsetodense_s", false]], "i16_splice_p\uff08c function\uff09": [[191, "c.i16_splice_p", false]], "i16_splice_s\uff08c function\uff09": [[191, "c.i16_splice_s", false]], "i16_split_p\uff08c function\uff09": [[192, "c.i16_split_p", false]], "i16_split_s\uff08c function\uff09": [[192, "c.i16_split_s", false]], "i16_split_with_overlap_p\uff08c function\uff09": [[193, "c.i16_split_with_overlap_p", false]], "i16_split_with_overlap_s\uff08c function\uff09": [[193, "c.i16_split_with_overlap_s", false]], "i16_sqrt_p\uff08c function\uff09": [[194, "c.i16_sqrt_p", false]], "i16_sqrt_s\uff08c function\uff09": [[194, "c.i16_sqrt_s", false]], "i16_sqrtgrad_p\uff08c function\uff09": [[195, "c.i16_sqrtgrad_p", false]], "i16_sqrtgrad_s\uff08c function\uff09": [[195, "c.i16_sqrtgrad_s", false]], "i16_square_p\uff08c function\uff09": [[196, "c.i16_square_p", false]], "i16_square_s\uff08c function\uff09": [[196, "c.i16_square_s", false]], "i16_squaredifference_p\uff08c function\uff09": [[197, "c.i16_squaredifference_p", false]], "i16_squaredifference_s\uff08c function\uff09": [[197, "c.i16_squaredifference_s", false]], "i16_stack_p\uff08c function\uff09": [[199, "c.i16_stack_p", false]], "i16_stack_s\uff08c function\uff09": [[199, "c.i16_stack_s", false]], "i16_subrelu6_p\uff08c function\uff09": [[202, "c.i16_subrelu6_p", false]], "i16_subrelu6_s\uff08c function\uff09": [[202, "c.i16_subrelu6_s", false]], "i16_subrelu_p\uff08c function\uff09": [[202, "c.i16_subrelu_p", false]], "i16_subrelu_s\uff08c function\uff09": [[202, "c.i16_subrelu_s", false]], "i16_tensor_scatter_add_p\uff08c function\uff09": [[206, "c.i16_tensor_scatter_add_p", false]], "i16_tensor_scatter_add_s\uff08c function\uff09": [[206, "c.i16_tensor_scatter_add_s", false]], "i16_tensorarrayread_p\uff08c function\uff09": [[208, "c.i16_tensorarrayread_p", false]], "i16_tensorarrayread_s\uff08c function\uff09": [[208, "c.i16_tensorarrayread_s", false]], "i16_tensorlistfromtensor_p\uff08c function\uff09": [[210, "c.i16_tensorlistfromtensor_p", false]], "i16_tensorlistfromtensor_s\uff08c function\uff09": [[210, "c.i16_tensorlistfromtensor_s", false]], "i16_tile_p\uff08c function\uff09": [[215, "c.i16_tile_p", false]], "i16_tile_s\uff08c function\uff09": [[215, "c.i16_tile_s", false]], "i16_topk_fusion_p\uff08c function\uff09": [[216, "c.i16_topk_fusion_p", false]], "i16_topk_fusion_s\uff08c function\uff09": [[216, "c.i16_topk_fusion_s", false]], "i16_transpose_p\uff08c function\uff09": [[217, "c.i16_transpose_p", false]], "i16_transpose_s\uff08c function\uff09": [[217, "c.i16_transpose_s", false]], "i16_tril_p\uff08c function\uff09": [[218, "c.i16_tril_p", false]], "i16_tril_s\uff08c function\uff09": [[218, "c.i16_tril_s", false]], "i16_triu_p\uff08c function\uff09": [[219, "c.i16_triu_p", false]], "i16_triu_s\uff08c function\uff09": [[219, "c.i16_triu_s", false]], "i16_unique_p\uff08c function\uff09": [[221, "c.i16_Unique_p", false]], "i16_unique_s\uff08c function\uff09": [[221, "c.i16_Unique_s", false]], "i16_unsorted_segment_sum_p\uff08c function\uff09": [[222, "c.i16_unsorted_segment_sum_p", false]], "i16_unsorted_segment_sum_s\uff08c function\uff09": [[222, "c.i16_unsorted_segment_sum_s", false]], "i16_where_p\uff08c function\uff09": [[225, "c.i16_where_p", false]], "i16_where_s\uff08c function\uff09": [[225, "c.i16_where_s", false]], "i16_zerolike_p\uff08c function\uff09": [[226, "c.i16_zerolike_p", false]], "i16_zerolike_s\uff08c function\uff09": [[226, "c.i16_zerolike_s", false]], "i32_abs_p\uff08c function\uff09": [[10, "c.i32_abs_p", false]], "i32_abs_s\uff08c function\uff09": [[10, "c.i32_abs_s", false]], "i32_addext_p\uff08c function\uff09": [[17, "c.i32_addext_p", false]], "i32_addext_s\uff08c function\uff09": [[17, "c.i32_addext_s", false]], "i32_addn_p\uff08c function\uff09": [[19, "c.i32_addn_p", false]], "i32_addn_s\uff08c function\uff09": [[19, "c.i32_addn_s", false]], "i32_addrelu6_p\uff08c function\uff09": [[17, "c.i32_addrelu6_p", false]], "i32_addrelu6_s\uff08c function\uff09": [[17, "c.i32_addrelu6_s", false]], "i32_addrelu_p\uff08c function\uff09": [[17, "c.i32_addrelu_p", false]], "i32_addrelu_s\uff08c function\uff09": [[17, "c.i32_addrelu_s", false]], "i32_allgather_p\uff08c function\uff09": [[22, "c.i32_allgather_p", false]], "i32_allgather_s\uff08c function\uff09": [[22, "c.i32_allgather_s", false]], "i32_and_p\uff08c function\uff09": [[112, "c.i32_and_p", false]], "i32_and_s\uff08c function\uff09": [[112, "c.i32_and_s", false]], "i32_assign_p\uff08c function\uff09": [[27, "c.i32_assign_p", false]], "i32_assign_s\uff08c function\uff09": [[27, "c.i32_assign_s", false]], "i32_assignadd_p\uff08c function\uff09": [[28, "c.i32_assignadd_p", false]], "i32_assignadd_s\uff08c function\uff09": [[28, "c.i32_assignadd_s", false]], "i32_batchtospace_p\uff08c function\uff09": [[35, "c.i32_batchtospace_p", false]], "i32_batchtospace_s\uff08c function\uff09": [[35, "c.i32_batchtospace_s", false]], "i32_batchtospacend_p\uff08c function\uff09": [[36, "c.i32_batchtospacend_p", false]], "i32_batchtospacend_s\uff08c function\uff09": [[36, "c.i32_batchtospacend_s", false]], "i32_biasadd_p\uff08c function\uff09": [[37, "c.i32_biasadd_p", false]], "i32_biasadd_s\uff08c function\uff09": [[37, "c.i32_biasadd_s", false]], "i32_broadcastto_p\uff08c function\uff09": [[41, "c.i32_broadcastto_p", false]], "i32_broadcastto_s\uff08c function\uff09": [[41, "c.i32_broadcastto_s", false]], "i32_clip_p\uff08c function\uff09": [[44, "c.i32_clip_p", false]], "i32_clip_s\uff08c function\uff09": [[44, "c.i32_clip_s", false]], "i32_concat_p\uff08c function\uff09": [[45, "c.i32_concat_p", false]], "i32_concat_s\uff08c function\uff09": [[45, "c.i32_concat_s", false]], "i32_constant_of_shape_p\uff08c function\uff09": [[46, "c.i32_constant_of_shape_p", false]], "i32_constant_of_shape_s\uff08c function\uff09": [[46, "c.i32_constant_of_shape_s", false]], "i32_cos_p\uff08c function\uff09": [[51, "c.i32_cos_p", false]], "i32_cos_s\uff08c function\uff09": [[51, "c.i32_cos_s", false]], "i32_cumsum_p\uff08c function\uff09": [[54, "c.i32_cumsum_p", false]], "i32_cumsum_s\uff08c function\uff09": [[54, "c.i32_cumsum_s", false]], "i32_depthtospace_p\uff08c function\uff09": [[59, "c.i32_depthtospace_p", false]], "i32_depthtospace_s\uff08c function\uff09": [[59, "c.i32_depthtospace_s", false]], "i32_div_fusion_p\uff08c function\uff09": [[61, "c.i32_div_fusion_p", false]], "i32_div_fusion_s\uff08c function\uff09": [[61, "c.i32_div_fusion_s", false]], "i32_eltwise_p\uff08c function\uff09": [[67, "c.i32_eltwise_p", false]], "i32_eltwise_s\uff08c function\uff09": [[67, "c.i32_eltwise_s", false]], "i32_equal_p\uff08c function\uff09": [[70, "c.i32_equal_p", false]], "i32_equal_s\uff08c function\uff09": [[70, "c.i32_equal_s", false]], "i32_expfusion_p\uff08c function\uff09": [[73, "c.i32_expfusion_p", false]], "i32_expfusion_s\uff08c function\uff09": [[73, "c.i32_expfusion_s", false]], "i32_extract_features_p\uff08c function\uff09": [[55, "c.i32_extract_features_p", false]], "i32_extract_features_s\uff08c function\uff09": [[55, "c.i32_extract_features_s", false]], "i32_fill_p\uff08c function\uff09": [[78, "c.i32_fill_p", false]], "i32_fill_s\uff08c function\uff09": [[78, "c.i32_fill_s", false]], "i32_formattranspose_p\uff08c function\uff09": [[85, "c.i32_formattranspose_p", false]], "i32_formattranspose_s\uff08c function\uff09": [[85, "c.i32_formattranspose_s", false]], "i32_gather_nd_p\uff08c function\uff09": [[89, "c.i32_gather_nd_p", false]], "i32_gather_nd_s\uff08c function\uff09": [[89, "c.i32_gather_nd_s", false]], "i32_gather_p\uff08c function\uff09": [[88, "c.i32_gather_p", false]], "i32_gather_s\uff08c function\uff09": [[88, "c.i32_gather_s", false]], "i32_gatherd_p\uff08c function\uff09": [[90, "c.i32_gatherd_p", false]], "i32_gatherd_s\uff08c function\uff09": [[90, "c.i32_gatherd_s", false]], "i32_greater_p\uff08c function\uff09": [[92, "c.i32_greater_p", false]], "i32_greater_s\uff08c function\uff09": [[92, "c.i32_greater_s", false]], "i32_greaterequal_p\uff08c function\uff09": [[93, "c.i32_greaterequal_p", false]], "i32_greaterequal_s\uff08c function\uff09": [[93, "c.i32_greaterequal_s", false]], "i32_hashtablelookup_p\uff08c function\uff09": [[96, "c.i32_hashtablelookup_p", false]], "i32_hashtablelookup_s\uff08c function\uff09": [[96, "c.i32_hashtablelookup_s", false]], "i32_invertpermutation_p\uff08c function\uff09": [[98, "c.i32_invertpermutation_p", false]], "i32_invertpermutation_s\uff08c function\uff09": [[98, "c.i32_invertpermutation_s", false]], "i32_isfinite_p\uff08c function\uff09": [[99, "c.i32_isfinite_p", false]], "i32_isfinite_s\uff08c function\uff09": [[99, "c.i32_isfinite_s", false]], "i32_less_p\uff08c function\uff09": [[104, "c.i32_less_p", false]], "i32_less_s\uff08c function\uff09": [[104, "c.i32_less_s", false]], "i32_lessequal_p\uff08c function\uff09": [[105, "c.i32_lessequal_p", false]], "i32_lessequal_s\uff08c function\uff09": [[105, "c.i32_lessequal_s", false]], "i32_log1p_p\uff08c function\uff09": [[108, "c.i32_log1p_p", false]], "i32_log1p_s\uff08c function\uff09": [[108, "c.i32_log1p_s", false]], "i32_log_p\uff08c function\uff09": [[107, "c.i32_log_p", false]], "i32_log_s\uff08c function\uff09": [[107, "c.i32_log_s", false]], "i32_logical_not_p\uff08c function\uff09": [[110, "c.i32_logical_not_p", false]], "i32_logical_not_s\uff08c function\uff09": [[110, "c.i32_logical_not_s", false]], "i32_logical_or_p\uff08c function\uff09": [[111, "c.i32_logical_or_p", false]], "i32_logical_or_s\uff08c function\uff09": [[111, "c.i32_logical_or_s", false]], "i32_lsh_projection_p\uff08c function\uff09": [[116, "c.i32_lsh_projection_p", false]], "i32_lsh_projection_s\uff08c function\uff09": [[116, "c.i32_lsh_projection_s", false]], "i32_matmulfusion_p\uff08c function\uff09": [[121, "c.i32_matmulfusion_p", false]], "i32_matmulfusion_s\uff08c function\uff09": [[121, "c.i32_matmulfusion_s", false]], "i32_maximum_p\uff08c function\uff09": [[122, "c.i32_maximum_p", false]], "i32_maximum_s\uff08c function\uff09": [[122, "c.i32_maximum_s", false]], "i32_minimum_p\uff08c function\uff09": [[127, "c.i32_minimum_p", false]], "i32_minimum_s\uff08c function\uff09": [[127, "c.i32_minimum_s", false]], "i32_mod_p\uff08c function\uff09": [[129, "c.i32_mod_p", false]], "i32_mod_s\uff08c function\uff09": [[129, "c.i32_mod_s", false]], "i32_mul_p\uff08c function\uff09": [[130, "c.i32_mul_p", false]], "i32_mul_s\uff08c function\uff09": [[130, "c.i32_mul_s", false]], "i32_neg_grad_p\uff08c function\uff09": [[133, "c.i32_neg_grad_p", false]], "i32_neg_grad_s\uff08c function\uff09": [[133, "c.i32_neg_grad_s", false]], "i32_neg_p\uff08c function\uff09": [[132, "c.i32_neg_p", false]], "i32_neg_s\uff08c function\uff09": [[132, "c.i32_neg_s", false]], "i32_nonzero_p\uff08c function\uff09": [[137, "c.i32_nonzero_p", false]], "i32_nonzero_s\uff08c function\uff09": [[137, "c.i32_nonzero_s", false]], "i32_not_equal_p\uff08c function\uff09": [[138, "c.i32_not_equal_p", false]], "i32_not_equal_s\uff08c function\uff09": [[138, "c.i32_not_equal_s", false]], "i32_onehot_p\uff08c function\uff09": [[139, "c.i32_onehot_p", false]], "i32_onehot_s\uff08c function\uff09": [[139, "c.i32_onehot_s", false]], "i32_ones_like_p\uff08c function\uff09": [[140, "c.i32_ones_like_p", false]], "i32_ones_like_s\uff08c function\uff09": [[140, "c.i32_ones_like_s", false]], "i32_padfusion_p\uff08c function\uff09": [[141, "c.i32_padfusion_p", false]], "i32_padfusion_s\uff08c function\uff09": [[141, "c.i32_padfusion_s", false]], "i32_pow_fusion_p\uff08c function\uff09": [[142, "c.i32_pow_fusion_p", false]], "i32_pow_fusion_s\uff08c function\uff09": [[142, "c.i32_pow_fusion_s", false]], "i32_raggedrange_p\uff08c function\uff09": [[147, "c.i32_raggedrange_p", false]], "i32_raggedrange_s\uff08c function\uff09": [[147, "c.i32_raggedrange_s", false]], "i32_range_p\uff08c function\uff09": [[150, "c.i32_range_p", false]], "i32_range_s\uff08c function\uff09": [[150, "c.i32_range_s", false]], "i32_real_div_p\uff08c function\uff09": [[152, "c.i32_real_div_p", false]], "i32_real_div_s\uff08c function\uff09": [[152, "c.i32_real_div_s", false]], "i32_reciprocal_p\uff08c function\uff09": [[153, "c.i32_reciprocal_p", false]], "i32_reciprocal_s\uff08c function\uff09": [[153, "c.i32_reciprocal_s", false]], "i32_reduce_p\uff08c function\uff09": [[154, "c.i32_reduce_p", false]], "i32_reduce_s\uff08c function\uff09": [[154, "c.i32_reduce_s", false]], "i32_reduceall_p\uff08c function\uff09": [[21, "c.i32_reduceall_p", false]], "i32_reduceall_s\uff08c function\uff09": [[21, "c.i32_reduceall_s", false]], "i32_reducescatter_p\uff08c function\uff09": [[155, "c.i32_reducescatter_p", false]], "i32_reducescatter_s\uff08c function\uff09": [[155, "c.i32_reducescatter_s", false]], "i32_reshape_p\uff08c function\uff09": [[156, "c.i32_reshape_p", false]], "i32_reshape_s\uff08c function\uff09": [[156, "c.i32_reshape_s", false]], "i32_rsqrt_p\uff08c function\uff09": [[164, "c.i32_rsqrt_p", false]], "i32_rsqrt_s\uff08c function\uff09": [[164, "c.i32_rsqrt_s", false]], "i32_scalefusion_p\uff08c function\uff09": [[166, "c.i32_scalefusion_p", false]], "i32_scalefusion_s\uff08c function\uff09": [[166, "c.i32_scalefusion_s", false]], "i32_scatter_elements_p\uff08c function\uff09": [[167, "c.i32_scatter_elements_p", false]], "i32_scatter_elements_s\uff08c function\uff09": [[167, "c.i32_scatter_elements_s", false]], "i32_scatter_nd_p\uff08c function\uff09": [[168, "c.i32_scatter_nd_p", false]], "i32_scatter_nd_s\uff08c function\uff09": [[168, "c.i32_scatter_nd_s", false]], "i32_scatter_nd_update_p\uff08c function\uff09": [[169, "c.i32_scatter_nd_update_p", false]], "i32_scatter_nd_update_s\uff08c function\uff09": [[169, "c.i32_scatter_nd_update_s", false]], "i32_select_p\uff08c function\uff09": [[170, "c.i32_select_p", false]], "i32_select_s\uff08c function\uff09": [[170, "c.i32_select_s", false]], "i32_sin_p\uff08c function\uff09": [[175, "c.i32_sin_p", false]], "i32_sin_s\uff08c function\uff09": [[175, "c.i32_sin_s", false]], "i32_slice_p\uff08c function\uff09": [[178, "c.i32_slice_p", false]], "i32_slice_s\uff08c function\uff09": [[178, "c.i32_slice_s", false]], "i32_spacetobatch_p\uff08c function\uff09": [[183, "c.i32_spacetobatch_p", false]], "i32_spacetobatch_s\uff08c function\uff09": [[183, "c.i32_spacetobatch_s", false]], "i32_spacetobatchnd_p\uff08c function\uff09": [[184, "c.i32_spacetobatchnd_p", false]], "i32_spacetobatchnd_s\uff08c function\uff09": [[184, "c.i32_spacetobatchnd_s", false]], "i32_spacetodepth_p\uff08c function\uff09": [[185, "c.i32_spacetodepth_p", false]], "i32_spacetodepth_s\uff08c function\uff09": [[185, "c.i32_spacetodepth_s", false]], "i32_sparsefillemptyrows_p\uff08c function\uff09": [[187, "c.i32_sparsefillemptyrows_p", false]], "i32_sparsefillemptyrows_s\uff08c function\uff09": [[187, "c.i32_sparsefillemptyrows_s", false]], "i32_sparsesegmentsum_p\uff08c function\uff09": [[189, "c.i32_sparsesegmentsum_p", false]], "i32_sparsesegmentsum_s\uff08c function\uff09": [[189, "c.i32_sparsesegmentsum_s", false]], "i32_sparsetodense_p\uff08c function\uff09": [[190, "c.i32_sparsetodense_p", false]], "i32_sparsetodense_s\uff08c function\uff09": [[190, "c.i32_sparsetodense_s", false]], "i32_splice_p\uff08c function\uff09": [[191, "c.i32_splice_p", false]], "i32_splice_s\uff08c function\uff09": [[191, "c.i32_splice_s", false]], "i32_split_p\uff08c function\uff09": [[192, "c.i32_split_p", false]], "i32_split_s\uff08c function\uff09": [[192, "c.i32_split_s", false]], "i32_split_with_overlap_p\uff08c function\uff09": [[193, "c.i32_split_with_overlap_p", false]], "i32_split_with_overlap_s\uff08c function\uff09": [[193, "c.i32_split_with_overlap_s", false]], "i32_sqrt_p\uff08c function\uff09": [[194, "c.i32_sqrt_p", false]], "i32_sqrt_s\uff08c function\uff09": [[194, "c.i32_sqrt_s", false]], "i32_sqrtgrad_p\uff08c function\uff09": [[195, "c.i32_sqrtgrad_p", false]], "i32_sqrtgrad_s\uff08c function\uff09": [[195, "c.i32_sqrtgrad_s", false]], "i32_square_p\uff08c function\uff09": [[196, "c.i32_square_p", false]], "i32_square_s\uff08c function\uff09": [[196, "c.i32_square_s", false]], "i32_squaredifference_p\uff08c function\uff09": [[197, "c.i32_squaredifference_p", false]], "i32_squaredifference_s\uff08c function\uff09": [[197, "c.i32_squaredifference_s", false]], "i32_stack_p\uff08c function\uff09": [[199, "c.i32_stack_p", false]], "i32_stack_s\uff08c function\uff09": [[199, "c.i32_stack_s", false]], "i32_subrelu6_p\uff08c function\uff09": [[202, "c.i32_subrelu6_p", false]], "i32_subrelu6_s\uff08c function\uff09": [[202, "c.i32_subrelu6_s", false]], "i32_subrelu_p\uff08c function\uff09": [[202, "c.i32_subrelu_p", false]], "i32_subrelu_s\uff08c function\uff09": [[202, "c.i32_subrelu_s", false]], "i32_tensor_scatter_add_p\uff08c function\uff09": [[206, "c.i32_tensor_scatter_add_p", false]], "i32_tensor_scatter_add_s\uff08c function\uff09": [[206, "c.i32_tensor_scatter_add_s", false]], "i32_tensorarrayread_p\uff08c function\uff09": [[208, "c.i32_tensorarrayread_p", false]], "i32_tensorarrayread_s\uff08c function\uff09": [[208, "c.i32_tensorarrayread_s", false]], "i32_tensorlistfromtensor_p\uff08c function\uff09": [[210, "c.i32_tensorlistfromtensor_p", false]], "i32_tensorlistfromtensor_s\uff08c function\uff09": [[210, "c.i32_tensorlistfromtensor_s", false]], "i32_tile_p\uff08c function\uff09": [[215, "c.i32_tile_p", false]], "i32_tile_s\uff08c function\uff09": [[215, "c.i32_tile_s", false]], "i32_topk_fusion_p\uff08c function\uff09": [[216, "c.i32_topk_fusion_p", false]], "i32_topk_fusion_s\uff08c function\uff09": [[216, "c.i32_topk_fusion_s", false]], "i32_transpose_p\uff08c function\uff09": [[217, "c.i32_transpose_p", false]], "i32_transpose_s\uff08c function\uff09": [[217, "c.i32_transpose_s", false]], "i32_tril_p\uff08c function\uff09": [[218, "c.i32_tril_p", false]], "i32_tril_s\uff08c function\uff09": [[218, "c.i32_tril_s", false]], "i32_triu_p\uff08c function\uff09": [[219, "c.i32_triu_p", false]], "i32_triu_s\uff08c function\uff09": [[219, "c.i32_triu_s", false]], "i32_unique_p\uff08c function\uff09": [[221, "c.i32_Unique_p", false]], "i32_unique_s\uff08c function\uff09": [[221, "c.i32_Unique_s", false]], "i32_unsorted_segment_sum_p\uff08c function\uff09": [[222, "c.i32_unsorted_segment_sum_p", false]], "i32_unsorted_segment_sum_s\uff08c function\uff09": [[222, "c.i32_unsorted_segment_sum_s", false]], "i32_where_p\uff08c function\uff09": [[225, "c.i32_where_p", false]], "i32_where_s\uff08c function\uff09": [[225, "c.i32_where_s", false]], "i32_zerolike_p\uff08c function\uff09": [[226, "c.i32_zerolike_p", false]], "i32_zerolike_s\uff08c function\uff09": [[226, "c.i32_zerolike_s", false]], "i8_abs_p\uff08c function\uff09": [[10, "c.i8_abs_p", false]], "i8_abs_s\uff08c function\uff09": [[10, "c.i8_abs_s", false]], "i8_adder_p\uff08c function\uff09": [[16, "c.i8_adder_p", false]], "i8_adder_s\uff08c function\uff09": [[16, "c.i8_adder_s", false]], "i8_addext_p\uff08c function\uff09": [[17, "c.i8_addext_p", false]], "i8_addext_s\uff08c function\uff09": [[17, "c.i8_addext_s", false]], "i8_addn_p\uff08c function\uff09": [[19, "c.i8_addn_p", false]], "i8_addn_s\uff08c function\uff09": [[19, "c.i8_addn_s", false]], "i8_addrelu6_p\uff08c function\uff09": [[17, "c.i8_addrelu6_p", false]], "i8_addrelu6_s\uff08c function\uff09": [[17, "c.i8_addrelu6_s", false]], "i8_addrelu_p\uff08c function\uff09": [[17, "c.i8_addrelu_p", false]], "i8_addrelu_s\uff08c function\uff09": [[17, "c.i8_addrelu_s", false]], "i8_affine_p\uff08c function\uff09": [[20, "c.i8_affine_p", false]], "i8_affine_s\uff08c function\uff09": [[20, "c.i8_affine_s", false]], "i8_allgather_p\uff08c function\uff09": [[22, "c.i8_allgather_p", false]], "i8_allgather_s\uff08c function\uff09": [[22, "c.i8_allgather_s", false]], "i8_and_p\uff08c function\uff09": [[112, "c.i8_and_p", false]], "i8_and_s\uff08c function\uff09": [[112, "c.i8_and_s", false]], "i8_assign_p\uff08c function\uff09": [[27, "c.i8_assign_p", false]], "i8_assign_s\uff08c function\uff09": [[27, "c.i8_assign_s", false]], "i8_assignadd_p\uff08c function\uff09": [[28, "c.i8_assignadd_p", false]], "i8_assignadd_s\uff08c function\uff09": [[28, "c.i8_assignadd_s", false]], "i8_avgpool_fusion_p\uff08c function\uff09": [[31, "c.i8_avgpool_fusion_p", false]], "i8_avgpool_fusion_s\uff08c function\uff09": [[31, "c.i8_avgpool_fusion_s", false]], "i8_batchnorm_p\uff08c function\uff09": [[33, "c.i8_batchnorm_p", false]], "i8_batchnorm_s\uff08c function\uff09": [[33, "c.i8_batchnorm_s", false]], "i8_batchtospace_p\uff08c function\uff09": [[35, "c.i8_batchtospace_p", false]], "i8_batchtospace_s\uff08c function\uff09": [[35, "c.i8_batchtospace_s", false]], "i8_batchtospacend_p\uff08c function\uff09": [[36, "c.i8_batchtospacend_p", false]], "i8_batchtospacend_s\uff08c function\uff09": [[36, "c.i8_batchtospacend_s", false]], "i8_biasadd_p\uff08c function\uff09": [[37, "c.i8_biasadd_p", false]], "i8_biasadd_s\uff08c function\uff09": [[37, "c.i8_biasadd_s", false]], "i8_binarycrossentropy_p\uff08c function\uff09": [[39, "c.i8_binarycrossentropy_p", false]], "i8_binarycrossentropy_s\uff08c function\uff09": [[39, "c.i8_binarycrossentropy_s", false]], "i8_broadcastto_p\uff08c function\uff09": [[41, "c.i8_broadcastto_p", false]], "i8_broadcastto_s\uff08c function\uff09": [[41, "c.i8_broadcastto_s", false]], "i8_celu_p\uff08c function\uff09": [[12, "c.i8_celu_p", false]], "i8_celu_s\uff08c function\uff09": [[12, "c.i8_celu_s", false]], "i8_clip_p\uff08c function\uff09": [[12, "c.i8_clip_p", false], [44, "c.i8_clip_p", false]], "i8_clip_s\uff08c function\uff09": [[12, "c.i8_clip_s", false], [44, "c.i8_clip_s", false]], "i8_concat_p\uff08c function\uff09": [[45, "c.i8_concat_p", false]], "i8_concat_s\uff08c function\uff09": [[45, "c.i8_concat_s", false]], "i8_constant_of_shape_p\uff08c function\uff09": [[46, "c.i8_constant_of_shape_p", false]], "i8_constant_of_shape_s\uff08c function\uff09": [[46, "c.i8_constant_of_shape_s", false]], "i8_conv2d_p\uff08c function\uff09": [[47, "c.i8_conv2d_p", false]], "i8_conv2d_s\uff08c function\uff09": [[47, "c.i8_conv2d_s", false]], "i8_convtranspose_p\uff08c function\uff09": [[48, "c.i8_convtranspose_p", false]], "i8_convtranspose_s\uff08c function\uff09": [[48, "c.i8_convtranspose_s", false]], "i8_cos_p\uff08c function\uff09": [[51, "c.i8_cos_p", false]], "i8_cos_s\uff08c function\uff09": [[51, "c.i8_cos_s", false]], "i8_crop_and_resize_anycore\uff08c function\uff09": [[53, "c.i8_crop_and_resize_anycore", false]], "i8_cumsum_p\uff08c function\uff09": [[54, "c.i8_cumsum_p", false]], "i8_cumsum_s\uff08c function\uff09": [[54, "c.i8_cumsum_s", false]], "i8_depthtospace_p\uff08c function\uff09": [[59, "c.i8_depthtospace_p", false]], "i8_depthtospace_s\uff08c function\uff09": [[59, "c.i8_depthtospace_s", false]], "i8_detection_post_process_p\uff08c function\uff09": [[60, "c.i8_detection_post_process_p", false]], "i8_detection_post_process_s\uff08c function\uff09": [[60, "c.i8_detection_post_process_s", false]], "i8_div_fusion_p\uff08c function\uff09": [[61, "c.i8_div_fusion_p", false]], "i8_div_fusion_s\uff08c function\uff09": [[61, "c.i8_div_fusion_s", false]], "i8_eltwise_p\uff08c function\uff09": [[67, "c.i8_eltwise_p", false]], "i8_eltwise_s\uff08c function\uff09": [[67, "c.i8_eltwise_s", false]], "i8_elu_p\uff08c function\uff09": [[12, "c.i8_elu_p", false], [68, "c.i8_elu_p", false]], "i8_elu_s\uff08c function\uff09": [[12, "c.i8_elu_s", false], [68, "c.i8_elu_s", false]], "i8_equal_p\uff08c function\uff09": [[70, "c.i8_equal_p", false]], "i8_equal_s\uff08c function\uff09": [[70, "c.i8_equal_s", false]], "i8_expfusion_p\uff08c function\uff09": [[73, "c.i8_expfusion_p", false]], "i8_expfusion_s\uff08c function\uff09": [[73, "c.i8_expfusion_s", false]], "i8_extract_features_p\uff08c function\uff09": [[55, "c.i8_extract_features_p", false]], "i8_extract_features_s\uff08c function\uff09": [[55, "c.i8_extract_features_s", false]], "i8_fill_p\uff08c function\uff09": [[78, "c.i8_fill_p", false]], "i8_fill_s\uff08c function\uff09": [[78, "c.i8_fill_s", false]], "i8_formattranspose_p\uff08c function\uff09": [[85, "c.i8_formattranspose_p", false]], "i8_formattranspose_s\uff08c function\uff09": [[85, "c.i8_formattranspose_s", false]], "i8_fullconnection_p\uff08c function\uff09": [[86, "c.i8_fullconnection_p", false]], "i8_fullconnection_s\uff08c function\uff09": [[86, "c.i8_fullconnection_s", false]], "i8_gather_nd_p\uff08c function\uff09": [[89, "c.i8_gather_nd_p", false]], "i8_gather_nd_s\uff08c function\uff09": [[89, "c.i8_gather_nd_s", false]], "i8_gather_p\uff08c function\uff09": [[88, "c.i8_gather_p", false]], "i8_gather_s\uff08c function\uff09": [[88, "c.i8_gather_s", false]], "i8_gatherd_p\uff08c function\uff09": [[90, "c.i8_gatherd_p", false]], "i8_gatherd_s\uff08c function\uff09": [[90, "c.i8_gatherd_s", false]], "i8_gelu_p\uff08c function\uff09": [[12, "c.i8_gelu_p", false]], "i8_gelu_s\uff08c function\uff09": [[12, "c.i8_gelu_s", false]], "i8_glu_p\uff08c function\uff09": [[91, "c.i8_glu_p", false]], "i8_glu_s\uff08c function\uff09": [[91, "c.i8_glu_s", false]], "i8_greater_p\uff08c function\uff09": [[92, "c.i8_greater_p", false]], "i8_greater_s\uff08c function\uff09": [[92, "c.i8_greater_s", false]], "i8_greaterequal_p\uff08c function\uff09": [[93, "c.i8_greaterequal_p", false]], "i8_greaterequal_s\uff08c function\uff09": [[93, "c.i8_greaterequal_s", false]], "i8_gru_p\uff08c function\uff09": [[95, "c.i8_Gru_p", false]], "i8_gru_s\uff08c function\uff09": [[95, "c.i8_Gru_s", false]], "i8_hardshrink_p\uff08c function\uff09": [[12, "c.i8_hardshrink_p", false]], "i8_hardshrink_s\uff08c function\uff09": [[12, "c.i8_hardshrink_s", false]], "i8_hardtanh_p\uff08c function\uff09": [[12, "c.i8_hardtanh_p", false]], "i8_hardtanh_s\uff08c function\uff09": [[12, "c.i8_hardtanh_s", false]], "i8_hsigmoid_p\uff08c function\uff09": [[12, "c.i8_hsigmoid_p", false]], "i8_hsigmoid_s\uff08c function\uff09": [[12, "c.i8_hsigmoid_s", false]], "i8_hswish_p\uff08c function\uff09": [[12, "c.i8_hswish_p", false]], "i8_hswish_s\uff08c function\uff09": [[12, "c.i8_hswish_s", false]], "i8_invertpermutation_p\uff08c function\uff09": [[98, "c.i8_invertpermutation_p", false]], "i8_invertpermutation_s\uff08c function\uff09": [[98, "c.i8_invertpermutation_s", false]], "i8_isfinite_p\uff08c function\uff09": [[99, "c.i8_isfinite_p", false]], "i8_isfinite_s\uff08c function\uff09": [[99, "c.i8_isfinite_s", false]], "i8_layernormfusion_p\uff08c function\uff09": [[101, "c.i8_layernormfusion_p", false]], "i8_layernormfusion_s\uff08c function\uff09": [[101, "c.i8_layernormfusion_s", false]], "i8_leaky_relu_p\uff08c function\uff09": [[103, "c.i8_leaky_relu_p", false]], "i8_leaky_relu_s\uff08c function\uff09": [[103, "c.i8_leaky_relu_s", false]], "i8_less_p\uff08c function\uff09": [[104, "c.i8_less_p", false]], "i8_less_s\uff08c function\uff09": [[104, "c.i8_less_s", false]], "i8_lessequal_p\uff08c function\uff09": [[105, "c.i8_lessequal_p", false]], "i8_lessequal_s\uff08c function\uff09": [[105, "c.i8_lessequal_s", false]], "i8_log1p_p\uff08c function\uff09": [[108, "c.i8_log1p_p", false]], "i8_log1p_s\uff08c function\uff09": [[108, "c.i8_log1p_s", false]], "i8_logical_not_p\uff08c function\uff09": [[110, "c.i8_logical_not_p", false]], "i8_logical_not_s\uff08c function\uff09": [[110, "c.i8_logical_not_s", false]], "i8_logical_or_p\uff08c function\uff09": [[111, "c.i8_logical_or_p", false]], "i8_logical_or_s\uff08c function\uff09": [[111, "c.i8_logical_or_s", false]], "i8_logsoftmax_p\uff08c function\uff09": [[113, "c.i8_logsoftmax_p", false]], "i8_logsoftmax_s\uff08c function\uff09": [[113, "c.i8_logsoftmax_s", false]], "i8_lrelu_p\uff08c function\uff09": [[12, "c.i8_lrelu_p", false]], "i8_lrelu_s\uff08c function\uff09": [[12, "c.i8_lrelu_s", false]], "i8_lsh_projection_p\uff08c function\uff09": [[116, "c.i8_lsh_projection_p", false]], "i8_lsh_projection_s\uff08c function\uff09": [[116, "c.i8_lsh_projection_s", false]], "i8_maximum_p\uff08c function\uff09": [[122, "c.i8_maximum_p", false]], "i8_maximum_s\uff08c function\uff09": [[122, "c.i8_maximum_s", false]], "i8_minimum_p\uff08c function\uff09": [[127, "c.i8_minimum_p", false]], "i8_minimum_s\uff08c function\uff09": [[127, "c.i8_minimum_s", false]], "i8_mod_p\uff08c function\uff09": [[129, "c.i8_mod_p", false]], "i8_mod_s\uff08c function\uff09": [[129, "c.i8_mod_s", false]], "i8_mul_p\uff08c function\uff09": [[130, "c.i8_mul_p", false]], "i8_mul_s\uff08c function\uff09": [[130, "c.i8_mul_s", false]], "i8_neg_grad_p\uff08c function\uff09": [[133, "c.i8_neg_grad_p", false]], "i8_neg_grad_s\uff08c function\uff09": [[133, "c.i8_neg_grad_s", false]], "i8_neg_p\uff08c function\uff09": [[132, "c.i8_neg_p", false]], "i8_neg_s\uff08c function\uff09": [[132, "c.i8_neg_s", false]], "i8_nllloss_p\uff08c function\uff09": [[134, "c.i8_nllloss_p", false]], "i8_nllloss_s\uff08c function\uff09": [[134, "c.i8_nllloss_s", false]], "i8_non_max_suppression_p\uff08c function\uff09": [[136, "c.i8_non_max_suppression_p", false]], "i8_non_max_suppression_s\uff08c function\uff09": [[136, "c.i8_non_max_suppression_s", false]], "i8_nonzero_p\uff08c function\uff09": [[137, "c.i8_nonzero_p", false]], "i8_nonzero_s\uff08c function\uff09": [[137, "c.i8_nonzero_s", false]], "i8_not_equal_p\uff08c function\uff09": [[138, "c.i8_not_equal_p", false]], "i8_not_equal_s\uff08c function\uff09": [[138, "c.i8_not_equal_s", false]], "i8_onehot_p\uff08c function\uff09": [[139, "c.i8_onehot_p", false]], "i8_onehot_s\uff08c function\uff09": [[139, "c.i8_onehot_s", false]], "i8_ones_like_p\uff08c function\uff09": [[140, "c.i8_ones_like_p", false]], "i8_ones_like_s\uff08c function\uff09": [[140, "c.i8_ones_like_s", false]], "i8_padfusion_p\uff08c function\uff09": [[141, "c.i8_padfusion_p", false]], "i8_padfusion_s\uff08c function\uff09": [[141, "c.i8_padfusion_s", false]], "i8_pow_fusion_p\uff08c function\uff09": [[142, "c.i8_pow_fusion_p", false]], "i8_pow_fusion_s\uff08c function\uff09": [[142, "c.i8_pow_fusion_s", false]], "i8_prelufusion_p\uff08c function\uff09": [[144, "c.i8_prelufusion_p", false]], "i8_prelufusion_s\uff08c function\uff09": [[144, "c.i8_prelufusion_s", false]], "i8_raggedrange_p\uff08c function\uff09": [[147, "c.i8_raggedrange_p", false]], "i8_raggedrange_s\uff08c function\uff09": [[147, "c.i8_raggedrange_s", false]], "i8_range_p\uff08c function\uff09": [[150, "c.i8_range_p", false]], "i8_range_s\uff08c function\uff09": [[150, "c.i8_range_s", false]], "i8_real_div_p\uff08c function\uff09": [[152, "c.i8_real_div_p", false]], "i8_real_div_s\uff08c function\uff09": [[152, "c.i8_real_div_s", false]], "i8_reciprocal_p\uff08c function\uff09": [[153, "c.i8_reciprocal_p", false]], "i8_reciprocal_s\uff08c function\uff09": [[153, "c.i8_reciprocal_s", false]], "i8_reduce_p\uff08c function\uff09": [[154, "c.i8_reduce_p", false]], "i8_reduce_s\uff08c function\uff09": [[154, "c.i8_reduce_s", false]], "i8_reduceall_p\uff08c function\uff09": [[21, "c.i8_reduceall_p", false]], "i8_reduceall_s\uff08c function\uff09": [[21, "c.i8_reduceall_s", false]], "i8_reducescatter_p\uff08c function\uff09": [[155, "c.i8_reducescatter_p", false]], "i8_reducescatter_s\uff08c function\uff09": [[155, "c.i8_reducescatter_s", false]], "i8_relu6_p\uff08c function\uff09": [[12, "c.i8_relu6_p", false]], "i8_relu6_s\uff08c function\uff09": [[12, "c.i8_relu6_s", false]], "i8_relu_p\uff08c function\uff09": [[12, "c.i8_relu_p", false]], "i8_relu_s\uff08c function\uff09": [[12, "c.i8_relu_s", false]], "i8_reshape_p\uff08c function\uff09": [[156, "c.i8_reshape_p", false]], "i8_reshape_s\uff08c function\uff09": [[156, "c.i8_reshape_s", false]], "i8_resize_anycore\uff08c function\uff09": [[157, "c.i8_resize_anycore", false]], "i8_roipooling_p\uff08c function\uff09": [[162, "c.i8_roipooling_p", false]], "i8_roipooling_s\uff08c function\uff09": [[162, "c.i8_roipooling_s", false]], "i8_rsqrt_p\uff08c function\uff09": [[164, "c.i8_rsqrt_p", false]], "i8_rsqrt_s\uff08c function\uff09": [[164, "c.i8_rsqrt_s", false]], "i8_scalefusion_p\uff08c function\uff09": [[166, "c.i8_scalefusion_p", false]], "i8_scalefusion_s\uff08c function\uff09": [[166, "c.i8_scalefusion_s", false]], "i8_scatter_elements_p\uff08c function\uff09": [[167, "c.i8_scatter_elements_p", false]], "i8_scatter_elements_s\uff08c function\uff09": [[167, "c.i8_scatter_elements_s", false]], "i8_scatter_nd_p\uff08c function\uff09": [[168, "c.i8_scatter_nd_p", false]], "i8_scatter_nd_s\uff08c function\uff09": [[168, "c.i8_scatter_nd_s", false]], "i8_scatter_nd_update_p\uff08c function\uff09": [[169, "c.i8_scatter_nd_update_p", false]], "i8_scatter_nd_update_s\uff08c function\uff09": [[169, "c.i8_scatter_nd_update_s", false]], "i8_select_p\uff08c function\uff09": [[170, "c.i8_select_p", false]], "i8_select_s\uff08c function\uff09": [[170, "c.i8_select_s", false]], "i8_sigmoid_p\uff08c function\uff09": [[12, "c.i8_sigmoid_p", false]], "i8_sigmoid_s\uff08c function\uff09": [[12, "c.i8_sigmoid_s", false]], "i8_sigmoidcrossentropywithlogits_p\uff08c function\uff09": [[174, "c.i8_sigmoidcrossentropywithlogits_p", false]], "i8_sigmoidcrossentropywithlogits_s\uff08c function\uff09": [[174, "c.i8_sigmoidcrossentropywithlogits_s", false]], "i8_sin_p\uff08c function\uff09": [[175, "c.i8_sin_p", false]], "i8_sin_s\uff08c function\uff09": [[175, "c.i8_sin_s", false]], "i8_slice_p\uff08c function\uff09": [[178, "c.i8_slice_p", false]], "i8_slice_s\uff08c function\uff09": [[178, "c.i8_slice_s", false]], "i8_smoothl1loss_p\uff08c function\uff09": [[179, "c.i8_smoothl1loss_p", false]], "i8_smoothl1loss_s\uff08c function\uff09": [[179, "c.i8_smoothl1loss_s", false]], "i8_softmax_cross_entropy_with_logits_p\uff08c function\uff09": [[182, "c.i8_softmax_cross_entropy_with_logits_p", false]], "i8_softmax_cross_entropy_with_logits_s\uff08c function\uff09": [[182, "c.i8_softmax_cross_entropy_with_logits_s", false]], "i8_softmax_p\uff08c function\uff09": [[181, "c.i8_softmax_p", false]], "i8_softmax_s\uff08c function\uff09": [[181, "c.i8_softmax_s", false]], "i8_softplus_p\uff08c function\uff09": [[12, "c.i8_softplus_p", false]], "i8_softplus_s\uff08c function\uff09": [[12, "c.i8_softplus_s", false]], "i8_softshrink_p\uff08c function\uff09": [[12, "c.i8_softshrink_p", false]], "i8_softshrink_s\uff08c function\uff09": [[12, "c.i8_softshrink_s", false]], "i8_softsignopt_p\uff08c function\uff09": [[12, "c.i8_softsignopt_p", false]], "i8_softsignopt_s\uff08c function\uff09": [[12, "c.i8_softsignopt_s", false]], "i8_spacetobatch_p\uff08c function\uff09": [[183, "c.i8_spacetobatch_p", false]], "i8_spacetobatch_s\uff08c function\uff09": [[183, "c.i8_spacetobatch_s", false]], "i8_spacetobatchnd_p\uff08c function\uff09": [[184, "c.i8_spacetobatchnd_p", false]], "i8_spacetobatchnd_s\uff08c function\uff09": [[184, "c.i8_spacetobatchnd_s", false]], "i8_spacetodepth_p\uff08c function\uff09": [[185, "c.i8_spacetodepth_p", false]], "i8_spacetodepth_s\uff08c function\uff09": [[185, "c.i8_spacetodepth_s", false]], "i8_sparsefillemptyrows_p\uff08c function\uff09": [[187, "c.i8_sparsefillemptyrows_p", false]], "i8_sparsefillemptyrows_s\uff08c function\uff09": [[187, "c.i8_sparsefillemptyrows_s", false]], "i8_sparsetodense_p\uff08c function\uff09": [[190, "c.i8_sparsetodense_p", false]], "i8_sparsetodense_s\uff08c function\uff09": [[190, "c.i8_sparsetodense_s", false]], "i8_splice_p\uff08c function\uff09": [[191, "c.i8_splice_p", false]], "i8_splice_s\uff08c function\uff09": [[191, "c.i8_splice_s", false]], "i8_split_p\uff08c function\uff09": [[192, "c.i8_split_p", false]], "i8_split_s\uff08c function\uff09": [[192, "c.i8_split_s", false]], "i8_split_with_overlap_p\uff08c function\uff09": [[193, "c.i8_split_with_overlap_p", false]], "i8_split_with_overlap_s\uff08c function\uff09": [[193, "c.i8_split_with_overlap_s", false]], "i8_sqrt_p\uff08c function\uff09": [[194, "c.i8_sqrt_p", false]], "i8_sqrt_s\uff08c function\uff09": [[194, "c.i8_sqrt_s", false]], "i8_sqrtgrad_p\uff08c function\uff09": [[195, "c.i8_sqrtgrad_p", false]], "i8_sqrtgrad_s\uff08c function\uff09": [[195, "c.i8_sqrtgrad_s", false]], "i8_square_p\uff08c function\uff09": [[196, "c.i8_square_p", false]], "i8_square_s\uff08c function\uff09": [[196, "c.i8_square_s", false]], "i8_squaredifference_p\uff08c function\uff09": [[197, "c.i8_squaredifference_p", false]], "i8_squaredifference_s\uff08c function\uff09": [[197, "c.i8_squaredifference_s", false]], "i8_stack_p\uff08c function\uff09": [[199, "c.i8_stack_p", false]], "i8_stack_s\uff08c function\uff09": [[199, "c.i8_stack_s", false]], "i8_subrelu6_p\uff08c function\uff09": [[202, "c.i8_subrelu6_p", false]], "i8_subrelu6_s\uff08c function\uff09": [[202, "c.i8_subrelu6_s", false]], "i8_subrelu_p\uff08c function\uff09": [[202, "c.i8_subrelu_p", false]], "i8_subrelu_s\uff08c function\uff09": [[202, "c.i8_subrelu_s", false]], "i8_swish_p\uff08c function\uff09": [[12, "c.i8_swish_p", false]], "i8_swish_s\uff08c function\uff09": [[12, "c.i8_swish_s", false]], "i8_tanh_p\uff08c function\uff09": [[12, "c.i8_tanh_p", false]], "i8_tanh_s\uff08c function\uff09": [[12, "c.i8_tanh_s", false]], "i8_tensor_scatter_add_p\uff08c function\uff09": [[206, "c.i8_tensor_scatter_add_p", false]], "i8_tensor_scatter_add_s\uff08c function\uff09": [[206, "c.i8_tensor_scatter_add_s", false]], "i8_tensorarrayread_p\uff08c function\uff09": [[208, "c.i8_tensorarrayread_p", false]], "i8_tensorarrayread_s\uff08c function\uff09": [[208, "c.i8_tensorarrayread_s", false]], "i8_tensorlistfromtensor_p\uff08c function\uff09": [[210, "c.i8_tensorlistfromtensor_p", false]], "i8_tensorlistfromtensor_s\uff08c function\uff09": [[210, "c.i8_tensorlistfromtensor_s", false]], "i8_tile_p\uff08c function\uff09": [[215, "c.i8_tile_p", false]], "i8_tile_s\uff08c function\uff09": [[215, "c.i8_tile_s", false]], "i8_to_fp_dequant_p\uff08c function\uff09": [[146, "c.i8_to_fp_dequant_p", false]], "i8_to_fp_dequant_s\uff08c function\uff09": [[146, "c.i8_to_fp_dequant_s", false]], "i8_to_hp_dequant_p\uff08c function\uff09": [[146, "c.i8_to_hp_dequant_p", false]], "i8_to_hp_dequant_s\uff08c function\uff09": [[146, "c.i8_to_hp_dequant_s", false]], "i8_transpose_p\uff08c function\uff09": [[217, "c.i8_transpose_p", false]], "i8_transpose_s\uff08c function\uff09": [[217, "c.i8_transpose_s", false]], "i8_tril_p\uff08c function\uff09": [[218, "c.i8_tril_p", false]], "i8_tril_s\uff08c function\uff09": [[218, "c.i8_tril_s", false]], "i8_triu_p\uff08c function\uff09": [[219, "c.i8_triu_p", false]], "i8_triu_s\uff08c function\uff09": [[219, "c.i8_triu_s", false]], "i8_unique_p\uff08c function\uff09": [[221, "c.i8_Unique_p", false]], "i8_unique_s\uff08c function\uff09": [[221, "c.i8_Unique_s", false]], "i8_unsorted_segment_sum_p\uff08c function\uff09": [[222, "c.i8_unsorted_segment_sum_p", false]], "i8_unsorted_segment_sum_s\uff08c function\uff09": [[222, "c.i8_unsorted_segment_sum_s", false]], "i8_where_p\uff08c function\uff09": [[225, "c.i8_where_p", false]], "i8_where_s\uff08c function\uff09": [[225, "c.i8_where_s", false]], "i8_zerolike_p\uff08c function\uff09": [[226, "c.i8_zerolike_p", false]], "i8_zerolike_s\uff08c function\uff09": [[226, "c.i8_zerolike_s", false]], "mindradar.complexabs\uff08\u5185\u7f6e\u7c7b\uff09": [[6, "mindradar.ComplexAbs", false]], "mindradar.fft\uff08\u5185\u7f6e\u7c7b\uff09": [[7, "mindradar.FFT", false]], "mindradar.ifft\uff08\u5185\u7f6e\u7c7b\uff09": [[8, "mindradar.IFFT", false]], "rank_p\uff08c function\uff09": [[151, "c.rank_p", false]], "rank_s\uff08c function\uff09": [[151, "c.rank_s", false]], "shape\uff08c function\uff09": [[172, "c.shape", false]], "size_p\uff08c function\uff09": [[176, "c.size_p", false]], "size_s\uff08c function\uff09": [[176, "c.size_s", false]], "skipgram_p\uff08c function\uff09": [[177, "c.skipgram_p", false]], "skipgram_s\uff08c function\uff09": [[177, "c.skipgram_s", false]], "sparsereshape_p\uff08c function\uff09": [[188, "c.sparsereshape_p", false]], "sparsereshape_s\uff08c function\uff09": [[188, "c.sparsereshape_s", false]], "stridedslice\uff08c function\uff09": [[200, "c.stridedslice", false]], "switch_p\uff08c function\uff09": [[204, "c.switch_p", false]], "switch_s\uff08c function\uff09": [[204, "c.switch_s", false]], "switchlayer_p\uff08c function\uff09": [[205, "c.switchlayer_p", false]], "switchlayer_s\uff08c function\uff09": [[205, "c.switchlayer_s", false]], "tensorarrayread_p\uff08c function\uff09": [[207, "c.tensorarrayread_p", false]], "tensorarrayread_s\uff08c function\uff09": [[207, "c.tensorarrayread_s", false]], "tensorarraywrite_p\uff08c function\uff09": [[207, "c.tensorarraywrite_p", false]], "tensorarraywrite_s\uff08c function\uff09": [[207, "c.tensorarraywrite_s", false]], "tensorlistgetitem_p\uff08c function\uff09": [[211, "c.tensorlistgetitem_p", false]], "tensorlistgetitem_s\uff08c function\uff09": [[211, "c.tensorlistgetitem_s", false]], "tensorlistreserve\uff08c function\uff09": [[212, "c.Tensorlistreserve", false]], "tensorlistsetitem_p\uff08c function\uff09": [[213, "c.tensorlistsetitem_p", false]], "tensorlistsetitem_s\uff08c function\uff09": [[213, "c.tensorlistsetitem_s", false]], "tensorliststack_p\uff08c function\uff09": [[214, "c.tensorliststack_p", false]], "tensorliststack_s\uff08c function\uff09": [[214, "c.tensorliststack_s", false]], "unstack_p\uff08c function\uff09": [[224, "c.unstack_p", false]], "unstack_s\uff08c function\uff09": [[224, "c.unstack_s", false]]}, "objects": {"": [[80, 0, 1, "c.Flatten", "Flatten"], [212, 0, 1, "c.Tensorlistreserve", "Tensorlistreserve"], [52, 0, 1, "c.anytype_crop_anycore", "anytype_crop_anycore"], [72, 0, 1, "c.anytype_expand_dims_anycore", "anytype_expand_dims_anycore"], [79, 0, 1, "c.anytype_fillv2_p", "anytype_fillv2_p"], [79, 0, 1, "c.anytype_fillv2_s", "anytype_fillv2_s"], [159, 0, 1, "c.anytype_reverse_sequence_anycore", "anytype_reverse_sequence_anycore"], [160, 0, 1, "c.anytype_reversev2_anycore", "anytype_reversev2_anycore"], [198, 0, 1, "c.anytype_squeeze_anycore", "anytype_squeeze_anycore"], [223, 0, 1, "c.anytype_unsqueeze_anycore", "anytype_unsqueeze_anycore"], [26, 0, 1, "c.assert", "assert"], [221, 0, 1, "c.c128_Unique_p", "c128_Unique_p"], [221, 0, 1, "c.c128_Unique_s", "c128_Unique_s"], [10, 0, 1, "c.c128_abs_p", "c128_abs_p"], [10, 0, 1, "c.c128_abs_s", "c128_abs_s"], [17, 0, 1, "c.c128_addext_p", "c128_addext_p"], [17, 0, 1, "c.c128_addext_s", "c128_addext_s"], [19, 0, 1, "c.c128_addn_p", "c128_addn_p"], [19, 0, 1, "c.c128_addn_s", "c128_addn_s"], [17, 0, 1, "c.c128_addrelu6_p", "c128_addrelu6_p"], [17, 0, 1, "c.c128_addrelu6_s", "c128_addrelu6_s"], [17, 0, 1, "c.c128_addrelu_p", "c128_addrelu_p"], [17, 0, 1, "c.c128_addrelu_s", "c128_addrelu_s"], [22, 0, 1, "c.c128_allgather_p", "c128_allgather_p"], [22, 0, 1, "c.c128_allgather_s", "c128_allgather_s"], [27, 0, 1, "c.c128_assign_p", "c128_assign_p"], [27, 0, 1, "c.c128_assign_s", "c128_assign_s"], [28, 0, 1, "c.c128_assignadd_p", "c128_assignadd_p"], [28, 0, 1, "c.c128_assignadd_s", "c128_assignadd_s"], [35, 0, 1, "c.c128_batchtospace_p", "c128_batchtospace_p"], [35, 0, 1, "c.c128_batchtospace_s", "c128_batchtospace_s"], [36, 0, 1, "c.c128_batchtospacend_p", "c128_batchtospacend_p"], [36, 0, 1, "c.c128_batchtospacend_s", "c128_batchtospacend_s"], [37, 0, 1, "c.c128_biasadd_p", "c128_biasadd_p"], [37, 0, 1, "c.c128_biasadd_s", "c128_biasadd_s"], [41, 0, 1, "c.c128_broadcastto_p", "c128_broadcastto_p"], [41, 0, 1, "c.c128_broadcastto_s", "c128_broadcastto_s"], [45, 0, 1, "c.c128_concat_p", "c128_concat_p"], [45, 0, 1, "c.c128_concat_s", "c128_concat_s"], [46, 0, 1, "c.c128_constant_of_shape_p", "c128_constant_of_shape_p"], [46, 0, 1, "c.c128_constant_of_shape_s", "c128_constant_of_shape_s"], [54, 0, 1, "c.c128_cumsum_p", "c128_cumsum_p"], [54, 0, 1, "c.c128_cumsum_s", "c128_cumsum_s"], [59, 0, 1, "c.c128_depthtospace_p", "c128_depthtospace_p"], [59, 0, 1, "c.c128_depthtospace_s", "c128_depthtospace_s"], [61, 0, 1, "c.c128_div_fusion_p", "c128_div_fusion_p"], [61, 0, 1, "c.c128_div_fusion_s", "c128_div_fusion_s"], [67, 0, 1, "c.c128_eltwise_p", "c128_eltwise_p"], [67, 0, 1, "c.c128_eltwise_s", "c128_eltwise_s"], [70, 0, 1, "c.c128_equal_p", "c128_equal_p"], [70, 0, 1, "c.c128_equal_s", "c128_equal_s"], [73, 0, 1, "c.c128_expfusion_p", "c128_expfusion_p"], [73, 0, 1, "c.c128_expfusion_s", "c128_expfusion_s"], [55, 0, 1, "c.c128_extract_features_p", "c128_extract_features_p"], [55, 0, 1, "c.c128_extract_features_s", "c128_extract_features_s"], [78, 0, 1, "c.c128_fill_p", "c128_fill_p"], [78, 0, 1, "c.c128_fill_s", "c128_fill_s"], [85, 0, 1, "c.c128_formattranspose_p", "c128_formattranspose_p"], [85, 0, 1, "c.c128_formattranspose_s", "c128_formattranspose_s"], [89, 0, 1, "c.c128_gather_nd_p", "c128_gather_nd_p"], [89, 0, 1, "c.c128_gather_nd_s", "c128_gather_nd_s"], [88, 0, 1, "c.c128_gather_p", "c128_gather_p"], [88, 0, 1, "c.c128_gather_s", "c128_gather_s"], [90, 0, 1, "c.c128_gatherd_p", "c128_gatherd_p"], [90, 0, 1, "c.c128_gatherd_s", "c128_gatherd_s"], [99, 0, 1, "c.c128_isfinite_p", "c128_isfinite_p"], [99, 0, 1, "c.c128_isfinite_s", "c128_isfinite_s"], [121, 0, 1, "c.c128_matmulfusion_p", "c128_matmulfusion_p"], [121, 0, 1, "c.c128_matmulfusion_s", "c128_matmulfusion_s"], [130, 0, 1, "c.c128_mul_p", "c128_mul_p"], [130, 0, 1, "c.c128_mul_s", "c128_mul_s"], [133, 0, 1, "c.c128_neg_grad_p", "c128_neg_grad_p"], [133, 0, 1, "c.c128_neg_grad_s", "c128_neg_grad_s"], [132, 0, 1, "c.c128_neg_p", "c128_neg_p"], [132, 0, 1, "c.c128_neg_s", "c128_neg_s"], [137, 0, 1, "c.c128_nonzero_p", "c128_nonzero_p"], [137, 0, 1, "c.c128_nonzero_s", "c128_nonzero_s"], [138, 0, 1, "c.c128_not_equal_p", "c128_not_equal_p"], [138, 0, 1, "c.c128_not_equal_s", "c128_not_equal_s"], [139, 0, 1, "c.c128_onehot_p", "c128_onehot_p"], [139, 0, 1, "c.c128_onehot_s", "c128_onehot_s"], [140, 0, 1, "c.c128_ones_like_p", "c128_ones_like_p"], [140, 0, 1, "c.c128_ones_like_s", "c128_ones_like_s"], [141, 0, 1, "c.c128_padfusion_p", "c128_padfusion_p"], [141, 0, 1, "c.c128_padfusion_s", "c128_padfusion_s"], [152, 0, 1, "c.c128_real_div_p", "c128_real_div_p"], [152, 0, 1, "c.c128_real_div_s", "c128_real_div_s"], [153, 0, 1, "c.c128_reciprocal_p", "c128_reciprocal_p"], [153, 0, 1, "c.c128_reciprocal_s", "c128_reciprocal_s"], [21, 0, 1, "c.c128_reduceall_p", "c128_reduceall_p"], [21, 0, 1, "c.c128_reduceall_s", "c128_reduceall_s"], [156, 0, 1, "c.c128_reshape_p", "c128_reshape_p"], [156, 0, 1, "c.c128_reshape_s", "c128_reshape_s"], [161, 0, 1, "c.c128_rfft_p", "c128_rfft_p"], [161, 0, 1, "c.c128_rfft_s", "c128_rfft_s"], [164, 0, 1, "c.c128_rsqrt_p", "c128_rsqrt_p"], [164, 0, 1, "c.c128_rsqrt_s", "c128_rsqrt_s"], [167, 0, 1, "c.c128_scatter_elements_p", "c128_scatter_elements_p"], [167, 0, 1, "c.c128_scatter_elements_s", "c128_scatter_elements_s"], [168, 0, 1, "c.c128_scatter_nd_p", "c128_scatter_nd_p"], [168, 0, 1, "c.c128_scatter_nd_s", "c128_scatter_nd_s"], [169, 0, 1, "c.c128_scatter_nd_update_p", "c128_scatter_nd_update_p"], [169, 0, 1, "c.c128_scatter_nd_update_s", "c128_scatter_nd_update_s"], [170, 0, 1, "c.c128_select_p", "c128_select_p"], [170, 0, 1, "c.c128_select_s", "c128_select_s"], [178, 0, 1, "c.c128_slice_p", "c128_slice_p"], [178, 0, 1, "c.c128_slice_s", "c128_slice_s"], [183, 0, 1, "c.c128_spacetobatch_p", "c128_spacetobatch_p"], [183, 0, 1, "c.c128_spacetobatch_s", "c128_spacetobatch_s"], [184, 0, 1, "c.c128_spacetobatchnd_p", "c128_spacetobatchnd_p"], [184, 0, 1, "c.c128_spacetobatchnd_s", "c128_spacetobatchnd_s"], [185, 0, 1, "c.c128_spacetodepth_p", "c128_spacetodepth_p"], [185, 0, 1, "c.c128_spacetodepth_s", "c128_spacetodepth_s"], [187, 0, 1, "c.c128_sparsefillemptyrows_p", "c128_sparsefillemptyrows_p"], [187, 0, 1, "c.c128_sparsefillemptyrows_s", "c128_sparsefillemptyrows_s"], [189, 0, 1, "c.c128_sparsesegmentsum_p", "c128_sparsesegmentsum_p"], [189, 0, 1, "c.c128_sparsesegmentsum_s", "c128_sparsesegmentsum_s"], [190, 0, 1, "c.c128_sparsetodense_p", "c128_sparsetodense_p"], [190, 0, 1, "c.c128_sparsetodense_s", "c128_sparsetodense_s"], [191, 0, 1, "c.c128_splice_p", "c128_splice_p"], [191, 0, 1, "c.c128_splice_s", "c128_splice_s"], [192, 0, 1, "c.c128_split_p", "c128_split_p"], [192, 0, 1, "c.c128_split_s", "c128_split_s"], [193, 0, 1, "c.c128_split_with_overlap_p", "c128_split_with_overlap_p"], [193, 0, 1, "c.c128_split_with_overlap_s", "c128_split_with_overlap_s"], [194, 0, 1, "c.c128_sqrt_p", "c128_sqrt_p"], [194, 0, 1, "c.c128_sqrt_s", "c128_sqrt_s"], [195, 0, 1, "c.c128_sqrtgrad_p", "c128_sqrtgrad_p"], [195, 0, 1, "c.c128_sqrtgrad_s", "c128_sqrtgrad_s"], [196, 0, 1, "c.c128_square_p", "c128_square_p"], [196, 0, 1, "c.c128_square_s", "c128_square_s"], [197, 0, 1, "c.c128_squaredifference_p", "c128_squaredifference_p"], [197, 0, 1, "c.c128_squaredifference_s", "c128_squaredifference_s"], [199, 0, 1, "c.c128_stack_p", "c128_stack_p"], [199, 0, 1, "c.c128_stack_s", "c128_stack_s"], [202, 0, 1, "c.c128_subext_p", "c128_subext_p"], [202, 0, 1, "c.c128_subext_s", "c128_subext_s"], [202, 0, 1, "c.c128_subrelu6_p", "c128_subrelu6_p"], [202, 0, 1, "c.c128_subrelu6_s", "c128_subrelu6_s"], [202, 0, 1, "c.c128_subrelu_p", "c128_subrelu_p"], [202, 0, 1, "c.c128_subrelu_s", "c128_subrelu_s"], [206, 0, 1, "c.c128_tensor_scatter_add_p", "c128_tensor_scatter_add_p"], [206, 0, 1, "c.c128_tensor_scatter_add_s", "c128_tensor_scatter_add_s"], [208, 0, 1, "c.c128_tensorarrayread_p", "c128_tensorarrayread_p"], [208, 0, 1, "c.c128_tensorarrayread_s", "c128_tensorarrayread_s"], [210, 0, 1, "c.c128_tensorlistfromtensor_p", "c128_tensorlistfromtensor_p"], [210, 0, 1, "c.c128_tensorlistfromtensor_s", "c128_tensorlistfromtensor_s"], [215, 0, 1, "c.c128_tile_p", "c128_tile_p"], [215, 0, 1, "c.c128_tile_s", "c128_tile_s"], [217, 0, 1, "c.c128_transpose_p", "c128_transpose_p"], [217, 0, 1, "c.c128_transpose_s", "c128_transpose_s"], [218, 0, 1, "c.c128_tril_p", "c128_tril_p"], [218, 0, 1, "c.c128_tril_s", "c128_tril_s"], [219, 0, 1, "c.c128_triu_p", "c128_triu_p"], [219, 0, 1, "c.c128_triu_s", "c128_triu_s"], [222, 0, 1, "c.c128_unsorted_segment_sum_p", "c128_unsorted_segment_sum_p"], [222, 0, 1, "c.c128_unsorted_segment_sum_s", "c128_unsorted_segment_sum_s"], [225, 0, 1, "c.c128_where_p", "c128_where_p"], [225, 0, 1, "c.c128_where_s", "c128_where_s"], [226, 0, 1, "c.c128_zerolike_p", "c128_zerolike_p"], [226, 0, 1, "c.c128_zerolike_s", "c128_zerolike_s"], [221, 0, 1, "c.c64_Unique_p", "c64_Unique_p"], [221, 0, 1, "c.c64_Unique_s", "c64_Unique_s"], [10, 0, 1, "c.c64_abs_p", "c64_abs_p"], [10, 0, 1, "c.c64_abs_s", "c64_abs_s"], [17, 0, 1, "c.c64_addext_p", "c64_addext_p"], [17, 0, 1, "c.c64_addext_s", "c64_addext_s"], [19, 0, 1, "c.c64_addn_p", "c64_addn_p"], [19, 0, 1, "c.c64_addn_s", "c64_addn_s"], [17, 0, 1, "c.c64_addrelu6_p", "c64_addrelu6_p"], [17, 0, 1, "c.c64_addrelu6_s", "c64_addrelu6_s"], [17, 0, 1, "c.c64_addrelu_p", "c64_addrelu_p"], [17, 0, 1, "c.c64_addrelu_s", "c64_addrelu_s"], [22, 0, 1, "c.c64_allgather_p", "c64_allgather_p"], [22, 0, 1, "c.c64_allgather_s", "c64_allgather_s"], [27, 0, 1, "c.c64_assign_p", "c64_assign_p"], [27, 0, 1, "c.c64_assign_s", "c64_assign_s"], [28, 0, 1, "c.c64_assignadd_p", "c64_assignadd_p"], [28, 0, 1, "c.c64_assignadd_s", "c64_assignadd_s"], [35, 0, 1, "c.c64_batchtospace_p", "c64_batchtospace_p"], [35, 0, 1, "c.c64_batchtospace_s", "c64_batchtospace_s"], [36, 0, 1, "c.c64_batchtospacend_p", "c64_batchtospacend_p"], [36, 0, 1, "c.c64_batchtospacend_s", "c64_batchtospacend_s"], [37, 0, 1, "c.c64_biasadd_p", "c64_biasadd_p"], [37, 0, 1, "c.c64_biasadd_s", "c64_biasadd_s"], [41, 0, 1, "c.c64_broadcastto_p", "c64_broadcastto_p"], [41, 0, 1, "c.c64_broadcastto_s", "c64_broadcastto_s"], [45, 0, 1, "c.c64_concat_p", "c64_concat_p"], [45, 0, 1, "c.c64_concat_s", "c64_concat_s"], [46, 0, 1, "c.c64_constant_of_shape_p", "c64_constant_of_shape_p"], [46, 0, 1, "c.c64_constant_of_shape_s", "c64_constant_of_shape_s"], [54, 0, 1, "c.c64_cumsum_p", "c64_cumsum_p"], [54, 0, 1, "c.c64_cumsum_s", "c64_cumsum_s"], [59, 0, 1, "c.c64_depthtospace_p", "c64_depthtospace_p"], [59, 0, 1, "c.c64_depthtospace_s", "c64_depthtospace_s"], [61, 0, 1, "c.c64_div_fusion_p", "c64_div_fusion_p"], [61, 0, 1, "c.c64_div_fusion_s", "c64_div_fusion_s"], [67, 0, 1, "c.c64_eltwise_p", "c64_eltwise_p"], [67, 0, 1, "c.c64_eltwise_s", "c64_eltwise_s"], [70, 0, 1, "c.c64_equal_p", "c64_equal_p"], [70, 0, 1, "c.c64_equal_s", "c64_equal_s"], [73, 0, 1, "c.c64_expfusion_p", "c64_expfusion_p"], [73, 0, 1, "c.c64_expfusion_s", "c64_expfusion_s"], [55, 0, 1, "c.c64_extract_features_p", "c64_extract_features_p"], [55, 0, 1, "c.c64_extract_features_s", "c64_extract_features_s"], [78, 0, 1, "c.c64_fill_p", "c64_fill_p"], [78, 0, 1, "c.c64_fill_s", "c64_fill_s"], [85, 0, 1, "c.c64_formattranspose_p", "c64_formattranspose_p"], [85, 0, 1, "c.c64_formattranspose_s", "c64_formattranspose_s"], [89, 0, 1, "c.c64_gather_nd_p", "c64_gather_nd_p"], [89, 0, 1, "c.c64_gather_nd_s", "c64_gather_nd_s"], [88, 0, 1, "c.c64_gather_p", "c64_gather_p"], [88, 0, 1, "c.c64_gather_s", "c64_gather_s"], [90, 0, 1, "c.c64_gatherd_p", "c64_gatherd_p"], [90, 0, 1, "c.c64_gatherd_s", "c64_gatherd_s"], [99, 0, 1, "c.c64_isfinite_p", "c64_isfinite_p"], [99, 0, 1, "c.c64_isfinite_s", "c64_isfinite_s"], [121, 0, 1, "c.c64_matmulfusion_p", "c64_matmulfusion_p"], [121, 0, 1, "c.c64_matmulfusion_s", "c64_matmulfusion_s"], [130, 0, 1, "c.c64_mul_p", "c64_mul_p"], [130, 0, 1, "c.c64_mul_s", "c64_mul_s"], [133, 0, 1, "c.c64_neg_grad_p", "c64_neg_grad_p"], [133, 0, 1, "c.c64_neg_grad_s", "c64_neg_grad_s"], [132, 0, 1, "c.c64_neg_p", "c64_neg_p"], [132, 0, 1, "c.c64_neg_s", "c64_neg_s"], [137, 0, 1, "c.c64_nonzero_p", "c64_nonzero_p"], [137, 0, 1, "c.c64_nonzero_s", "c64_nonzero_s"], [138, 0, 1, "c.c64_not_equal_p", "c64_not_equal_p"], [138, 0, 1, "c.c64_not_equal_s", "c64_not_equal_s"], [139, 0, 1, "c.c64_onehot_p", "c64_onehot_p"], [139, 0, 1, "c.c64_onehot_s", "c64_onehot_s"], [140, 0, 1, "c.c64_ones_like_p", "c64_ones_like_p"], [140, 0, 1, "c.c64_ones_like_s", "c64_ones_like_s"], [141, 0, 1, "c.c64_padfusion_p", "c64_padfusion_p"], [141, 0, 1, "c.c64_padfusion_s", "c64_padfusion_s"], [152, 0, 1, "c.c64_real_div_p", "c64_real_div_p"], [152, 0, 1, "c.c64_real_div_s", "c64_real_div_s"], [153, 0, 1, "c.c64_reciprocal_p", "c64_reciprocal_p"], [153, 0, 1, "c.c64_reciprocal_s", "c64_reciprocal_s"], [21, 0, 1, "c.c64_reduceall_p", "c64_reduceall_p"], [21, 0, 1, "c.c64_reduceall_s", "c64_reduceall_s"], [156, 0, 1, "c.c64_reshape_p", "c64_reshape_p"], [156, 0, 1, "c.c64_reshape_s", "c64_reshape_s"], [161, 0, 1, "c.c64_rfft_p", "c64_rfft_p"], [161, 0, 1, "c.c64_rfft_s", "c64_rfft_s"], [164, 0, 1, "c.c64_rsqrt_p", "c64_rsqrt_p"], [164, 0, 1, "c.c64_rsqrt_s", "c64_rsqrt_s"], [167, 0, 1, "c.c64_scatter_elements_p", "c64_scatter_elements_p"], [167, 0, 1, "c.c64_scatter_elements_s", "c64_scatter_elements_s"], [168, 0, 1, "c.c64_scatter_nd_p", "c64_scatter_nd_p"], [168, 0, 1, "c.c64_scatter_nd_s", "c64_scatter_nd_s"], [169, 0, 1, "c.c64_scatter_nd_update_p", "c64_scatter_nd_update_p"], [169, 0, 1, "c.c64_scatter_nd_update_s", "c64_scatter_nd_update_s"], [170, 0, 1, "c.c64_select_p", "c64_select_p"], [170, 0, 1, "c.c64_select_s", "c64_select_s"], [178, 0, 1, "c.c64_slice_p", "c64_slice_p"], [178, 0, 1, "c.c64_slice_s", "c64_slice_s"], [183, 0, 1, "c.c64_spacetobatch_p", "c64_spacetobatch_p"], [183, 0, 1, "c.c64_spacetobatch_s", "c64_spacetobatch_s"], [184, 0, 1, "c.c64_spacetobatchnd_p", "c64_spacetobatchnd_p"], [184, 0, 1, "c.c64_spacetobatchnd_s", "c64_spacetobatchnd_s"], [185, 0, 1, "c.c64_spacetodepth_p", "c64_spacetodepth_p"], [185, 0, 1, "c.c64_spacetodepth_s", "c64_spacetodepth_s"], [187, 0, 1, "c.c64_sparsefillemptyrows_p", "c64_sparsefillemptyrows_p"], [187, 0, 1, "c.c64_sparsefillemptyrows_s", "c64_sparsefillemptyrows_s"], [189, 0, 1, "c.c64_sparsesegmentsum_p", "c64_sparsesegmentsum_p"], [189, 0, 1, "c.c64_sparsesegmentsum_s", "c64_sparsesegmentsum_s"], [190, 0, 1, "c.c64_sparsetodense_p", "c64_sparsetodense_p"], [190, 0, 1, "c.c64_sparsetodense_s", "c64_sparsetodense_s"], [191, 0, 1, "c.c64_splice_p", "c64_splice_p"], [191, 0, 1, "c.c64_splice_s", "c64_splice_s"], [192, 0, 1, "c.c64_split_p", "c64_split_p"], [192, 0, 1, "c.c64_split_s", "c64_split_s"], [193, 0, 1, "c.c64_split_with_overlap_p", "c64_split_with_overlap_p"], [193, 0, 1, "c.c64_split_with_overlap_s", "c64_split_with_overlap_s"], [194, 0, 1, "c.c64_sqrt_p", "c64_sqrt_p"], [194, 0, 1, "c.c64_sqrt_s", "c64_sqrt_s"], [195, 0, 1, "c.c64_sqrtgrad_p", "c64_sqrtgrad_p"], [195, 0, 1, "c.c64_sqrtgrad_s", "c64_sqrtgrad_s"], [196, 0, 1, "c.c64_square_p", "c64_square_p"], [196, 0, 1, "c.c64_square_s", "c64_square_s"], [197, 0, 1, "c.c64_squaredifference_p", "c64_squaredifference_p"], [197, 0, 1, "c.c64_squaredifference_s", "c64_squaredifference_s"], [199, 0, 1, "c.c64_stack_p", "c64_stack_p"], [199, 0, 1, "c.c64_stack_s", "c64_stack_s"], [202, 0, 1, "c.c64_subext_p", "c64_subext_p"], [202, 0, 1, "c.c64_subext_s", "c64_subext_s"], [202, 0, 1, "c.c64_subrelu6_p", "c64_subrelu6_p"], [202, 0, 1, "c.c64_subrelu6_s", "c64_subrelu6_s"], [202, 0, 1, "c.c64_subrelu_p", "c64_subrelu_p"], [202, 0, 1, "c.c64_subrelu_s", "c64_subrelu_s"], [206, 0, 1, "c.c64_tensor_scatter_add_p", "c64_tensor_scatter_add_p"], [206, 0, 1, "c.c64_tensor_scatter_add_s", "c64_tensor_scatter_add_s"], [208, 0, 1, "c.c64_tensorarrayread_p", "c64_tensorarrayread_p"], [208, 0, 1, "c.c64_tensorarrayread_s", "c64_tensorarrayread_s"], [210, 0, 1, "c.c64_tensorlistfromtensor_p", "c64_tensorlistfromtensor_p"], [210, 0, 1, "c.c64_tensorlistfromtensor_s", "c64_tensorlistfromtensor_s"], [215, 0, 1, "c.c64_tile_p", "c64_tile_p"], [215, 0, 1, "c.c64_tile_s", "c64_tile_s"], [217, 0, 1, "c.c64_transpose_p", "c64_transpose_p"], [217, 0, 1, "c.c64_transpose_s", "c64_transpose_s"], [218, 0, 1, "c.c64_tril_p", "c64_tril_p"], [218, 0, 1, "c.c64_tril_s", "c64_tril_s"], [219, 0, 1, "c.c64_triu_p", "c64_triu_p"], [219, 0, 1, "c.c64_triu_s", "c64_triu_s"], [222, 0, 1, "c.c64_unsorted_segment_sum_p", "c64_unsorted_segment_sum_p"], [222, 0, 1, "c.c64_unsorted_segment_sum_s", "c64_unsorted_segment_sum_s"], [225, 0, 1, "c.c64_where_p", "c64_where_p"], [225, 0, 1, "c.c64_where_s", "c64_where_s"], [226, 0, 1, "c.c64_zerolike_p", "c64_zerolike_p"], [226, 0, 1, "c.c64_zerolike_s", "c64_zerolike_s"], [42, 0, 1, "c.castc128Toc128_p", "castc128Toc128_p"], [42, 0, 1, "c.castc128Toc128_s", "castc128Toc128_s"], [42, 0, 1, "c.castc64Toc64_p", "castc64Toc64_p"], [42, 0, 1, "c.castc64Toc64_s", "castc64Toc64_s"], [42, 0, 1, "c.castdpTodp_p", "castdpTodp_p"], [42, 0, 1, "c.castdpTodp_s", "castdpTodp_s"], [42, 0, 1, "c.castdpTofp_p", "castdpTofp_p"], [42, 0, 1, "c.castdpTofp_s", "castdpTofp_s"], [42, 0, 1, "c.castfpTofp_p", "castfpTofp_p"], [42, 0, 1, "c.castfpTofp_s", "castfpTofp_s"], [42, 0, 1, "c.castfpToint16_p", "castfpToint16_p"], [42, 0, 1, "c.castfpToint16_s", "castfpToint16_s"], [42, 0, 1, "c.castfpToint32_p", "castfpToint32_p"], [42, 0, 1, "c.castfpToint32_s", "castfpToint32_s"], [42, 0, 1, "c.castfpToint8_p", "castfpToint8_p"], [42, 0, 1, "c.castfpToint8_s", "castfpToint8_s"], [42, 0, 1, "c.casti16Tofp_p", "casti16Tofp_p"], [42, 0, 1, "c.casti16Tofp_s", "casti16Tofp_s"], [42, 0, 1, "c.casti16Tointi16_p", "casti16Tointi16_p"], [42, 0, 1, "c.casti16Tointi16_s", "casti16Tointi16_s"], [42, 0, 1, "c.casti16Tointi32_p", "casti16Tointi32_p"], [42, 0, 1, "c.casti16Tointi32_s", "casti16Tointi32_s"], [42, 0, 1, "c.casti16Tointi8_p", "casti16Tointi8_p"], [42, 0, 1, "c.casti16Tointi8_s", "casti16Tointi8_s"], [42, 0, 1, "c.casti32Tofp_p", "casti32Tofp_p"], [42, 0, 1, "c.casti32Tofp_s", "casti32Tofp_s"], [42, 0, 1, "c.casti32Tointi16_p", "casti32Tointi16_p"], [42, 0, 1, "c.casti32Tointi16_s", "casti32Tointi16_s"], [42, 0, 1, "c.casti32Tointi32_p", "casti32Tointi32_p"], [42, 0, 1, "c.casti32Tointi32_s", "casti32Tointi32_s"], [42, 0, 1, "c.casti32Tointi8_p", "casti32Tointi8_p"], [42, 0, 1, "c.casti32Tointi8_s", "casti32Tointi8_s"], [42, 0, 1, "c.casti8Tofp_p", "casti8Tofp_p"], [42, 0, 1, "c.casti8Tofp_s", "casti8Tofp_s"], [42, 0, 1, "c.casti8Tointi16_p", "casti8Tointi16_p"], [42, 0, 1, "c.casti8Tointi16_s", "casti8Tointi16_s"], [42, 0, 1, "c.casti8Tointi32_p", "casti8Tointi32_p"], [42, 0, 1, "c.casti8Tointi32_s", "casti8Tointi32_s"], [42, 0, 1, "c.casti8Tointi8_p", "casti8Tointi8_p"], [42, 0, 1, "c.casti8Tointi8_s", "casti8Tointi8_s"], [56, 0, 1, "c.customnormalize_p", "customnormalize_p"], [56, 0, 1, "c.customnormalize_s", "customnormalize_s"], [57, 0, 1, "c.custompredict_p", "custompredict_p"], [57, 0, 1, "c.custompredict_s", "custompredict_s"], [221, 0, 1, "c.dp_Unique_p", "dp_Unique_p"], [221, 0, 1, "c.dp_Unique_s", "dp_Unique_s"], [10, 0, 1, "c.dp_abs_p", "dp_abs_p"], [10, 0, 1, "c.dp_abs_s", "dp_abs_s"], [17, 0, 1, "c.dp_addext_p", "dp_addext_p"], [17, 0, 1, "c.dp_addext_s", "dp_addext_s"], [19, 0, 1, "c.dp_addn_p", "dp_addn_p"], [19, 0, 1, "c.dp_addn_s", "dp_addn_s"], [17, 0, 1, "c.dp_addrelu6_p", "dp_addrelu6_p"], [17, 0, 1, "c.dp_addrelu6_s", "dp_addrelu6_s"], [17, 0, 1, "c.dp_addrelu_p", "dp_addrelu_p"], [17, 0, 1, "c.dp_addrelu_s", "dp_addrelu_s"], [22, 0, 1, "c.dp_allgather_p", "dp_allgather_p"], [22, 0, 1, "c.dp_allgather_s", "dp_allgather_s"], [112, 0, 1, "c.dp_and_p", "dp_and_p"], [112, 0, 1, "c.dp_and_s", "dp_and_s"], [27, 0, 1, "c.dp_assign_p", "dp_assign_p"], [27, 0, 1, "c.dp_assign_s", "dp_assign_s"], [28, 0, 1, "c.dp_assignadd_p", "dp_assignadd_p"], [28, 0, 1, "c.dp_assignadd_s", "dp_assignadd_s"], [35, 0, 1, "c.dp_batchtospace_p", "dp_batchtospace_p"], [35, 0, 1, "c.dp_batchtospace_s", "dp_batchtospace_s"], [36, 0, 1, "c.dp_batchtospacend_p", "dp_batchtospacend_p"], [36, 0, 1, "c.dp_batchtospacend_s", "dp_batchtospacend_s"], [37, 0, 1, "c.dp_biasadd_p", "dp_biasadd_p"], [37, 0, 1, "c.dp_biasadd_s", "dp_biasadd_s"], [41, 0, 1, "c.dp_broadcastto_p", "dp_broadcastto_p"], [41, 0, 1, "c.dp_broadcastto_s", "dp_broadcastto_s"], [43, 0, 1, "c.dp_ceil_p", "dp_ceil_p"], [43, 0, 1, "c.dp_ceil_s", "dp_ceil_s"], [44, 0, 1, "c.dp_clip_p", "dp_clip_p"], [44, 0, 1, "c.dp_clip_s", "dp_clip_s"], [45, 0, 1, "c.dp_concat_p", "dp_concat_p"], [45, 0, 1, "c.dp_concat_s", "dp_concat_s"], [46, 0, 1, "c.dp_constant_of_shape_p", "dp_constant_of_shape_p"], [46, 0, 1, "c.dp_constant_of_shape_s", "dp_constant_of_shape_s"], [51, 0, 1, "c.dp_cos_p", "dp_cos_p"], [51, 0, 1, "c.dp_cos_s", "dp_cos_s"], [54, 0, 1, "c.dp_cumsum_p", "dp_cumsum_p"], [54, 0, 1, "c.dp_cumsum_s", "dp_cumsum_s"], [59, 0, 1, "c.dp_depthtospace_p", "dp_depthtospace_p"], [59, 0, 1, "c.dp_depthtospace_s", "dp_depthtospace_s"], [61, 0, 1, "c.dp_div_fusion_p", "dp_div_fusion_p"], [61, 0, 1, "c.dp_div_fusion_s", "dp_div_fusion_s"], [67, 0, 1, "c.dp_eltwise_p", "dp_eltwise_p"], [67, 0, 1, "c.dp_eltwise_s", "dp_eltwise_s"], [70, 0, 1, "c.dp_equal_p", "dp_equal_p"], [70, 0, 1, "c.dp_equal_s", "dp_equal_s"], [71, 0, 1, "c.dp_erf_p", "dp_erf_p"], [71, 0, 1, "c.dp_erf_s", "dp_erf_s"], [73, 0, 1, "c.dp_expfusion_p", "dp_expfusion_p"], [73, 0, 1, "c.dp_expfusion_s", "dp_expfusion_s"], [55, 0, 1, "c.dp_extract_features_p", "dp_extract_features_p"], [55, 0, 1, "c.dp_extract_features_s", "dp_extract_features_s"], [78, 0, 1, "c.dp_fill_p", "dp_fill_p"], [78, 0, 1, "c.dp_fill_s", "dp_fill_s"], [82, 0, 1, "c.dp_floor_p", "dp_floor_p"], [82, 0, 1, "c.dp_floor_s", "dp_floor_s"], [83, 0, 1, "c.dp_floordiv_p", "dp_floordiv_p"], [83, 0, 1, "c.dp_floordiv_s", "dp_floordiv_s"], [84, 0, 1, "c.dp_floormod_p", "dp_floormod_p"], [84, 0, 1, "c.dp_floormod_s", "dp_floormod_s"], [85, 0, 1, "c.dp_formattranspose_p", "dp_formattranspose_p"], [85, 0, 1, "c.dp_formattranspose_s", "dp_formattranspose_s"], [89, 0, 1, "c.dp_gather_nd_p", "dp_gather_nd_p"], [89, 0, 1, "c.dp_gather_nd_s", "dp_gather_nd_s"], [88, 0, 1, "c.dp_gather_p", "dp_gather_p"], [88, 0, 1, "c.dp_gather_s", "dp_gather_s"], [90, 0, 1, "c.dp_gatherd_p", "dp_gatherd_p"], [90, 0, 1, "c.dp_gatherd_s", "dp_gatherd_s"], [92, 0, 1, "c.dp_greater_s", "dp_greater_s"], [93, 0, 1, "c.dp_greaterequal_s", "dp_greaterequal_s"], [99, 0, 1, "c.dp_isfinite_p", "dp_isfinite_p"], [99, 0, 1, "c.dp_isfinite_s", "dp_isfinite_s"], [104, 0, 1, "c.dp_less_p", "dp_less_p"], [104, 0, 1, "c.dp_less_s", "dp_less_s"], [105, 0, 1, "c.dp_lessequal_p", "dp_lessequal_p"], [105, 0, 1, "c.dp_lessequal_s", "dp_lessequal_s"], [108, 0, 1, "c.dp_log1p_p", "dp_log1p_p"], [108, 0, 1, "c.dp_log1p_s", "dp_log1p_s"], [110, 0, 1, "c.dp_logical_not_p", "dp_logical_not_p"], [110, 0, 1, "c.dp_logical_not_s", "dp_logical_not_s"], [111, 0, 1, "c.dp_logical_or_p", "dp_logical_or_p"], [111, 0, 1, "c.dp_logical_or_s", "dp_logical_or_s"], [116, 0, 1, "c.dp_lsh_projection_p", "dp_lsh_projection_p"], [116, 0, 1, "c.dp_lsh_projection_s", "dp_lsh_projection_s"], [121, 0, 1, "c.dp_matmulfusion_p", "dp_matmulfusion_p"], [121, 0, 1, "c.dp_matmulfusion_s", "dp_matmulfusion_s"], [122, 0, 1, "c.dp_maximum_p", "dp_maximum_p"], [122, 0, 1, "c.dp_maximum_s", "dp_maximum_s"], [124, 0, 1, "c.dp_maxpool_fusion_p", "dp_maxpool_fusion_p"], [124, 0, 1, "c.dp_maxpool_fusion_s", "dp_maxpool_fusion_s"], [125, 0, 1, "c.dp_maxpool_grad_p", "dp_maxpool_grad_p"], [125, 0, 1, "c.dp_maxpool_grad_s", "dp_maxpool_grad_s"], [127, 0, 1, "c.dp_minimum_p", "dp_minimum_p"], [127, 0, 1, "c.dp_minimum_s", "dp_minimum_s"], [129, 0, 1, "c.dp_mod_p", "dp_mod_p"], [129, 0, 1, "c.dp_mod_s", "dp_mod_s"], [130, 0, 1, "c.dp_mul_p", "dp_mul_p"], [130, 0, 1, "c.dp_mul_s", "dp_mul_s"], [133, 0, 1, "c.dp_neg_grad_p", "dp_neg_grad_p"], [133, 0, 1, "c.dp_neg_grad_s", "dp_neg_grad_s"], [132, 0, 1, "c.dp_neg_p", "dp_neg_p"], [132, 0, 1, "c.dp_neg_s", "dp_neg_s"], [137, 0, 1, "c.dp_nonzero_p", "dp_nonzero_p"], [137, 0, 1, "c.dp_nonzero_s", "dp_nonzero_s"], [138, 0, 1, "c.dp_not_equal_p", "dp_not_equal_p"], [138, 0, 1, "c.dp_not_equal_s", "dp_not_equal_s"], [139, 0, 1, "c.dp_onehot_p", "dp_onehot_p"], [139, 0, 1, "c.dp_onehot_s", "dp_onehot_s"], [140, 0, 1, "c.dp_ones_like_p", "dp_ones_like_p"], [140, 0, 1, "c.dp_ones_like_s", "dp_ones_like_s"], [141, 0, 1, "c.dp_padfusion_p", "dp_padfusion_p"], [141, 0, 1, "c.dp_padfusion_s", "dp_padfusion_s"], [142, 0, 1, "c.dp_pow_fusion_p", "dp_pow_fusion_p"], [142, 0, 1, "c.dp_pow_fusion_s", "dp_pow_fusion_s"], [147, 0, 1, "c.dp_raggedrange_p", "dp_raggedrange_p"], [147, 0, 1, "c.dp_raggedrange_s", "dp_raggedrange_s"], [150, 0, 1, "c.dp_range_p", "dp_range_p"], [150, 0, 1, "c.dp_range_s", "dp_range_s"], [152, 0, 1, "c.dp_real_div_p", "dp_real_div_p"], [152, 0, 1, "c.dp_real_div_s", "dp_real_div_s"], [153, 0, 1, "c.dp_reciprocal_p", "dp_reciprocal_p"], [153, 0, 1, "c.dp_reciprocal_s", "dp_reciprocal_s"], [154, 0, 1, "c.dp_reduce_p", "dp_reduce_p"], [154, 0, 1, "c.dp_reduce_s", "dp_reduce_s"], [21, 0, 1, "c.dp_reduceall_p", "dp_reduceall_p"], [21, 0, 1, "c.dp_reduceall_s", "dp_reduceall_s"], [155, 0, 1, "c.dp_reducescatter_p", "dp_reducescatter_p"], [155, 0, 1, "c.dp_reducescatter_s", "dp_reducescatter_s"], [156, 0, 1, "c.dp_reshape_p", "dp_reshape_p"], [156, 0, 1, "c.dp_reshape_s", "dp_reshape_s"], [163, 0, 1, "c.dp_round_p", "dp_round_p"], [163, 0, 1, "c.dp_round_s", "dp_round_s"], [164, 0, 1, "c.dp_rsqrt_p", "dp_rsqrt_p"], [164, 0, 1, "c.dp_rsqrt_s", "dp_rsqrt_s"], [166, 0, 1, "c.dp_scalefusion_p", "dp_scalefusion_p"], [166, 0, 1, "c.dp_scalefusion_s", "dp_scalefusion_s"], [167, 0, 1, "c.dp_scatter_elements_p", "dp_scatter_elements_p"], [167, 0, 1, "c.dp_scatter_elements_s", "dp_scatter_elements_s"], [168, 0, 1, "c.dp_scatter_nd_p", "dp_scatter_nd_p"], [168, 0, 1, "c.dp_scatter_nd_s", "dp_scatter_nd_s"], [169, 0, 1, "c.dp_scatter_nd_update_p", "dp_scatter_nd_update_p"], [169, 0, 1, "c.dp_scatter_nd_update_s", "dp_scatter_nd_update_s"], [170, 0, 1, "c.dp_select_p", "dp_select_p"], [170, 0, 1, "c.dp_select_s", "dp_select_s"], [175, 0, 1, "c.dp_sin_p", "dp_sin_p"], [175, 0, 1, "c.dp_sin_s", "dp_sin_s"], [178, 0, 1, "c.dp_slice_p", "dp_slice_p"], [178, 0, 1, "c.dp_slice_s", "dp_slice_s"], [183, 0, 1, "c.dp_spacetobatch_p", "dp_spacetobatch_p"], [183, 0, 1, "c.dp_spacetobatch_s", "dp_spacetobatch_s"], [184, 0, 1, "c.dp_spacetobatchnd_p", "dp_spacetobatchnd_p"], [184, 0, 1, "c.dp_spacetobatchnd_s", "dp_spacetobatchnd_s"], [185, 0, 1, "c.dp_spacetodepth_p", "dp_spacetodepth_p"], [185, 0, 1, "c.dp_spacetodepth_s", "dp_spacetodepth_s"], [187, 0, 1, "c.dp_sparsefillemptyrows_p", "dp_sparsefillemptyrows_p"], [187, 0, 1, "c.dp_sparsefillemptyrows_s", "dp_sparsefillemptyrows_s"], [189, 0, 1, "c.dp_sparsesegmentsum_p", "dp_sparsesegmentsum_p"], [189, 0, 1, "c.dp_sparsesegmentsum_s", "dp_sparsesegmentsum_s"], [190, 0, 1, "c.dp_sparsetodense_p", "dp_sparsetodense_p"], [190, 0, 1, "c.dp_sparsetodense_s", "dp_sparsetodense_s"], [191, 0, 1, "c.dp_splice_p", "dp_splice_p"], [191, 0, 1, "c.dp_splice_s", "dp_splice_s"], [192, 0, 1, "c.dp_split_p", "dp_split_p"], [192, 0, 1, "c.dp_split_s", "dp_split_s"], [193, 0, 1, "c.dp_split_with_overlap_p", "dp_split_with_overlap_p"], [193, 0, 1, "c.dp_split_with_overlap_s", "dp_split_with_overlap_s"], [194, 0, 1, "c.dp_sqrt_p", "dp_sqrt_p"], [194, 0, 1, "c.dp_sqrt_s", "dp_sqrt_s"], [195, 0, 1, "c.dp_sqrtgrad_p", "dp_sqrtgrad_p"], [195, 0, 1, "c.dp_sqrtgrad_s", "dp_sqrtgrad_s"], [196, 0, 1, "c.dp_square_p", "dp_square_p"], [196, 0, 1, "c.dp_square_s", "dp_square_s"], [197, 0, 1, "c.dp_squaredifference_p", "dp_squaredifference_p"], [197, 0, 1, "c.dp_squaredifference_s", "dp_squaredifference_s"], [199, 0, 1, "c.dp_stack_p", "dp_stack_p"], [199, 0, 1, "c.dp_stack_s", "dp_stack_s"], [202, 0, 1, "c.dp_subext_p", "dp_subext_p"], [202, 0, 1, "c.dp_subext_s", "dp_subext_s"], [202, 0, 1, "c.dp_subrelu6_p", "dp_subrelu6_p"], [202, 0, 1, "c.dp_subrelu6_s", "dp_subrelu6_s"], [202, 0, 1, "c.dp_subrelu_p", "dp_subrelu_p"], [202, 0, 1, "c.dp_subrelu_s", "dp_subrelu_s"], [206, 0, 1, "c.dp_tensor_scatter_add_p", "dp_tensor_scatter_add_p"], [206, 0, 1, "c.dp_tensor_scatter_add_s", "dp_tensor_scatter_add_s"], [208, 0, 1, "c.dp_tensorarrayread_p", "dp_tensorarrayread_p"], [208, 0, 1, "c.dp_tensorarrayread_s", "dp_tensorarrayread_s"], [210, 0, 1, "c.dp_tensorlistfromtensor_p", "dp_tensorlistfromtensor_p"], [210, 0, 1, "c.dp_tensorlistfromtensor_s", "dp_tensorlistfromtensor_s"], [215, 0, 1, "c.dp_tile_p", "dp_tile_p"], [215, 0, 1, "c.dp_tile_s", "dp_tile_s"], [217, 0, 1, "c.dp_transpose_p", "dp_transpose_p"], [217, 0, 1, "c.dp_transpose_s", "dp_transpose_s"], [218, 0, 1, "c.dp_tril_p", "dp_tril_p"], [218, 0, 1, "c.dp_tril_s", "dp_tril_s"], [219, 0, 1, "c.dp_triu_p", "dp_triu_p"], [219, 0, 1, "c.dp_triu_s", "dp_triu_s"], [222, 0, 1, "c.dp_unsorted_segment_sum_p", "dp_unsorted_segment_sum_p"], [222, 0, 1, "c.dp_unsorted_segment_sum_s", "dp_unsorted_segment_sum_s"], [225, 0, 1, "c.dp_where_p", "dp_where_p"], [225, 0, 1, "c.dp_where_s", "dp_where_s"], [226, 0, 1, "c.dp_zerolike_p", "dp_zerolike_p"], [226, 0, 1, "c.dp_zerolike_s", "dp_zerolike_s"], [95, 0, 1, "c.fp_Gru_p", "fp_Gru_p"], [95, 0, 1, "c.fp_Gru_s", "fp_Gru_s"], [117, 0, 1, "c.fp_Lstm_p", "fp_Lstm_p"], [117, 0, 1, "c.fp_Lstm_s", "fp_Lstm_s"], [66, 0, 1, "c.fp_QuantData_p", "fp_QuantData_p"], [66, 0, 1, "c.fp_QuantData_s", "fp_QuantData_s"], [221, 0, 1, "c.fp_Unique_p", "fp_Unique_p"], [221, 0, 1, "c.fp_Unique_s", "fp_Unique_s"], [10, 0, 1, "c.fp_abs_p", "fp_abs_p"], [10, 0, 1, "c.fp_abs_s", "fp_abs_s"], [11, 0, 1, "c.fp_absgrad_p", "fp_absgrad_p"], [11, 0, 1, "c.fp_absgrad_s", "fp_absgrad_s"], [14, 0, 1, "c.fp_adam_p", "fp_adam_p"], [14, 0, 1, "c.fp_adam_s", "fp_adam_s"], [15, 0, 1, "c.fp_adamweightdecay_p", "fp_adamweightdecay_p"], [15, 0, 1, "c.fp_adamweightdecay_s", "fp_adamweightdecay_s"], [16, 0, 1, "c.fp_adder_p", "fp_adder_p"], [16, 0, 1, "c.fp_adder_s", "fp_adder_s"], [17, 0, 1, "c.fp_addext_p", "fp_addext_p"], [17, 0, 1, "c.fp_addext_s", "fp_addext_s"], [18, 0, 1, "c.fp_addgrad_p", "fp_addgrad_p"], [18, 0, 1, "c.fp_addgrad_s", "fp_addgrad_s"], [19, 0, 1, "c.fp_addn_p", "fp_addn_p"], [19, 0, 1, "c.fp_addn_s", "fp_addn_s"], [17, 0, 1, "c.fp_addrelu6_p", "fp_addrelu6_p"], [17, 0, 1, "c.fp_addrelu6_s", "fp_addrelu6_s"], [17, 0, 1, "c.fp_addrelu_p", "fp_addrelu_p"], [17, 0, 1, "c.fp_addrelu_s", "fp_addrelu_s"], [20, 0, 1, "c.fp_affine_p", "fp_affine_p"], [20, 0, 1, "c.fp_affine_s", "fp_affine_s"], [22, 0, 1, "c.fp_allgather_p", "fp_allgather_p"], [22, 0, 1, "c.fp_allgather_s", "fp_allgather_s"], [112, 0, 1, "c.fp_and_p", "fp_and_p"], [112, 0, 1, "c.fp_and_s", "fp_and_s"], [23, 0, 1, "c.fp_applymomentum_p", "fp_applymomentum_p"], [23, 0, 1, "c.fp_applymomentum_s", "fp_applymomentum_s"], [24, 0, 1, "c.fp_argmax_p", "fp_argmax_p"], [24, 0, 1, "c.fp_argmax_s", "fp_argmax_s"], [25, 0, 1, "c.fp_argmin_p", "fp_argmin_p"], [25, 0, 1, "c.fp_argmin_s", "fp_argmin_s"], [27, 0, 1, "c.fp_assign_p", "fp_assign_p"], [27, 0, 1, "c.fp_assign_s", "fp_assign_s"], [28, 0, 1, "c.fp_assignadd_p", "fp_assignadd_p"], [28, 0, 1, "c.fp_assignadd_s", "fp_assignadd_s"], [29, 0, 1, "c.fp_attention_p", "fp_attention_p"], [29, 0, 1, "c.fp_attention_s", "fp_attention_s"], [30, 0, 1, "c.fp_audio_spectrogram_p", "fp_audio_spectrogram_p"], [30, 0, 1, "c.fp_audio_spectrogram_s", "fp_audio_spectrogram_s"], [31, 0, 1, "c.fp_avgpool_fusion_p", "fp_avgpool_fusion_p"], [31, 0, 1, "c.fp_avgpool_fusion_s", "fp_avgpool_fusion_s"], [32, 0, 1, "c.fp_avgpoolinggrad_p", "fp_avgpoolinggrad_p"], [32, 0, 1, "c.fp_avgpoolinggrad_s", "fp_avgpoolinggrad_s"], [33, 0, 1, "c.fp_batchnorm_p", "fp_batchnorm_p"], [33, 0, 1, "c.fp_batchnorm_s", "fp_batchnorm_s"], [34, 0, 1, "c.fp_batchnormgrad_p", "fp_batchnormgrad_p"], [34, 0, 1, "c.fp_batchnormgrad_s", "fp_batchnormgrad_s"], [35, 0, 1, "c.fp_batchtospace_p", "fp_batchtospace_p"], [35, 0, 1, "c.fp_batchtospace_s", "fp_batchtospace_s"], [36, 0, 1, "c.fp_batchtospacend_p", "fp_batchtospacend_p"], [36, 0, 1, "c.fp_batchtospacend_s", "fp_batchtospacend_s"], [37, 0, 1, "c.fp_biasadd_p", "fp_biasadd_p"], [37, 0, 1, "c.fp_biasadd_s", "fp_biasadd_s"], [38, 0, 1, "c.fp_biasaddgrad_p", "fp_biasaddgrad_p"], [38, 0, 1, "c.fp_biasaddgrad_s", "fp_biasaddgrad_s"], [39, 0, 1, "c.fp_binarycrossentropy_p", "fp_binarycrossentropy_p"], [39, 0, 1, "c.fp_binarycrossentropy_s", "fp_binarycrossentropy_s"], [40, 0, 1, "c.fp_binarycrossentropygrad_p", "fp_binarycrossentropygrad_p"], [40, 0, 1, "c.fp_binarycrossentropygrad_s", "fp_binarycrossentropygrad_s"], [41, 0, 1, "c.fp_broadcastto_p", "fp_broadcastto_p"], [41, 0, 1, "c.fp_broadcastto_s", "fp_broadcastto_s"], [43, 0, 1, "c.fp_ceil_p", "fp_ceil_p"], [43, 0, 1, "c.fp_ceil_s", "fp_ceil_s"], [12, 0, 1, "c.fp_celu_p", "fp_celu_p"], [12, 0, 1, "c.fp_celu_s", "fp_celu_s"], [12, 0, 1, "c.fp_clip_p", "fp_clip_p"], [12, 0, 1, "c.fp_clip_s", "fp_clip_s"], [45, 0, 1, "c.fp_concat_p", "fp_concat_p"], [45, 0, 1, "c.fp_concat_s", "fp_concat_s"], [46, 0, 1, "c.fp_constant_of_shape_p", "fp_constant_of_shape_p"], [46, 0, 1, "c.fp_constant_of_shape_s", "fp_constant_of_shape_s"], [47, 0, 1, "c.fp_conv2d_p", "fp_conv2d_p"], [47, 0, 1, "c.fp_conv2d_s", "fp_conv2d_s"], [49, 0, 1, "c.fp_conv2dbackpropfilterfusion_p", "fp_conv2dbackpropfilterfusion_p"], [49, 0, 1, "c.fp_conv2dbackpropfilterfusion_s", "fp_conv2dbackpropfilterfusion_s"], [50, 0, 1, "c.fp_conv2dbackpropinputfusion_p", "fp_conv2dbackpropinputfusion_p"], [50, 0, 1, "c.fp_conv2dbackpropinputfusion_s", "fp_conv2dbackpropinputfusion_s"], [48, 0, 1, "c.fp_convtranspose_p", "fp_convtranspose_p"], [48, 0, 1, "c.fp_convtranspose_s", "fp_convtranspose_s"], [51, 0, 1, "c.fp_cos_p", "fp_cos_p"], [51, 0, 1, "c.fp_cos_s", "fp_cos_s"], [53, 0, 1, "c.fp_crop_and_resize_anycore", "fp_crop_and_resize_anycore"], [54, 0, 1, "c.fp_cumsum_p", "fp_cumsum_p"], [54, 0, 1, "c.fp_cumsum_s", "fp_cumsum_s"], [58, 0, 1, "c.fp_deconvgradfilter_p", "fp_deconvgradfilter_p"], [58, 0, 1, "c.fp_deconvgradfilter_s", "fp_deconvgradfilter_s"], [59, 0, 1, "c.fp_depthtospace_p", "fp_depthtospace_p"], [59, 0, 1, "c.fp_depthtospace_s", "fp_depthtospace_s"], [60, 0, 1, "c.fp_detection_post_process_p", "fp_detection_post_process_p"], [60, 0, 1, "c.fp_detection_post_process_s", "fp_detection_post_process_s"], [61, 0, 1, "c.fp_div_fusion_p", "fp_div_fusion_p"], [61, 0, 1, "c.fp_div_fusion_s", "fp_div_fusion_s"], [63, 0, 1, "c.fp_dropout_p", "fp_dropout_p"], [63, 0, 1, "c.fp_dropout_s", "fp_dropout_s"], [64, 0, 1, "c.fp_dropoutgrad_p", "fp_dropoutgrad_p"], [64, 0, 1, "c.fp_dropoutgrad_s", "fp_dropoutgrad_s"], [67, 0, 1, "c.fp_eltwise_p", "fp_eltwise_p"], [67, 0, 1, "c.fp_eltwise_s", "fp_eltwise_s"], [13, 0, 1, "c.fp_elu_grad_p", "fp_elu_grad_p"], [13, 0, 1, "c.fp_elu_grad_s", "fp_elu_grad_s"], [12, 0, 1, "c.fp_elu_p", "fp_elu_p"], [12, 0, 1, "c.fp_elu_s", "fp_elu_s"], [69, 0, 1, "c.fp_embeddinglookup_p", "fp_embeddinglookup_p"], [69, 0, 1, "c.fp_embeddinglookup_s", "fp_embeddinglookup_s"], [70, 0, 1, "c.fp_equal_p", "fp_equal_p"], [70, 0, 1, "c.fp_equal_s", "fp_equal_s"], [71, 0, 1, "c.fp_erf_p", "fp_erf_p"], [71, 0, 1, "c.fp_erf_s", "fp_erf_s"], [73, 0, 1, "c.fp_expfusion_p", "fp_expfusion_p"], [73, 0, 1, "c.fp_expfusion_s", "fp_expfusion_s"], [55, 0, 1, "c.fp_extract_features_p", "fp_extract_features_p"], [55, 0, 1, "c.fp_extract_features_s", "fp_extract_features_s"], [74, 0, 1, "c.fp_fake_quant_with_min_max_vars_p", "fp_fake_quant_with_min_max_vars_p"], [75, 0, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_p", "fp_fake_quant_with_min_max_vars_per_channel_p"], [75, 0, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_s", "fp_fake_quant_with_min_max_vars_per_channel_s"], [74, 0, 1, "c.fp_fake_quant_with_min_max_vars_s", "fp_fake_quant_with_min_max_vars_s"], [78, 0, 1, "c.fp_fill_p", "fp_fill_p"], [78, 0, 1, "c.fp_fill_s", "fp_fill_s"], [81, 0, 1, "c.fp_flattengrad_p", "fp_flattengrad_p"], [81, 0, 1, "c.fp_flattengrad_s", "fp_flattengrad_s"], [82, 0, 1, "c.fp_floor_p", "fp_floor_p"], [82, 0, 1, "c.fp_floor_s", "fp_floor_s"], [83, 0, 1, "c.fp_floordiv_p", "fp_floordiv_p"], [83, 0, 1, "c.fp_floordiv_s", "fp_floordiv_s"], [84, 0, 1, "c.fp_floormod_p", "fp_floormod_p"], [84, 0, 1, "c.fp_floormod_s", "fp_floormod_s"], [85, 0, 1, "c.fp_formattranspose_p", "fp_formattranspose_p"], [85, 0, 1, "c.fp_formattranspose_s", "fp_formattranspose_s"], [86, 0, 1, "c.fp_fullconnection_p", "fp_fullconnection_p"], [86, 0, 1, "c.fp_fullconnection_s", "fp_fullconnection_s"], [87, 0, 1, "c.fp_fusedbatchnorm_p", "fp_fusedbatchnorm_p"], [87, 0, 1, "c.fp_fusedbatchnorm_s", "fp_fusedbatchnorm_s"], [89, 0, 1, "c.fp_gather_nd_p", "fp_gather_nd_p"], [89, 0, 1, "c.fp_gather_nd_s", "fp_gather_nd_s"], [88, 0, 1, "c.fp_gather_p", "fp_gather_p"], [88, 0, 1, "c.fp_gather_s", "fp_gather_s"], [90, 0, 1, "c.fp_gatherd_p", "fp_gatherd_p"], [90, 0, 1, "c.fp_gatherd_s", "fp_gatherd_s"], [13, 0, 1, "c.fp_gelu_grad_p", "fp_gelu_grad_p"], [13, 0, 1, "c.fp_gelu_grad_s", "fp_gelu_grad_s"], [12, 0, 1, "c.fp_gelu_p", "fp_gelu_p"], [12, 0, 1, "c.fp_gelu_s", "fp_gelu_s"], [91, 0, 1, "c.fp_glu_p", "fp_glu_p"], [91, 0, 1, "c.fp_glu_s", "fp_glu_s"], [62, 0, 1, "c.fp_graddiv1l_p", "fp_graddiv1l_p"], [62, 0, 1, "c.fp_graddiv1l_s", "fp_graddiv1l_s"], [62, 0, 1, "c.fp_graddiv2l_p", "fp_graddiv2l_p"], [62, 0, 1, "c.fp_graddiv2l_s", "fp_graddiv2l_s"], [62, 0, 1, "c.fp_graddiv_p", "fp_graddiv_p"], [62, 0, 1, "c.fp_graddiv_s", "fp_graddiv_s"], [131, 0, 1, "c.fp_gradmul1l_p", "fp_gradmul1l_p"], [131, 0, 1, "c.fp_gradmul1l_s", "fp_gradmul1l_s"], [131, 0, 1, "c.fp_gradmul2l_p", "fp_gradmul2l_p"], [131, 0, 1, "c.fp_gradmul2l_s", "fp_gradmul2l_s"], [131, 0, 1, "c.fp_gradmul_p", "fp_gradmul_p"], [131, 0, 1, "c.fp_gradmul_s", "fp_gradmul_s"], [92, 0, 1, "c.fp_greater_p", "fp_greater_p"], [92, 0, 1, "c.fp_greater_s", "fp_greater_s"], [93, 0, 1, "c.fp_greaterequal_p", "fp_greaterequal_p"], [93, 0, 1, "c.fp_greaterequal_s", "fp_greaterequal_s"], [94, 0, 1, "c.fp_groupnormfusion_p", "fp_groupnormfusion_p"], [94, 0, 1, "c.fp_groupnormfusion_s", "fp_groupnormfusion_s"], [13, 0, 1, "c.fp_h_sigmoid_grad_p", "fp_h_sigmoid_grad_p"], [13, 0, 1, "c.fp_h_sigmoid_grad_s", "fp_h_sigmoid_grad_s"], [13, 0, 1, "c.fp_h_swish_grad_p", "fp_h_swish_grad_p"], [13, 0, 1, "c.fp_h_swish_grad_s", "fp_h_swish_grad_s"], [13, 0, 1, "c.fp_hard_shrink_grad_p", "fp_hard_shrink_grad_p"], [13, 0, 1, "c.fp_hard_shrink_grad_s", "fp_hard_shrink_grad_s"], [12, 0, 1, "c.fp_hardshrink_p", "fp_hardshrink_p"], [12, 0, 1, "c.fp_hardshrink_s", "fp_hardshrink_s"], [12, 0, 1, "c.fp_hardtanh_p", "fp_hardtanh_p"], [12, 0, 1, "c.fp_hardtanh_s", "fp_hardtanh_s"], [12, 0, 1, "c.fp_hsigmoid_p", "fp_hsigmoid_p"], [12, 0, 1, "c.fp_hsigmoid_s", "fp_hsigmoid_s"], [12, 0, 1, "c.fp_hswish_p", "fp_hswish_p"], [12, 0, 1, "c.fp_hswish_s", "fp_hswish_s"], [97, 0, 1, "c.fp_instancenorm_p", "fp_instancenorm_p"], [97, 0, 1, "c.fp_instancenorm_s", "fp_instancenorm_s"], [99, 0, 1, "c.fp_isfinite_p", "fp_isfinite_p"], [99, 0, 1, "c.fp_isfinite_s", "fp_isfinite_s"], [100, 0, 1, "c.fp_l2norm_p", "fp_l2norm_p"], [100, 0, 1, "c.fp_l2norm_s", "fp_l2norm_s"], [13, 0, 1, "c.fp_l_relu_grad_p", "fp_l_relu_grad_p"], [13, 0, 1, "c.fp_l_relu_grad_s", "fp_l_relu_grad_s"], [101, 0, 1, "c.fp_layernormfusion_p", "fp_layernormfusion_p"], [101, 0, 1, "c.fp_layernormfusion_s", "fp_layernormfusion_s"], [102, 0, 1, "c.fp_layernormgrad_p", "fp_layernormgrad_p"], [102, 0, 1, "c.fp_layernormgrad_s", "fp_layernormgrad_s"], [103, 0, 1, "c.fp_leaky_relu_p", "fp_leaky_relu_p"], [103, 0, 1, "c.fp_leaky_relu_s", "fp_leaky_relu_s"], [104, 0, 1, "c.fp_less_p", "fp_less_p"], [104, 0, 1, "c.fp_less_s", "fp_less_s"], [105, 0, 1, "c.fp_lessequal_p", "fp_lessequal_p"], [105, 0, 1, "c.fp_lessequal_s", "fp_lessequal_s"], [106, 0, 1, "c.fp_linspace_p", "fp_linspace_p"], [106, 0, 1, "c.fp_linspace_s", "fp_linspace_s"], [108, 0, 1, "c.fp_log1p_p", "fp_log1p_p"], [108, 0, 1, "c.fp_log1p_s", "fp_log1p_s"], [109, 0, 1, "c.fp_log_grad_p", "fp_log_grad_p"], [109, 0, 1, "c.fp_log_grad_s", "fp_log_grad_s"], [107, 0, 1, "c.fp_log_p", "fp_log_p"], [107, 0, 1, "c.fp_log_s", "fp_log_s"], [110, 0, 1, "c.fp_logical_not_p", "fp_logical_not_p"], [110, 0, 1, "c.fp_logical_not_s", "fp_logical_not_s"], [111, 0, 1, "c.fp_logical_or_p", "fp_logical_or_p"], [111, 0, 1, "c.fp_logical_or_s", "fp_logical_or_s"], [113, 0, 1, "c.fp_logsoftmax_p", "fp_logsoftmax_p"], [113, 0, 1, "c.fp_logsoftmax_s", "fp_logsoftmax_s"], [114, 0, 1, "c.fp_lpnorm_p", "fp_lpnorm_p"], [114, 0, 1, "c.fp_lpnorm_s", "fp_lpnorm_s"], [12, 0, 1, "c.fp_lrelu_p", "fp_lrelu_p"], [12, 0, 1, "c.fp_lrelu_s", "fp_lrelu_s"], [115, 0, 1, "c.fp_lrn_p", "fp_lrn_p"], [115, 0, 1, "c.fp_lrn_s", "fp_lrn_s"], [116, 0, 1, "c.fp_lsh_projection_p", "fp_lsh_projection_p"], [116, 0, 1, "c.fp_lsh_projection_s", "fp_lsh_projection_s"], [118, 0, 1, "c.fp_lstmgrad_p", "fp_lstmgrad_p"], [118, 0, 1, "c.fp_lstmgrad_s", "fp_lstmgrad_s"], [119, 0, 1, "c.fp_lstmgraddata_p", "fp_lstmgraddata_p"], [119, 0, 1, "c.fp_lstmgraddata_s", "fp_lstmgraddata_s"], [120, 0, 1, "c.fp_lstmgradweight_p", "fp_lstmgradweight_p"], [120, 0, 1, "c.fp_lstmgradweight_s", "fp_lstmgradweight_s"], [121, 0, 1, "c.fp_matmulfusion_p", "fp_matmulfusion_p"], [121, 0, 1, "c.fp_matmulfusion_s", "fp_matmulfusion_s"], [122, 0, 1, "c.fp_maximum_p", "fp_maximum_p"], [122, 0, 1, "c.fp_maximum_s", "fp_maximum_s"], [123, 0, 1, "c.fp_maximumgrad_p", "fp_maximumgrad_p"], [123, 0, 1, "c.fp_maximumgrad_s", "fp_maximumgrad_s"], [124, 0, 1, "c.fp_maxpool_fusion_p", "fp_maxpool_fusion_p"], [124, 0, 1, "c.fp_maxpool_fusion_s", "fp_maxpool_fusion_s"], [125, 0, 1, "c.fp_maxpool_grad_p", "fp_maxpool_grad_p"], [125, 0, 1, "c.fp_maxpool_grad_s", "fp_maxpool_grad_s"], [126, 0, 1, "c.fp_mfcc_p", "fp_mfcc_p"], [126, 0, 1, "c.fp_mfcc_s", "fp_mfcc_s"], [127, 0, 1, "c.fp_minimum_p", "fp_minimum_p"], [127, 0, 1, "c.fp_minimum_s", "fp_minimum_s"], [128, 0, 1, "c.fp_minimumgrad_p", "fp_minimumgrad_p"], [128, 0, 1, "c.fp_minimumgrad_s", "fp_minimumgrad_s"], [129, 0, 1, "c.fp_mod_p", "fp_mod_p"], [129, 0, 1, "c.fp_mod_s", "fp_mod_s"], [130, 0, 1, "c.fp_mul_p", "fp_mul_p"], [130, 0, 1, "c.fp_mul_s", "fp_mul_s"], [133, 0, 1, "c.fp_neg_grad_p", "fp_neg_grad_p"], [133, 0, 1, "c.fp_neg_grad_s", "fp_neg_grad_s"], [132, 0, 1, "c.fp_neg_p", "fp_neg_p"], [132, 0, 1, "c.fp_neg_s", "fp_neg_s"], [134, 0, 1, "c.fp_nllloss_p", "fp_nllloss_p"], [134, 0, 1, "c.fp_nllloss_s", "fp_nllloss_s"], [135, 0, 1, "c.fp_nlllossgrad_p", "fp_nlllossgrad_p"], [135, 0, 1, "c.fp_nlllossgrad_s", "fp_nlllossgrad_s"], [136, 0, 1, "c.fp_non_max_suppression_p", "fp_non_max_suppression_p"], [136, 0, 1, "c.fp_non_max_suppression_s", "fp_non_max_suppression_s"], [137, 0, 1, "c.fp_nonzero_p", "fp_nonzero_p"], [137, 0, 1, "c.fp_nonzero_s", "fp_nonzero_s"], [138, 0, 1, "c.fp_not_equal_p", "fp_not_equal_p"], [138, 0, 1, "c.fp_not_equal_s", "fp_not_equal_s"], [139, 0, 1, "c.fp_onehot_p", "fp_onehot_p"], [139, 0, 1, "c.fp_onehot_s", "fp_onehot_s"], [140, 0, 1, "c.fp_ones_like_p", "fp_ones_like_p"], [140, 0, 1, "c.fp_ones_like_s", "fp_ones_like_s"], [141, 0, 1, "c.fp_padfusion_p", "fp_padfusion_p"], [141, 0, 1, "c.fp_padfusion_s", "fp_padfusion_s"], [142, 0, 1, "c.fp_pow_fusion_p", "fp_pow_fusion_p"], [142, 0, 1, "c.fp_pow_fusion_s", "fp_pow_fusion_s"], [143, 0, 1, "c.fp_power_grad_p", "fp_power_grad_p"], [143, 0, 1, "c.fp_power_grad_s", "fp_power_grad_s"], [144, 0, 1, "c.fp_prelufusion_p", "fp_prelufusion_p"], [144, 0, 1, "c.fp_prelufusion_s", "fp_prelufusion_s"], [145, 0, 1, "c.fp_priorbox_p", "fp_priorbox_p"], [145, 0, 1, "c.fp_priorbox_s", "fp_priorbox_s"], [147, 0, 1, "c.fp_raggedrange_p", "fp_raggedrange_p"], [147, 0, 1, "c.fp_raggedrange_s", "fp_raggedrange_s"], [148, 0, 1, "c.fp_random_normal_p", "fp_random_normal_p"], [148, 0, 1, "c.fp_random_normal_s", "fp_random_normal_s"], [149, 0, 1, "c.fp_random_standard_normal_p", "fp_random_standard_normal_p"], [149, 0, 1, "c.fp_random_standard_normal_s", "fp_random_standard_normal_s"], [150, 0, 1, "c.fp_range_p", "fp_range_p"], [150, 0, 1, "c.fp_range_s", "fp_range_s"], [152, 0, 1, "c.fp_real_div_p", "fp_real_div_p"], [152, 0, 1, "c.fp_real_div_s", "fp_real_div_s"], [153, 0, 1, "c.fp_reciprocal_p", "fp_reciprocal_p"], [153, 0, 1, "c.fp_reciprocal_s", "fp_reciprocal_s"], [154, 0, 1, "c.fp_reduce_p", "fp_reduce_p"], [154, 0, 1, "c.fp_reduce_s", "fp_reduce_s"], [21, 0, 1, "c.fp_reduceall_p", "fp_reduceall_p"], [21, 0, 1, "c.fp_reduceall_s", "fp_reduceall_s"], [155, 0, 1, "c.fp_reducescatter_p", "fp_reducescatter_p"], [155, 0, 1, "c.fp_reducescatter_s", "fp_reducescatter_s"], [13, 0, 1, "c.fp_relu6_grad_p", "fp_relu6_grad_p"], [13, 0, 1, "c.fp_relu6_grad_s", "fp_relu6_grad_s"], [12, 0, 1, "c.fp_relu6_p", "fp_relu6_p"], [12, 0, 1, "c.fp_relu6_s", "fp_relu6_s"], [13, 0, 1, "c.fp_relu_grad_p", "fp_relu_grad_p"], [13, 0, 1, "c.fp_relu_grad_s", "fp_relu_grad_s"], [12, 0, 1, "c.fp_relu_p", "fp_relu_p"], [12, 0, 1, "c.fp_relu_s", "fp_relu_s"], [156, 0, 1, "c.fp_reshape_p", "fp_reshape_p"], [156, 0, 1, "c.fp_reshape_s", "fp_reshape_s"], [157, 0, 1, "c.fp_resize_anycore", "fp_resize_anycore"], [158, 0, 1, "c.fp_resizebilineargrad_p", "fp_resizebilineargrad_p"], [158, 0, 1, "c.fp_resizebilineargrad_s", "fp_resizebilineargrad_s"], [158, 0, 1, "c.fp_resizenearestneighborgrad_p", "fp_resizenearestneighborgrad_p"], [158, 0, 1, "c.fp_resizenearestneighborgrad_s", "fp_resizenearestneighborgrad_s"], [162, 0, 1, "c.fp_roipooling_p", "fp_roipooling_p"], [162, 0, 1, "c.fp_roipooling_s", "fp_roipooling_s"], [163, 0, 1, "c.fp_round_p", "fp_round_p"], [163, 0, 1, "c.fp_round_s", "fp_round_s"], [164, 0, 1, "c.fp_rsqrt_p", "fp_rsqrt_p"], [164, 0, 1, "c.fp_rsqrt_s", "fp_rsqrt_s"], [165, 0, 1, "c.fp_rsqrtgrad_p", "fp_rsqrtgrad_p"], [165, 0, 1, "c.fp_rsqrtgrad_s", "fp_rsqrtgrad_s"], [166, 0, 1, "c.fp_scalefusion_p", "fp_scalefusion_p"], [166, 0, 1, "c.fp_scalefusion_s", "fp_scalefusion_s"], [167, 0, 1, "c.fp_scatter_elements_p", "fp_scatter_elements_p"], [167, 0, 1, "c.fp_scatter_elements_s", "fp_scatter_elements_s"], [168, 0, 1, "c.fp_scatter_nd_p", "fp_scatter_nd_p"], [168, 0, 1, "c.fp_scatter_nd_s", "fp_scatter_nd_s"], [169, 0, 1, "c.fp_scatter_nd_update_p", "fp_scatter_nd_update_p"], [169, 0, 1, "c.fp_scatter_nd_update_s", "fp_scatter_nd_update_s"], [170, 0, 1, "c.fp_select_p", "fp_select_p"], [170, 0, 1, "c.fp_select_s", "fp_select_s"], [171, 0, 1, "c.fp_sgd_p", "fp_sgd_p"], [171, 0, 1, "c.fp_sgd_s", "fp_sgd_s"], [13, 0, 1, "c.fp_sigmoid_grad_p", "fp_sigmoid_grad_p"], [13, 0, 1, "c.fp_sigmoid_grad_s", "fp_sigmoid_grad_s"], [12, 0, 1, "c.fp_sigmoid_p", "fp_sigmoid_p"], [12, 0, 1, "c.fp_sigmoid_s", "fp_sigmoid_s"], [174, 0, 1, "c.fp_sigmoidcrossentropywithlogits_p", "fp_sigmoidcrossentropywithlogits_p"], [174, 0, 1, "c.fp_sigmoidcrossentropywithlogits_s", "fp_sigmoidcrossentropywithlogits_s"], [173, 0, 1, "c.fp_sigmoidcrossentropywithlogitsgrad_p", "fp_sigmoidcrossentropywithlogitsgrad_p"], [173, 0, 1, "c.fp_sigmoidcrossentropywithlogitsgrad_s", "fp_sigmoidcrossentropywithlogitsgrad_s"], [175, 0, 1, "c.fp_sin_p", "fp_sin_p"], [175, 0, 1, "c.fp_sin_s", "fp_sin_s"], [178, 0, 1, "c.fp_slice_p", "fp_slice_p"], [178, 0, 1, "c.fp_slice_s", "fp_slice_s"], [179, 0, 1, "c.fp_smoothl1loss_p", "fp_smoothl1loss_p"], [179, 0, 1, "c.fp_smoothl1loss_s", "fp_smoothl1loss_s"], [180, 0, 1, "c.fp_smoothl1lossgrad_p", "fp_smoothl1lossgrad_p"], [180, 0, 1, "c.fp_smoothl1lossgrad_s", "fp_smoothl1lossgrad_s"], [182, 0, 1, "c.fp_softmax_cross_entropy_with_logits_p", "fp_softmax_cross_entropy_with_logits_p"], [182, 0, 1, "c.fp_softmax_cross_entropy_with_logits_s", "fp_softmax_cross_entropy_with_logits_s"], [181, 0, 1, "c.fp_softmax_p", "fp_softmax_p"], [181, 0, 1, "c.fp_softmax_s", "fp_softmax_s"], [13, 0, 1, "c.fp_softplus_grad_p", "fp_softplus_grad_p"], [13, 0, 1, "c.fp_softplus_grad_s", "fp_softplus_grad_s"], [12, 0, 1, "c.fp_softplus_p", "fp_softplus_p"], [12, 0, 1, "c.fp_softplus_s", "fp_softplus_s"], [13, 0, 1, "c.fp_softshrink_grad_p", "fp_softshrink_grad_p"], [13, 0, 1, "c.fp_softshrink_grad_s", "fp_softshrink_grad_s"], [12, 0, 1, "c.fp_softshrink_p", "fp_softshrink_p"], [12, 0, 1, "c.fp_softshrink_s", "fp_softshrink_s"], [12, 0, 1, "c.fp_softsignopt_p", "fp_softsignopt_p"], [12, 0, 1, "c.fp_softsignopt_s", "fp_softsignopt_s"], [183, 0, 1, "c.fp_spacetobatch_p", "fp_spacetobatch_p"], [183, 0, 1, "c.fp_spacetobatch_s", "fp_spacetobatch_s"], [184, 0, 1, "c.fp_spacetobatchnd_p", "fp_spacetobatchnd_p"], [184, 0, 1, "c.fp_spacetobatchnd_s", "fp_spacetobatchnd_s"], [185, 0, 1, "c.fp_spacetodepth_p", "fp_spacetodepth_p"], [185, 0, 1, "c.fp_spacetodepth_s", "fp_spacetodepth_s"], [186, 0, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "fp_sparse_softmax_cross_entropy_with_logits_p"], [186, 0, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "fp_sparse_softmax_cross_entropy_with_logits_s"], [187, 0, 1, "c.fp_sparsefillemptyrows_p", "fp_sparsefillemptyrows_p"], [187, 0, 1, "c.fp_sparsefillemptyrows_s", "fp_sparsefillemptyrows_s"], [189, 0, 1, "c.fp_sparsesegmentsum_p", "fp_sparsesegmentsum_p"], [189, 0, 1, "c.fp_sparsesegmentsum_s", "fp_sparsesegmentsum_s"], [190, 0, 1, "c.fp_sparsetodense_p", "fp_sparsetodense_p"], [190, 0, 1, "c.fp_sparsetodense_s", "fp_sparsetodense_s"], [191, 0, 1, "c.fp_splice_p", "fp_splice_p"], [191, 0, 1, "c.fp_splice_s", "fp_splice_s"], [192, 0, 1, "c.fp_split_p", "fp_split_p"], [192, 0, 1, "c.fp_split_s", "fp_split_s"], [193, 0, 1, "c.fp_split_with_overlap_p", "fp_split_with_overlap_p"], [193, 0, 1, "c.fp_split_with_overlap_s", "fp_split_with_overlap_s"], [194, 0, 1, "c.fp_sqrt_p", "fp_sqrt_p"], [194, 0, 1, "c.fp_sqrt_s", "fp_sqrt_s"], [195, 0, 1, "c.fp_sqrtgrad_p", "fp_sqrtgrad_p"], [195, 0, 1, "c.fp_sqrtgrad_s", "fp_sqrtgrad_s"], [196, 0, 1, "c.fp_square_p", "fp_square_p"], [196, 0, 1, "c.fp_square_s", "fp_square_s"], [197, 0, 1, "c.fp_squaredifference_p", "fp_squaredifference_p"], [197, 0, 1, "c.fp_squaredifference_s", "fp_squaredifference_s"], [199, 0, 1, "c.fp_stack_p", "fp_stack_p"], [199, 0, 1, "c.fp_stack_s", "fp_stack_s"], [201, 0, 1, "c.fp_stridedslicegrad_p", "fp_stridedslicegrad_p"], [201, 0, 1, "c.fp_stridedslicegrad_s", "fp_stridedslicegrad_s"], [202, 0, 1, "c.fp_subext_p", "fp_subext_p"], [202, 0, 1, "c.fp_subext_s", "fp_subext_s"], [203, 0, 1, "c.fp_subgrad_p", "fp_subgrad_p"], [203, 0, 1, "c.fp_subgrad_s", "fp_subgrad_s"], [202, 0, 1, "c.fp_subrelu6_p", "fp_subrelu6_p"], [202, 0, 1, "c.fp_subrelu6_s", "fp_subrelu6_s"], [202, 0, 1, "c.fp_subrelu_p", "fp_subrelu_p"], [202, 0, 1, "c.fp_subrelu_s", "fp_subrelu_s"], [12, 0, 1, "c.fp_swish_p", "fp_swish_p"], [12, 0, 1, "c.fp_swish_s", "fp_swish_s"], [13, 0, 1, "c.fp_tanh_grad_p", "fp_tanh_grad_p"], [13, 0, 1, "c.fp_tanh_grad_s", "fp_tanh_grad_s"], [12, 0, 1, "c.fp_tanh_p", "fp_tanh_p"], [12, 0, 1, "c.fp_tanh_s", "fp_tanh_s"], [206, 0, 1, "c.fp_tensor_scatter_add_p", "fp_tensor_scatter_add_p"], [206, 0, 1, "c.fp_tensor_scatter_add_s", "fp_tensor_scatter_add_s"], [208, 0, 1, "c.fp_tensorarrayread_p", "fp_tensorarrayread_p"], [208, 0, 1, "c.fp_tensorarrayread_s", "fp_tensorarrayread_s"], [210, 0, 1, "c.fp_tensorlistfromtensor_p", "fp_tensorlistfromtensor_p"], [210, 0, 1, "c.fp_tensorlistfromtensor_s", "fp_tensorlistfromtensor_s"], [215, 0, 1, "c.fp_tile_p", "fp_tile_p"], [215, 0, 1, "c.fp_tile_s", "fp_tile_s"], [146, 0, 1, "c.fp_to_i8_quant_p", "fp_to_i8_quant_p"], [146, 0, 1, "c.fp_to_i8_quant_s", "fp_to_i8_quant_s"], [216, 0, 1, "c.fp_topk_fusion_p", "fp_topk_fusion_p"], [216, 0, 1, "c.fp_topk_fusion_s", "fp_topk_fusion_s"], [217, 0, 1, "c.fp_transpose_p", "fp_transpose_p"], [217, 0, 1, "c.fp_transpose_s", "fp_transpose_s"], [218, 0, 1, "c.fp_tril_p", "fp_tril_p"], [218, 0, 1, "c.fp_tril_s", "fp_tril_s"], [219, 0, 1, "c.fp_triu_p", "fp_triu_p"], [219, 0, 1, "c.fp_triu_s", "fp_triu_s"], [220, 0, 1, "c.fp_uniform_real_p", "fp_uniform_real_p"], [220, 0, 1, "c.fp_uniform_real_s", "fp_uniform_real_s"], [222, 0, 1, "c.fp_unsorted_segment_sum_p", "fp_unsorted_segment_sum_p"], [222, 0, 1, "c.fp_unsorted_segment_sum_s", "fp_unsorted_segment_sum_s"], [225, 0, 1, "c.fp_where_p", "fp_where_p"], [225, 0, 1, "c.fp_where_s", "fp_where_s"], [226, 0, 1, "c.fp_zerolike_p", "fp_zerolike_p"], [226, 0, 1, "c.fp_zerolike_s", "fp_zerolike_s"], [95, 0, 1, "c.hp_Gru_p", "hp_Gru_p"], [95, 0, 1, "c.hp_Gru_s", "hp_Gru_s"], [117, 0, 1, "c.hp_Lstm_p", "hp_Lstm_p"], [117, 0, 1, "c.hp_Lstm_s", "hp_Lstm_s"], [66, 0, 1, "c.hp_QuantData_p", "hp_QuantData_p"], [66, 0, 1, "c.hp_QuantData_s", "hp_QuantData_s"], [221, 0, 1, "c.hp_Unique_p", "hp_Unique_p"], [221, 0, 1, "c.hp_Unique_s", "hp_Unique_s"], [10, 0, 1, "c.hp_abs_p", "hp_abs_p"], [10, 0, 1, "c.hp_abs_s", "hp_abs_s"], [11, 0, 1, "c.hp_absgrad_p", "hp_absgrad_p"], [11, 0, 1, "c.hp_absgrad_s", "hp_absgrad_s"], [15, 0, 1, "c.hp_adamweightdecay_p", "hp_adamweightdecay_p"], [15, 0, 1, "c.hp_adamweightdecay_s", "hp_adamweightdecay_s"], [16, 0, 1, "c.hp_adder_p", "hp_adder_p"], [16, 0, 1, "c.hp_adder_s", "hp_adder_s"], [17, 0, 1, "c.hp_addext_p", "hp_addext_p"], [17, 0, 1, "c.hp_addext_s", "hp_addext_s"], [18, 0, 1, "c.hp_addgrad_p", "hp_addgrad_p"], [18, 0, 1, "c.hp_addgrad_s", "hp_addgrad_s"], [17, 0, 1, "c.hp_addrelu6_p", "hp_addrelu6_p"], [17, 0, 1, "c.hp_addrelu6_s", "hp_addrelu6_s"], [17, 0, 1, "c.hp_addrelu_p", "hp_addrelu_p"], [17, 0, 1, "c.hp_addrelu_s", "hp_addrelu_s"], [20, 0, 1, "c.hp_affine_p", "hp_affine_p"], [20, 0, 1, "c.hp_affine_s", "hp_affine_s"], [112, 0, 1, "c.hp_and_p", "hp_and_p"], [112, 0, 1, "c.hp_and_s", "hp_and_s"], [23, 0, 1, "c.hp_applymomentum_p", "hp_applymomentum_p"], [23, 0, 1, "c.hp_applymomentum_s", "hp_applymomentum_s"], [24, 0, 1, "c.hp_argmax_p", "hp_argmax_p"], [24, 0, 1, "c.hp_argmax_s", "hp_argmax_s"], [25, 0, 1, "c.hp_argmin_p", "hp_argmin_p"], [25, 0, 1, "c.hp_argmin_s", "hp_argmin_s"], [27, 0, 1, "c.hp_assign_p", "hp_assign_p"], [27, 0, 1, "c.hp_assign_s", "hp_assign_s"], [28, 0, 1, "c.hp_assignadd_p", "hp_assignadd_p"], [28, 0, 1, "c.hp_assignadd_s", "hp_assignadd_s"], [31, 0, 1, "c.hp_avgpool_fusion_p", "hp_avgpool_fusion_p"], [31, 0, 1, "c.hp_avgpool_fusion_s", "hp_avgpool_fusion_s"], [32, 0, 1, "c.hp_avgpoolinggrad_p", "hp_avgpoolinggrad_p"], [32, 0, 1, "c.hp_avgpoolinggrad_s", "hp_avgpoolinggrad_s"], [33, 0, 1, "c.hp_batchnorm_p", "hp_batchnorm_p"], [33, 0, 1, "c.hp_batchnorm_s", "hp_batchnorm_s"], [34, 0, 1, "c.hp_batchnormgrad_p", "hp_batchnormgrad_p"], [34, 0, 1, "c.hp_batchnormgrad_s", "hp_batchnormgrad_s"], [35, 0, 1, "c.hp_batchtospace_p", "hp_batchtospace_p"], [35, 0, 1, "c.hp_batchtospace_s", "hp_batchtospace_s"], [36, 0, 1, "c.hp_batchtospacend_p", "hp_batchtospacend_p"], [36, 0, 1, "c.hp_batchtospacend_s", "hp_batchtospacend_s"], [37, 0, 1, "c.hp_biasadd_p", "hp_biasadd_p"], [37, 0, 1, "c.hp_biasadd_s", "hp_biasadd_s"], [38, 0, 1, "c.hp_biasaddgrad_p", "hp_biasaddgrad_p"], [38, 0, 1, "c.hp_biasaddgrad_s", "hp_biasaddgrad_s"], [39, 0, 1, "c.hp_binarycrossentropy_p", "hp_binarycrossentropy_p"], [39, 0, 1, "c.hp_binarycrossentropy_s", "hp_binarycrossentropy_s"], [40, 0, 1, "c.hp_binarycrossentropygrad_p", "hp_binarycrossentropygrad_p"], [40, 0, 1, "c.hp_binarycrossentropygrad_s", "hp_binarycrossentropygrad_s"], [41, 0, 1, "c.hp_broadcastto_p", "hp_broadcastto_p"], [41, 0, 1, "c.hp_broadcastto_s", "hp_broadcastto_s"], [43, 0, 1, "c.hp_ceil_p", "hp_ceil_p"], [43, 0, 1, "c.hp_ceil_s", "hp_ceil_s"], [12, 0, 1, "c.hp_celu_p", "hp_celu_p"], [12, 0, 1, "c.hp_celu_s", "hp_celu_s"], [12, 0, 1, "c.hp_clip_p", "hp_clip_p"], [12, 0, 1, "c.hp_clip_s", "hp_clip_s"], [45, 0, 1, "c.hp_concat_p", "hp_concat_p"], [45, 0, 1, "c.hp_concat_s", "hp_concat_s"], [47, 0, 1, "c.hp_conv2d_p", "hp_conv2d_p"], [47, 0, 1, "c.hp_conv2d_s", "hp_conv2d_s"], [49, 0, 1, "c.hp_conv2dbackpropfilterfusion_p", "hp_conv2dbackpropfilterfusion_p"], [49, 0, 1, "c.hp_conv2dbackpropfilterfusion_s", "hp_conv2dbackpropfilterfusion_s"], [50, 0, 1, "c.hp_conv2dbackpropinputfusion_p", "hp_conv2dbackpropinputfusion_p"], [50, 0, 1, "c.hp_conv2dbackpropinputfusion_s", "hp_conv2dbackpropinputfusion_s"], [48, 0, 1, "c.hp_convtranspose_p", "hp_convtranspose_p"], [48, 0, 1, "c.hp_convtranspose_s", "hp_convtranspose_s"], [51, 0, 1, "c.hp_cos_p", "hp_cos_p"], [51, 0, 1, "c.hp_cos_s", "hp_cos_s"], [53, 0, 1, "c.hp_crop_and_resize_anycore", "hp_crop_and_resize_anycore"], [54, 0, 1, "c.hp_cumsum_p", "hp_cumsum_p"], [54, 0, 1, "c.hp_cumsum_s", "hp_cumsum_s"], [58, 0, 1, "c.hp_deconvgradfilter_p", "hp_deconvgradfilter_p"], [58, 0, 1, "c.hp_deconvgradfilter_s", "hp_deconvgradfilter_s"], [59, 0, 1, "c.hp_depthtospace_p", "hp_depthtospace_p"], [59, 0, 1, "c.hp_depthtospace_s", "hp_depthtospace_s"], [60, 0, 1, "c.hp_detection_post_process_p", "hp_detection_post_process_p"], [60, 0, 1, "c.hp_detection_post_process_s", "hp_detection_post_process_s"], [61, 0, 1, "c.hp_div_fusion_p", "hp_div_fusion_p"], [61, 0, 1, "c.hp_div_fusion_s", "hp_div_fusion_s"], [63, 0, 1, "c.hp_dropout_p", "hp_dropout_p"], [63, 0, 1, "c.hp_dropout_s", "hp_dropout_s"], [64, 0, 1, "c.hp_dropoutgrad_p", "hp_dropoutgrad_p"], [64, 0, 1, "c.hp_dropoutgrad_s", "hp_dropoutgrad_s"], [67, 0, 1, "c.hp_eltwise_p", "hp_eltwise_p"], [67, 0, 1, "c.hp_eltwise_s", "hp_eltwise_s"], [12, 0, 1, "c.hp_elu_p", "hp_elu_p"], [12, 0, 1, "c.hp_elu_s", "hp_elu_s"], [69, 0, 1, "c.hp_embeddinglookup_p", "hp_embeddinglookup_p"], [69, 0, 1, "c.hp_embeddinglookup_s", "hp_embeddinglookup_s"], [70, 0, 1, "c.hp_equal_p", "hp_equal_p"], [70, 0, 1, "c.hp_equal_s", "hp_equal_s"], [71, 0, 1, "c.hp_erf_p", "hp_erf_p"], [71, 0, 1, "c.hp_erf_s", "hp_erf_s"], [73, 0, 1, "c.hp_expfusion_p", "hp_expfusion_p"], [73, 0, 1, "c.hp_expfusion_s", "hp_expfusion_s"], [74, 0, 1, "c.hp_fake_quant_with_min_max_vars_p", "hp_fake_quant_with_min_max_vars_p"], [75, 0, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_p", "hp_fake_quant_with_min_max_vars_per_channel_p"], [75, 0, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_s", "hp_fake_quant_with_min_max_vars_per_channel_s"], [74, 0, 1, "c.hp_fake_quant_with_min_max_vars_s", "hp_fake_quant_with_min_max_vars_s"], [78, 0, 1, "c.hp_fill_p", "hp_fill_p"], [78, 0, 1, "c.hp_fill_s", "hp_fill_s"], [81, 0, 1, "c.hp_flattengrad_p", "hp_flattengrad_p"], [81, 0, 1, "c.hp_flattengrad_s", "hp_flattengrad_s"], [82, 0, 1, "c.hp_floor_p", "hp_floor_p"], [82, 0, 1, "c.hp_floor_s", "hp_floor_s"], [83, 0, 1, "c.hp_floordiv_p", "hp_floordiv_p"], [83, 0, 1, "c.hp_floordiv_s", "hp_floordiv_s"], [84, 0, 1, "c.hp_floormod_p", "hp_floormod_p"], [84, 0, 1, "c.hp_floormod_s", "hp_floormod_s"], [85, 0, 1, "c.hp_formattranspose_p", "hp_formattranspose_p"], [85, 0, 1, "c.hp_formattranspose_s", "hp_formattranspose_s"], [86, 0, 1, "c.hp_fullconnection_p", "hp_fullconnection_p"], [86, 0, 1, "c.hp_fullconnection_s", "hp_fullconnection_s"], [87, 0, 1, "c.hp_fusedbatchnorm_p", "hp_fusedbatchnorm_p"], [87, 0, 1, "c.hp_fusedbatchnorm_s", "hp_fusedbatchnorm_s"], [89, 0, 1, "c.hp_gather_nd_p", "hp_gather_nd_p"], [89, 0, 1, "c.hp_gather_nd_s", "hp_gather_nd_s"], [88, 0, 1, "c.hp_gather_p", "hp_gather_p"], [88, 0, 1, "c.hp_gather_s", "hp_gather_s"], [12, 0, 1, "c.hp_gelu_p", "hp_gelu_p"], [12, 0, 1, "c.hp_gelu_s", "hp_gelu_s"], [91, 0, 1, "c.hp_glu_p", "hp_glu_p"], [91, 0, 1, "c.hp_glu_s", "hp_glu_s"], [62, 0, 1, "c.hp_graddiv1l_p", "hp_graddiv1l_p"], [62, 0, 1, "c.hp_graddiv1l_s", "hp_graddiv1l_s"], [62, 0, 1, "c.hp_graddiv2l_p", "hp_graddiv2l_p"], [62, 0, 1, "c.hp_graddiv2l_s", "hp_graddiv2l_s"], [62, 0, 1, "c.hp_graddiv_p", "hp_graddiv_p"], [62, 0, 1, "c.hp_graddiv_s", "hp_graddiv_s"], [131, 0, 1, "c.hp_gradmul1l_p", "hp_gradmul1l_p"], [131, 0, 1, "c.hp_gradmul1l_s", "hp_gradmul1l_s"], [131, 0, 1, "c.hp_gradmul2l_p", "hp_gradmul2l_p"], [131, 0, 1, "c.hp_gradmul2l_s", "hp_gradmul2l_s"], [131, 0, 1, "c.hp_gradmul_p", "hp_gradmul_p"], [131, 0, 1, "c.hp_gradmul_s", "hp_gradmul_s"], [92, 0, 1, "c.hp_greater_p", "hp_greater_p"], [92, 0, 1, "c.hp_greater_s", "hp_greater_s"], [93, 0, 1, "c.hp_greaterequal_p", "hp_greaterequal_p"], [93, 0, 1, "c.hp_greaterequal_s", "hp_greaterequal_s"], [94, 0, 1, "c.hp_groupnormfusion_p", "hp_groupnormfusion_p"], [94, 0, 1, "c.hp_groupnormfusion_s", "hp_groupnormfusion_s"], [12, 0, 1, "c.hp_hardshrink_p", "hp_hardshrink_p"], [12, 0, 1, "c.hp_hardshrink_s", "hp_hardshrink_s"], [12, 0, 1, "c.hp_hardtanh_p", "hp_hardtanh_p"], [12, 0, 1, "c.hp_hardtanh_s", "hp_hardtanh_s"], [12, 0, 1, "c.hp_hsigmoid_p", "hp_hsigmoid_p"], [12, 0, 1, "c.hp_hsigmoid_s", "hp_hsigmoid_s"], [12, 0, 1, "c.hp_hswish_p", "hp_hswish_p"], [12, 0, 1, "c.hp_hswish_s", "hp_hswish_s"], [97, 0, 1, "c.hp_instancenorm_p", "hp_instancenorm_p"], [97, 0, 1, "c.hp_instancenorm_s", "hp_instancenorm_s"], [99, 0, 1, "c.hp_isfinite_p", "hp_isfinite_p"], [99, 0, 1, "c.hp_isfinite_s", "hp_isfinite_s"], [100, 0, 1, "c.hp_l2norm_p", "hp_l2norm_p"], [100, 0, 1, "c.hp_l2norm_s", "hp_l2norm_s"], [101, 0, 1, "c.hp_layernormfusion_p", "hp_layernormfusion_p"], [101, 0, 1, "c.hp_layernormfusion_s", "hp_layernormfusion_s"], [102, 0, 1, "c.hp_layernormgrad_p", "hp_layernormgrad_p"], [102, 0, 1, "c.hp_layernormgrad_s", "hp_layernormgrad_s"], [103, 0, 1, "c.hp_leaky_relu_p", "hp_leaky_relu_p"], [103, 0, 1, "c.hp_leaky_relu_s", "hp_leaky_relu_s"], [104, 0, 1, "c.hp_less_p", "hp_less_p"], [104, 0, 1, "c.hp_less_s", "hp_less_s"], [105, 0, 1, "c.hp_lessequal_p", "hp_lessequal_p"], [105, 0, 1, "c.hp_lessequal_s", "hp_lessequal_s"], [108, 0, 1, "c.hp_log1p_p", "hp_log1p_p"], [108, 0, 1, "c.hp_log1p_s", "hp_log1p_s"], [109, 0, 1, "c.hp_log_grad_p", "hp_log_grad_p"], [109, 0, 1, "c.hp_log_grad_s", "hp_log_grad_s"], [107, 0, 1, "c.hp_log_p", "hp_log_p"], [107, 0, 1, "c.hp_log_s", "hp_log_s"], [110, 0, 1, "c.hp_logical_not_p", "hp_logical_not_p"], [110, 0, 1, "c.hp_logical_not_s", "hp_logical_not_s"], [111, 0, 1, "c.hp_logical_or_p", "hp_logical_or_p"], [111, 0, 1, "c.hp_logical_or_s", "hp_logical_or_s"], [113, 0, 1, "c.hp_logsoftmax_p", "hp_logsoftmax_p"], [113, 0, 1, "c.hp_logsoftmax_s", "hp_logsoftmax_s"], [114, 0, 1, "c.hp_lpnorm_p", "hp_lpnorm_p"], [114, 0, 1, "c.hp_lpnorm_s", "hp_lpnorm_s"], [12, 0, 1, "c.hp_lrelu_p", "hp_lrelu_p"], [12, 0, 1, "c.hp_lrelu_s", "hp_lrelu_s"], [115, 0, 1, "c.hp_lrn_p", "hp_lrn_p"], [115, 0, 1, "c.hp_lrn_s", "hp_lrn_s"], [116, 0, 1, "c.hp_lsh_projection_p", "hp_lsh_projection_p"], [116, 0, 1, "c.hp_lsh_projection_s", "hp_lsh_projection_s"], [118, 0, 1, "c.hp_lstmgrad_p", "hp_lstmgrad_p"], [118, 0, 1, "c.hp_lstmgrad_s", "hp_lstmgrad_s"], [119, 0, 1, "c.hp_lstmgraddata_p", "hp_lstmgraddata_p"], [119, 0, 1, "c.hp_lstmgraddata_s", "hp_lstmgraddata_s"], [120, 0, 1, "c.hp_lstmgradweight_p", "hp_lstmgradweight_p"], [120, 0, 1, "c.hp_lstmgradweight_s", "hp_lstmgradweight_s"], [122, 0, 1, "c.hp_maximum_p", "hp_maximum_p"], [122, 0, 1, "c.hp_maximum_s", "hp_maximum_s"], [123, 0, 1, "c.hp_maximumgrad_p", "hp_maximumgrad_p"], [123, 0, 1, "c.hp_maximumgrad_s", "hp_maximumgrad_s"], [124, 0, 1, "c.hp_maxpool_fusion_p", "hp_maxpool_fusion_p"], [124, 0, 1, "c.hp_maxpool_fusion_s", "hp_maxpool_fusion_s"], [125, 0, 1, "c.hp_maxpool_grad_p", "hp_maxpool_grad_p"], [125, 0, 1, "c.hp_maxpool_grad_s", "hp_maxpool_grad_s"], [126, 0, 1, "c.hp_mfcc_p", "hp_mfcc_p"], [126, 0, 1, "c.hp_mfcc_s", "hp_mfcc_s"], [127, 0, 1, "c.hp_minimum_p", "hp_minimum_p"], [127, 0, 1, "c.hp_minimum_s", "hp_minimum_s"], [128, 0, 1, "c.hp_minimumgrad_p", "hp_minimumgrad_p"], [128, 0, 1, "c.hp_minimumgrad_s", "hp_minimumgrad_s"], [129, 0, 1, "c.hp_mod_p", "hp_mod_p"], [129, 0, 1, "c.hp_mod_s", "hp_mod_s"], [130, 0, 1, "c.hp_mul_p", "hp_mul_p"], [130, 0, 1, "c.hp_mul_s", "hp_mul_s"], [133, 0, 1, "c.hp_neg_grad_p", "hp_neg_grad_p"], [133, 0, 1, "c.hp_neg_grad_s", "hp_neg_grad_s"], [132, 0, 1, "c.hp_neg_p", "hp_neg_p"], [132, 0, 1, "c.hp_neg_s", "hp_neg_s"], [134, 0, 1, "c.hp_nllloss_p", "hp_nllloss_p"], [134, 0, 1, "c.hp_nllloss_s", "hp_nllloss_s"], [135, 0, 1, "c.hp_nlllossgrad_p", "hp_nlllossgrad_p"], [135, 0, 1, "c.hp_nlllossgrad_s", "hp_nlllossgrad_s"], [136, 0, 1, "c.hp_non_max_suppression_p", "hp_non_max_suppression_p"], [136, 0, 1, "c.hp_non_max_suppression_s", "hp_non_max_suppression_s"], [138, 0, 1, "c.hp_not_equal_p", "hp_not_equal_p"], [138, 0, 1, "c.hp_not_equal_s", "hp_not_equal_s"], [139, 0, 1, "c.hp_onehot_p", "hp_onehot_p"], [139, 0, 1, "c.hp_onehot_s", "hp_onehot_s"], [140, 0, 1, "c.hp_ones_like_p", "hp_ones_like_p"], [140, 0, 1, "c.hp_ones_like_s", "hp_ones_like_s"], [141, 0, 1, "c.hp_padfusion_p", "hp_padfusion_p"], [141, 0, 1, "c.hp_padfusion_s", "hp_padfusion_s"], [142, 0, 1, "c.hp_pow_fusion_p", "hp_pow_fusion_p"], [142, 0, 1, "c.hp_pow_fusion_s", "hp_pow_fusion_s"], [143, 0, 1, "c.hp_power_grad_p", "hp_power_grad_p"], [143, 0, 1, "c.hp_power_grad_s", "hp_power_grad_s"], [144, 0, 1, "c.hp_prelufusion_p", "hp_prelufusion_p"], [144, 0, 1, "c.hp_prelufusion_s", "hp_prelufusion_s"], [145, 0, 1, "c.hp_priorbox_p", "hp_priorbox_p"], [145, 0, 1, "c.hp_priorbox_s", "hp_priorbox_s"], [148, 0, 1, "c.hp_random_normal_p", "hp_random_normal_p"], [148, 0, 1, "c.hp_random_normal_s", "hp_random_normal_s"], [149, 0, 1, "c.hp_random_standard_normal_p", "hp_random_standard_normal_p"], [149, 0, 1, "c.hp_random_standard_normal_s", "hp_random_standard_normal_s"], [152, 0, 1, "c.hp_real_div_p", "hp_real_div_p"], [152, 0, 1, "c.hp_real_div_s", "hp_real_div_s"], [153, 0, 1, "c.hp_reciprocal_p", "hp_reciprocal_p"], [153, 0, 1, "c.hp_reciprocal_s", "hp_reciprocal_s"], [154, 0, 1, "c.hp_reduce_p", "hp_reduce_p"], [154, 0, 1, "c.hp_reduce_s", "hp_reduce_s"], [21, 0, 1, "c.hp_reduceall_p", "hp_reduceall_p"], [21, 0, 1, "c.hp_reduceall_s", "hp_reduceall_s"], [155, 0, 1, "c.hp_reducescatter_p", "hp_reducescatter_p"], [155, 0, 1, "c.hp_reducescatter_s", "hp_reducescatter_s"], [12, 0, 1, "c.hp_relu6_p", "hp_relu6_p"], [12, 0, 1, "c.hp_relu6_s", "hp_relu6_s"], [13, 0, 1, "c.hp_relu_grad_p", "hp_relu_grad_p"], [13, 0, 1, "c.hp_relu_grad_s", "hp_relu_grad_s"], [12, 0, 1, "c.hp_relu_p", "hp_relu_p"], [12, 0, 1, "c.hp_relu_s", "hp_relu_s"], [156, 0, 1, "c.hp_reshape_p", "hp_reshape_p"], [156, 0, 1, "c.hp_reshape_s", "hp_reshape_s"], [157, 0, 1, "c.hp_resize_anycore", "hp_resize_anycore"], [158, 0, 1, "c.hp_resizebilineargrad_p", "hp_resizebilineargrad_p"], [158, 0, 1, "c.hp_resizebilineargrad_s", "hp_resizebilineargrad_s"], [158, 0, 1, "c.hp_resizenearestneighborgrad_p", "hp_resizenearestneighborgrad_p"], [158, 0, 1, "c.hp_resizenearestneighborgrad_s", "hp_resizenearestneighborgrad_s"], [162, 0, 1, "c.hp_roipooling_p", "hp_roipooling_p"], [162, 0, 1, "c.hp_roipooling_s", "hp_roipooling_s"], [163, 0, 1, "c.hp_round_p", "hp_round_p"], [163, 0, 1, "c.hp_round_s", "hp_round_s"], [164, 0, 1, "c.hp_rsqrt_p", "hp_rsqrt_p"], [164, 0, 1, "c.hp_rsqrt_s", "hp_rsqrt_s"], [165, 0, 1, "c.hp_rsqrtgrad_p", "hp_rsqrtgrad_p"], [165, 0, 1, "c.hp_rsqrtgrad_s", "hp_rsqrtgrad_s"], [166, 0, 1, "c.hp_scalefusion_p", "hp_scalefusion_p"], [166, 0, 1, "c.hp_scalefusion_s", "hp_scalefusion_s"], [167, 0, 1, "c.hp_scatter_elements_p", "hp_scatter_elements_p"], [167, 0, 1, "c.hp_scatter_elements_s", "hp_scatter_elements_s"], [168, 0, 1, "c.hp_scatter_nd_p", "hp_scatter_nd_p"], [168, 0, 1, "c.hp_scatter_nd_s", "hp_scatter_nd_s"], [169, 0, 1, "c.hp_scatter_nd_update_p", "hp_scatter_nd_update_p"], [169, 0, 1, "c.hp_scatter_nd_update_s", "hp_scatter_nd_update_s"], [170, 0, 1, "c.hp_select_p", "hp_select_p"], [170, 0, 1, "c.hp_select_s", "hp_select_s"], [171, 0, 1, "c.hp_sgd_p", "hp_sgd_p"], [171, 0, 1, "c.hp_sgd_s", "hp_sgd_s"], [12, 0, 1, "c.hp_sigmoid_p", "hp_sigmoid_p"], [12, 0, 1, "c.hp_sigmoid_s", "hp_sigmoid_s"], [174, 0, 1, "c.hp_sigmoidcrossentropywithlogits_p", "hp_sigmoidcrossentropywithlogits_p"], [174, 0, 1, "c.hp_sigmoidcrossentropywithlogits_s", "hp_sigmoidcrossentropywithlogits_s"], [173, 0, 1, "c.hp_sigmoidcrossentropywithlogitsgrad_p", "hp_sigmoidcrossentropywithlogitsgrad_p"], [173, 0, 1, "c.hp_sigmoidcrossentropywithlogitsgrad_s", "hp_sigmoidcrossentropywithlogitsgrad_s"], [175, 0, 1, "c.hp_sin_p", "hp_sin_p"], [175, 0, 1, "c.hp_sin_s", "hp_sin_s"], [178, 0, 1, "c.hp_slice_p", "hp_slice_p"], [178, 0, 1, "c.hp_slice_s", "hp_slice_s"], [179, 0, 1, "c.hp_smoothl1loss_p", "hp_smoothl1loss_p"], [179, 0, 1, "c.hp_smoothl1loss_s", "hp_smoothl1loss_s"], [180, 0, 1, "c.hp_smoothl1lossgrad_p", "hp_smoothl1lossgrad_p"], [180, 0, 1, "c.hp_smoothl1lossgrad_s", "hp_smoothl1lossgrad_s"], [182, 0, 1, "c.hp_softmax_cross_entropy_with_logits_p", "hp_softmax_cross_entropy_with_logits_p"], [182, 0, 1, "c.hp_softmax_cross_entropy_with_logits_s", "hp_softmax_cross_entropy_with_logits_s"], [181, 0, 1, "c.hp_softmax_p", "hp_softmax_p"], [181, 0, 1, "c.hp_softmax_s", "hp_softmax_s"], [12, 0, 1, "c.hp_softplus_p", "hp_softplus_p"], [12, 0, 1, "c.hp_softplus_s", "hp_softplus_s"], [12, 0, 1, "c.hp_softshrink_p", "hp_softshrink_p"], [12, 0, 1, "c.hp_softshrink_s", "hp_softshrink_s"], [12, 0, 1, "c.hp_softsignopt_p", "hp_softsignopt_p"], [12, 0, 1, "c.hp_softsignopt_s", "hp_softsignopt_s"], [183, 0, 1, "c.hp_spacetobatch_p", "hp_spacetobatch_p"], [183, 0, 1, "c.hp_spacetobatch_s", "hp_spacetobatch_s"], [184, 0, 1, "c.hp_spacetobatchnd_p", "hp_spacetobatchnd_p"], [184, 0, 1, "c.hp_spacetobatchnd_s", "hp_spacetobatchnd_s"], [185, 0, 1, "c.hp_spacetodepth_p", "hp_spacetodepth_p"], [185, 0, 1, "c.hp_spacetodepth_s", "hp_spacetodepth_s"], [186, 0, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "hp_sparse_softmax_cross_entropy_with_logits_p"], [186, 0, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "hp_sparse_softmax_cross_entropy_with_logits_s"], [187, 0, 1, "c.hp_sparsefillemptyrows_p", "hp_sparsefillemptyrows_p"], [187, 0, 1, "c.hp_sparsefillemptyrows_s", "hp_sparsefillemptyrows_s"], [189, 0, 1, "c.hp_sparsesegmentsum_p", "hp_sparsesegmentsum_p"], [189, 0, 1, "c.hp_sparsesegmentsum_s", "hp_sparsesegmentsum_s"], [190, 0, 1, "c.hp_sparsetodense_p", "hp_sparsetodense_p"], [190, 0, 1, "c.hp_sparsetodense_s", "hp_sparsetodense_s"], [191, 0, 1, "c.hp_splice_p", "hp_splice_p"], [191, 0, 1, "c.hp_splice_s", "hp_splice_s"], [192, 0, 1, "c.hp_split_p", "hp_split_p"], [192, 0, 1, "c.hp_split_s", "hp_split_s"], [193, 0, 1, "c.hp_split_with_overlap_p", "hp_split_with_overlap_p"], [193, 0, 1, "c.hp_split_with_overlap_s", "hp_split_with_overlap_s"], [194, 0, 1, "c.hp_sqrt_p", "hp_sqrt_p"], [194, 0, 1, "c.hp_sqrt_s", "hp_sqrt_s"], [195, 0, 1, "c.hp_sqrtgrad_p", "hp_sqrtgrad_p"], [195, 0, 1, "c.hp_sqrtgrad_s", "hp_sqrtgrad_s"], [196, 0, 1, "c.hp_square_p", "hp_square_p"], [196, 0, 1, "c.hp_square_s", "hp_square_s"], [197, 0, 1, "c.hp_squaredifference_p", "hp_squaredifference_p"], [197, 0, 1, "c.hp_squaredifference_s", "hp_squaredifference_s"], [199, 0, 1, "c.hp_stack_p", "hp_stack_p"], [199, 0, 1, "c.hp_stack_s", "hp_stack_s"], [201, 0, 1, "c.hp_stridedslicegrad_p", "hp_stridedslicegrad_p"], [201, 0, 1, "c.hp_stridedslicegrad_s", "hp_stridedslicegrad_s"], [202, 0, 1, "c.hp_subext_p", "hp_subext_p"], [202, 0, 1, "c.hp_subext_s", "hp_subext_s"], [203, 0, 1, "c.hp_subgrad_p", "hp_subgrad_p"], [203, 0, 1, "c.hp_subgrad_s", "hp_subgrad_s"], [202, 0, 1, "c.hp_subrelu6_p", "hp_subrelu6_p"], [202, 0, 1, "c.hp_subrelu6_s", "hp_subrelu6_s"], [202, 0, 1, "c.hp_subrelu_p", "hp_subrelu_p"], [202, 0, 1, "c.hp_subrelu_s", "hp_subrelu_s"], [12, 0, 1, "c.hp_swish_p", "hp_swish_p"], [12, 0, 1, "c.hp_swish_s", "hp_swish_s"], [12, 0, 1, "c.hp_tanh_p", "hp_tanh_p"], [12, 0, 1, "c.hp_tanh_s", "hp_tanh_s"], [206, 0, 1, "c.hp_tensor_scatter_add_p", "hp_tensor_scatter_add_p"], [206, 0, 1, "c.hp_tensor_scatter_add_s", "hp_tensor_scatter_add_s"], [208, 0, 1, "c.hp_tensorarrayread_p", "hp_tensorarrayread_p"], [208, 0, 1, "c.hp_tensorarrayread_s", "hp_tensorarrayread_s"], [210, 0, 1, "c.hp_tensorlistfromtensor_p", "hp_tensorlistfromtensor_p"], [210, 0, 1, "c.hp_tensorlistfromtensor_s", "hp_tensorlistfromtensor_s"], [215, 0, 1, "c.hp_tile_p", "hp_tile_p"], [215, 0, 1, "c.hp_tile_s", "hp_tile_s"], [146, 0, 1, "c.hp_to_i8_quant_p", "hp_to_i8_quant_p"], [146, 0, 1, "c.hp_to_i8_quant_s", "hp_to_i8_quant_s"], [216, 0, 1, "c.hp_topk_fusion_p", "hp_topk_fusion_p"], [216, 0, 1, "c.hp_topk_fusion_s", "hp_topk_fusion_s"], [217, 0, 1, "c.hp_transpose_p", "hp_transpose_p"], [217, 0, 1, "c.hp_transpose_s", "hp_transpose_s"], [218, 0, 1, "c.hp_tril_p", "hp_tril_p"], [218, 0, 1, "c.hp_tril_s", "hp_tril_s"], [219, 0, 1, "c.hp_triu_p", "hp_triu_p"], [219, 0, 1, "c.hp_triu_s", "hp_triu_s"], [220, 0, 1, "c.hp_uniform_real_p", "hp_uniform_real_p"], [220, 0, 1, "c.hp_uniform_real_s", "hp_uniform_real_s"], [225, 0, 1, "c.hp_where_p", "hp_where_p"], [225, 0, 1, "c.hp_where_s", "hp_where_s"], [226, 0, 1, "c.hp_zerolike_p", "hp_zerolike_p"], [226, 0, 1, "c.hp_zerolike_s", "hp_zerolike_s"], [221, 0, 1, "c.i16_Unique_p", "i16_Unique_p"], [221, 0, 1, "c.i16_Unique_s", "i16_Unique_s"], [10, 0, 1, "c.i16_abs_p", "i16_abs_p"], [10, 0, 1, "c.i16_abs_s", "i16_abs_s"], [17, 0, 1, "c.i16_addext_p", "i16_addext_p"], [17, 0, 1, "c.i16_addext_s", "i16_addext_s"], [19, 0, 1, "c.i16_addn_p", "i16_addn_p"], [19, 0, 1, "c.i16_addn_s", "i16_addn_s"], [17, 0, 1, "c.i16_addrelu6_p", "i16_addrelu6_p"], [17, 0, 1, "c.i16_addrelu6_s", "i16_addrelu6_s"], [17, 0, 1, "c.i16_addrelu_p", "i16_addrelu_p"], [17, 0, 1, "c.i16_addrelu_s", "i16_addrelu_s"], [22, 0, 1, "c.i16_allgather_p", "i16_allgather_p"], [22, 0, 1, "c.i16_allgather_s", "i16_allgather_s"], [112, 0, 1, "c.i16_and_p", "i16_and_p"], [112, 0, 1, "c.i16_and_s", "i16_and_s"], [27, 0, 1, "c.i16_assign_p", "i16_assign_p"], [27, 0, 1, "c.i16_assign_s", "i16_assign_s"], [28, 0, 1, "c.i16_assignadd_p", "i16_assignadd_p"], [28, 0, 1, "c.i16_assignadd_s", "i16_assignadd_s"], [35, 0, 1, "c.i16_batchtospace_p", "i16_batchtospace_p"], [35, 0, 1, "c.i16_batchtospace_s", "i16_batchtospace_s"], [36, 0, 1, "c.i16_batchtospacend_p", "i16_batchtospacend_p"], [36, 0, 1, "c.i16_batchtospacend_s", "i16_batchtospacend_s"], [37, 0, 1, "c.i16_biasadd_p", "i16_biasadd_p"], [37, 0, 1, "c.i16_biasadd_s", "i16_biasadd_s"], [41, 0, 1, "c.i16_broadcastto_p", "i16_broadcastto_p"], [41, 0, 1, "c.i16_broadcastto_s", "i16_broadcastto_s"], [44, 0, 1, "c.i16_clip_p", "i16_clip_p"], [44, 0, 1, "c.i16_clip_s", "i16_clip_s"], [45, 0, 1, "c.i16_concat_p", "i16_concat_p"], [45, 0, 1, "c.i16_concat_s", "i16_concat_s"], [46, 0, 1, "c.i16_constant_of_shape_p", "i16_constant_of_shape_p"], [46, 0, 1, "c.i16_constant_of_shape_s", "i16_constant_of_shape_s"], [51, 0, 1, "c.i16_cos_p", "i16_cos_p"], [51, 0, 1, "c.i16_cos_s", "i16_cos_s"], [54, 0, 1, "c.i16_cumsum_p", "i16_cumsum_p"], [54, 0, 1, "c.i16_cumsum_s", "i16_cumsum_s"], [59, 0, 1, "c.i16_depthtospace_p", "i16_depthtospace_p"], [59, 0, 1, "c.i16_depthtospace_s", "i16_depthtospace_s"], [61, 0, 1, "c.i16_div_fusion_p", "i16_div_fusion_p"], [61, 0, 1, "c.i16_div_fusion_s", "i16_div_fusion_s"], [67, 0, 1, "c.i16_eltwise_p", "i16_eltwise_p"], [67, 0, 1, "c.i16_eltwise_s", "i16_eltwise_s"], [70, 0, 1, "c.i16_equal_p", "i16_equal_p"], [70, 0, 1, "c.i16_equal_s", "i16_equal_s"], [73, 0, 1, "c.i16_expfusion_p", "i16_expfusion_p"], [73, 0, 1, "c.i16_expfusion_s", "i16_expfusion_s"], [55, 0, 1, "c.i16_extract_features_p", "i16_extract_features_p"], [55, 0, 1, "c.i16_extract_features_s", "i16_extract_features_s"], [78, 0, 1, "c.i16_fill_p", "i16_fill_p"], [78, 0, 1, "c.i16_fill_s", "i16_fill_s"], [85, 0, 1, "c.i16_formattranspose_p", "i16_formattranspose_p"], [85, 0, 1, "c.i16_formattranspose_s", "i16_formattranspose_s"], [89, 0, 1, "c.i16_gather_nd_p", "i16_gather_nd_p"], [89, 0, 1, "c.i16_gather_nd_s", "i16_gather_nd_s"], [88, 0, 1, "c.i16_gather_p", "i16_gather_p"], [88, 0, 1, "c.i16_gather_s", "i16_gather_s"], [90, 0, 1, "c.i16_gatherd_p", "i16_gatherd_p"], [90, 0, 1, "c.i16_gatherd_s", "i16_gatherd_s"], [92, 0, 1, "c.i16_greater_p", "i16_greater_p"], [92, 0, 1, "c.i16_greater_s", "i16_greater_s"], [93, 0, 1, "c.i16_greaterequal_p", "i16_greaterequal_p"], [93, 0, 1, "c.i16_greaterequal_s", "i16_greaterequal_s"], [98, 0, 1, "c.i16_invertpermutation_p", "i16_invertpermutation_p"], [98, 0, 1, "c.i16_invertpermutation_s", "i16_invertpermutation_s"], [99, 0, 1, "c.i16_isfinite_p", "i16_isfinite_p"], [99, 0, 1, "c.i16_isfinite_s", "i16_isfinite_s"], [104, 0, 1, "c.i16_less_p", "i16_less_p"], [104, 0, 1, "c.i16_less_s", "i16_less_s"], [105, 0, 1, "c.i16_lessequal_p", "i16_lessequal_p"], [105, 0, 1, "c.i16_lessequal_s", "i16_lessequal_s"], [108, 0, 1, "c.i16_log1p_p", "i16_log1p_p"], [108, 0, 1, "c.i16_log1p_s", "i16_log1p_s"], [107, 0, 1, "c.i16_log_p", "i16_log_p"], [107, 0, 1, "c.i16_log_s", "i16_log_s"], [110, 0, 1, "c.i16_logical_not_p", "i16_logical_not_p"], [110, 0, 1, "c.i16_logical_not_s", "i16_logical_not_s"], [111, 0, 1, "c.i16_logical_or_p", "i16_logical_or_p"], [111, 0, 1, "c.i16_logical_or_s", "i16_logical_or_s"], [116, 0, 1, "c.i16_lsh_projection_p", "i16_lsh_projection_p"], [116, 0, 1, "c.i16_lsh_projection_s", "i16_lsh_projection_s"], [121, 0, 1, "c.i16_matmulfusion_p", "i16_matmulfusion_p"], [121, 0, 1, "c.i16_matmulfusion_s", "i16_matmulfusion_s"], [122, 0, 1, "c.i16_maximum_p", "i16_maximum_p"], [122, 0, 1, "c.i16_maximum_s", "i16_maximum_s"], [127, 0, 1, "c.i16_minimum_p", "i16_minimum_p"], [127, 0, 1, "c.i16_minimum_s", "i16_minimum_s"], [129, 0, 1, "c.i16_mod_p", "i16_mod_p"], [129, 0, 1, "c.i16_mod_s", "i16_mod_s"], [130, 0, 1, "c.i16_mul_p", "i16_mul_p"], [130, 0, 1, "c.i16_mul_s", "i16_mul_s"], [133, 0, 1, "c.i16_neg_grad_p", "i16_neg_grad_p"], [133, 0, 1, "c.i16_neg_grad_s", "i16_neg_grad_s"], [132, 0, 1, "c.i16_neg_p", "i16_neg_p"], [132, 0, 1, "c.i16_neg_s", "i16_neg_s"], [137, 0, 1, "c.i16_nonzero_p", "i16_nonzero_p"], [137, 0, 1, "c.i16_nonzero_s", "i16_nonzero_s"], [138, 0, 1, "c.i16_not_equal_p", "i16_not_equal_p"], [138, 0, 1, "c.i16_not_equal_s", "i16_not_equal_s"], [139, 0, 1, "c.i16_onehot_p", "i16_onehot_p"], [139, 0, 1, "c.i16_onehot_s", "i16_onehot_s"], [140, 0, 1, "c.i16_ones_like_p", "i16_ones_like_p"], [140, 0, 1, "c.i16_ones_like_s", "i16_ones_like_s"], [141, 0, 1, "c.i16_padfusion_p", "i16_padfusion_p"], [141, 0, 1, "c.i16_padfusion_s", "i16_padfusion_s"], [142, 0, 1, "c.i16_pow_fusion_p", "i16_pow_fusion_p"], [142, 0, 1, "c.i16_pow_fusion_s", "i16_pow_fusion_s"], [147, 0, 1, "c.i16_raggedrange_p", "i16_raggedrange_p"], [147, 0, 1, "c.i16_raggedrange_s", "i16_raggedrange_s"], [150, 0, 1, "c.i16_range_p", "i16_range_p"], [150, 0, 1, "c.i16_range_s", "i16_range_s"], [152, 0, 1, "c.i16_real_div_p", "i16_real_div_p"], [152, 0, 1, "c.i16_real_div_s", "i16_real_div_s"], [153, 0, 1, "c.i16_reciprocal_p", "i16_reciprocal_p"], [153, 0, 1, "c.i16_reciprocal_s", "i16_reciprocal_s"], [154, 0, 1, "c.i16_reduce_p", "i16_reduce_p"], [154, 0, 1, "c.i16_reduce_s", "i16_reduce_s"], [21, 0, 1, "c.i16_reduceall_p", "i16_reduceall_p"], [21, 0, 1, "c.i16_reduceall_s", "i16_reduceall_s"], [155, 0, 1, "c.i16_reducescatter_p", "i16_reducescatter_p"], [155, 0, 1, "c.i16_reducescatter_s", "i16_reducescatter_s"], [156, 0, 1, "c.i16_reshape_p", "i16_reshape_p"], [156, 0, 1, "c.i16_reshape_s", "i16_reshape_s"], [164, 0, 1, "c.i16_rsqrt_p", "i16_rsqrt_p"], [164, 0, 1, "c.i16_rsqrt_s", "i16_rsqrt_s"], [166, 0, 1, "c.i16_scalefusion_p", "i16_scalefusion_p"], [166, 0, 1, "c.i16_scalefusion_s", "i16_scalefusion_s"], [167, 0, 1, "c.i16_scatter_elements_p", "i16_scatter_elements_p"], [167, 0, 1, "c.i16_scatter_elements_s", "i16_scatter_elements_s"], [168, 0, 1, "c.i16_scatter_nd_p", "i16_scatter_nd_p"], [168, 0, 1, "c.i16_scatter_nd_s", "i16_scatter_nd_s"], [169, 0, 1, "c.i16_scatter_nd_update_p", "i16_scatter_nd_update_p"], [169, 0, 1, "c.i16_scatter_nd_update_s", "i16_scatter_nd_update_s"], [170, 0, 1, "c.i16_select_p", "i16_select_p"], [170, 0, 1, "c.i16_select_s", "i16_select_s"], [175, 0, 1, "c.i16_sin_p", "i16_sin_p"], [175, 0, 1, "c.i16_sin_s", "i16_sin_s"], [178, 0, 1, "c.i16_slice_p", "i16_slice_p"], [178, 0, 1, "c.i16_slice_s", "i16_slice_s"], [183, 0, 1, "c.i16_spacetobatch_p", "i16_spacetobatch_p"], [183, 0, 1, "c.i16_spacetobatch_s", "i16_spacetobatch_s"], [184, 0, 1, "c.i16_spacetobatchnd_p", "i16_spacetobatchnd_p"], [184, 0, 1, "c.i16_spacetobatchnd_s", "i16_spacetobatchnd_s"], [185, 0, 1, "c.i16_spacetodepth_p", "i16_spacetodepth_p"], [185, 0, 1, "c.i16_spacetodepth_s", "i16_spacetodepth_s"], [187, 0, 1, "c.i16_sparsefillemptyrows_p", "i16_sparsefillemptyrows_p"], [187, 0, 1, "c.i16_sparsefillemptyrows_s", "i16_sparsefillemptyrows_s"], [189, 0, 1, "c.i16_sparsesegmentsum_p", "i16_sparsesegmentsum_p"], [189, 0, 1, "c.i16_sparsesegmentsum_s", "i16_sparsesegmentsum_s"], [190, 0, 1, "c.i16_sparsetodense_p", "i16_sparsetodense_p"], [190, 0, 1, "c.i16_sparsetodense_s", "i16_sparsetodense_s"], [191, 0, 1, "c.i16_splice_p", "i16_splice_p"], [191, 0, 1, "c.i16_splice_s", "i16_splice_s"], [192, 0, 1, "c.i16_split_p", "i16_split_p"], [192, 0, 1, "c.i16_split_s", "i16_split_s"], [193, 0, 1, "c.i16_split_with_overlap_p", "i16_split_with_overlap_p"], [193, 0, 1, "c.i16_split_with_overlap_s", "i16_split_with_overlap_s"], [194, 0, 1, "c.i16_sqrt_p", "i16_sqrt_p"], [194, 0, 1, "c.i16_sqrt_s", "i16_sqrt_s"], [195, 0, 1, "c.i16_sqrtgrad_p", "i16_sqrtgrad_p"], [195, 0, 1, "c.i16_sqrtgrad_s", "i16_sqrtgrad_s"], [196, 0, 1, "c.i16_square_p", "i16_square_p"], [196, 0, 1, "c.i16_square_s", "i16_square_s"], [197, 0, 1, "c.i16_squaredifference_p", "i16_squaredifference_p"], [197, 0, 1, "c.i16_squaredifference_s", "i16_squaredifference_s"], [199, 0, 1, "c.i16_stack_p", "i16_stack_p"], [199, 0, 1, "c.i16_stack_s", "i16_stack_s"], [202, 0, 1, "c.i16_subrelu6_p", "i16_subrelu6_p"], [202, 0, 1, "c.i16_subrelu6_s", "i16_subrelu6_s"], [202, 0, 1, "c.i16_subrelu_p", "i16_subrelu_p"], [202, 0, 1, "c.i16_subrelu_s", "i16_subrelu_s"], [206, 0, 1, "c.i16_tensor_scatter_add_p", "i16_tensor_scatter_add_p"], [206, 0, 1, "c.i16_tensor_scatter_add_s", "i16_tensor_scatter_add_s"], [208, 0, 1, "c.i16_tensorarrayread_p", "i16_tensorarrayread_p"], [208, 0, 1, "c.i16_tensorarrayread_s", "i16_tensorarrayread_s"], [210, 0, 1, "c.i16_tensorlistfromtensor_p", "i16_tensorlistfromtensor_p"], [210, 0, 1, "c.i16_tensorlistfromtensor_s", "i16_tensorlistfromtensor_s"], [215, 0, 1, "c.i16_tile_p", "i16_tile_p"], [215, 0, 1, "c.i16_tile_s", "i16_tile_s"], [216, 0, 1, "c.i16_topk_fusion_p", "i16_topk_fusion_p"], [216, 0, 1, "c.i16_topk_fusion_s", "i16_topk_fusion_s"], [217, 0, 1, "c.i16_transpose_p", "i16_transpose_p"], [217, 0, 1, "c.i16_transpose_s", "i16_transpose_s"], [218, 0, 1, "c.i16_tril_p", "i16_tril_p"], [218, 0, 1, "c.i16_tril_s", "i16_tril_s"], [219, 0, 1, "c.i16_triu_p", "i16_triu_p"], [219, 0, 1, "c.i16_triu_s", "i16_triu_s"], [222, 0, 1, "c.i16_unsorted_segment_sum_p", "i16_unsorted_segment_sum_p"], [222, 0, 1, "c.i16_unsorted_segment_sum_s", "i16_unsorted_segment_sum_s"], [225, 0, 1, "c.i16_where_p", "i16_where_p"], [225, 0, 1, "c.i16_where_s", "i16_where_s"], [226, 0, 1, "c.i16_zerolike_p", "i16_zerolike_p"], [226, 0, 1, "c.i16_zerolike_s", "i16_zerolike_s"], [221, 0, 1, "c.i32_Unique_p", "i32_Unique_p"], [221, 0, 1, "c.i32_Unique_s", "i32_Unique_s"], [10, 0, 1, "c.i32_abs_p", "i32_abs_p"], [10, 0, 1, "c.i32_abs_s", "i32_abs_s"], [17, 0, 1, "c.i32_addext_p", "i32_addext_p"], [17, 0, 1, "c.i32_addext_s", "i32_addext_s"], [19, 0, 1, "c.i32_addn_p", "i32_addn_p"], [19, 0, 1, "c.i32_addn_s", "i32_addn_s"], [17, 0, 1, "c.i32_addrelu6_p", "i32_addrelu6_p"], [17, 0, 1, "c.i32_addrelu6_s", "i32_addrelu6_s"], [17, 0, 1, "c.i32_addrelu_p", "i32_addrelu_p"], [17, 0, 1, "c.i32_addrelu_s", "i32_addrelu_s"], [22, 0, 1, "c.i32_allgather_p", "i32_allgather_p"], [22, 0, 1, "c.i32_allgather_s", "i32_allgather_s"], [112, 0, 1, "c.i32_and_p", "i32_and_p"], [112, 0, 1, "c.i32_and_s", "i32_and_s"], [27, 0, 1, "c.i32_assign_p", "i32_assign_p"], [27, 0, 1, "c.i32_assign_s", "i32_assign_s"], [28, 0, 1, "c.i32_assignadd_p", "i32_assignadd_p"], [28, 0, 1, "c.i32_assignadd_s", "i32_assignadd_s"], [35, 0, 1, "c.i32_batchtospace_p", "i32_batchtospace_p"], [35, 0, 1, "c.i32_batchtospace_s", "i32_batchtospace_s"], [36, 0, 1, "c.i32_batchtospacend_p", "i32_batchtospacend_p"], [36, 0, 1, "c.i32_batchtospacend_s", "i32_batchtospacend_s"], [37, 0, 1, "c.i32_biasadd_p", "i32_biasadd_p"], [37, 0, 1, "c.i32_biasadd_s", "i32_biasadd_s"], [41, 0, 1, "c.i32_broadcastto_p", "i32_broadcastto_p"], [41, 0, 1, "c.i32_broadcastto_s", "i32_broadcastto_s"], [44, 0, 1, "c.i32_clip_p", "i32_clip_p"], [44, 0, 1, "c.i32_clip_s", "i32_clip_s"], [45, 0, 1, "c.i32_concat_p", "i32_concat_p"], [45, 0, 1, "c.i32_concat_s", "i32_concat_s"], [46, 0, 1, "c.i32_constant_of_shape_p", "i32_constant_of_shape_p"], [46, 0, 1, "c.i32_constant_of_shape_s", "i32_constant_of_shape_s"], [51, 0, 1, "c.i32_cos_p", "i32_cos_p"], [51, 0, 1, "c.i32_cos_s", "i32_cos_s"], [54, 0, 1, "c.i32_cumsum_p", "i32_cumsum_p"], [54, 0, 1, "c.i32_cumsum_s", "i32_cumsum_s"], [59, 0, 1, "c.i32_depthtospace_p", "i32_depthtospace_p"], [59, 0, 1, "c.i32_depthtospace_s", "i32_depthtospace_s"], [61, 0, 1, "c.i32_div_fusion_p", "i32_div_fusion_p"], [61, 0, 1, "c.i32_div_fusion_s", "i32_div_fusion_s"], [67, 0, 1, "c.i32_eltwise_p", "i32_eltwise_p"], [67, 0, 1, "c.i32_eltwise_s", "i32_eltwise_s"], [70, 0, 1, "c.i32_equal_p", "i32_equal_p"], [70, 0, 1, "c.i32_equal_s", "i32_equal_s"], [73, 0, 1, "c.i32_expfusion_p", "i32_expfusion_p"], [73, 0, 1, "c.i32_expfusion_s", "i32_expfusion_s"], [55, 0, 1, "c.i32_extract_features_p", "i32_extract_features_p"], [55, 0, 1, "c.i32_extract_features_s", "i32_extract_features_s"], [78, 0, 1, "c.i32_fill_p", "i32_fill_p"], [78, 0, 1, "c.i32_fill_s", "i32_fill_s"], [85, 0, 1, "c.i32_formattranspose_p", "i32_formattranspose_p"], [85, 0, 1, "c.i32_formattranspose_s", "i32_formattranspose_s"], [89, 0, 1, "c.i32_gather_nd_p", "i32_gather_nd_p"], [89, 0, 1, "c.i32_gather_nd_s", "i32_gather_nd_s"], [88, 0, 1, "c.i32_gather_p", "i32_gather_p"], [88, 0, 1, "c.i32_gather_s", "i32_gather_s"], [90, 0, 1, "c.i32_gatherd_p", "i32_gatherd_p"], [90, 0, 1, "c.i32_gatherd_s", "i32_gatherd_s"], [92, 0, 1, "c.i32_greater_p", "i32_greater_p"], [92, 0, 1, "c.i32_greater_s", "i32_greater_s"], [93, 0, 1, "c.i32_greaterequal_p", "i32_greaterequal_p"], [93, 0, 1, "c.i32_greaterequal_s", "i32_greaterequal_s"], [96, 0, 1, "c.i32_hashtablelookup_p", "i32_hashtablelookup_p"], [96, 0, 1, "c.i32_hashtablelookup_s", "i32_hashtablelookup_s"], [98, 0, 1, "c.i32_invertpermutation_p", "i32_invertpermutation_p"], [98, 0, 1, "c.i32_invertpermutation_s", "i32_invertpermutation_s"], [99, 0, 1, "c.i32_isfinite_p", "i32_isfinite_p"], [99, 0, 1, "c.i32_isfinite_s", "i32_isfinite_s"], [104, 0, 1, "c.i32_less_p", "i32_less_p"], [104, 0, 1, "c.i32_less_s", "i32_less_s"], [105, 0, 1, "c.i32_lessequal_p", "i32_lessequal_p"], [105, 0, 1, "c.i32_lessequal_s", "i32_lessequal_s"], [108, 0, 1, "c.i32_log1p_p", "i32_log1p_p"], [108, 0, 1, "c.i32_log1p_s", "i32_log1p_s"], [107, 0, 1, "c.i32_log_p", "i32_log_p"], [107, 0, 1, "c.i32_log_s", "i32_log_s"], [110, 0, 1, "c.i32_logical_not_p", "i32_logical_not_p"], [110, 0, 1, "c.i32_logical_not_s", "i32_logical_not_s"], [111, 0, 1, "c.i32_logical_or_p", "i32_logical_or_p"], [111, 0, 1, "c.i32_logical_or_s", "i32_logical_or_s"], [116, 0, 1, "c.i32_lsh_projection_p", "i32_lsh_projection_p"], [116, 0, 1, "c.i32_lsh_projection_s", "i32_lsh_projection_s"], [121, 0, 1, "c.i32_matmulfusion_p", "i32_matmulfusion_p"], [121, 0, 1, "c.i32_matmulfusion_s", "i32_matmulfusion_s"], [122, 0, 1, "c.i32_maximum_p", "i32_maximum_p"], [122, 0, 1, "c.i32_maximum_s", "i32_maximum_s"], [127, 0, 1, "c.i32_minimum_p", "i32_minimum_p"], [127, 0, 1, "c.i32_minimum_s", "i32_minimum_s"], [129, 0, 1, "c.i32_mod_p", "i32_mod_p"], [129, 0, 1, "c.i32_mod_s", "i32_mod_s"], [130, 0, 1, "c.i32_mul_p", "i32_mul_p"], [130, 0, 1, "c.i32_mul_s", "i32_mul_s"], [133, 0, 1, "c.i32_neg_grad_p", "i32_neg_grad_p"], [133, 0, 1, "c.i32_neg_grad_s", "i32_neg_grad_s"], [132, 0, 1, "c.i32_neg_p", "i32_neg_p"], [132, 0, 1, "c.i32_neg_s", "i32_neg_s"], [137, 0, 1, "c.i32_nonzero_p", "i32_nonzero_p"], [137, 0, 1, "c.i32_nonzero_s", "i32_nonzero_s"], [138, 0, 1, "c.i32_not_equal_p", "i32_not_equal_p"], [138, 0, 1, "c.i32_not_equal_s", "i32_not_equal_s"], [139, 0, 1, "c.i32_onehot_p", "i32_onehot_p"], [139, 0, 1, "c.i32_onehot_s", "i32_onehot_s"], [140, 0, 1, "c.i32_ones_like_p", "i32_ones_like_p"], [140, 0, 1, "c.i32_ones_like_s", "i32_ones_like_s"], [141, 0, 1, "c.i32_padfusion_p", "i32_padfusion_p"], [141, 0, 1, "c.i32_padfusion_s", "i32_padfusion_s"], [142, 0, 1, "c.i32_pow_fusion_p", "i32_pow_fusion_p"], [142, 0, 1, "c.i32_pow_fusion_s", "i32_pow_fusion_s"], [147, 0, 1, "c.i32_raggedrange_p", "i32_raggedrange_p"], [147, 0, 1, "c.i32_raggedrange_s", "i32_raggedrange_s"], [150, 0, 1, "c.i32_range_p", "i32_range_p"], [150, 0, 1, "c.i32_range_s", "i32_range_s"], [152, 0, 1, "c.i32_real_div_p", "i32_real_div_p"], [152, 0, 1, "c.i32_real_div_s", "i32_real_div_s"], [153, 0, 1, "c.i32_reciprocal_p", "i32_reciprocal_p"], [153, 0, 1, "c.i32_reciprocal_s", "i32_reciprocal_s"], [154, 0, 1, "c.i32_reduce_p", "i32_reduce_p"], [154, 0, 1, "c.i32_reduce_s", "i32_reduce_s"], [21, 0, 1, "c.i32_reduceall_p", "i32_reduceall_p"], [21, 0, 1, "c.i32_reduceall_s", "i32_reduceall_s"], [155, 0, 1, "c.i32_reducescatter_p", "i32_reducescatter_p"], [155, 0, 1, "c.i32_reducescatter_s", "i32_reducescatter_s"], [156, 0, 1, "c.i32_reshape_p", "i32_reshape_p"], [156, 0, 1, "c.i32_reshape_s", "i32_reshape_s"], [164, 0, 1, "c.i32_rsqrt_p", "i32_rsqrt_p"], [164, 0, 1, "c.i32_rsqrt_s", "i32_rsqrt_s"], [166, 0, 1, "c.i32_scalefusion_p", "i32_scalefusion_p"], [166, 0, 1, "c.i32_scalefusion_s", "i32_scalefusion_s"], [167, 0, 1, "c.i32_scatter_elements_p", "i32_scatter_elements_p"], [167, 0, 1, "c.i32_scatter_elements_s", "i32_scatter_elements_s"], [168, 0, 1, "c.i32_scatter_nd_p", "i32_scatter_nd_p"], [168, 0, 1, "c.i32_scatter_nd_s", "i32_scatter_nd_s"], [169, 0, 1, "c.i32_scatter_nd_update_p", "i32_scatter_nd_update_p"], [169, 0, 1, "c.i32_scatter_nd_update_s", "i32_scatter_nd_update_s"], [170, 0, 1, "c.i32_select_p", "i32_select_p"], [170, 0, 1, "c.i32_select_s", "i32_select_s"], [175, 0, 1, "c.i32_sin_p", "i32_sin_p"], [175, 0, 1, "c.i32_sin_s", "i32_sin_s"], [178, 0, 1, "c.i32_slice_p", "i32_slice_p"], [178, 0, 1, "c.i32_slice_s", "i32_slice_s"], [183, 0, 1, "c.i32_spacetobatch_p", "i32_spacetobatch_p"], [183, 0, 1, "c.i32_spacetobatch_s", "i32_spacetobatch_s"], [184, 0, 1, "c.i32_spacetobatchnd_p", "i32_spacetobatchnd_p"], [184, 0, 1, "c.i32_spacetobatchnd_s", "i32_spacetobatchnd_s"], [185, 0, 1, "c.i32_spacetodepth_p", "i32_spacetodepth_p"], [185, 0, 1, "c.i32_spacetodepth_s", "i32_spacetodepth_s"], [187, 0, 1, "c.i32_sparsefillemptyrows_p", "i32_sparsefillemptyrows_p"], [187, 0, 1, "c.i32_sparsefillemptyrows_s", "i32_sparsefillemptyrows_s"], [189, 0, 1, "c.i32_sparsesegmentsum_p", "i32_sparsesegmentsum_p"], [189, 0, 1, "c.i32_sparsesegmentsum_s", "i32_sparsesegmentsum_s"], [190, 0, 1, "c.i32_sparsetodense_p", "i32_sparsetodense_p"], [190, 0, 1, "c.i32_sparsetodense_s", "i32_sparsetodense_s"], [191, 0, 1, "c.i32_splice_p", "i32_splice_p"], [191, 0, 1, "c.i32_splice_s", "i32_splice_s"], [192, 0, 1, "c.i32_split_p", "i32_split_p"], [192, 0, 1, "c.i32_split_s", "i32_split_s"], [193, 0, 1, "c.i32_split_with_overlap_p", "i32_split_with_overlap_p"], [193, 0, 1, "c.i32_split_with_overlap_s", "i32_split_with_overlap_s"], [194, 0, 1, "c.i32_sqrt_p", "i32_sqrt_p"], [194, 0, 1, "c.i32_sqrt_s", "i32_sqrt_s"], [195, 0, 1, "c.i32_sqrtgrad_p", "i32_sqrtgrad_p"], [195, 0, 1, "c.i32_sqrtgrad_s", "i32_sqrtgrad_s"], [196, 0, 1, "c.i32_square_p", "i32_square_p"], [196, 0, 1, "c.i32_square_s", "i32_square_s"], [197, 0, 1, "c.i32_squaredifference_p", "i32_squaredifference_p"], [197, 0, 1, "c.i32_squaredifference_s", "i32_squaredifference_s"], [199, 0, 1, "c.i32_stack_p", "i32_stack_p"], [199, 0, 1, "c.i32_stack_s", "i32_stack_s"], [202, 0, 1, "c.i32_subrelu6_p", "i32_subrelu6_p"], [202, 0, 1, "c.i32_subrelu6_s", "i32_subrelu6_s"], [202, 0, 1, "c.i32_subrelu_p", "i32_subrelu_p"], [202, 0, 1, "c.i32_subrelu_s", "i32_subrelu_s"], [206, 0, 1, "c.i32_tensor_scatter_add_p", "i32_tensor_scatter_add_p"], [206, 0, 1, "c.i32_tensor_scatter_add_s", "i32_tensor_scatter_add_s"], [208, 0, 1, "c.i32_tensorarrayread_p", "i32_tensorarrayread_p"], [208, 0, 1, "c.i32_tensorarrayread_s", "i32_tensorarrayread_s"], [210, 0, 1, "c.i32_tensorlistfromtensor_p", "i32_tensorlistfromtensor_p"], [210, 0, 1, "c.i32_tensorlistfromtensor_s", "i32_tensorlistfromtensor_s"], [215, 0, 1, "c.i32_tile_p", "i32_tile_p"], [215, 0, 1, "c.i32_tile_s", "i32_tile_s"], [216, 0, 1, "c.i32_topk_fusion_p", "i32_topk_fusion_p"], [216, 0, 1, "c.i32_topk_fusion_s", "i32_topk_fusion_s"], [217, 0, 1, "c.i32_transpose_p", "i32_transpose_p"], [217, 0, 1, "c.i32_transpose_s", "i32_transpose_s"], [218, 0, 1, "c.i32_tril_p", "i32_tril_p"], [218, 0, 1, "c.i32_tril_s", "i32_tril_s"], [219, 0, 1, "c.i32_triu_p", "i32_triu_p"], [219, 0, 1, "c.i32_triu_s", "i32_triu_s"], [222, 0, 1, "c.i32_unsorted_segment_sum_p", "i32_unsorted_segment_sum_p"], [222, 0, 1, "c.i32_unsorted_segment_sum_s", "i32_unsorted_segment_sum_s"], [225, 0, 1, "c.i32_where_p", "i32_where_p"], [225, 0, 1, "c.i32_where_s", "i32_where_s"], [226, 0, 1, "c.i32_zerolike_p", "i32_zerolike_p"], [226, 0, 1, "c.i32_zerolike_s", "i32_zerolike_s"], [95, 0, 1, "c.i8_Gru_p", "i8_Gru_p"], [95, 0, 1, "c.i8_Gru_s", "i8_Gru_s"], [221, 0, 1, "c.i8_Unique_p", "i8_Unique_p"], [221, 0, 1, "c.i8_Unique_s", "i8_Unique_s"], [10, 0, 1, "c.i8_abs_p", "i8_abs_p"], [10, 0, 1, "c.i8_abs_s", "i8_abs_s"], [16, 0, 1, "c.i8_adder_p", "i8_adder_p"], [16, 0, 1, "c.i8_adder_s", "i8_adder_s"], [17, 0, 1, "c.i8_addext_p", "i8_addext_p"], [17, 0, 1, "c.i8_addext_s", "i8_addext_s"], [19, 0, 1, "c.i8_addn_p", "i8_addn_p"], [19, 0, 1, "c.i8_addn_s", "i8_addn_s"], [17, 0, 1, "c.i8_addrelu6_p", "i8_addrelu6_p"], [17, 0, 1, "c.i8_addrelu6_s", "i8_addrelu6_s"], [17, 0, 1, "c.i8_addrelu_p", "i8_addrelu_p"], [17, 0, 1, "c.i8_addrelu_s", "i8_addrelu_s"], [20, 0, 1, "c.i8_affine_p", "i8_affine_p"], [20, 0, 1, "c.i8_affine_s", "i8_affine_s"], [22, 0, 1, "c.i8_allgather_p", "i8_allgather_p"], [22, 0, 1, "c.i8_allgather_s", "i8_allgather_s"], [112, 0, 1, "c.i8_and_p", "i8_and_p"], [112, 0, 1, "c.i8_and_s", "i8_and_s"], [27, 0, 1, "c.i8_assign_p", "i8_assign_p"], [27, 0, 1, "c.i8_assign_s", "i8_assign_s"], [28, 0, 1, "c.i8_assignadd_p", "i8_assignadd_p"], [28, 0, 1, "c.i8_assignadd_s", "i8_assignadd_s"], [31, 0, 1, "c.i8_avgpool_fusion_p", "i8_avgpool_fusion_p"], [31, 0, 1, "c.i8_avgpool_fusion_s", "i8_avgpool_fusion_s"], [33, 0, 1, "c.i8_batchnorm_p", "i8_batchnorm_p"], [33, 0, 1, "c.i8_batchnorm_s", "i8_batchnorm_s"], [35, 0, 1, "c.i8_batchtospace_p", "i8_batchtospace_p"], [35, 0, 1, "c.i8_batchtospace_s", "i8_batchtospace_s"], [36, 0, 1, "c.i8_batchtospacend_p", "i8_batchtospacend_p"], [36, 0, 1, "c.i8_batchtospacend_s", "i8_batchtospacend_s"], [37, 0, 1, "c.i8_biasadd_p", "i8_biasadd_p"], [37, 0, 1, "c.i8_biasadd_s", "i8_biasadd_s"], [39, 0, 1, "c.i8_binarycrossentropy_p", "i8_binarycrossentropy_p"], [39, 0, 1, "c.i8_binarycrossentropy_s", "i8_binarycrossentropy_s"], [41, 0, 1, "c.i8_broadcastto_p", "i8_broadcastto_p"], [41, 0, 1, "c.i8_broadcastto_s", "i8_broadcastto_s"], [12, 0, 1, "c.i8_celu_p", "i8_celu_p"], [12, 0, 1, "c.i8_celu_s", "i8_celu_s"], [12, 0, 1, "c.i8_clip_p", "i8_clip_p"], [12, 0, 1, "c.i8_clip_s", "i8_clip_s"], [45, 0, 1, "c.i8_concat_p", "i8_concat_p"], [45, 0, 1, "c.i8_concat_s", "i8_concat_s"], [46, 0, 1, "c.i8_constant_of_shape_p", "i8_constant_of_shape_p"], [46, 0, 1, "c.i8_constant_of_shape_s", "i8_constant_of_shape_s"], [47, 0, 1, "c.i8_conv2d_p", "i8_conv2d_p"], [47, 0, 1, "c.i8_conv2d_s", "i8_conv2d_s"], [48, 0, 1, "c.i8_convtranspose_p", "i8_convtranspose_p"], [48, 0, 1, "c.i8_convtranspose_s", "i8_convtranspose_s"], [51, 0, 1, "c.i8_cos_p", "i8_cos_p"], [51, 0, 1, "c.i8_cos_s", "i8_cos_s"], [53, 0, 1, "c.i8_crop_and_resize_anycore", "i8_crop_and_resize_anycore"], [54, 0, 1, "c.i8_cumsum_p", "i8_cumsum_p"], [54, 0, 1, "c.i8_cumsum_s", "i8_cumsum_s"], [59, 0, 1, "c.i8_depthtospace_p", "i8_depthtospace_p"], [59, 0, 1, "c.i8_depthtospace_s", "i8_depthtospace_s"], [60, 0, 1, "c.i8_detection_post_process_p", "i8_detection_post_process_p"], [60, 0, 1, "c.i8_detection_post_process_s", "i8_detection_post_process_s"], [61, 0, 1, "c.i8_div_fusion_p", "i8_div_fusion_p"], [61, 0, 1, "c.i8_div_fusion_s", "i8_div_fusion_s"], [67, 0, 1, "c.i8_eltwise_p", "i8_eltwise_p"], [67, 0, 1, "c.i8_eltwise_s", "i8_eltwise_s"], [12, 0, 1, "c.i8_elu_p", "i8_elu_p"], [12, 0, 1, "c.i8_elu_s", "i8_elu_s"], [70, 0, 1, "c.i8_equal_p", "i8_equal_p"], [70, 0, 1, "c.i8_equal_s", "i8_equal_s"], [73, 0, 1, "c.i8_expfusion_p", "i8_expfusion_p"], [73, 0, 1, "c.i8_expfusion_s", "i8_expfusion_s"], [55, 0, 1, "c.i8_extract_features_p", "i8_extract_features_p"], [55, 0, 1, "c.i8_extract_features_s", "i8_extract_features_s"], [78, 0, 1, "c.i8_fill_p", "i8_fill_p"], [78, 0, 1, "c.i8_fill_s", "i8_fill_s"], [85, 0, 1, "c.i8_formattranspose_p", "i8_formattranspose_p"], [85, 0, 1, "c.i8_formattranspose_s", "i8_formattranspose_s"], [86, 0, 1, "c.i8_fullconnection_p", "i8_fullconnection_p"], [86, 0, 1, "c.i8_fullconnection_s", "i8_fullconnection_s"], [89, 0, 1, "c.i8_gather_nd_p", "i8_gather_nd_p"], [89, 0, 1, "c.i8_gather_nd_s", "i8_gather_nd_s"], [88, 0, 1, "c.i8_gather_p", "i8_gather_p"], [88, 0, 1, "c.i8_gather_s", "i8_gather_s"], [90, 0, 1, "c.i8_gatherd_p", "i8_gatherd_p"], [90, 0, 1, "c.i8_gatherd_s", "i8_gatherd_s"], [12, 0, 1, "c.i8_gelu_p", "i8_gelu_p"], [12, 0, 1, "c.i8_gelu_s", "i8_gelu_s"], [91, 0, 1, "c.i8_glu_p", "i8_glu_p"], [91, 0, 1, "c.i8_glu_s", "i8_glu_s"], [92, 0, 1, "c.i8_greater_p", "i8_greater_p"], [92, 0, 1, "c.i8_greater_s", "i8_greater_s"], [93, 0, 1, "c.i8_greaterequal_p", "i8_greaterequal_p"], [93, 0, 1, "c.i8_greaterequal_s", "i8_greaterequal_s"], [12, 0, 1, "c.i8_hardshrink_p", "i8_hardshrink_p"], [12, 0, 1, "c.i8_hardshrink_s", "i8_hardshrink_s"], [12, 0, 1, "c.i8_hardtanh_p", "i8_hardtanh_p"], [12, 0, 1, "c.i8_hardtanh_s", "i8_hardtanh_s"], [12, 0, 1, "c.i8_hsigmoid_p", "i8_hsigmoid_p"], [12, 0, 1, "c.i8_hsigmoid_s", "i8_hsigmoid_s"], [12, 0, 1, "c.i8_hswish_p", "i8_hswish_p"], [12, 0, 1, "c.i8_hswish_s", "i8_hswish_s"], [98, 0, 1, "c.i8_invertpermutation_p", "i8_invertpermutation_p"], [98, 0, 1, "c.i8_invertpermutation_s", "i8_invertpermutation_s"], [99, 0, 1, "c.i8_isfinite_p", "i8_isfinite_p"], [99, 0, 1, "c.i8_isfinite_s", "i8_isfinite_s"], [101, 0, 1, "c.i8_layernormfusion_p", "i8_layernormfusion_p"], [101, 0, 1, "c.i8_layernormfusion_s", "i8_layernormfusion_s"], [103, 0, 1, "c.i8_leaky_relu_p", "i8_leaky_relu_p"], [103, 0, 1, "c.i8_leaky_relu_s", "i8_leaky_relu_s"], [104, 0, 1, "c.i8_less_p", "i8_less_p"], [104, 0, 1, "c.i8_less_s", "i8_less_s"], [105, 0, 1, "c.i8_lessequal_p", "i8_lessequal_p"], [105, 0, 1, "c.i8_lessequal_s", "i8_lessequal_s"], [108, 0, 1, "c.i8_log1p_p", "i8_log1p_p"], [108, 0, 1, "c.i8_log1p_s", "i8_log1p_s"], [110, 0, 1, "c.i8_logical_not_p", "i8_logical_not_p"], [110, 0, 1, "c.i8_logical_not_s", "i8_logical_not_s"], [111, 0, 1, "c.i8_logical_or_p", "i8_logical_or_p"], [111, 0, 1, "c.i8_logical_or_s", "i8_logical_or_s"], [113, 0, 1, "c.i8_logsoftmax_p", "i8_logsoftmax_p"], [113, 0, 1, "c.i8_logsoftmax_s", "i8_logsoftmax_s"], [12, 0, 1, "c.i8_lrelu_p", "i8_lrelu_p"], [12, 0, 1, "c.i8_lrelu_s", "i8_lrelu_s"], [116, 0, 1, "c.i8_lsh_projection_p", "i8_lsh_projection_p"], [116, 0, 1, "c.i8_lsh_projection_s", "i8_lsh_projection_s"], [122, 0, 1, "c.i8_maximum_p", "i8_maximum_p"], [122, 0, 1, "c.i8_maximum_s", "i8_maximum_s"], [127, 0, 1, "c.i8_minimum_p", "i8_minimum_p"], [127, 0, 1, "c.i8_minimum_s", "i8_minimum_s"], [129, 0, 1, "c.i8_mod_p", "i8_mod_p"], [129, 0, 1, "c.i8_mod_s", "i8_mod_s"], [130, 0, 1, "c.i8_mul_p", "i8_mul_p"], [130, 0, 1, "c.i8_mul_s", "i8_mul_s"], [133, 0, 1, "c.i8_neg_grad_p", "i8_neg_grad_p"], [133, 0, 1, "c.i8_neg_grad_s", "i8_neg_grad_s"], [132, 0, 1, "c.i8_neg_p", "i8_neg_p"], [132, 0, 1, "c.i8_neg_s", "i8_neg_s"], [134, 0, 1, "c.i8_nllloss_p", "i8_nllloss_p"], [134, 0, 1, "c.i8_nllloss_s", "i8_nllloss_s"], [136, 0, 1, "c.i8_non_max_suppression_p", "i8_non_max_suppression_p"], [136, 0, 1, "c.i8_non_max_suppression_s", "i8_non_max_suppression_s"], [137, 0, 1, "c.i8_nonzero_p", "i8_nonzero_p"], [137, 0, 1, "c.i8_nonzero_s", "i8_nonzero_s"], [138, 0, 1, "c.i8_not_equal_p", "i8_not_equal_p"], [138, 0, 1, "c.i8_not_equal_s", "i8_not_equal_s"], [139, 0, 1, "c.i8_onehot_p", "i8_onehot_p"], [139, 0, 1, "c.i8_onehot_s", "i8_onehot_s"], [140, 0, 1, "c.i8_ones_like_p", "i8_ones_like_p"], [140, 0, 1, "c.i8_ones_like_s", "i8_ones_like_s"], [141, 0, 1, "c.i8_padfusion_p", "i8_padfusion_p"], [141, 0, 1, "c.i8_padfusion_s", "i8_padfusion_s"], [142, 0, 1, "c.i8_pow_fusion_p", "i8_pow_fusion_p"], [142, 0, 1, "c.i8_pow_fusion_s", "i8_pow_fusion_s"], [144, 0, 1, "c.i8_prelufusion_p", "i8_prelufusion_p"], [144, 0, 1, "c.i8_prelufusion_s", "i8_prelufusion_s"], [147, 0, 1, "c.i8_raggedrange_p", "i8_raggedrange_p"], [147, 0, 1, "c.i8_raggedrange_s", "i8_raggedrange_s"], [150, 0, 1, "c.i8_range_p", "i8_range_p"], [150, 0, 1, "c.i8_range_s", "i8_range_s"], [152, 0, 1, "c.i8_real_div_p", "i8_real_div_p"], [152, 0, 1, "c.i8_real_div_s", "i8_real_div_s"], [153, 0, 1, "c.i8_reciprocal_p", "i8_reciprocal_p"], [153, 0, 1, "c.i8_reciprocal_s", "i8_reciprocal_s"], [154, 0, 1, "c.i8_reduce_p", "i8_reduce_p"], [154, 0, 1, "c.i8_reduce_s", "i8_reduce_s"], [21, 0, 1, "c.i8_reduceall_p", "i8_reduceall_p"], [21, 0, 1, "c.i8_reduceall_s", "i8_reduceall_s"], [155, 0, 1, "c.i8_reducescatter_p", "i8_reducescatter_p"], [155, 0, 1, "c.i8_reducescatter_s", "i8_reducescatter_s"], [12, 0, 1, "c.i8_relu6_p", "i8_relu6_p"], [12, 0, 1, "c.i8_relu6_s", "i8_relu6_s"], [12, 0, 1, "c.i8_relu_p", "i8_relu_p"], [12, 0, 1, "c.i8_relu_s", "i8_relu_s"], [156, 0, 1, "c.i8_reshape_p", "i8_reshape_p"], [156, 0, 1, "c.i8_reshape_s", "i8_reshape_s"], [157, 0, 1, "c.i8_resize_anycore", "i8_resize_anycore"], [162, 0, 1, "c.i8_roipooling_p", "i8_roipooling_p"], [162, 0, 1, "c.i8_roipooling_s", "i8_roipooling_s"], [164, 0, 1, "c.i8_rsqrt_p", "i8_rsqrt_p"], [164, 0, 1, "c.i8_rsqrt_s", "i8_rsqrt_s"], [166, 0, 1, "c.i8_scalefusion_p", "i8_scalefusion_p"], [166, 0, 1, "c.i8_scalefusion_s", "i8_scalefusion_s"], [167, 0, 1, "c.i8_scatter_elements_p", "i8_scatter_elements_p"], [167, 0, 1, "c.i8_scatter_elements_s", "i8_scatter_elements_s"], [168, 0, 1, "c.i8_scatter_nd_p", "i8_scatter_nd_p"], [168, 0, 1, "c.i8_scatter_nd_s", "i8_scatter_nd_s"], [169, 0, 1, "c.i8_scatter_nd_update_p", "i8_scatter_nd_update_p"], [169, 0, 1, "c.i8_scatter_nd_update_s", "i8_scatter_nd_update_s"], [170, 0, 1, "c.i8_select_p", "i8_select_p"], [170, 0, 1, "c.i8_select_s", "i8_select_s"], [12, 0, 1, "c.i8_sigmoid_p", "i8_sigmoid_p"], [12, 0, 1, "c.i8_sigmoid_s", "i8_sigmoid_s"], [174, 0, 1, "c.i8_sigmoidcrossentropywithlogits_p", "i8_sigmoidcrossentropywithlogits_p"], [174, 0, 1, "c.i8_sigmoidcrossentropywithlogits_s", "i8_sigmoidcrossentropywithlogits_s"], [175, 0, 1, "c.i8_sin_p", "i8_sin_p"], [175, 0, 1, "c.i8_sin_s", "i8_sin_s"], [178, 0, 1, "c.i8_slice_p", "i8_slice_p"], [178, 0, 1, "c.i8_slice_s", "i8_slice_s"], [179, 0, 1, "c.i8_smoothl1loss_p", "i8_smoothl1loss_p"], [179, 0, 1, "c.i8_smoothl1loss_s", "i8_smoothl1loss_s"], [182, 0, 1, "c.i8_softmax_cross_entropy_with_logits_p", "i8_softmax_cross_entropy_with_logits_p"], [182, 0, 1, "c.i8_softmax_cross_entropy_with_logits_s", "i8_softmax_cross_entropy_with_logits_s"], [181, 0, 1, "c.i8_softmax_p", "i8_softmax_p"], [181, 0, 1, "c.i8_softmax_s", "i8_softmax_s"], [12, 0, 1, "c.i8_softplus_p", "i8_softplus_p"], [12, 0, 1, "c.i8_softplus_s", "i8_softplus_s"], [12, 0, 1, "c.i8_softshrink_p", "i8_softshrink_p"], [12, 0, 1, "c.i8_softshrink_s", "i8_softshrink_s"], [12, 0, 1, "c.i8_softsignopt_p", "i8_softsignopt_p"], [12, 0, 1, "c.i8_softsignopt_s", "i8_softsignopt_s"], [183, 0, 1, "c.i8_spacetobatch_p", "i8_spacetobatch_p"], [183, 0, 1, "c.i8_spacetobatch_s", "i8_spacetobatch_s"], [184, 0, 1, "c.i8_spacetobatchnd_p", "i8_spacetobatchnd_p"], [184, 0, 1, "c.i8_spacetobatchnd_s", "i8_spacetobatchnd_s"], [185, 0, 1, "c.i8_spacetodepth_p", "i8_spacetodepth_p"], [185, 0, 1, "c.i8_spacetodepth_s", "i8_spacetodepth_s"], [187, 0, 1, "c.i8_sparsefillemptyrows_p", "i8_sparsefillemptyrows_p"], [187, 0, 1, "c.i8_sparsefillemptyrows_s", "i8_sparsefillemptyrows_s"], [190, 0, 1, "c.i8_sparsetodense_p", "i8_sparsetodense_p"], [190, 0, 1, "c.i8_sparsetodense_s", "i8_sparsetodense_s"], [191, 0, 1, "c.i8_splice_p", "i8_splice_p"], [191, 0, 1, "c.i8_splice_s", "i8_splice_s"], [192, 0, 1, "c.i8_split_p", "i8_split_p"], [192, 0, 1, "c.i8_split_s", "i8_split_s"], [193, 0, 1, "c.i8_split_with_overlap_p", "i8_split_with_overlap_p"], [193, 0, 1, "c.i8_split_with_overlap_s", "i8_split_with_overlap_s"], [194, 0, 1, "c.i8_sqrt_p", "i8_sqrt_p"], [194, 0, 1, "c.i8_sqrt_s", "i8_sqrt_s"], [195, 0, 1, "c.i8_sqrtgrad_p", "i8_sqrtgrad_p"], [195, 0, 1, "c.i8_sqrtgrad_s", "i8_sqrtgrad_s"], [196, 0, 1, "c.i8_square_p", "i8_square_p"], [196, 0, 1, "c.i8_square_s", "i8_square_s"], [197, 0, 1, "c.i8_squaredifference_p", "i8_squaredifference_p"], [197, 0, 1, "c.i8_squaredifference_s", "i8_squaredifference_s"], [199, 0, 1, "c.i8_stack_p", "i8_stack_p"], [199, 0, 1, "c.i8_stack_s", "i8_stack_s"], [202, 0, 1, "c.i8_subrelu6_p", "i8_subrelu6_p"], [202, 0, 1, "c.i8_subrelu6_s", "i8_subrelu6_s"], [202, 0, 1, "c.i8_subrelu_p", "i8_subrelu_p"], [202, 0, 1, "c.i8_subrelu_s", "i8_subrelu_s"], [12, 0, 1, "c.i8_swish_p", "i8_swish_p"], [12, 0, 1, "c.i8_swish_s", "i8_swish_s"], [12, 0, 1, "c.i8_tanh_p", "i8_tanh_p"], [12, 0, 1, "c.i8_tanh_s", "i8_tanh_s"], [206, 0, 1, "c.i8_tensor_scatter_add_p", "i8_tensor_scatter_add_p"], [206, 0, 1, "c.i8_tensor_scatter_add_s", "i8_tensor_scatter_add_s"], [208, 0, 1, "c.i8_tensorarrayread_p", "i8_tensorarrayread_p"], [208, 0, 1, "c.i8_tensorarrayread_s", "i8_tensorarrayread_s"], [210, 0, 1, "c.i8_tensorlistfromtensor_p", "i8_tensorlistfromtensor_p"], [210, 0, 1, "c.i8_tensorlistfromtensor_s", "i8_tensorlistfromtensor_s"], [215, 0, 1, "c.i8_tile_p", "i8_tile_p"], [215, 0, 1, "c.i8_tile_s", "i8_tile_s"], [146, 0, 1, "c.i8_to_fp_dequant_p", "i8_to_fp_dequant_p"], [146, 0, 1, "c.i8_to_fp_dequant_s", "i8_to_fp_dequant_s"], [146, 0, 1, "c.i8_to_hp_dequant_p", "i8_to_hp_dequant_p"], [146, 0, 1, "c.i8_to_hp_dequant_s", "i8_to_hp_dequant_s"], [217, 0, 1, "c.i8_transpose_p", "i8_transpose_p"], [217, 0, 1, "c.i8_transpose_s", "i8_transpose_s"], [218, 0, 1, "c.i8_tril_p", "i8_tril_p"], [218, 0, 1, "c.i8_tril_s", "i8_tril_s"], [219, 0, 1, "c.i8_triu_p", "i8_triu_p"], [219, 0, 1, "c.i8_triu_s", "i8_triu_s"], [222, 0, 1, "c.i8_unsorted_segment_sum_p", "i8_unsorted_segment_sum_p"], [222, 0, 1, "c.i8_unsorted_segment_sum_s", "i8_unsorted_segment_sum_s"], [225, 0, 1, "c.i8_where_p", "i8_where_p"], [225, 0, 1, "c.i8_where_s", "i8_where_s"], [226, 0, 1, "c.i8_zerolike_p", "i8_zerolike_p"], [226, 0, 1, "c.i8_zerolike_s", "i8_zerolike_s"], [151, 0, 1, "c.rank_p", "rank_p"], [151, 0, 1, "c.rank_s", "rank_s"], [172, 0, 1, "c.shape", "shape"], [176, 0, 1, "c.size_p", "size_p"], [176, 0, 1, "c.size_s", "size_s"], [177, 0, 1, "c.skipgram_p", "skipgram_p"], [177, 0, 1, "c.skipgram_s", "skipgram_s"], [188, 0, 1, "c.sparsereshape_p", "sparsereshape_p"], [188, 0, 1, "c.sparsereshape_s", "sparsereshape_s"], [200, 0, 1, "c.stridedslice", "stridedslice"], [204, 0, 1, "c.switch_p", "switch_p"], [204, 0, 1, "c.switch_s", "switch_s"], [205, 0, 1, "c.switchlayer_p", "switchlayer_p"], [205, 0, 1, "c.switchlayer_s", "switchlayer_s"], [207, 0, 1, "c.tensorarrayread_p", "tensorarrayread_p"], [207, 0, 1, "c.tensorarrayread_s", "tensorarrayread_s"], [207, 0, 1, "c.tensorarraywrite_p", "tensorarraywrite_p"], [207, 0, 1, "c.tensorarraywrite_s", "tensorarraywrite_s"], [211, 0, 1, "c.tensorlistgetitem_p", "tensorlistgetitem_p"], [211, 0, 1, "c.tensorlistgetitem_s", "tensorlistgetitem_s"], [213, 0, 1, "c.tensorlistsetitem_p", "tensorlistsetitem_p"], [213, 0, 1, "c.tensorlistsetitem_s", "tensorlistsetitem_s"], [214, 0, 1, "c.tensorliststack_p", "tensorliststack_p"], [214, 0, 1, "c.tensorliststack_s", "tensorliststack_s"], [224, 0, 1, "c.unstack_p", "unstack_p"], [224, 0, 1, "c.unstack_s", "unstack_s"]], "Flatten": [[80, 1, 1, "c.Flatten", "core_mask"], [80, 1, 1, "c.Flatten", "input"], [80, 1, 1, "c.Flatten", "output"], [80, 1, 1, "c.Flatten", "param"]], "Tensorlistreserve": [[212, 1, 1, "c.Tensorlistreserve", "element_shape"], [212, 1, 1, "c.Tensorlistreserve", "num_elements"], [212, 1, 1, "c.Tensorlistreserve", "shape_size"], [212, 1, 1, "c.Tensorlistreserve", "tensor_c_shape"], [212, 1, 1, "c.Tensorlistreserve", "tensor_c_shape_size"], [212, 1, 1, "c.Tensorlistreserve", "tensor_list_c_element_shape"], [212, 1, 1, "c.Tensorlistreserve", "tensor_list_c_element_shape_size"]], "anytype_crop_anycore": [[52, 1, 1, "c.anytype_crop_anycore", "axis"], [52, 1, 1, "c.anytype_crop_anycore", "core_mask"], [52, 1, 1, "c.anytype_crop_anycore", "in_shape"], [52, 1, 1, "c.anytype_crop_anycore", "input"], [52, 1, 1, "c.anytype_crop_anycore", "offset"], [52, 1, 1, "c.anytype_crop_anycore", "out_shape"], [52, 1, 1, "c.anytype_crop_anycore", "output"], [52, 1, 1, "c.anytype_crop_anycore", "type_size"]], "anytype_expand_dims_anycore": [[72, 1, 1, "c.anytype_expand_dims_anycore", "core_mask"], [72, 1, 1, "c.anytype_expand_dims_anycore", "dst"], [72, 1, 1, "c.anytype_expand_dims_anycore", "src"], [72, 1, 1, "c.anytype_expand_dims_anycore", "total_copy_size"]], "anytype_fillv2_p": [[79, 1, 1, "c.anytype_fillv2_p", "core_mask"], [79, 1, 1, "c.anytype_fillv2_p", "length"], [79, 1, 1, "c.anytype_fillv2_p", "output"], [79, 1, 1, "c.anytype_fillv2_p", "type_size"], [79, 1, 1, "c.anytype_fillv2_p", "value"]], "anytype_fillv2_s": [[79, 1, 1, "c.anytype_fillv2_s", "core_mask"], [79, 1, 1, "c.anytype_fillv2_s", "length"], [79, 1, 1, "c.anytype_fillv2_s", "output"], [79, 1, 1, "c.anytype_fillv2_s", "type_size"], [79, 1, 1, "c.anytype_fillv2_s", "value"]], "anytype_reverse_sequence_anycore": [[159, 1, 1, "c.anytype_reverse_sequence_anycore", "core_mask"], [159, 1, 1, "c.anytype_reverse_sequence_anycore", "dst"], [159, 1, 1, "c.anytype_reverse_sequence_anycore", "param"], [159, 1, 1, "c.anytype_reverse_sequence_anycore", "seq_lengths"], [159, 1, 1, "c.anytype_reverse_sequence_anycore", "src"]], "anytype_reversev2_anycore": [[160, 1, 1, "c.anytype_reversev2_anycore", "core_mask"], [160, 1, 1, "c.anytype_reversev2_anycore", "dst"], [160, 1, 1, "c.anytype_reversev2_anycore", "param"], [160, 1, 1, "c.anytype_reversev2_anycore", "src"]], "anytype_squeeze_anycore": [[198, 1, 1, "c.anytype_squeeze_anycore", "core_mask"], [198, 1, 1, "c.anytype_squeeze_anycore", "dst"], [198, 1, 1, "c.anytype_squeeze_anycore", "src"], [198, 1, 1, "c.anytype_squeeze_anycore", "total_copy_size"]], "anytype_unsqueeze_anycore": [[223, 1, 1, "c.anytype_unsqueeze_anycore", "core_mask"], [223, 1, 1, "c.anytype_unsqueeze_anycore", "dst"], [223, 1, 1, "c.anytype_unsqueeze_anycore", "src"], [223, 1, 1, "c.anytype_unsqueeze_anycore", "total_copy_size"]], "assert": [[26, 1, 1, "c.assert", "Input"], [26, 1, 1, "c.assert", "output"]], "c128_Unique_p": [[221, 1, 1, "c.c128_Unique_p", "input"], [221, 1, 1, "c.c128_Unique_p", "input_len"], [221, 1, 1, "c.c128_Unique_p", "output0"], [221, 1, 1, "c.c128_Unique_p", "output0_len"]], "c128_Unique_s": [[221, 1, 1, "c.c128_Unique_s", "core_mask"], [221, 1, 1, "c.c128_Unique_s", "input"], [221, 1, 1, "c.c128_Unique_s", "input_len"], [221, 1, 1, "c.c128_Unique_s", "output0"], [221, 1, 1, "c.c128_Unique_s", "output0_len"]], "c128_abs_p": [[10, 1, 1, "c.c128_abs_p", "dst_data"], [10, 1, 1, "c.c128_abs_p", "length"], [10, 1, 1, "c.c128_abs_p", "src_data"]], "c128_abs_s": [[10, 1, 1, "c.c128_abs_s", "core_mask"], [10, 1, 1, "c.c128_abs_s", "dst_data"], [10, 1, 1, "c.c128_abs_s", "length"], [10, 1, 1, "c.c128_abs_s", "src_data"]], "c128_addext_p": [[17, 1, 1, "c.c128_addext_p", "alpha"], [17, 1, 1, "c.c128_addext_p", "in0"], [17, 1, 1, "c.c128_addext_p", "in1"], [17, 1, 1, "c.c128_addext_p", "out"], [17, 1, 1, "c.c128_addext_p", "size"]], "c128_addext_s": [[17, 1, 1, "c.c128_addext_s", "alpha"], [17, 1, 1, "c.c128_addext_s", "core_mask"], [17, 1, 1, "c.c128_addext_s", "in0"], [17, 1, 1, "c.c128_addext_s", "in1"], [17, 1, 1, "c.c128_addext_s", "out"], [17, 1, 1, "c.c128_addext_s", "size"]], "c128_addn_p": [[19, 1, 1, "c.c128_addn_p", "input0"], [19, 1, 1, "c.c128_addn_p", "input1"], [19, 1, 1, "c.c128_addn_p", "length"], [19, 1, 1, "c.c128_addn_p", "output"]], "c128_addn_s": [[19, 1, 1, "c.c128_addn_s", "core_mask"], [19, 1, 1, "c.c128_addn_s", "input0"], [19, 1, 1, "c.c128_addn_s", "input1"], [19, 1, 1, "c.c128_addn_s", "length"], [19, 1, 1, "c.c128_addn_s", "output"]], "c128_addrelu6_p": [[17, 1, 1, "c.c128_addrelu6_p", "in0"], [17, 1, 1, "c.c128_addrelu6_p", "in1"], [17, 1, 1, "c.c128_addrelu6_p", "out"], [17, 1, 1, "c.c128_addrelu6_p", "size"]], "c128_addrelu6_s": [[17, 1, 1, "c.c128_addrelu6_s", "core_mask"], [17, 1, 1, "c.c128_addrelu6_s", "in0"], [17, 1, 1, "c.c128_addrelu6_s", "in1"], [17, 1, 1, "c.c128_addrelu6_s", "out"], [17, 1, 1, "c.c128_addrelu6_s", "size"]], "c128_addrelu_p": [[17, 1, 1, "c.c128_addrelu_p", "in0"], [17, 1, 1, "c.c128_addrelu_p", "in1"], [17, 1, 1, "c.c128_addrelu_p", "out"], [17, 1, 1, "c.c128_addrelu_p", "size"]], "c128_addrelu_s": [[17, 1, 1, "c.c128_addrelu_s", "core_mask"], [17, 1, 1, "c.c128_addrelu_s", "in0"], [17, 1, 1, "c.c128_addrelu_s", "in1"], [17, 1, 1, "c.c128_addrelu_s", "out"], [17, 1, 1, "c.c128_addrelu_s", "size"]], "c128_allgather_p": [[22, 1, 1, "c.c128_allgather_p", "data_size"], [22, 1, 1, "c.c128_allgather_p", "input"], [22, 1, 1, "c.c128_allgather_p", "input_rank"], [22, 1, 1, "c.c128_allgather_p", "output"], [22, 1, 1, "c.c128_allgather_p", "output_rank"]], "c128_allgather_s": [[22, 1, 1, "c.c128_allgather_s", "core_mask"], [22, 1, 1, "c.c128_allgather_s", "data_size"], [22, 1, 1, "c.c128_allgather_s", "input"], [22, 1, 1, "c.c128_allgather_s", "input_rank"], [22, 1, 1, "c.c128_allgather_s", "output"], [22, 1, 1, "c.c128_allgather_s", "output_rank"]], "c128_assign_p": [[27, 1, 1, "c.c128_assign_p", "dst"], [27, 1, 1, "c.c128_assign_p", "length"], [27, 1, 1, "c.c128_assign_p", "src"]], "c128_assign_s": [[27, 1, 1, "c.c128_assign_s", "core_mask"], [27, 1, 1, "c.c128_assign_s", "dst"], [27, 1, 1, "c.c128_assign_s", "length"], [27, 1, 1, "c.c128_assign_s", "src"]], "c128_assignadd_p": [[28, 1, 1, "c.c128_assignadd_p", "input"], [28, 1, 1, "c.c128_assignadd_p", "length"], [28, 1, 1, "c.c128_assignadd_p", "output"]], "c128_assignadd_s": [[28, 1, 1, "c.c128_assignadd_s", "core_mask"], [28, 1, 1, "c.c128_assignadd_s", "input"], [28, 1, 1, "c.c128_assignadd_s", "length"], [28, 1, 1, "c.c128_assignadd_s", "output"]], "c128_batchtospace_p": [[35, 1, 1, "c.c128_batchtospace_p", "block_size"], [35, 1, 1, "c.c128_batchtospace_p", "crops"], [35, 1, 1, "c.c128_batchtospace_p", "data_size"], [35, 1, 1, "c.c128_batchtospace_p", "input"], [35, 1, 1, "c.c128_batchtospace_p", "input_shape"], [35, 1, 1, "c.c128_batchtospace_p", "output"]], "c128_batchtospace_s": [[35, 1, 1, "c.c128_batchtospace_s", "block_size"], [35, 1, 1, "c.c128_batchtospace_s", "core_mask"], [35, 1, 1, "c.c128_batchtospace_s", "crops"], [35, 1, 1, "c.c128_batchtospace_s", "data_size"], [35, 1, 1, "c.c128_batchtospace_s", "input"], [35, 1, 1, "c.c128_batchtospace_s", "input_shape"], [35, 1, 1, "c.c128_batchtospace_s", "output"]], "c128_batchtospacend_p": [[36, 1, 1, "c.c128_batchtospacend_p", "block_size"], [36, 1, 1, "c.c128_batchtospacend_p", "crops"], [36, 1, 1, "c.c128_batchtospacend_p", "data_size"], [36, 1, 1, "c.c128_batchtospacend_p", "input"], [36, 1, 1, "c.c128_batchtospacend_p", "input_shape"], [36, 1, 1, "c.c128_batchtospacend_p", "output"]], "c128_batchtospacend_s": [[36, 1, 1, "c.c128_batchtospacend_s", "block_size"], [36, 1, 1, "c.c128_batchtospacend_s", "core_mask"], [36, 1, 1, "c.c128_batchtospacend_s", "crops"], [36, 1, 1, "c.c128_batchtospacend_s", "data_size"], [36, 1, 1, "c.c128_batchtospacend_s", "input"], [36, 1, 1, "c.c128_batchtospacend_s", "input_shape"], [36, 1, 1, "c.c128_batchtospacend_s", "output"]], "c128_biasadd_p": [[37, 1, 1, "c.c128_biasadd_p", "data_format"], [37, 1, 1, "c.c128_biasadd_p", "dims"], [37, 1, 1, "c.c128_biasadd_p", "input_bias"], [37, 1, 1, "c.c128_biasadd_p", "input_x"], [37, 1, 1, "c.c128_biasadd_p", "length"], [37, 1, 1, "c.c128_biasadd_p", "output"], [37, 1, 1, "c.c128_biasadd_p", "shape_size"]], "c128_biasadd_s": [[37, 1, 1, "c.c128_biasadd_s", "core_mask"], [37, 1, 1, "c.c128_biasadd_s", "data_format"], [37, 1, 1, "c.c128_biasadd_s", "dims"], [37, 1, 1, "c.c128_biasadd_s", "input_bias"], [37, 1, 1, "c.c128_biasadd_s", "input_x"], [37, 1, 1, "c.c128_biasadd_s", "length"], [37, 1, 1, "c.c128_biasadd_s", "output"], [37, 1, 1, "c.c128_biasadd_s", "shape_size"]], "c128_broadcastto_p": [[41, 1, 1, "c.c128_broadcastto_p", "data_size"], [41, 1, 1, "c.c128_broadcastto_p", "input"], [41, 1, 1, "c.c128_broadcastto_p", "input_shape"], [41, 1, 1, "c.c128_broadcastto_p", "input_shape_size"], [41, 1, 1, "c.c128_broadcastto_p", "output"], [41, 1, 1, "c.c128_broadcastto_p", "output_shape"], [41, 1, 1, "c.c128_broadcastto_p", "output_shape_size"]], "c128_broadcastto_s": [[41, 1, 1, "c.c128_broadcastto_s", "core_mask"], [41, 1, 1, "c.c128_broadcastto_s", "data_size"], [41, 1, 1, "c.c128_broadcastto_s", "input"], [41, 1, 1, "c.c128_broadcastto_s", "input_shape"], [41, 1, 1, "c.c128_broadcastto_s", "input_shape_size"], [41, 1, 1, "c.c128_broadcastto_s", "output"], [41, 1, 1, "c.c128_broadcastto_s", "output_shape"], [41, 1, 1, "c.c128_broadcastto_s", "output_shape_size"]], "c128_concat_p": [[45, 1, 1, "c.c128_concat_p", "axis"], [45, 1, 1, "c.c128_concat_p", "input_ndim"], [45, 1, 1, "c.c128_concat_p", "input_shapes"], [45, 1, 1, "c.c128_concat_p", "inputs"], [45, 1, 1, "c.c128_concat_p", "num_inputs"], [45, 1, 1, "c.c128_concat_p", "output"]], "c128_concat_s": [[45, 1, 1, "c.c128_concat_s", "axis"], [45, 1, 1, "c.c128_concat_s", "core_mask"], [45, 1, 1, "c.c128_concat_s", "input_ndim"], [45, 1, 1, "c.c128_concat_s", "input_shapes"], [45, 1, 1, "c.c128_concat_s", "inputs"], [45, 1, 1, "c.c128_concat_s", "num_inputs"], [45, 1, 1, "c.c128_concat_s", "output"]], "c128_constant_of_shape_p": [[46, 1, 1, "c.c128_constant_of_shape_p", "end"], [46, 1, 1, "c.c128_constant_of_shape_p", "output"], [46, 1, 1, "c.c128_constant_of_shape_p", "start"], [46, 1, 1, "c.c128_constant_of_shape_p", "value_imag"], [46, 1, 1, "c.c128_constant_of_shape_p", "value_real"]], "c128_constant_of_shape_s": [[46, 1, 1, "c.c128_constant_of_shape_s", "core_mask"], [46, 1, 1, "c.c128_constant_of_shape_s", "end"], [46, 1, 1, "c.c128_constant_of_shape_s", "output"], [46, 1, 1, "c.c128_constant_of_shape_s", "start"], [46, 1, 1, "c.c128_constant_of_shape_s", "value_imag"], [46, 1, 1, "c.c128_constant_of_shape_s", "value_real"]], "c128_cumsum_p": [[54, 1, 1, "c.c128_cumsum_p", "axis_dim"], [54, 1, 1, "c.c128_cumsum_p", "exclusive"], [54, 1, 1, "c.c128_cumsum_p", "inner_dim"], [54, 1, 1, "c.c128_cumsum_p", "input"], [54, 1, 1, "c.c128_cumsum_p", "out_dim"], [54, 1, 1, "c.c128_cumsum_p", "output"]], "c128_cumsum_s": [[54, 1, 1, "c.c128_cumsum_s", "axis_dim"], [54, 1, 1, "c.c128_cumsum_s", "core_mask"], [54, 1, 1, "c.c128_cumsum_s", "exclusive"], [54, 1, 1, "c.c128_cumsum_s", "inner_dim"], [54, 1, 1, "c.c128_cumsum_s", "input"], [54, 1, 1, "c.c128_cumsum_s", "out_dim"], [54, 1, 1, "c.c128_cumsum_s", "output"]], "c128_depthtospace_p": [[59, 1, 1, "c.c128_depthtospace_p", "block_size"], [59, 1, 1, "c.c128_depthtospace_p", "data_size"], [59, 1, 1, "c.c128_depthtospace_p", "in_shape"], [59, 1, 1, "c.c128_depthtospace_p", "input"], [59, 1, 1, "c.c128_depthtospace_p", "output"]], "c128_depthtospace_s": [[59, 1, 1, "c.c128_depthtospace_s", "block_size"], [59, 1, 1, "c.c128_depthtospace_s", "core_mask"], [59, 1, 1, "c.c128_depthtospace_s", "data_size"], [59, 1, 1, "c.c128_depthtospace_s", "in_shape"], [59, 1, 1, "c.c128_depthtospace_s", "input"], [59, 1, 1, "c.c128_depthtospace_s", "output"]], "c128_div_fusion_p": [[61, 1, 1, "c.c128_div_fusion_p", "input0"], [61, 1, 1, "c.c128_div_fusion_p", "input1"], [61, 1, 1, "c.c128_div_fusion_p", "length"], [61, 1, 1, "c.c128_div_fusion_p", "output"]], "c128_div_fusion_s": [[61, 1, 1, "c.c128_div_fusion_s", "core_mask"], [61, 1, 1, "c.c128_div_fusion_s", "input0"], [61, 1, 1, "c.c128_div_fusion_s", "input1"], [61, 1, 1, "c.c128_div_fusion_s", "length"], [61, 1, 1, "c.c128_div_fusion_s", "output"]], "c128_eltwise_p": [[67, 1, 1, "c.c128_eltwise_p", "Input0"], [67, 1, 1, "c.c128_eltwise_p", "Input1"], [67, 1, 1, "c.c128_eltwise_p", "eltwise_mode_"], [67, 1, 1, "c.c128_eltwise_p", "length"], [67, 1, 1, "c.c128_eltwise_p", "output"]], "c128_eltwise_s": [[67, 1, 1, "c.c128_eltwise_s", "Input0"], [67, 1, 1, "c.c128_eltwise_s", "Input1"], [67, 1, 1, "c.c128_eltwise_s", "core_mask"], [67, 1, 1, "c.c128_eltwise_s", "eltwise_mode_"], [67, 1, 1, "c.c128_eltwise_s", "length"], [67, 1, 1, "c.c128_eltwise_s", "output"]], "c128_equal_p": [[70, 1, 1, "c.c128_equal_p", "Input0"], [70, 1, 1, "c.c128_equal_p", "Input1"], [70, 1, 1, "c.c128_equal_p", "length"], [70, 1, 1, "c.c128_equal_p", "output"]], "c128_equal_s": [[70, 1, 1, "c.c128_equal_s", "Input0"], [70, 1, 1, "c.c128_equal_s", "Input1"], [70, 1, 1, "c.c128_equal_s", "core_mask"], [70, 1, 1, "c.c128_equal_s", "length"], [70, 1, 1, "c.c128_equal_s", "output"]], "c128_expfusion_p": [[73, 1, 1, "c.c128_expfusion_p", "dst_data"], [73, 1, 1, "c.c128_expfusion_p", "in_scale"], [73, 1, 1, "c.c128_expfusion_p", "length"], [73, 1, 1, "c.c128_expfusion_p", "out_scale"], [73, 1, 1, "c.c128_expfusion_p", "scale"], [73, 1, 1, "c.c128_expfusion_p", "src_data"]], "c128_expfusion_s": [[73, 1, 1, "c.c128_expfusion_s", "core_mask"], [73, 1, 1, "c.c128_expfusion_s", "dst_data"], [73, 1, 1, "c.c128_expfusion_s", "in_scale"], [73, 1, 1, "c.c128_expfusion_s", "length"], [73, 1, 1, "c.c128_expfusion_s", "out_scale"], [73, 1, 1, "c.c128_expfusion_s", "scale"], [73, 1, 1, "c.c128_expfusion_s", "src_data"]], "c128_extract_features_p": [[55, 1, 1, "c.c128_extract_features_p", "num_strings"], [55, 1, 1, "c.c128_extract_features_p", "output_labels"], [55, 1, 1, "c.c128_extract_features_p", "output_weights"], [55, 1, 1, "c.c128_extract_features_p", "string_lengths"], [55, 1, 1, "c.c128_extract_features_p", "string_pointers"]], "c128_extract_features_s": [[55, 1, 1, "c.c128_extract_features_s", "core_mask"], [55, 1, 1, "c.c128_extract_features_s", "num_strings"], [55, 1, 1, "c.c128_extract_features_s", "output_labels"], [55, 1, 1, "c.c128_extract_features_s", "output_weights"], [55, 1, 1, "c.c128_extract_features_s", "string_lengths"], [55, 1, 1, "c.c128_extract_features_s", "string_pointers"]], "c128_fill_p": [[78, 1, 1, "c.c128_fill_p", "output"], [78, 1, 1, "c.c128_fill_p", "param"], [78, 1, 1, "c.c128_fill_p", "value"]], "c128_fill_s": [[78, 1, 1, "c.c128_fill_s", "core_mask"], [78, 1, 1, "c.c128_fill_s", "output"], [78, 1, 1, "c.c128_fill_s", "param"], [78, 1, 1, "c.c128_fill_s", "value"]], "c128_formattranspose_p": [[85, 1, 1, "c.c128_formattranspose_p", "batch"], [85, 1, 1, "c.c128_formattranspose_p", "channel"], [85, 1, 1, "c.c128_formattranspose_p", "dst_data"], [85, 1, 1, "c.c128_formattranspose_p", "dst_format"], [85, 1, 1, "c.c128_formattranspose_p", "plane"], [85, 1, 1, "c.c128_formattranspose_p", "src_data"], [85, 1, 1, "c.c128_formattranspose_p", "src_format"]], "c128_formattranspose_s": [[85, 1, 1, "c.c128_formattranspose_s", "batch"], [85, 1, 1, "c.c128_formattranspose_s", "channel"], [85, 1, 1, "c.c128_formattranspose_s", "core_mask"], [85, 1, 1, "c.c128_formattranspose_s", "dst_data"], [85, 1, 1, "c.c128_formattranspose_s", "dst_format"], [85, 1, 1, "c.c128_formattranspose_s", "plane"], [85, 1, 1, "c.c128_formattranspose_s", "src_data"], [85, 1, 1, "c.c128_formattranspose_s", "src_format"]], "c128_gather_nd_p": [[89, 1, 1, "c.c128_gather_nd_p", "indices"], [89, 1, 1, "c.c128_gather_nd_p", "indices_ndim"], [89, 1, 1, "c.c128_gather_nd_p", "indices_shape"], [89, 1, 1, "c.c128_gather_nd_p", "input"], [89, 1, 1, "c.c128_gather_nd_p", "input_ndim"], [89, 1, 1, "c.c128_gather_nd_p", "input_shape"], [89, 1, 1, "c.c128_gather_nd_p", "output"]], "c128_gather_nd_s": [[89, 1, 1, "c.c128_gather_nd_s", "core_mask"], [89, 1, 1, "c.c128_gather_nd_s", "indices"], [89, 1, 1, "c.c128_gather_nd_s", "indices_ndim"], [89, 1, 1, "c.c128_gather_nd_s", "indices_shape"], [89, 1, 1, "c.c128_gather_nd_s", "input"], [89, 1, 1, "c.c128_gather_nd_s", "input_ndim"], [89, 1, 1, "c.c128_gather_nd_s", "input_shape"], [89, 1, 1, "c.c128_gather_nd_s", "output"]], "c128_gather_p": [[88, 1, 1, "c.c128_gather_p", "axis"], [88, 1, 1, "c.c128_gather_p", "batch_dims"], [88, 1, 1, "c.c128_gather_p", "indices"], [88, 1, 1, "c.c128_gather_p", "indices_ndim"], [88, 1, 1, "c.c128_gather_p", "indices_shape"], [88, 1, 1, "c.c128_gather_p", "input"], [88, 1, 1, "c.c128_gather_p", "input_ndim"], [88, 1, 1, "c.c128_gather_p", "input_shape"], [88, 1, 1, "c.c128_gather_p", "output"]], "c128_gather_s": [[88, 1, 1, "c.c128_gather_s", "axis"], [88, 1, 1, "c.c128_gather_s", "batch_dims"], [88, 1, 1, "c.c128_gather_s", "core_mask"], [88, 1, 1, "c.c128_gather_s", "indices"], [88, 1, 1, "c.c128_gather_s", "indices_ndim"], [88, 1, 1, "c.c128_gather_s", "indices_shape"], [88, 1, 1, "c.c128_gather_s", "input"], [88, 1, 1, "c.c128_gather_s", "input_ndim"], [88, 1, 1, "c.c128_gather_s", "input_shape"], [88, 1, 1, "c.c128_gather_s", "output"]], "c128_gatherd_p": [[90, 1, 1, "c.c128_gatherd_p", "dim"], [90, 1, 1, "c.c128_gatherd_p", "index"], [90, 1, 1, "c.c128_gatherd_p", "index_shape"], [90, 1, 1, "c.c128_gatherd_p", "input_shape"], [90, 1, 1, "c.c128_gatherd_p", "input_shape_size"], [90, 1, 1, "c.c128_gatherd_p", "input_x"], [90, 1, 1, "c.c128_gatherd_p", "output"]], "c128_gatherd_s": [[90, 1, 1, "c.c128_gatherd_s", "core_mask"], [90, 1, 1, "c.c128_gatherd_s", "dim"], [90, 1, 1, "c.c128_gatherd_s", "index"], [90, 1, 1, "c.c128_gatherd_s", "index_shape"], [90, 1, 1, "c.c128_gatherd_s", "input_shape"], [90, 1, 1, "c.c128_gatherd_s", "input_shape_size"], [90, 1, 1, "c.c128_gatherd_s", "input_x"], [90, 1, 1, "c.c128_gatherd_s", "output"]], "c128_isfinite_p": [[99, 1, 1, "c.c128_isfinite_p", "Input"], [99, 1, 1, "c.c128_isfinite_p", "length"], [99, 1, 1, "c.c128_isfinite_p", "output"]], "c128_isfinite_s": [[99, 1, 1, "c.c128_isfinite_s", "Input"], [99, 1, 1, "c.c128_isfinite_s", "core_mask"], [99, 1, 1, "c.c128_isfinite_s", "length"], [99, 1, 1, "c.c128_isfinite_s", "output"]], "c128_matmulfusion_p": [[121, 1, 1, "c.c128_matmulfusion_p", "A"], [121, 1, 1, "c.c128_matmulfusion_p", "B"], [121, 1, 1, "c.c128_matmulfusion_p", "C"], [121, 1, 1, "c.c128_matmulfusion_p", "K"], [121, 1, 1, "c.c128_matmulfusion_p", "M"], [121, 1, 1, "c.c128_matmulfusion_p", "N"], [121, 1, 1, "c.c128_matmulfusion_p", "activation_type"], [121, 1, 1, "c.c128_matmulfusion_p", "bias"]], "c128_matmulfusion_s": [[121, 1, 1, "c.c128_matmulfusion_s", "A"], [121, 1, 1, "c.c128_matmulfusion_s", "B"], [121, 1, 1, "c.c128_matmulfusion_s", "C"], [121, 1, 1, "c.c128_matmulfusion_s", "K"], [121, 1, 1, "c.c128_matmulfusion_s", "M"], [121, 1, 1, "c.c128_matmulfusion_s", "N"], [121, 1, 1, "c.c128_matmulfusion_s", "activation_type"], [121, 1, 1, "c.c128_matmulfusion_s", "bias"], [121, 1, 1, "c.c128_matmulfusion_s", "core_mask"]], "c128_mul_p": [[130, 1, 1, "c.c128_mul_p", "input0"], [130, 1, 1, "c.c128_mul_p", "input1"], [130, 1, 1, "c.c128_mul_p", "length"], [130, 1, 1, "c.c128_mul_p", "output"]], "c128_mul_s": [[130, 1, 1, "c.c128_mul_s", "core_mask"], [130, 1, 1, "c.c128_mul_s", "input0"], [130, 1, 1, "c.c128_mul_s", "input1"], [130, 1, 1, "c.c128_mul_s", "length"], [130, 1, 1, "c.c128_mul_s", "output"]], "c128_neg_grad_p": [[133, 1, 1, "c.c128_neg_grad_p", "Input"], [133, 1, 1, "c.c128_neg_grad_p", "length"], [133, 1, 1, "c.c128_neg_grad_p", "output"]], "c128_neg_grad_s": [[133, 1, 1, "c.c128_neg_grad_s", "Input"], [133, 1, 1, "c.c128_neg_grad_s", "core_mask"], [133, 1, 1, "c.c128_neg_grad_s", "length"], [133, 1, 1, "c.c128_neg_grad_s", "output"]], "c128_neg_p": [[132, 1, 1, "c.c128_neg_p", "Input"], [132, 1, 1, "c.c128_neg_p", "length"], [132, 1, 1, "c.c128_neg_p", "output"]], "c128_neg_s": [[132, 1, 1, "c.c128_neg_s", "Input"], [132, 1, 1, "c.c128_neg_s", "core_mask"], [132, 1, 1, "c.c128_neg_s", "length"], [132, 1, 1, "c.c128_neg_s", "output"]], "c128_nonzero_p": [[137, 1, 1, "c.c128_nonzero_p", "dim_strides"], [137, 1, 1, "c.c128_nonzero_p", "input"], [137, 1, 1, "c.c128_nonzero_p", "input_rank"], [137, 1, 1, "c.c128_nonzero_p", "length"], [137, 1, 1, "c.c128_nonzero_p", "non_zero_num"], [137, 1, 1, "c.c128_nonzero_p", "output"], [137, 1, 1, "c.c128_nonzero_p", "shape"]], "c128_nonzero_s": [[137, 1, 1, "c.c128_nonzero_s", "core_mask"], [137, 1, 1, "c.c128_nonzero_s", "dim_strides"], [137, 1, 1, "c.c128_nonzero_s", "input"], [137, 1, 1, "c.c128_nonzero_s", "input_rank"], [137, 1, 1, "c.c128_nonzero_s", "length"], [137, 1, 1, "c.c128_nonzero_s", "non_zero_num"], [137, 1, 1, "c.c128_nonzero_s", "output"], [137, 1, 1, "c.c128_nonzero_s", "shape"]], "c128_not_equal_p": [[138, 1, 1, "c.c128_not_equal_p", "Input0"], [138, 1, 1, "c.c128_not_equal_p", "Input1"], [138, 1, 1, "c.c128_not_equal_p", "length"], [138, 1, 1, "c.c128_not_equal_p", "output"]], "c128_not_equal_s": [[138, 1, 1, "c.c128_not_equal_s", "Input0"], [138, 1, 1, "c.c128_not_equal_s", "Input1"], [138, 1, 1, "c.c128_not_equal_s", "core_mask"], [138, 1, 1, "c.c128_not_equal_s", "length"], [138, 1, 1, "c.c128_not_equal_s", "output"]], "c128_onehot_p": [[139, 1, 1, "c.c128_onehot_p", "axis"], [139, 1, 1, "c.c128_onehot_p", "depth"], [139, 1, 1, "c.c128_onehot_p", "indices"], [139, 1, 1, "c.c128_onehot_p", "indices_shape"], [139, 1, 1, "c.c128_onehot_p", "indices_shape_size"], [139, 1, 1, "c.c128_onehot_p", "on_off"], [139, 1, 1, "c.c128_onehot_p", "output"], [139, 1, 1, "c.c128_onehot_p", "support_neg_index"]], "c128_onehot_s": [[139, 1, 1, "c.c128_onehot_s", "axis"], [139, 1, 1, "c.c128_onehot_s", "core_mask"], [139, 1, 1, "c.c128_onehot_s", "depth"], [139, 1, 1, "c.c128_onehot_s", "indices"], [139, 1, 1, "c.c128_onehot_s", "indices_shape"], [139, 1, 1, "c.c128_onehot_s", "indices_shape_size"], [139, 1, 1, "c.c128_onehot_s", "on_off"], [139, 1, 1, "c.c128_onehot_s", "output"], [139, 1, 1, "c.c128_onehot_s", "support_neg_index"]], "c128_ones_like_p": [[140, 1, 1, "c.c128_ones_like_p", "length"], [140, 1, 1, "c.c128_ones_like_p", "output"]], "c128_ones_like_s": [[140, 1, 1, "c.c128_ones_like_s", "core_mask"], [140, 1, 1, "c.c128_ones_like_s", "length"], [140, 1, 1, "c.c128_ones_like_s", "output"]], "c128_padfusion_p": [[141, 1, 1, "c.c128_padfusion_p", "params"]], "c128_padfusion_s": [[141, 1, 1, "c.c128_padfusion_s", "core_mask"], [141, 1, 1, "c.c128_padfusion_s", "params"]], "c128_real_div_p": [[152, 1, 1, "c.c128_real_div_p", "input0"], [152, 1, 1, "c.c128_real_div_p", "input1"], [152, 1, 1, "c.c128_real_div_p", "length"], [152, 1, 1, "c.c128_real_div_p", "output"]], "c128_real_div_s": [[152, 1, 1, "c.c128_real_div_s", "core_mask"], [152, 1, 1, "c.c128_real_div_s", "input0"], [152, 1, 1, "c.c128_real_div_s", "input1"], [152, 1, 1, "c.c128_real_div_s", "length"], [152, 1, 1, "c.c128_real_div_s", "output"]], "c128_reciprocal_p": [[153, 1, 1, "c.c128_reciprocal_p", "Input"], [153, 1, 1, "c.c128_reciprocal_p", "length"], [153, 1, 1, "c.c128_reciprocal_p", "output"]], "c128_reciprocal_s": [[153, 1, 1, "c.c128_reciprocal_s", "Input"], [153, 1, 1, "c.c128_reciprocal_s", "core_mask"], [153, 1, 1, "c.c128_reciprocal_s", "length"], [153, 1, 1, "c.c128_reciprocal_s", "output"]], "c128_reduceall_p": [[21, 1, 1, "c.c128_reduceall_p", "axis_size"], [21, 1, 1, "c.c128_reduceall_p", "dst_data"], [21, 1, 1, "c.c128_reduceall_p", "inner_size"], [21, 1, 1, "c.c128_reduceall_p", "outer_size"], [21, 1, 1, "c.c128_reduceall_p", "src_data"]], "c128_reduceall_s": [[21, 1, 1, "c.c128_reduceall_s", "axis_size"], [21, 1, 1, "c.c128_reduceall_s", "core_mask"], [21, 1, 1, "c.c128_reduceall_s", "dst_data"], [21, 1, 1, "c.c128_reduceall_s", "inner_size"], [21, 1, 1, "c.c128_reduceall_s", "outer_size"], [21, 1, 1, "c.c128_reduceall_s", "src_data"]], "c128_reshape_p": [[156, 1, 1, "c.c128_reshape_p", "input"], [156, 1, 1, "c.c128_reshape_p", "length"], [156, 1, 1, "c.c128_reshape_p", "output"]], "c128_reshape_s": [[156, 1, 1, "c.c128_reshape_s", "core_mask"], [156, 1, 1, "c.c128_reshape_s", "input"], [156, 1, 1, "c.c128_reshape_s", "length"], [156, 1, 1, "c.c128_reshape_s", "output"]], "c128_rfft_p": [[161, 1, 1, "c.c128_rfft_p", "dir"], [161, 1, 1, "c.c128_rfft_p", "fft_size"], [161, 1, 1, "c.c128_rfft_p", "input"], [161, 1, 1, "c.c128_rfft_p", "output"], [161, 1, 1, "c.c128_rfft_p", "scratch_ptr"]], "c128_rfft_s": [[161, 1, 1, "c.c128_rfft_s", "core_mask"], [161, 1, 1, "c.c128_rfft_s", "dir"], [161, 1, 1, "c.c128_rfft_s", "fft_size1"], [161, 1, 1, "c.c128_rfft_s", "fft_size2"], [161, 1, 1, "c.c128_rfft_s", "input"], [161, 1, 1, "c.c128_rfft_s", "output"], [161, 1, 1, "c.c128_rfft_s", "scratch_ptr"], [161, 1, 1, "c.c128_rfft_s", "twiddle"]], "c128_rsqrt_p": [[164, 1, 1, "c.c128_rsqrt_p", "dst"], [164, 1, 1, "c.c128_rsqrt_p", "length"], [164, 1, 1, "c.c128_rsqrt_p", "src"]], "c128_rsqrt_s": [[164, 1, 1, "c.c128_rsqrt_s", "core_mask"], [164, 1, 1, "c.c128_rsqrt_s", "dst"], [164, 1, 1, "c.c128_rsqrt_s", "length"], [164, 1, 1, "c.c128_rsqrt_s", "src"]], "c128_scatter_elements_p": [[167, 1, 1, "c.c128_scatter_elements_p", "core_mask"], [167, 1, 1, "c.c128_scatter_elements_p", "indices"], [167, 1, 1, "c.c128_scatter_elements_p", "input"], [167, 1, 1, "c.c128_scatter_elements_p", "output"], [167, 1, 1, "c.c128_scatter_elements_p", "param"], [167, 1, 1, "c.c128_scatter_elements_p", "updates"]], "c128_scatter_elements_s": [[167, 1, 1, "c.c128_scatter_elements_s", "core_mask"], [167, 1, 1, "c.c128_scatter_elements_s", "indices"], [167, 1, 1, "c.c128_scatter_elements_s", "input"], [167, 1, 1, "c.c128_scatter_elements_s", "output"], [167, 1, 1, "c.c128_scatter_elements_s", "param"], [167, 1, 1, "c.c128_scatter_elements_s", "updates"]], "c128_scatter_nd_p": [[168, 1, 1, "c.c128_scatter_nd_p", "indices"], [168, 1, 1, "c.c128_scatter_nd_p", "indices_ndim"], [168, 1, 1, "c.c128_scatter_nd_p", "indices_shape"], [168, 1, 1, "c.c128_scatter_nd_p", "output"], [168, 1, 1, "c.c128_scatter_nd_p", "output_ndim"], [168, 1, 1, "c.c128_scatter_nd_p", "output_shape"], [168, 1, 1, "c.c128_scatter_nd_p", "updates"]], "c128_scatter_nd_s": [[168, 1, 1, "c.c128_scatter_nd_s", "core_mask"], [168, 1, 1, "c.c128_scatter_nd_s", "indices"], [168, 1, 1, "c.c128_scatter_nd_s", "indices_ndim"], [168, 1, 1, "c.c128_scatter_nd_s", "indices_shape"], [168, 1, 1, "c.c128_scatter_nd_s", "output"], [168, 1, 1, "c.c128_scatter_nd_s", "output_ndim"], [168, 1, 1, "c.c128_scatter_nd_s", "output_shape"], [168, 1, 1, "c.c128_scatter_nd_s", "updates"]], "c128_scatter_nd_update_p": [[169, 1, 1, "c.c128_scatter_nd_update_p", "indices"], [169, 1, 1, "c.c128_scatter_nd_update_p", "indices_ndim"], [169, 1, 1, "c.c128_scatter_nd_update_p", "indices_shape"], [169, 1, 1, "c.c128_scatter_nd_update_p", "output"], [169, 1, 1, "c.c128_scatter_nd_update_p", "output_ndim"], [169, 1, 1, "c.c128_scatter_nd_update_p", "output_shape"], [169, 1, 1, "c.c128_scatter_nd_update_p", "updates"]], "c128_scatter_nd_update_s": [[169, 1, 1, "c.c128_scatter_nd_update_s", "core_mask"], [169, 1, 1, "c.c128_scatter_nd_update_s", "indices"], [169, 1, 1, "c.c128_scatter_nd_update_s", "indices_ndim"], [169, 1, 1, "c.c128_scatter_nd_update_s", "indices_shape"], [169, 1, 1, "c.c128_scatter_nd_update_s", "output"], [169, 1, 1, "c.c128_scatter_nd_update_s", "output_ndim"], [169, 1, 1, "c.c128_scatter_nd_update_s", "output_shape"], [169, 1, 1, "c.c128_scatter_nd_update_s", "updates"]], "c128_select_p": [[170, 1, 1, "c.c128_select_p", "condition"], [170, 1, 1, "c.c128_select_p", "index_list1"], [170, 1, 1, "c.c128_select_p", "index_list2"], [170, 1, 1, "c.c128_select_p", "index_list3"], [170, 1, 1, "c.c128_select_p", "input0"], [170, 1, 1, "c.c128_select_p", "input1"], [170, 1, 1, "c.c128_select_p", "is_broadcast"], [170, 1, 1, "c.c128_select_p", "output"], [170, 1, 1, "c.c128_select_p", "output_dims"], [170, 1, 1, "c.c128_select_p", "output_dims_num"]], "c128_select_s": [[170, 1, 1, "c.c128_select_s", "condition"], [170, 1, 1, "c.c128_select_s", "core_mask"], [170, 1, 1, "c.c128_select_s", "index_list1"], [170, 1, 1, "c.c128_select_s", "index_list2"], [170, 1, 1, "c.c128_select_s", "index_list3"], [170, 1, 1, "c.c128_select_s", "input0"], [170, 1, 1, "c.c128_select_s", "input1"], [170, 1, 1, "c.c128_select_s", "is_broadcast"], [170, 1, 1, "c.c128_select_s", "output"], [170, 1, 1, "c.c128_select_s", "output_dims"], [170, 1, 1, "c.c128_select_s", "output_dims_num"]], "c128_slice_p": [[178, 1, 1, "c.c128_slice_p", "begin"], [178, 1, 1, "c.c128_slice_p", "input"], [178, 1, 1, "c.c128_slice_p", "input_shape"], [178, 1, 1, "c.c128_slice_p", "ndim"], [178, 1, 1, "c.c128_slice_p", "output"], [178, 1, 1, "c.c128_slice_p", "size"]], "c128_slice_s": [[178, 1, 1, "c.c128_slice_s", "begin"], [178, 1, 1, "c.c128_slice_s", "core_mask"], [178, 1, 1, "c.c128_slice_s", "input"], [178, 1, 1, "c.c128_slice_s", "input_shape"], [178, 1, 1, "c.c128_slice_s", "ndim"], [178, 1, 1, "c.c128_slice_s", "output"], [178, 1, 1, "c.c128_slice_s", "size"]], "c128_spacetobatch_p": [[183, 1, 1, "c.c128_spacetobatch_p", "block_size"], [183, 1, 1, "c.c128_spacetobatch_p", "data_size"], [183, 1, 1, "c.c128_spacetobatch_p", "input"], [183, 1, 1, "c.c128_spacetobatch_p", "input_shape"], [183, 1, 1, "c.c128_spacetobatch_p", "output"], [183, 1, 1, "c.c128_spacetobatch_p", "paddings"]], "c128_spacetobatch_s": [[183, 1, 1, "c.c128_spacetobatch_s", "block_size"], [183, 1, 1, "c.c128_spacetobatch_s", "core_mask"], [183, 1, 1, "c.c128_spacetobatch_s", "data_size"], [183, 1, 1, "c.c128_spacetobatch_s", "input"], [183, 1, 1, "c.c128_spacetobatch_s", "input_shape"], [183, 1, 1, "c.c128_spacetobatch_s", "output"], [183, 1, 1, "c.c128_spacetobatch_s", "paddings"]], "c128_spacetobatchnd_p": [[184, 1, 1, "c.c128_spacetobatchnd_p", "block_size"], [184, 1, 1, "c.c128_spacetobatchnd_p", "data_size"], [184, 1, 1, "c.c128_spacetobatchnd_p", "input"], [184, 1, 1, "c.c128_spacetobatchnd_p", "input_shape"], [184, 1, 1, "c.c128_spacetobatchnd_p", "output"], [184, 1, 1, "c.c128_spacetobatchnd_p", "paddings"]], "c128_spacetobatchnd_s": [[184, 1, 1, "c.c128_spacetobatchnd_s", "block_size"], [184, 1, 1, "c.c128_spacetobatchnd_s", "core_mask"], [184, 1, 1, "c.c128_spacetobatchnd_s", "data_size"], [184, 1, 1, "c.c128_spacetobatchnd_s", "input"], [184, 1, 1, "c.c128_spacetobatchnd_s", "input_shape"], [184, 1, 1, "c.c128_spacetobatchnd_s", "output"], [184, 1, 1, "c.c128_spacetobatchnd_s", "paddings"]], "c128_spacetodepth_p": [[185, 1, 1, "c.c128_spacetodepth_p", "block"], [185, 1, 1, "c.c128_spacetodepth_p", "data_size"], [185, 1, 1, "c.c128_spacetodepth_p", "in_shape"], [185, 1, 1, "c.c128_spacetodepth_p", "input"], [185, 1, 1, "c.c128_spacetodepth_p", "output"]], "c128_spacetodepth_s": [[185, 1, 1, "c.c128_spacetodepth_s", "block"], [185, 1, 1, "c.c128_spacetodepth_s", "core_mask"], [185, 1, 1, "c.c128_spacetodepth_s", "data_size"], [185, 1, 1, "c.c128_spacetodepth_s", "in_shape"], [185, 1, 1, "c.c128_spacetodepth_s", "input"], [185, 1, 1, "c.c128_spacetodepth_s", "output"]], "c128_sparsefillemptyrows_p": [[187, 1, 1, "c.c128_sparsefillemptyrows_p", "N"], [187, 1, 1, "c.c128_sparsefillemptyrows_p", "default_value"], [187, 1, 1, "c.c128_sparsefillemptyrows_p", "dense_rows"], [187, 1, 1, "c.c128_sparsefillemptyrows_p", "filled_count"], [187, 1, 1, "c.c128_sparsefillemptyrows_p", "indices_ptr"], [187, 1, 1, "c.c128_sparsefillemptyrows_p", "output_reverse_index_map_ptr"], [187, 1, 1, "c.c128_sparsefillemptyrows_p", "output_y_indices_ptr"], [187, 1, 1, "c.c128_sparsefillemptyrows_p", "output_y_values_ptr"], [187, 1, 1, "c.c128_sparsefillemptyrows_p", "rank"], [187, 1, 1, "c.c128_sparsefillemptyrows_p", "scratch_ptr"], [187, 1, 1, "c.c128_sparsefillemptyrows_p", "values_ptr"]], "c128_sparsefillemptyrows_s": [[187, 1, 1, "c.c128_sparsefillemptyrows_s", "N"], [187, 1, 1, "c.c128_sparsefillemptyrows_s", "core_mask"], [187, 1, 1, "c.c128_sparsefillemptyrows_s", "default_value"], [187, 1, 1, "c.c128_sparsefillemptyrows_s", "dense_rows"], [187, 1, 1, "c.c128_sparsefillemptyrows_s", "filled_count"], [187, 1, 1, "c.c128_sparsefillemptyrows_s", "indices_ptr"], [187, 1, 1, "c.c128_sparsefillemptyrows_s", "output_reverse_index_map_ptr"], [187, 1, 1, "c.c128_sparsefillemptyrows_s", "output_y_indices_ptr"], [187, 1, 1, "c.c128_sparsefillemptyrows_s", "output_y_values_ptr"], [187, 1, 1, "c.c128_sparsefillemptyrows_s", "rank"], [187, 1, 1, "c.c128_sparsefillemptyrows_s", "scratch_ptr"], [187, 1, 1, "c.c128_sparsefillemptyrows_s", "values_ptr"]], "c128_sparsesegmentsum_p": [[189, 1, 1, "c.c128_sparsesegmentsum_p", "in_data"], [189, 1, 1, "c.c128_sparsesegmentsum_p", "in_data_shape"], [189, 1, 1, "c.c128_sparsesegmentsum_p", "in_data_shape_size"], [189, 1, 1, "c.c128_sparsesegmentsum_p", "in_indices"], [189, 1, 1, "c.c128_sparsesegmentsum_p", "in_indices_size"], [189, 1, 1, "c.c128_sparsesegmentsum_p", "in_segment_ids"], [189, 1, 1, "c.c128_sparsesegmentsum_p", "out_data"], [189, 1, 1, "c.c128_sparsesegmentsum_p", "out_data_shape"]], "c128_sparsesegmentsum_s": [[189, 1, 1, "c.c128_sparsesegmentsum_s", "core_mask"], [189, 1, 1, "c.c128_sparsesegmentsum_s", "in_data"], [189, 1, 1, "c.c128_sparsesegmentsum_s", "in_data_shape"], [189, 1, 1, "c.c128_sparsesegmentsum_s", "in_data_shape_size"], [189, 1, 1, "c.c128_sparsesegmentsum_s", "in_indices"], [189, 1, 1, "c.c128_sparsesegmentsum_s", "in_indices_size"], [189, 1, 1, "c.c128_sparsesegmentsum_s", "in_segment_ids"], [189, 1, 1, "c.c128_sparsesegmentsum_s", "out_data"], [189, 1, 1, "c.c128_sparsesegmentsum_s", "out_data_shape"]], "c128_sparsetodense_p": [[190, 1, 1, "c.c128_sparsetodense_p", "indices_vec"], [190, 1, 1, "c.c128_sparsetodense_p", "is_scalar"], [190, 1, 1, "c.c128_sparsetodense_p", "output"], [190, 1, 1, "c.c128_sparsetodense_p", "output_strides"], [190, 1, 1, "c.c128_sparsetodense_p", "sparse_length"], [190, 1, 1, "c.c128_sparsetodense_p", "sparse_values"]], "c128_sparsetodense_s": [[190, 1, 1, "c.c128_sparsetodense_s", "core_mask"], [190, 1, 1, "c.c128_sparsetodense_s", "indices_vec"], [190, 1, 1, "c.c128_sparsetodense_s", "is_scalar"], [190, 1, 1, "c.c128_sparsetodense_s", "output"], [190, 1, 1, "c.c128_sparsetodense_s", "output_strides"], [190, 1, 1, "c.c128_sparsetodense_s", "sparse_length"], [190, 1, 1, "c.c128_sparsetodense_s", "sparse_values"]], "c128_splice_p": [[191, 1, 1, "c.c128_splice_p", "context_dim"], [191, 1, 1, "c.c128_splice_p", "dst_col"], [191, 1, 1, "c.c128_splice_p", "dst_data"], [191, 1, 1, "c.c128_splice_p", "dst_row"], [191, 1, 1, "c.c128_splice_p", "forward_indexes"], [191, 1, 1, "c.c128_splice_p", "forward_indexes_dims"], [191, 1, 1, "c.c128_splice_p", "src_col"], [191, 1, 1, "c.c128_splice_p", "src_data"], [191, 1, 1, "c.c128_splice_p", "src_row"]], "c128_splice_s": [[191, 1, 1, "c.c128_splice_s", "context_dim"], [191, 1, 1, "c.c128_splice_s", "core_mask"], [191, 1, 1, "c.c128_splice_s", "dst_col"], [191, 1, 1, "c.c128_splice_s", "dst_data"], [191, 1, 1, "c.c128_splice_s", "dst_row"], [191, 1, 1, "c.c128_splice_s", "forward_indexes"], [191, 1, 1, "c.c128_splice_s", "forward_indexes_dims"], [191, 1, 1, "c.c128_splice_s", "src_col"], [191, 1, 1, "c.c128_splice_s", "src_data"], [191, 1, 1, "c.c128_splice_s", "src_row"]], "c128_split_p": [[192, 1, 1, "c.c128_split_p", "axis"], [192, 1, 1, "c.c128_split_p", "input"], [192, 1, 1, "c.c128_split_p", "input_ndim"], [192, 1, 1, "c.c128_split_p", "input_shape"], [192, 1, 1, "c.c128_split_p", "num_split"], [192, 1, 1, "c.c128_split_p", "outputs"], [192, 1, 1, "c.c128_split_p", "split_sizes"]], "c128_split_s": [[192, 1, 1, "c.c128_split_s", "axis"], [192, 1, 1, "c.c128_split_s", "core_mask"], [192, 1, 1, "c.c128_split_s", "input"], [192, 1, 1, "c.c128_split_s", "input_ndim"], [192, 1, 1, "c.c128_split_s", "input_shape"], [192, 1, 1, "c.c128_split_s", "num_split"], [192, 1, 1, "c.c128_split_s", "outputs"], [192, 1, 1, "c.c128_split_s", "split_sizes"]], "c128_split_with_overlap_p": [[193, 1, 1, "c.c128_split_with_overlap_p", "axis"], [193, 1, 1, "c.c128_split_with_overlap_p", "end_indices"], [193, 1, 1, "c.c128_split_with_overlap_p", "input"], [193, 1, 1, "c.c128_split_with_overlap_p", "input_ndim"], [193, 1, 1, "c.c128_split_with_overlap_p", "input_shape"], [193, 1, 1, "c.c128_split_with_overlap_p", "num_split"], [193, 1, 1, "c.c128_split_with_overlap_p", "outputs"], [193, 1, 1, "c.c128_split_with_overlap_p", "start_indices"]], "c128_split_with_overlap_s": [[193, 1, 1, "c.c128_split_with_overlap_s", "axis"], [193, 1, 1, "c.c128_split_with_overlap_s", "core_mask"], [193, 1, 1, "c.c128_split_with_overlap_s", "end_indices"], [193, 1, 1, "c.c128_split_with_overlap_s", "input"], [193, 1, 1, "c.c128_split_with_overlap_s", "input_ndim"], [193, 1, 1, "c.c128_split_with_overlap_s", "input_shape"], [193, 1, 1, "c.c128_split_with_overlap_s", "num_split"], [193, 1, 1, "c.c128_split_with_overlap_s", "outputs"], [193, 1, 1, "c.c128_split_with_overlap_s", "start_indices"]], "c128_sqrt_p": [[194, 1, 1, "c.c128_sqrt_p", "dst_data"], [194, 1, 1, "c.c128_sqrt_p", "length"], [194, 1, 1, "c.c128_sqrt_p", "src_data"]], "c128_sqrt_s": [[194, 1, 1, "c.c128_sqrt_s", "core_mask"], [194, 1, 1, "c.c128_sqrt_s", "dst_data"], [194, 1, 1, "c.c128_sqrt_s", "length"], [194, 1, 1, "c.c128_sqrt_s", "src_data"]], "c128_sqrtgrad_p": [[195, 1, 1, "c.c128_sqrtgrad_p", "input1"], [195, 1, 1, "c.c128_sqrtgrad_p", "input2"], [195, 1, 1, "c.c128_sqrtgrad_p", "output"], [195, 1, 1, "c.c128_sqrtgrad_p", "size"]], "c128_sqrtgrad_s": [[195, 1, 1, "c.c128_sqrtgrad_s", "core_mask"], [195, 1, 1, "c.c128_sqrtgrad_s", "input1"], [195, 1, 1, "c.c128_sqrtgrad_s", "input2"], [195, 1, 1, "c.c128_sqrtgrad_s", "output"], [195, 1, 1, "c.c128_sqrtgrad_s", "size"]], "c128_square_p": [[196, 1, 1, "c.c128_square_p", "dst"], [196, 1, 1, "c.c128_square_p", "length"], [196, 1, 1, "c.c128_square_p", "src"]], "c128_square_s": [[196, 1, 1, "c.c128_square_s", "core_mask"], [196, 1, 1, "c.c128_square_s", "dst"], [196, 1, 1, "c.c128_square_s", "length"], [196, 1, 1, "c.c128_square_s", "src"]], "c128_squaredifference_p": [[197, 1, 1, "c.c128_squaredifference_p", "input0"], [197, 1, 1, "c.c128_squaredifference_p", "input1"], [197, 1, 1, "c.c128_squaredifference_p", "length"], [197, 1, 1, "c.c128_squaredifference_p", "output"]], "c128_squaredifference_s": [[197, 1, 1, "c.c128_squaredifference_s", "core_mask"], [197, 1, 1, "c.c128_squaredifference_s", "input0"], [197, 1, 1, "c.c128_squaredifference_s", "input1"], [197, 1, 1, "c.c128_squaredifference_s", "length"], [197, 1, 1, "c.c128_squaredifference_s", "output"]], "c128_stack_p": [[199, 1, 1, "c.c128_stack_p", "axis"], [199, 1, 1, "c.c128_stack_p", "input_ndim"], [199, 1, 1, "c.c128_stack_p", "input_shape"], [199, 1, 1, "c.c128_stack_p", "inputs"], [199, 1, 1, "c.c128_stack_p", "num_inputs"], [199, 1, 1, "c.c128_stack_p", "output"]], "c128_stack_s": [[199, 1, 1, "c.c128_stack_s", "axis"], [199, 1, 1, "c.c128_stack_s", "core_mask"], [199, 1, 1, "c.c128_stack_s", "input_ndim"], [199, 1, 1, "c.c128_stack_s", "input_shape"], [199, 1, 1, "c.c128_stack_s", "inputs"], [199, 1, 1, "c.c128_stack_s", "num_inputs"], [199, 1, 1, "c.c128_stack_s", "output"]], "c128_subext_p": [[202, 1, 1, "c.c128_subext_p", "alpha"], [202, 1, 1, "c.c128_subext_p", "input0"], [202, 1, 1, "c.c128_subext_p", "input1"], [202, 1, 1, "c.c128_subext_p", "output"], [202, 1, 1, "c.c128_subext_p", "size"]], "c128_subext_s": [[202, 1, 1, "c.c128_subext_s", "alpha"], [202, 1, 1, "c.c128_subext_s", "core_mask"], [202, 1, 1, "c.c128_subext_s", "input0"], [202, 1, 1, "c.c128_subext_s", "input1"], [202, 1, 1, "c.c128_subext_s", "output"], [202, 1, 1, "c.c128_subext_s", "size"]], "c128_subrelu6_p": [[202, 1, 1, "c.c128_subrelu6_p", "input0"], [202, 1, 1, "c.c128_subrelu6_p", "input1"], [202, 1, 1, "c.c128_subrelu6_p", "output"], [202, 1, 1, "c.c128_subrelu6_p", "size"]], "c128_subrelu6_s": [[202, 1, 1, "c.c128_subrelu6_s", "core_mask"], [202, 1, 1, "c.c128_subrelu6_s", "input0"], [202, 1, 1, "c.c128_subrelu6_s", "input1"], [202, 1, 1, "c.c128_subrelu6_s", "output"], [202, 1, 1, "c.c128_subrelu6_s", "size"]], "c128_subrelu_p": [[202, 1, 1, "c.c128_subrelu_p", "input0"], [202, 1, 1, "c.c128_subrelu_p", "input1"], [202, 1, 1, "c.c128_subrelu_p", "output"], [202, 1, 1, "c.c128_subrelu_p", "size"]], "c128_subrelu_s": [[202, 1, 1, "c.c128_subrelu_s", "core_mask"], [202, 1, 1, "c.c128_subrelu_s", "input0"], [202, 1, 1, "c.c128_subrelu_s", "input1"], [202, 1, 1, "c.c128_subrelu_s", "output"], [202, 1, 1, "c.c128_subrelu_s", "size"]], "c128_tensor_scatter_add_p": [[206, 1, 1, "c.c128_tensor_scatter_add_p", "index_depth"], [206, 1, 1, "c.c128_tensor_scatter_add_p", "indices"], [206, 1, 1, "c.c128_tensor_scatter_add_p", "input"], [206, 1, 1, "c.c128_tensor_scatter_add_p", "input_rank"], [206, 1, 1, "c.c128_tensor_scatter_add_p", "input_shape"], [206, 1, 1, "c.c128_tensor_scatter_add_p", "num_unit"], [206, 1, 1, "c.c128_tensor_scatter_add_p", "output"], [206, 1, 1, "c.c128_tensor_scatter_add_p", "output_unit_offsets"], [206, 1, 1, "c.c128_tensor_scatter_add_p", "strides"], [206, 1, 1, "c.c128_tensor_scatter_add_p", "updates"]], "c128_tensor_scatter_add_s": [[206, 1, 1, "c.c128_tensor_scatter_add_s", "core_mask"], [206, 1, 1, "c.c128_tensor_scatter_add_s", "index_depth"], [206, 1, 1, "c.c128_tensor_scatter_add_s", "indices"], [206, 1, 1, "c.c128_tensor_scatter_add_s", "input"], [206, 1, 1, "c.c128_tensor_scatter_add_s", "input_rank"], [206, 1, 1, "c.c128_tensor_scatter_add_s", "input_shape"], [206, 1, 1, "c.c128_tensor_scatter_add_s", "num_unit"], [206, 1, 1, "c.c128_tensor_scatter_add_s", "output"], [206, 1, 1, "c.c128_tensor_scatter_add_s", "updates"]], "c128_tensorarrayread_p": [[208, 1, 1, "c.c128_tensorarrayread_p", "handle_data"], [208, 1, 1, "c.c128_tensorarrayread_p", "handle_size"], [208, 1, 1, "c.c128_tensorarrayread_p", "index"], [208, 1, 1, "c.c128_tensorarrayread_p", "output_data"], [208, 1, 1, "c.c128_tensorarrayread_p", "output_size"]], "c128_tensorarrayread_s": [[208, 1, 1, "c.c128_tensorarrayread_s", "core_mask"], [208, 1, 1, "c.c128_tensorarrayread_s", "handle_data"], [208, 1, 1, "c.c128_tensorarrayread_s", "handle_size"], [208, 1, 1, "c.c128_tensorarrayread_s", "index"], [208, 1, 1, "c.c128_tensorarrayread_s", "output_data"], [208, 1, 1, "c.c128_tensorarrayread_s", "output_size"]], "c128_tensorlistfromtensor_p": [[210, 1, 1, "c.c128_tensorlistfromtensor_p", "input_tensor_shape"], [210, 1, 1, "c.c128_tensorlistfromtensor_p", "input_tensor_total_elements"], [210, 1, 1, "c.c128_tensorlistfromtensor_p", "input_tensor_values"], [210, 1, 1, "c.c128_tensorlistfromtensor_p", "output_tensors"]], "c128_tensorlistfromtensor_s": [[210, 1, 1, "c.c128_tensorlistfromtensor_s", "core_mask"], [210, 1, 1, "c.c128_tensorlistfromtensor_s", "input_tensor_shape"], [210, 1, 1, "c.c128_tensorlistfromtensor_s", "input_tensor_total_elements"], [210, 1, 1, "c.c128_tensorlistfromtensor_s", "input_tensor_values"], [210, 1, 1, "c.c128_tensorlistfromtensor_s", "output_tensors"]], "c128_tile_p": [[215, 1, 1, "c.c128_tile_p", "input"], [215, 1, 1, "c.c128_tile_p", "input_shape"], [215, 1, 1, "c.c128_tile_p", "output"], [215, 1, 1, "c.c128_tile_p", "stride"], [215, 1, 1, "c.c128_tile_p", "tile_dim"], [215, 1, 1, "c.c128_tile_p", "tile_num"]], "c128_tile_s": [[215, 1, 1, "c.c128_tile_s", "core_mask"], [215, 1, 1, "c.c128_tile_s", "input"], [215, 1, 1, "c.c128_tile_s", "input_shape"], [215, 1, 1, "c.c128_tile_s", "output"], [215, 1, 1, "c.c128_tile_s", "stride"], [215, 1, 1, "c.c128_tile_s", "tile_dim"], [215, 1, 1, "c.c128_tile_s", "tile_num"]], "c128_transpose_p": [[217, 1, 1, "c.c128_transpose_p", "in_data"], [217, 1, 1, "c.c128_transpose_p", "num_axes"], [217, 1, 1, "c.c128_transpose_p", "out_data"], [217, 1, 1, "c.c128_transpose_p", "out_strides"], [217, 1, 1, "c.c128_transpose_p", "output_shape"], [217, 1, 1, "c.c128_transpose_p", "perm"], [217, 1, 1, "c.c128_transpose_p", "strides"]], "c128_transpose_s": [[217, 1, 1, "c.c128_transpose_s", "core_mask"], [217, 1, 1, "c.c128_transpose_s", "in_data"], [217, 1, 1, "c.c128_transpose_s", "num_axes"], [217, 1, 1, "c.c128_transpose_s", "out_data"], [217, 1, 1, "c.c128_transpose_s", "out_strides"], [217, 1, 1, "c.c128_transpose_s", "output_shape"], [217, 1, 1, "c.c128_transpose_s", "perm"], [217, 1, 1, "c.c128_transpose_s", "strides"]], "c128_tril_p": [[218, 1, 1, "c.c128_tril_p", "dst"], [218, 1, 1, "c.c128_tril_p", "height"], [218, 1, 1, "c.c128_tril_p", "k"], [218, 1, 1, "c.c128_tril_p", "out_elems"], [218, 1, 1, "c.c128_tril_p", "src"], [218, 1, 1, "c.c128_tril_p", "width"]], "c128_tril_s": [[218, 1, 1, "c.c128_tril_s", "core_mask"], [218, 1, 1, "c.c128_tril_s", "dst"], [218, 1, 1, "c.c128_tril_s", "height"], [218, 1, 1, "c.c128_tril_s", "k"], [218, 1, 1, "c.c128_tril_s", "out_elems"], [218, 1, 1, "c.c128_tril_s", "src"], [218, 1, 1, "c.c128_tril_s", "width"]], "c128_triu_p": [[219, 1, 1, "c.c128_triu_p", "dst"], [219, 1, 1, "c.c128_triu_p", "height"], [219, 1, 1, "c.c128_triu_p", "k"], [219, 1, 1, "c.c128_triu_p", "out_elems"], [219, 1, 1, "c.c128_triu_p", "src"], [219, 1, 1, "c.c128_triu_p", "width"]], "c128_triu_s": [[219, 1, 1, "c.c128_triu_s", "core_mask"], [219, 1, 1, "c.c128_triu_s", "dst"], [219, 1, 1, "c.c128_triu_s", "height"], [219, 1, 1, "c.c128_triu_s", "k"], [219, 1, 1, "c.c128_triu_s", "out_elems"], [219, 1, 1, "c.c128_triu_s", "src"], [219, 1, 1, "c.c128_triu_s", "width"]], "c128_unsorted_segment_sum_p": [[222, 1, 1, "c.c128_unsorted_segment_sum_p", "dim0"], [222, 1, 1, "c.c128_unsorted_segment_sum_p", "dim1"], [222, 1, 1, "c.c128_unsorted_segment_sum_p", "id_max"], [222, 1, 1, "c.c128_unsorted_segment_sum_p", "index"], [222, 1, 1, "c.c128_unsorted_segment_sum_p", "input"], [222, 1, 1, "c.c128_unsorted_segment_sum_p", "output"]], "c128_unsorted_segment_sum_s": [[222, 1, 1, "c.c128_unsorted_segment_sum_s", "core_mask"], [222, 1, 1, "c.c128_unsorted_segment_sum_s", "dim0"], [222, 1, 1, "c.c128_unsorted_segment_sum_s", "dim1"], [222, 1, 1, "c.c128_unsorted_segment_sum_s", "id_max"], [222, 1, 1, "c.c128_unsorted_segment_sum_s", "index"], [222, 1, 1, "c.c128_unsorted_segment_sum_s", "input"], [222, 1, 1, "c.c128_unsorted_segment_sum_s", "output"]], "c128_where_p": [[225, 1, 1, "c.c128_where_p", "condition"], [225, 1, 1, "c.c128_where_p", "input0"], [225, 1, 1, "c.c128_where_p", "input1"], [225, 1, 1, "c.c128_where_p", "length"], [225, 1, 1, "c.c128_where_p", "output"]], "c128_where_s": [[225, 1, 1, "c.c128_where_s", "condition"], [225, 1, 1, "c.c128_where_s", "core_mask"], [225, 1, 1, "c.c128_where_s", "input0"], [225, 1, 1, "c.c128_where_s", "input1"], [225, 1, 1, "c.c128_where_s", "length"], [225, 1, 1, "c.c128_where_s", "output"]], "c128_zerolike_p": [[226, 1, 1, "c.c128_zerolike_p", "length"], [226, 1, 1, "c.c128_zerolike_p", "output"]], "c128_zerolike_s": [[226, 1, 1, "c.c128_zerolike_s", "core_mask"], [226, 1, 1, "c.c128_zerolike_s", "length"], [226, 1, 1, "c.c128_zerolike_s", "output"]], "c64_Unique_p": [[221, 1, 1, "c.c64_Unique_p", "input"], [221, 1, 1, "c.c64_Unique_p", "input_len"], [221, 1, 1, "c.c64_Unique_p", "output0"], [221, 1, 1, "c.c64_Unique_p", "output0_len"]], "c64_Unique_s": [[221, 1, 1, "c.c64_Unique_s", "core_mask"], [221, 1, 1, "c.c64_Unique_s", "input"], [221, 1, 1, "c.c64_Unique_s", "input_len"], [221, 1, 1, "c.c64_Unique_s", "output0"], [221, 1, 1, "c.c64_Unique_s", "output0_len"]], "c64_abs_p": [[10, 1, 1, "c.c64_abs_p", "dst_data"], [10, 1, 1, "c.c64_abs_p", "length"], [10, 1, 1, "c.c64_abs_p", "src_data"]], "c64_abs_s": [[10, 1, 1, "c.c64_abs_s", "core_mask"], [10, 1, 1, "c.c64_abs_s", "dst_data"], [10, 1, 1, "c.c64_abs_s", "length"], [10, 1, 1, "c.c64_abs_s", "src_data"]], "c64_addext_p": [[17, 1, 1, "c.c64_addext_p", "alpha"], [17, 1, 1, "c.c64_addext_p", "in0"], [17, 1, 1, "c.c64_addext_p", "in1"], [17, 1, 1, "c.c64_addext_p", "out"], [17, 1, 1, "c.c64_addext_p", "size"]], "c64_addext_s": [[17, 1, 1, "c.c64_addext_s", "alpha"], [17, 1, 1, "c.c64_addext_s", "core_mask"], [17, 1, 1, "c.c64_addext_s", "in0"], [17, 1, 1, "c.c64_addext_s", "in1"], [17, 1, 1, "c.c64_addext_s", "out"], [17, 1, 1, "c.c64_addext_s", "size"]], "c64_addn_p": [[19, 1, 1, "c.c64_addn_p", "input0"], [19, 1, 1, "c.c64_addn_p", "input1"], [19, 1, 1, "c.c64_addn_p", "length"], [19, 1, 1, "c.c64_addn_p", "output"]], "c64_addn_s": [[19, 1, 1, "c.c64_addn_s", "core_mask"], [19, 1, 1, "c.c64_addn_s", "input0"], [19, 1, 1, "c.c64_addn_s", "input1"], [19, 1, 1, "c.c64_addn_s", "length"], [19, 1, 1, "c.c64_addn_s", "output"]], "c64_addrelu6_p": [[17, 1, 1, "c.c64_addrelu6_p", "in0"], [17, 1, 1, "c.c64_addrelu6_p", "in1"], [17, 1, 1, "c.c64_addrelu6_p", "out"], [17, 1, 1, "c.c64_addrelu6_p", "size"]], "c64_addrelu6_s": [[17, 1, 1, "c.c64_addrelu6_s", "core_mask"], [17, 1, 1, "c.c64_addrelu6_s", "in0"], [17, 1, 1, "c.c64_addrelu6_s", "in1"], [17, 1, 1, "c.c64_addrelu6_s", "out"], [17, 1, 1, "c.c64_addrelu6_s", "size"]], "c64_addrelu_p": [[17, 1, 1, "c.c64_addrelu_p", "in0"], [17, 1, 1, "c.c64_addrelu_p", "in1"], [17, 1, 1, "c.c64_addrelu_p", "out"], [17, 1, 1, "c.c64_addrelu_p", "size"]], "c64_addrelu_s": [[17, 1, 1, "c.c64_addrelu_s", "core_mask"], [17, 1, 1, "c.c64_addrelu_s", "in0"], [17, 1, 1, "c.c64_addrelu_s", "in1"], [17, 1, 1, "c.c64_addrelu_s", "out"], [17, 1, 1, "c.c64_addrelu_s", "size"]], "c64_allgather_p": [[22, 1, 1, "c.c64_allgather_p", "data_size"], [22, 1, 1, "c.c64_allgather_p", "input"], [22, 1, 1, "c.c64_allgather_p", "input_rank"], [22, 1, 1, "c.c64_allgather_p", "output"], [22, 1, 1, "c.c64_allgather_p", "output_rank"]], "c64_allgather_s": [[22, 1, 1, "c.c64_allgather_s", "core_mask"], [22, 1, 1, "c.c64_allgather_s", "data_size"], [22, 1, 1, "c.c64_allgather_s", "input"], [22, 1, 1, "c.c64_allgather_s", "input_rank"], [22, 1, 1, "c.c64_allgather_s", "output"], [22, 1, 1, "c.c64_allgather_s", "output_rank"]], "c64_assign_p": [[27, 1, 1, "c.c64_assign_p", "dst"], [27, 1, 1, "c.c64_assign_p", "length"], [27, 1, 1, "c.c64_assign_p", "src"]], "c64_assign_s": [[27, 1, 1, "c.c64_assign_s", "core_mask"], [27, 1, 1, "c.c64_assign_s", "dst"], [27, 1, 1, "c.c64_assign_s", "length"], [27, 1, 1, "c.c64_assign_s", "src"]], "c64_assignadd_p": [[28, 1, 1, "c.c64_assignadd_p", "input"], [28, 1, 1, "c.c64_assignadd_p", "length"], [28, 1, 1, "c.c64_assignadd_p", "output"]], "c64_assignadd_s": [[28, 1, 1, "c.c64_assignadd_s", "core_mask"], [28, 1, 1, "c.c64_assignadd_s", "input"], [28, 1, 1, "c.c64_assignadd_s", "length"], [28, 1, 1, "c.c64_assignadd_s", "output"]], "c64_batchtospace_p": [[35, 1, 1, "c.c64_batchtospace_p", "block_size"], [35, 1, 1, "c.c64_batchtospace_p", "crops"], [35, 1, 1, "c.c64_batchtospace_p", "data_size"], [35, 1, 1, "c.c64_batchtospace_p", "input"], [35, 1, 1, "c.c64_batchtospace_p", "input_shape"], [35, 1, 1, "c.c64_batchtospace_p", "output"]], "c64_batchtospace_s": [[35, 1, 1, "c.c64_batchtospace_s", "block_size"], [35, 1, 1, "c.c64_batchtospace_s", "core_mask"], [35, 1, 1, "c.c64_batchtospace_s", "crops"], [35, 1, 1, "c.c64_batchtospace_s", "data_size"], [35, 1, 1, "c.c64_batchtospace_s", "input"], [35, 1, 1, "c.c64_batchtospace_s", "input_shape"], [35, 1, 1, "c.c64_batchtospace_s", "output"]], "c64_batchtospacend_p": [[36, 1, 1, "c.c64_batchtospacend_p", "block_size"], [36, 1, 1, "c.c64_batchtospacend_p", "crops"], [36, 1, 1, "c.c64_batchtospacend_p", "data_size"], [36, 1, 1, "c.c64_batchtospacend_p", "input"], [36, 1, 1, "c.c64_batchtospacend_p", "input_shape"], [36, 1, 1, "c.c64_batchtospacend_p", "output"]], "c64_batchtospacend_s": [[36, 1, 1, "c.c64_batchtospacend_s", "block_size"], [36, 1, 1, "c.c64_batchtospacend_s", "core_mask"], [36, 1, 1, "c.c64_batchtospacend_s", "crops"], [36, 1, 1, "c.c64_batchtospacend_s", "data_size"], [36, 1, 1, "c.c64_batchtospacend_s", "input"], [36, 1, 1, "c.c64_batchtospacend_s", "input_shape"], [36, 1, 1, "c.c64_batchtospacend_s", "output"]], "c64_biasadd_p": [[37, 1, 1, "c.c64_biasadd_p", "data_format"], [37, 1, 1, "c.c64_biasadd_p", "dims"], [37, 1, 1, "c.c64_biasadd_p", "input_bias"], [37, 1, 1, "c.c64_biasadd_p", "input_x"], [37, 1, 1, "c.c64_biasadd_p", "length"], [37, 1, 1, "c.c64_biasadd_p", "output"], [37, 1, 1, "c.c64_biasadd_p", "shape_size"]], "c64_biasadd_s": [[37, 1, 1, "c.c64_biasadd_s", "core_mask"], [37, 1, 1, "c.c64_biasadd_s", "data_format"], [37, 1, 1, "c.c64_biasadd_s", "dims"], [37, 1, 1, "c.c64_biasadd_s", "input_bias"], [37, 1, 1, "c.c64_biasadd_s", "input_x"], [37, 1, 1, "c.c64_biasadd_s", "length"], [37, 1, 1, "c.c64_biasadd_s", "output"], [37, 1, 1, "c.c64_biasadd_s", "shape_size"]], "c64_broadcastto_p": [[41, 1, 1, "c.c64_broadcastto_p", "data_size"], [41, 1, 1, "c.c64_broadcastto_p", "input"], [41, 1, 1, "c.c64_broadcastto_p", "input_shape"], [41, 1, 1, "c.c64_broadcastto_p", "input_shape_size"], [41, 1, 1, "c.c64_broadcastto_p", "output"], [41, 1, 1, "c.c64_broadcastto_p", "output_shape"], [41, 1, 1, "c.c64_broadcastto_p", "output_shape_size"]], "c64_broadcastto_s": [[41, 1, 1, "c.c64_broadcastto_s", "core_mask"], [41, 1, 1, "c.c64_broadcastto_s", "data_size"], [41, 1, 1, "c.c64_broadcastto_s", "input"], [41, 1, 1, "c.c64_broadcastto_s", "input_shape"], [41, 1, 1, "c.c64_broadcastto_s", "input_shape_size"], [41, 1, 1, "c.c64_broadcastto_s", "output"], [41, 1, 1, "c.c64_broadcastto_s", "output_shape"], [41, 1, 1, "c.c64_broadcastto_s", "output_shape_size"]], "c64_concat_p": [[45, 1, 1, "c.c64_concat_p", "axis"], [45, 1, 1, "c.c64_concat_p", "input_ndim"], [45, 1, 1, "c.c64_concat_p", "input_shapes"], [45, 1, 1, "c.c64_concat_p", "inputs"], [45, 1, 1, "c.c64_concat_p", "num_inputs"], [45, 1, 1, "c.c64_concat_p", "output"]], "c64_concat_s": [[45, 1, 1, "c.c64_concat_s", "axis"], [45, 1, 1, "c.c64_concat_s", "core_mask"], [45, 1, 1, "c.c64_concat_s", "input_ndim"], [45, 1, 1, "c.c64_concat_s", "input_shapes"], [45, 1, 1, "c.c64_concat_s", "inputs"], [45, 1, 1, "c.c64_concat_s", "num_inputs"], [45, 1, 1, "c.c64_concat_s", "output"]], "c64_constant_of_shape_p": [[46, 1, 1, "c.c64_constant_of_shape_p", "end"], [46, 1, 1, "c.c64_constant_of_shape_p", "output"], [46, 1, 1, "c.c64_constant_of_shape_p", "start"], [46, 1, 1, "c.c64_constant_of_shape_p", "value_imag"], [46, 1, 1, "c.c64_constant_of_shape_p", "value_real"]], "c64_constant_of_shape_s": [[46, 1, 1, "c.c64_constant_of_shape_s", "core_mask"], [46, 1, 1, "c.c64_constant_of_shape_s", "end"], [46, 1, 1, "c.c64_constant_of_shape_s", "output"], [46, 1, 1, "c.c64_constant_of_shape_s", "start"], [46, 1, 1, "c.c64_constant_of_shape_s", "value_imag"], [46, 1, 1, "c.c64_constant_of_shape_s", "value_real"]], "c64_cumsum_p": [[54, 1, 1, "c.c64_cumsum_p", "axis_dim"], [54, 1, 1, "c.c64_cumsum_p", "exclusive"], [54, 1, 1, "c.c64_cumsum_p", "inner_dim"], [54, 1, 1, "c.c64_cumsum_p", "input"], [54, 1, 1, "c.c64_cumsum_p", "out_dim"], [54, 1, 1, "c.c64_cumsum_p", "output"]], "c64_cumsum_s": [[54, 1, 1, "c.c64_cumsum_s", "axis_dim"], [54, 1, 1, "c.c64_cumsum_s", "core_mask"], [54, 1, 1, "c.c64_cumsum_s", "exclusive"], [54, 1, 1, "c.c64_cumsum_s", "inner_dim"], [54, 1, 1, "c.c64_cumsum_s", "input"], [54, 1, 1, "c.c64_cumsum_s", "out_dim"], [54, 1, 1, "c.c64_cumsum_s", "output"]], "c64_depthtospace_p": [[59, 1, 1, "c.c64_depthtospace_p", "block_size"], [59, 1, 1, "c.c64_depthtospace_p", "data_size"], [59, 1, 1, "c.c64_depthtospace_p", "in_shape"], [59, 1, 1, "c.c64_depthtospace_p", "input"], [59, 1, 1, "c.c64_depthtospace_p", "output"]], "c64_depthtospace_s": [[59, 1, 1, "c.c64_depthtospace_s", "block_size"], [59, 1, 1, "c.c64_depthtospace_s", "core_mask"], [59, 1, 1, "c.c64_depthtospace_s", "data_size"], [59, 1, 1, "c.c64_depthtospace_s", "in_shape"], [59, 1, 1, "c.c64_depthtospace_s", "input"], [59, 1, 1, "c.c64_depthtospace_s", "output"]], "c64_div_fusion_p": [[61, 1, 1, "c.c64_div_fusion_p", "input0"], [61, 1, 1, "c.c64_div_fusion_p", "input1"], [61, 1, 1, "c.c64_div_fusion_p", "length"], [61, 1, 1, "c.c64_div_fusion_p", "output"]], "c64_div_fusion_s": [[61, 1, 1, "c.c64_div_fusion_s", "core_mask"], [61, 1, 1, "c.c64_div_fusion_s", "input0"], [61, 1, 1, "c.c64_div_fusion_s", "input1"], [61, 1, 1, "c.c64_div_fusion_s", "length"], [61, 1, 1, "c.c64_div_fusion_s", "output"]], "c64_eltwise_p": [[67, 1, 1, "c.c64_eltwise_p", "Input0"], [67, 1, 1, "c.c64_eltwise_p", "Input1"], [67, 1, 1, "c.c64_eltwise_p", "eltwise_mode_"], [67, 1, 1, "c.c64_eltwise_p", "length"], [67, 1, 1, "c.c64_eltwise_p", "output"]], "c64_eltwise_s": [[67, 1, 1, "c.c64_eltwise_s", "Input0"], [67, 1, 1, "c.c64_eltwise_s", "Input1"], [67, 1, 1, "c.c64_eltwise_s", "core_mask"], [67, 1, 1, "c.c64_eltwise_s", "eltwise_mode_"], [67, 1, 1, "c.c64_eltwise_s", "length"], [67, 1, 1, "c.c64_eltwise_s", "output"]], "c64_equal_p": [[70, 1, 1, "c.c64_equal_p", "Input0"], [70, 1, 1, "c.c64_equal_p", "Input1"], [70, 1, 1, "c.c64_equal_p", "length"], [70, 1, 1, "c.c64_equal_p", "output"]], "c64_equal_s": [[70, 1, 1, "c.c64_equal_s", "Input0"], [70, 1, 1, "c.c64_equal_s", "Input1"], [70, 1, 1, "c.c64_equal_s", "core_mask"], [70, 1, 1, "c.c64_equal_s", "length"], [70, 1, 1, "c.c64_equal_s", "output"]], "c64_expfusion_p": [[73, 1, 1, "c.c64_expfusion_p", "dst_data"], [73, 1, 1, "c.c64_expfusion_p", "in_scale"], [73, 1, 1, "c.c64_expfusion_p", "length"], [73, 1, 1, "c.c64_expfusion_p", "out_scale"], [73, 1, 1, "c.c64_expfusion_p", "scale"], [73, 1, 1, "c.c64_expfusion_p", "src_data"]], "c64_expfusion_s": [[73, 1, 1, "c.c64_expfusion_s", "core_mask"], [73, 1, 1, "c.c64_expfusion_s", "dst_data"], [73, 1, 1, "c.c64_expfusion_s", "in_scale"], [73, 1, 1, "c.c64_expfusion_s", "length"], [73, 1, 1, "c.c64_expfusion_s", "out_scale"], [73, 1, 1, "c.c64_expfusion_s", "scale"], [73, 1, 1, "c.c64_expfusion_s", "src_data"]], "c64_extract_features_p": [[55, 1, 1, "c.c64_extract_features_p", "num_strings"], [55, 1, 1, "c.c64_extract_features_p", "output_labels"], [55, 1, 1, "c.c64_extract_features_p", "output_weights"], [55, 1, 1, "c.c64_extract_features_p", "string_lengths"], [55, 1, 1, "c.c64_extract_features_p", "string_pointers"]], "c64_extract_features_s": [[55, 1, 1, "c.c64_extract_features_s", "core_mask"], [55, 1, 1, "c.c64_extract_features_s", "num_strings"], [55, 1, 1, "c.c64_extract_features_s", "output_labels"], [55, 1, 1, "c.c64_extract_features_s", "output_weights"], [55, 1, 1, "c.c64_extract_features_s", "string_lengths"], [55, 1, 1, "c.c64_extract_features_s", "string_pointers"]], "c64_fill_p": [[78, 1, 1, "c.c64_fill_p", "output"], [78, 1, 1, "c.c64_fill_p", "param"], [78, 1, 1, "c.c64_fill_p", "value"]], "c64_fill_s": [[78, 1, 1, "c.c64_fill_s", "core_mask"], [78, 1, 1, "c.c64_fill_s", "output"], [78, 1, 1, "c.c64_fill_s", "param"], [78, 1, 1, "c.c64_fill_s", "value"]], "c64_formattranspose_p": [[85, 1, 1, "c.c64_formattranspose_p", "batch"], [85, 1, 1, "c.c64_formattranspose_p", "channel"], [85, 1, 1, "c.c64_formattranspose_p", "dst_data"], [85, 1, 1, "c.c64_formattranspose_p", "dst_format"], [85, 1, 1, "c.c64_formattranspose_p", "plane"], [85, 1, 1, "c.c64_formattranspose_p", "src_data"], [85, 1, 1, "c.c64_formattranspose_p", "src_format"]], "c64_formattranspose_s": [[85, 1, 1, "c.c64_formattranspose_s", "batch"], [85, 1, 1, "c.c64_formattranspose_s", "channel"], [85, 1, 1, "c.c64_formattranspose_s", "core_mask"], [85, 1, 1, "c.c64_formattranspose_s", "dst_data"], [85, 1, 1, "c.c64_formattranspose_s", "dst_format"], [85, 1, 1, "c.c64_formattranspose_s", "plane"], [85, 1, 1, "c.c64_formattranspose_s", "src_data"], [85, 1, 1, "c.c64_formattranspose_s", "src_format"]], "c64_gather_nd_p": [[89, 1, 1, "c.c64_gather_nd_p", "indices"], [89, 1, 1, "c.c64_gather_nd_p", "indices_ndim"], [89, 1, 1, "c.c64_gather_nd_p", "indices_shape"], [89, 1, 1, "c.c64_gather_nd_p", "input"], [89, 1, 1, "c.c64_gather_nd_p", "input_ndim"], [89, 1, 1, "c.c64_gather_nd_p", "input_shape"], [89, 1, 1, "c.c64_gather_nd_p", "output"]], "c64_gather_nd_s": [[89, 1, 1, "c.c64_gather_nd_s", "core_mask"], [89, 1, 1, "c.c64_gather_nd_s", "indices"], [89, 1, 1, "c.c64_gather_nd_s", "indices_ndim"], [89, 1, 1, "c.c64_gather_nd_s", "indices_shape"], [89, 1, 1, "c.c64_gather_nd_s", "input"], [89, 1, 1, "c.c64_gather_nd_s", "input_ndim"], [89, 1, 1, "c.c64_gather_nd_s", "input_shape"], [89, 1, 1, "c.c64_gather_nd_s", "output"]], "c64_gather_p": [[88, 1, 1, "c.c64_gather_p", "axis"], [88, 1, 1, "c.c64_gather_p", "batch_dims"], [88, 1, 1, "c.c64_gather_p", "indices"], [88, 1, 1, "c.c64_gather_p", "indices_ndim"], [88, 1, 1, "c.c64_gather_p", "indices_shape"], [88, 1, 1, "c.c64_gather_p", "input"], [88, 1, 1, "c.c64_gather_p", "input_ndim"], [88, 1, 1, "c.c64_gather_p", "input_shape"], [88, 1, 1, "c.c64_gather_p", "output"]], "c64_gather_s": [[88, 1, 1, "c.c64_gather_s", "axis"], [88, 1, 1, "c.c64_gather_s", "batch_dims"], [88, 1, 1, "c.c64_gather_s", "core_mask"], [88, 1, 1, "c.c64_gather_s", "indices"], [88, 1, 1, "c.c64_gather_s", "indices_ndim"], [88, 1, 1, "c.c64_gather_s", "indices_shape"], [88, 1, 1, "c.c64_gather_s", "input"], [88, 1, 1, "c.c64_gather_s", "input_ndim"], [88, 1, 1, "c.c64_gather_s", "input_shape"], [88, 1, 1, "c.c64_gather_s", "output"]], "c64_gatherd_p": [[90, 1, 1, "c.c64_gatherd_p", "dim"], [90, 1, 1, "c.c64_gatherd_p", "index"], [90, 1, 1, "c.c64_gatherd_p", "index_shape"], [90, 1, 1, "c.c64_gatherd_p", "input_shape"], [90, 1, 1, "c.c64_gatherd_p", "input_shape_size"], [90, 1, 1, "c.c64_gatherd_p", "input_x"], [90, 1, 1, "c.c64_gatherd_p", "output"]], "c64_gatherd_s": [[90, 1, 1, "c.c64_gatherd_s", "core_mask"], [90, 1, 1, "c.c64_gatherd_s", "dim"], [90, 1, 1, "c.c64_gatherd_s", "index"], [90, 1, 1, "c.c64_gatherd_s", "index_shape"], [90, 1, 1, "c.c64_gatherd_s", "input_shape"], [90, 1, 1, "c.c64_gatherd_s", "input_shape_size"], [90, 1, 1, "c.c64_gatherd_s", "input_x"], [90, 1, 1, "c.c64_gatherd_s", "output"]], "c64_isfinite_p": [[99, 1, 1, "c.c64_isfinite_p", "Input"], [99, 1, 1, "c.c64_isfinite_p", "length"], [99, 1, 1, "c.c64_isfinite_p", "output"]], "c64_isfinite_s": [[99, 1, 1, "c.c64_isfinite_s", "Input"], [99, 1, 1, "c.c64_isfinite_s", "core_mask"], [99, 1, 1, "c.c64_isfinite_s", "length"], [99, 1, 1, "c.c64_isfinite_s", "output"]], "c64_matmulfusion_p": [[121, 1, 1, "c.c64_matmulfusion_p", "A"], [121, 1, 1, "c.c64_matmulfusion_p", "B"], [121, 1, 1, "c.c64_matmulfusion_p", "C"], [121, 1, 1, "c.c64_matmulfusion_p", "K"], [121, 1, 1, "c.c64_matmulfusion_p", "M"], [121, 1, 1, "c.c64_matmulfusion_p", "N"], [121, 1, 1, "c.c64_matmulfusion_p", "activation_type"], [121, 1, 1, "c.c64_matmulfusion_p", "bias"]], "c64_matmulfusion_s": [[121, 1, 1, "c.c64_matmulfusion_s", "A"], [121, 1, 1, "c.c64_matmulfusion_s", "B"], [121, 1, 1, "c.c64_matmulfusion_s", "C"], [121, 1, 1, "c.c64_matmulfusion_s", "K"], [121, 1, 1, "c.c64_matmulfusion_s", "M"], [121, 1, 1, "c.c64_matmulfusion_s", "N"], [121, 1, 1, "c.c64_matmulfusion_s", "activation_type"], [121, 1, 1, "c.c64_matmulfusion_s", "bias"], [121, 1, 1, "c.c64_matmulfusion_s", "core_mask"]], "c64_mul_p": [[130, 1, 1, "c.c64_mul_p", "input0"], [130, 1, 1, "c.c64_mul_p", "input1"], [130, 1, 1, "c.c64_mul_p", "length"], [130, 1, 1, "c.c64_mul_p", "output"]], "c64_mul_s": [[130, 1, 1, "c.c64_mul_s", "core_mask"], [130, 1, 1, "c.c64_mul_s", "input0"], [130, 1, 1, "c.c64_mul_s", "input1"], [130, 1, 1, "c.c64_mul_s", "length"], [130, 1, 1, "c.c64_mul_s", "output"]], "c64_neg_grad_p": [[133, 1, 1, "c.c64_neg_grad_p", "Input"], [133, 1, 1, "c.c64_neg_grad_p", "length"], [133, 1, 1, "c.c64_neg_grad_p", "output"]], "c64_neg_grad_s": [[133, 1, 1, "c.c64_neg_grad_s", "Input"], [133, 1, 1, "c.c64_neg_grad_s", "core_mask"], [133, 1, 1, "c.c64_neg_grad_s", "length"], [133, 1, 1, "c.c64_neg_grad_s", "output"]], "c64_neg_p": [[132, 1, 1, "c.c64_neg_p", "Input"], [132, 1, 1, "c.c64_neg_p", "length"], [132, 1, 1, "c.c64_neg_p", "output"]], "c64_neg_s": [[132, 1, 1, "c.c64_neg_s", "Input"], [132, 1, 1, "c.c64_neg_s", "core_mask"], [132, 1, 1, "c.c64_neg_s", "length"], [132, 1, 1, "c.c64_neg_s", "output"]], "c64_nonzero_p": [[137, 1, 1, "c.c64_nonzero_p", "dim_strides"], [137, 1, 1, "c.c64_nonzero_p", "input"], [137, 1, 1, "c.c64_nonzero_p", "input_rank"], [137, 1, 1, "c.c64_nonzero_p", "length"], [137, 1, 1, "c.c64_nonzero_p", "non_zero_num"], [137, 1, 1, "c.c64_nonzero_p", "output"], [137, 1, 1, "c.c64_nonzero_p", "shape"]], "c64_nonzero_s": [[137, 1, 1, "c.c64_nonzero_s", "core_mask"], [137, 1, 1, "c.c64_nonzero_s", "dim_strides"], [137, 1, 1, "c.c64_nonzero_s", "input"], [137, 1, 1, "c.c64_nonzero_s", "input_rank"], [137, 1, 1, "c.c64_nonzero_s", "length"], [137, 1, 1, "c.c64_nonzero_s", "non_zero_num"], [137, 1, 1, "c.c64_nonzero_s", "output"], [137, 1, 1, "c.c64_nonzero_s", "shape"]], "c64_not_equal_p": [[138, 1, 1, "c.c64_not_equal_p", "Input0"], [138, 1, 1, "c.c64_not_equal_p", "Input1"], [138, 1, 1, "c.c64_not_equal_p", "length"], [138, 1, 1, "c.c64_not_equal_p", "output"]], "c64_not_equal_s": [[138, 1, 1, "c.c64_not_equal_s", "Input0"], [138, 1, 1, "c.c64_not_equal_s", "Input1"], [138, 1, 1, "c.c64_not_equal_s", "core_mask"], [138, 1, 1, "c.c64_not_equal_s", "length"], [138, 1, 1, "c.c64_not_equal_s", "output"]], "c64_onehot_p": [[139, 1, 1, "c.c64_onehot_p", "axis"], [139, 1, 1, "c.c64_onehot_p", "depth"], [139, 1, 1, "c.c64_onehot_p", "indices"], [139, 1, 1, "c.c64_onehot_p", "indices_shape"], [139, 1, 1, "c.c64_onehot_p", "indices_shape_size"], [139, 1, 1, "c.c64_onehot_p", "on_off"], [139, 1, 1, "c.c64_onehot_p", "output"], [139, 1, 1, "c.c64_onehot_p", "support_neg_index"]], "c64_onehot_s": [[139, 1, 1, "c.c64_onehot_s", "axis"], [139, 1, 1, "c.c64_onehot_s", "core_mask"], [139, 1, 1, "c.c64_onehot_s", "depth"], [139, 1, 1, "c.c64_onehot_s", "indices"], [139, 1, 1, "c.c64_onehot_s", "indices_shape"], [139, 1, 1, "c.c64_onehot_s", "indices_shape_size"], [139, 1, 1, "c.c64_onehot_s", "on_off"], [139, 1, 1, "c.c64_onehot_s", "output"], [139, 1, 1, "c.c64_onehot_s", "support_neg_index"]], "c64_ones_like_p": [[140, 1, 1, "c.c64_ones_like_p", "length"], [140, 1, 1, "c.c64_ones_like_p", "output"]], "c64_ones_like_s": [[140, 1, 1, "c.c64_ones_like_s", "core_mask"], [140, 1, 1, "c.c64_ones_like_s", "length"], [140, 1, 1, "c.c64_ones_like_s", "output"]], "c64_padfusion_p": [[141, 1, 1, "c.c64_padfusion_p", "params"]], "c64_padfusion_s": [[141, 1, 1, "c.c64_padfusion_s", "core_mask"], [141, 1, 1, "c.c64_padfusion_s", "params"]], "c64_real_div_p": [[152, 1, 1, "c.c64_real_div_p", "input0"], [152, 1, 1, "c.c64_real_div_p", "input1"], [152, 1, 1, "c.c64_real_div_p", "length"], [152, 1, 1, "c.c64_real_div_p", "output"]], "c64_real_div_s": [[152, 1, 1, "c.c64_real_div_s", "core_mask"], [152, 1, 1, "c.c64_real_div_s", "input0"], [152, 1, 1, "c.c64_real_div_s", "input1"], [152, 1, 1, "c.c64_real_div_s", "length"], [152, 1, 1, "c.c64_real_div_s", "output"]], "c64_reciprocal_p": [[153, 1, 1, "c.c64_reciprocal_p", "Input"], [153, 1, 1, "c.c64_reciprocal_p", "length"], [153, 1, 1, "c.c64_reciprocal_p", "output"]], "c64_reciprocal_s": [[153, 1, 1, "c.c64_reciprocal_s", "Input"], [153, 1, 1, "c.c64_reciprocal_s", "core_mask"], [153, 1, 1, "c.c64_reciprocal_s", "length"], [153, 1, 1, "c.c64_reciprocal_s", "output"]], "c64_reduceall_p": [[21, 1, 1, "c.c64_reduceall_p", "axis_size"], [21, 1, 1, "c.c64_reduceall_p", "dst_data"], [21, 1, 1, "c.c64_reduceall_p", "inner_size"], [21, 1, 1, "c.c64_reduceall_p", "outer_size"], [21, 1, 1, "c.c64_reduceall_p", "src_data"]], "c64_reduceall_s": [[21, 1, 1, "c.c64_reduceall_s", "axis_size"], [21, 1, 1, "c.c64_reduceall_s", "core_mask"], [21, 1, 1, "c.c64_reduceall_s", "dst_data"], [21, 1, 1, "c.c64_reduceall_s", "inner_size"], [21, 1, 1, "c.c64_reduceall_s", "outer_size"], [21, 1, 1, "c.c64_reduceall_s", "src_data"]], "c64_reshape_p": [[156, 1, 1, "c.c64_reshape_p", "input"], [156, 1, 1, "c.c64_reshape_p", "length"], [156, 1, 1, "c.c64_reshape_p", "output"]], "c64_reshape_s": [[156, 1, 1, "c.c64_reshape_s", "core_mask"], [156, 1, 1, "c.c64_reshape_s", "input"], [156, 1, 1, "c.c64_reshape_s", "length"], [156, 1, 1, "c.c64_reshape_s", "output"]], "c64_rfft_p": [[161, 1, 1, "c.c64_rfft_p", "dir"], [161, 1, 1, "c.c64_rfft_p", "fft_size"], [161, 1, 1, "c.c64_rfft_p", "input"], [161, 1, 1, "c.c64_rfft_p", "output"], [161, 1, 1, "c.c64_rfft_p", "scratch_ptr"]], "c64_rfft_s": [[161, 1, 1, "c.c64_rfft_s", "core_mask"], [161, 1, 1, "c.c64_rfft_s", "dir"], [161, 1, 1, "c.c64_rfft_s", "fft_size1"], [161, 1, 1, "c.c64_rfft_s", "fft_size2"], [161, 1, 1, "c.c64_rfft_s", "input"], [161, 1, 1, "c.c64_rfft_s", "output"], [161, 1, 1, "c.c64_rfft_s", "scratch_ptr"], [161, 1, 1, "c.c64_rfft_s", "twiddle"]], "c64_rsqrt_p": [[164, 1, 1, "c.c64_rsqrt_p", "dst"], [164, 1, 1, "c.c64_rsqrt_p", "length"], [164, 1, 1, "c.c64_rsqrt_p", "src"]], "c64_rsqrt_s": [[164, 1, 1, "c.c64_rsqrt_s", "core_mask"], [164, 1, 1, "c.c64_rsqrt_s", "dst"], [164, 1, 1, "c.c64_rsqrt_s", "length"], [164, 1, 1, "c.c64_rsqrt_s", "src"]], "c64_scatter_elements_p": [[167, 1, 1, "c.c64_scatter_elements_p", "core_mask"], [167, 1, 1, "c.c64_scatter_elements_p", "indices"], [167, 1, 1, "c.c64_scatter_elements_p", "input"], [167, 1, 1, "c.c64_scatter_elements_p", "output"], [167, 1, 1, "c.c64_scatter_elements_p", "param"], [167, 1, 1, "c.c64_scatter_elements_p", "updates"]], "c64_scatter_elements_s": [[167, 1, 1, "c.c64_scatter_elements_s", "core_mask"], [167, 1, 1, "c.c64_scatter_elements_s", "indices"], [167, 1, 1, "c.c64_scatter_elements_s", "input"], [167, 1, 1, "c.c64_scatter_elements_s", "output"], [167, 1, 1, "c.c64_scatter_elements_s", "param"], [167, 1, 1, "c.c64_scatter_elements_s", "updates"]], "c64_scatter_nd_p": [[168, 1, 1, "c.c64_scatter_nd_p", "indices"], [168, 1, 1, "c.c64_scatter_nd_p", "indices_ndim"], [168, 1, 1, "c.c64_scatter_nd_p", "indices_shape"], [168, 1, 1, "c.c64_scatter_nd_p", "output"], [168, 1, 1, "c.c64_scatter_nd_p", "output_ndim"], [168, 1, 1, "c.c64_scatter_nd_p", "output_shape"], [168, 1, 1, "c.c64_scatter_nd_p", "updates"]], "c64_scatter_nd_s": [[168, 1, 1, "c.c64_scatter_nd_s", "core_mask"], [168, 1, 1, "c.c64_scatter_nd_s", "indices"], [168, 1, 1, "c.c64_scatter_nd_s", "indices_ndim"], [168, 1, 1, "c.c64_scatter_nd_s", "indices_shape"], [168, 1, 1, "c.c64_scatter_nd_s", "output"], [168, 1, 1, "c.c64_scatter_nd_s", "output_ndim"], [168, 1, 1, "c.c64_scatter_nd_s", "output_shape"], [168, 1, 1, "c.c64_scatter_nd_s", "updates"]], "c64_scatter_nd_update_p": [[169, 1, 1, "c.c64_scatter_nd_update_p", "indices"], [169, 1, 1, "c.c64_scatter_nd_update_p", "indices_ndim"], [169, 1, 1, "c.c64_scatter_nd_update_p", "indices_shape"], [169, 1, 1, "c.c64_scatter_nd_update_p", "output"], [169, 1, 1, "c.c64_scatter_nd_update_p", "output_ndim"], [169, 1, 1, "c.c64_scatter_nd_update_p", "output_shape"], [169, 1, 1, "c.c64_scatter_nd_update_p", "updates"]], "c64_scatter_nd_update_s": [[169, 1, 1, "c.c64_scatter_nd_update_s", "core_mask"], [169, 1, 1, "c.c64_scatter_nd_update_s", "indices"], [169, 1, 1, "c.c64_scatter_nd_update_s", "indices_ndim"], [169, 1, 1, "c.c64_scatter_nd_update_s", "indices_shape"], [169, 1, 1, "c.c64_scatter_nd_update_s", "output"], [169, 1, 1, "c.c64_scatter_nd_update_s", "output_ndim"], [169, 1, 1, "c.c64_scatter_nd_update_s", "output_shape"], [169, 1, 1, "c.c64_scatter_nd_update_s", "updates"]], "c64_select_p": [[170, 1, 1, "c.c64_select_p", "condition"], [170, 1, 1, "c.c64_select_p", "index_list1"], [170, 1, 1, "c.c64_select_p", "index_list2"], [170, 1, 1, "c.c64_select_p", "index_list3"], [170, 1, 1, "c.c64_select_p", "input0"], [170, 1, 1, "c.c64_select_p", "input1"], [170, 1, 1, "c.c64_select_p", "is_broadcast"], [170, 1, 1, "c.c64_select_p", "output"], [170, 1, 1, "c.c64_select_p", "output_dims"], [170, 1, 1, "c.c64_select_p", "output_dims_num"]], "c64_select_s": [[170, 1, 1, "c.c64_select_s", "condition"], [170, 1, 1, "c.c64_select_s", "core_mask"], [170, 1, 1, "c.c64_select_s", "index_list1"], [170, 1, 1, "c.c64_select_s", "index_list2"], [170, 1, 1, "c.c64_select_s", "index_list3"], [170, 1, 1, "c.c64_select_s", "input0"], [170, 1, 1, "c.c64_select_s", "input1"], [170, 1, 1, "c.c64_select_s", "is_broadcast"], [170, 1, 1, "c.c64_select_s", "output"], [170, 1, 1, "c.c64_select_s", "output_dims"], [170, 1, 1, "c.c64_select_s", "output_dims_num"]], "c64_slice_p": [[178, 1, 1, "c.c64_slice_p", "begin"], [178, 1, 1, "c.c64_slice_p", "input"], [178, 1, 1, "c.c64_slice_p", "input_shape"], [178, 1, 1, "c.c64_slice_p", "ndim"], [178, 1, 1, "c.c64_slice_p", "output"], [178, 1, 1, "c.c64_slice_p", "size"]], "c64_slice_s": [[178, 1, 1, "c.c64_slice_s", "begin"], [178, 1, 1, "c.c64_slice_s", "core_mask"], [178, 1, 1, "c.c64_slice_s", "input"], [178, 1, 1, "c.c64_slice_s", "input_shape"], [178, 1, 1, "c.c64_slice_s", "ndim"], [178, 1, 1, "c.c64_slice_s", "output"], [178, 1, 1, "c.c64_slice_s", "size"]], "c64_spacetobatch_p": [[183, 1, 1, "c.c64_spacetobatch_p", "block_size"], [183, 1, 1, "c.c64_spacetobatch_p", "data_size"], [183, 1, 1, "c.c64_spacetobatch_p", "input"], [183, 1, 1, "c.c64_spacetobatch_p", "input_shape"], [183, 1, 1, "c.c64_spacetobatch_p", "output"], [183, 1, 1, "c.c64_spacetobatch_p", "paddings"]], "c64_spacetobatch_s": [[183, 1, 1, "c.c64_spacetobatch_s", "block_size"], [183, 1, 1, "c.c64_spacetobatch_s", "core_mask"], [183, 1, 1, "c.c64_spacetobatch_s", "data_size"], [183, 1, 1, "c.c64_spacetobatch_s", "input"], [183, 1, 1, "c.c64_spacetobatch_s", "input_shape"], [183, 1, 1, "c.c64_spacetobatch_s", "output"], [183, 1, 1, "c.c64_spacetobatch_s", "paddings"]], "c64_spacetobatchnd_p": [[184, 1, 1, "c.c64_spacetobatchnd_p", "block_size"], [184, 1, 1, "c.c64_spacetobatchnd_p", "data_size"], [184, 1, 1, "c.c64_spacetobatchnd_p", "input"], [184, 1, 1, "c.c64_spacetobatchnd_p", "input_shape"], [184, 1, 1, "c.c64_spacetobatchnd_p", "output"], [184, 1, 1, "c.c64_spacetobatchnd_p", "paddings"]], "c64_spacetobatchnd_s": [[184, 1, 1, "c.c64_spacetobatchnd_s", "block_size"], [184, 1, 1, "c.c64_spacetobatchnd_s", "core_mask"], [184, 1, 1, "c.c64_spacetobatchnd_s", "data_size"], [184, 1, 1, "c.c64_spacetobatchnd_s", "input"], [184, 1, 1, "c.c64_spacetobatchnd_s", "input_shape"], [184, 1, 1, "c.c64_spacetobatchnd_s", "output"], [184, 1, 1, "c.c64_spacetobatchnd_s", "paddings"]], "c64_spacetodepth_p": [[185, 1, 1, "c.c64_spacetodepth_p", "block"], [185, 1, 1, "c.c64_spacetodepth_p", "data_size"], [185, 1, 1, "c.c64_spacetodepth_p", "in_shape"], [185, 1, 1, "c.c64_spacetodepth_p", "input"], [185, 1, 1, "c.c64_spacetodepth_p", "output"]], "c64_spacetodepth_s": [[185, 1, 1, "c.c64_spacetodepth_s", "block"], [185, 1, 1, "c.c64_spacetodepth_s", "core_mask"], [185, 1, 1, "c.c64_spacetodepth_s", "data_size"], [185, 1, 1, "c.c64_spacetodepth_s", "in_shape"], [185, 1, 1, "c.c64_spacetodepth_s", "input"], [185, 1, 1, "c.c64_spacetodepth_s", "output"]], "c64_sparsefillemptyrows_p": [[187, 1, 1, "c.c64_sparsefillemptyrows_p", "N"], [187, 1, 1, "c.c64_sparsefillemptyrows_p", "default_value"], [187, 1, 1, "c.c64_sparsefillemptyrows_p", "dense_rows"], [187, 1, 1, "c.c64_sparsefillemptyrows_p", "filled_count"], [187, 1, 1, "c.c64_sparsefillemptyrows_p", "indices_ptr"], [187, 1, 1, "c.c64_sparsefillemptyrows_p", "output_reverse_index_map_ptr"], [187, 1, 1, "c.c64_sparsefillemptyrows_p", "output_y_indices_ptr"], [187, 1, 1, "c.c64_sparsefillemptyrows_p", "output_y_values_ptr"], [187, 1, 1, "c.c64_sparsefillemptyrows_p", "rank"], [187, 1, 1, "c.c64_sparsefillemptyrows_p", "scratch_ptr"], [187, 1, 1, "c.c64_sparsefillemptyrows_p", "values_ptr"]], "c64_sparsefillemptyrows_s": [[187, 1, 1, "c.c64_sparsefillemptyrows_s", "N"], [187, 1, 1, "c.c64_sparsefillemptyrows_s", "core_mask"], [187, 1, 1, "c.c64_sparsefillemptyrows_s", "default_value"], [187, 1, 1, "c.c64_sparsefillemptyrows_s", "dense_rows"], [187, 1, 1, "c.c64_sparsefillemptyrows_s", "filled_count"], [187, 1, 1, "c.c64_sparsefillemptyrows_s", "indices_ptr"], [187, 1, 1, "c.c64_sparsefillemptyrows_s", "output_reverse_index_map_ptr"], [187, 1, 1, "c.c64_sparsefillemptyrows_s", "output_y_indices_ptr"], [187, 1, 1, "c.c64_sparsefillemptyrows_s", "output_y_values_ptr"], [187, 1, 1, "c.c64_sparsefillemptyrows_s", "rank"], [187, 1, 1, "c.c64_sparsefillemptyrows_s", "scratch_ptr"], [187, 1, 1, "c.c64_sparsefillemptyrows_s", "values_ptr"]], "c64_sparsesegmentsum_p": [[189, 1, 1, "c.c64_sparsesegmentsum_p", "in_data"], [189, 1, 1, "c.c64_sparsesegmentsum_p", "in_data_shape"], [189, 1, 1, "c.c64_sparsesegmentsum_p", "in_data_shape_size"], [189, 1, 1, "c.c64_sparsesegmentsum_p", "in_indices"], [189, 1, 1, "c.c64_sparsesegmentsum_p", "in_indices_size"], [189, 1, 1, "c.c64_sparsesegmentsum_p", "in_segment_ids"], [189, 1, 1, "c.c64_sparsesegmentsum_p", "out_data"], [189, 1, 1, "c.c64_sparsesegmentsum_p", "out_data_shape"]], "c64_sparsesegmentsum_s": [[189, 1, 1, "c.c64_sparsesegmentsum_s", "core_mask"], [189, 1, 1, "c.c64_sparsesegmentsum_s", "in_data"], [189, 1, 1, "c.c64_sparsesegmentsum_s", "in_data_shape"], [189, 1, 1, "c.c64_sparsesegmentsum_s", "in_data_shape_size"], [189, 1, 1, "c.c64_sparsesegmentsum_s", "in_indices"], [189, 1, 1, "c.c64_sparsesegmentsum_s", "in_indices_size"], [189, 1, 1, "c.c64_sparsesegmentsum_s", "in_segment_ids"], [189, 1, 1, "c.c64_sparsesegmentsum_s", "out_data"], [189, 1, 1, "c.c64_sparsesegmentsum_s", "out_data_shape"]], "c64_sparsetodense_p": [[190, 1, 1, "c.c64_sparsetodense_p", "indices_vec"], [190, 1, 1, "c.c64_sparsetodense_p", "is_scalar"], [190, 1, 1, "c.c64_sparsetodense_p", "output"], [190, 1, 1, "c.c64_sparsetodense_p", "output_strides"], [190, 1, 1, "c.c64_sparsetodense_p", "sparse_length"], [190, 1, 1, "c.c64_sparsetodense_p", "sparse_values"]], "c64_sparsetodense_s": [[190, 1, 1, "c.c64_sparsetodense_s", "core_mask"], [190, 1, 1, "c.c64_sparsetodense_s", "indices_vec"], [190, 1, 1, "c.c64_sparsetodense_s", "is_scalar"], [190, 1, 1, "c.c64_sparsetodense_s", "output"], [190, 1, 1, "c.c64_sparsetodense_s", "output_strides"], [190, 1, 1, "c.c64_sparsetodense_s", "sparse_length"], [190, 1, 1, "c.c64_sparsetodense_s", "sparse_values"]], "c64_splice_p": [[191, 1, 1, "c.c64_splice_p", "context_dim"], [191, 1, 1, "c.c64_splice_p", "dst_col"], [191, 1, 1, "c.c64_splice_p", "dst_data"], [191, 1, 1, "c.c64_splice_p", "dst_row"], [191, 1, 1, "c.c64_splice_p", "forward_indexes"], [191, 1, 1, "c.c64_splice_p", "forward_indexes_dims"], [191, 1, 1, "c.c64_splice_p", "src_col"], [191, 1, 1, "c.c64_splice_p", "src_data"], [191, 1, 1, "c.c64_splice_p", "src_row"]], "c64_splice_s": [[191, 1, 1, "c.c64_splice_s", "context_dim"], [191, 1, 1, "c.c64_splice_s", "core_mask"], [191, 1, 1, "c.c64_splice_s", "dst_col"], [191, 1, 1, "c.c64_splice_s", "dst_data"], [191, 1, 1, "c.c64_splice_s", "dst_row"], [191, 1, 1, "c.c64_splice_s", "forward_indexes"], [191, 1, 1, "c.c64_splice_s", "forward_indexes_dims"], [191, 1, 1, "c.c64_splice_s", "src_col"], [191, 1, 1, "c.c64_splice_s", "src_data"], [191, 1, 1, "c.c64_splice_s", "src_row"]], "c64_split_p": [[192, 1, 1, "c.c64_split_p", "axis"], [192, 1, 1, "c.c64_split_p", "input"], [192, 1, 1, "c.c64_split_p", "input_ndim"], [192, 1, 1, "c.c64_split_p", "input_shape"], [192, 1, 1, "c.c64_split_p", "num_split"], [192, 1, 1, "c.c64_split_p", "outputs"], [192, 1, 1, "c.c64_split_p", "split_sizes"]], "c64_split_s": [[192, 1, 1, "c.c64_split_s", "axis"], [192, 1, 1, "c.c64_split_s", "core_mask"], [192, 1, 1, "c.c64_split_s", "input"], [192, 1, 1, "c.c64_split_s", "input_ndim"], [192, 1, 1, "c.c64_split_s", "input_shape"], [192, 1, 1, "c.c64_split_s", "num_split"], [192, 1, 1, "c.c64_split_s", "outputs"], [192, 1, 1, "c.c64_split_s", "split_sizes"]], "c64_split_with_overlap_p": [[193, 1, 1, "c.c64_split_with_overlap_p", "axis"], [193, 1, 1, "c.c64_split_with_overlap_p", "end_indices"], [193, 1, 1, "c.c64_split_with_overlap_p", "input"], [193, 1, 1, "c.c64_split_with_overlap_p", "input_ndim"], [193, 1, 1, "c.c64_split_with_overlap_p", "input_shape"], [193, 1, 1, "c.c64_split_with_overlap_p", "num_split"], [193, 1, 1, "c.c64_split_with_overlap_p", "outputs"], [193, 1, 1, "c.c64_split_with_overlap_p", "start_indices"]], "c64_split_with_overlap_s": [[193, 1, 1, "c.c64_split_with_overlap_s", "axis"], [193, 1, 1, "c.c64_split_with_overlap_s", "core_mask"], [193, 1, 1, "c.c64_split_with_overlap_s", "end_indices"], [193, 1, 1, "c.c64_split_with_overlap_s", "input"], [193, 1, 1, "c.c64_split_with_overlap_s", "input_ndim"], [193, 1, 1, "c.c64_split_with_overlap_s", "input_shape"], [193, 1, 1, "c.c64_split_with_overlap_s", "num_split"], [193, 1, 1, "c.c64_split_with_overlap_s", "outputs"], [193, 1, 1, "c.c64_split_with_overlap_s", "start_indices"]], "c64_sqrt_p": [[194, 1, 1, "c.c64_sqrt_p", "dst_data"], [194, 1, 1, "c.c64_sqrt_p", "length"], [194, 1, 1, "c.c64_sqrt_p", "src_data"]], "c64_sqrt_s": [[194, 1, 1, "c.c64_sqrt_s", "core_mask"], [194, 1, 1, "c.c64_sqrt_s", "dst_data"], [194, 1, 1, "c.c64_sqrt_s", "length"], [194, 1, 1, "c.c64_sqrt_s", "src_data"]], "c64_sqrtgrad_p": [[195, 1, 1, "c.c64_sqrtgrad_p", "input1"], [195, 1, 1, "c.c64_sqrtgrad_p", "input2"], [195, 1, 1, "c.c64_sqrtgrad_p", "output"], [195, 1, 1, "c.c64_sqrtgrad_p", "size"]], "c64_sqrtgrad_s": [[195, 1, 1, "c.c64_sqrtgrad_s", "core_mask"], [195, 1, 1, "c.c64_sqrtgrad_s", "input1"], [195, 1, 1, "c.c64_sqrtgrad_s", "input2"], [195, 1, 1, "c.c64_sqrtgrad_s", "output"], [195, 1, 1, "c.c64_sqrtgrad_s", "size"]], "c64_square_p": [[196, 1, 1, "c.c64_square_p", "dst"], [196, 1, 1, "c.c64_square_p", "length"], [196, 1, 1, "c.c64_square_p", "src"]], "c64_square_s": [[196, 1, 1, "c.c64_square_s", "core_mask"], [196, 1, 1, "c.c64_square_s", "dst"], [196, 1, 1, "c.c64_square_s", "length"], [196, 1, 1, "c.c64_square_s", "src"]], "c64_squaredifference_p": [[197, 1, 1, "c.c64_squaredifference_p", "input0"], [197, 1, 1, "c.c64_squaredifference_p", "input1"], [197, 1, 1, "c.c64_squaredifference_p", "length"], [197, 1, 1, "c.c64_squaredifference_p", "output"]], "c64_squaredifference_s": [[197, 1, 1, "c.c64_squaredifference_s", "core_mask"], [197, 1, 1, "c.c64_squaredifference_s", "input0"], [197, 1, 1, "c.c64_squaredifference_s", "input1"], [197, 1, 1, "c.c64_squaredifference_s", "length"], [197, 1, 1, "c.c64_squaredifference_s", "output"]], "c64_stack_p": [[199, 1, 1, "c.c64_stack_p", "axis"], [199, 1, 1, "c.c64_stack_p", "input_ndim"], [199, 1, 1, "c.c64_stack_p", "input_shape"], [199, 1, 1, "c.c64_stack_p", "inputs"], [199, 1, 1, "c.c64_stack_p", "num_inputs"], [199, 1, 1, "c.c64_stack_p", "output"]], "c64_stack_s": [[199, 1, 1, "c.c64_stack_s", "axis"], [199, 1, 1, "c.c64_stack_s", "core_mask"], [199, 1, 1, "c.c64_stack_s", "input_ndim"], [199, 1, 1, "c.c64_stack_s", "input_shape"], [199, 1, 1, "c.c64_stack_s", "inputs"], [199, 1, 1, "c.c64_stack_s", "num_inputs"], [199, 1, 1, "c.c64_stack_s", "output"]], "c64_subext_p": [[202, 1, 1, "c.c64_subext_p", "alpha"], [202, 1, 1, "c.c64_subext_p", "input0"], [202, 1, 1, "c.c64_subext_p", "input1"], [202, 1, 1, "c.c64_subext_p", "output"], [202, 1, 1, "c.c64_subext_p", "size"]], "c64_subext_s": [[202, 1, 1, "c.c64_subext_s", "alpha"], [202, 1, 1, "c.c64_subext_s", "core_mask"], [202, 1, 1, "c.c64_subext_s", "input0"], [202, 1, 1, "c.c64_subext_s", "input1"], [202, 1, 1, "c.c64_subext_s", "output"], [202, 1, 1, "c.c64_subext_s", "size"]], "c64_subrelu6_p": [[202, 1, 1, "c.c64_subrelu6_p", "input0"], [202, 1, 1, "c.c64_subrelu6_p", "input1"], [202, 1, 1, "c.c64_subrelu6_p", "output"], [202, 1, 1, "c.c64_subrelu6_p", "size"]], "c64_subrelu6_s": [[202, 1, 1, "c.c64_subrelu6_s", "core_mask"], [202, 1, 1, "c.c64_subrelu6_s", "input0"], [202, 1, 1, "c.c64_subrelu6_s", "input1"], [202, 1, 1, "c.c64_subrelu6_s", "output"], [202, 1, 1, "c.c64_subrelu6_s", "size"]], "c64_subrelu_p": [[202, 1, 1, "c.c64_subrelu_p", "input0"], [202, 1, 1, "c.c64_subrelu_p", "input1"], [202, 1, 1, "c.c64_subrelu_p", "output"], [202, 1, 1, "c.c64_subrelu_p", "size"]], "c64_subrelu_s": [[202, 1, 1, "c.c64_subrelu_s", "core_mask"], [202, 1, 1, "c.c64_subrelu_s", "input0"], [202, 1, 1, "c.c64_subrelu_s", "input1"], [202, 1, 1, "c.c64_subrelu_s", "output"], [202, 1, 1, "c.c64_subrelu_s", "size"]], "c64_tensor_scatter_add_p": [[206, 1, 1, "c.c64_tensor_scatter_add_p", "index_depth"], [206, 1, 1, "c.c64_tensor_scatter_add_p", "indices"], [206, 1, 1, "c.c64_tensor_scatter_add_p", "input"], [206, 1, 1, "c.c64_tensor_scatter_add_p", "input_rank"], [206, 1, 1, "c.c64_tensor_scatter_add_p", "input_shape"], [206, 1, 1, "c.c64_tensor_scatter_add_p", "num_unit"], [206, 1, 1, "c.c64_tensor_scatter_add_p", "output"], [206, 1, 1, "c.c64_tensor_scatter_add_p", "output_unit_offsets"], [206, 1, 1, "c.c64_tensor_scatter_add_p", "strides"], [206, 1, 1, "c.c64_tensor_scatter_add_p", "updates"]], "c64_tensor_scatter_add_s": [[206, 1, 1, "c.c64_tensor_scatter_add_s", "core_mask"], [206, 1, 1, "c.c64_tensor_scatter_add_s", "index_depth"], [206, 1, 1, "c.c64_tensor_scatter_add_s", "indices"], [206, 1, 1, "c.c64_tensor_scatter_add_s", "input"], [206, 1, 1, "c.c64_tensor_scatter_add_s", "input_rank"], [206, 1, 1, "c.c64_tensor_scatter_add_s", "input_shape"], [206, 1, 1, "c.c64_tensor_scatter_add_s", "num_unit"], [206, 1, 1, "c.c64_tensor_scatter_add_s", "output"], [206, 1, 1, "c.c64_tensor_scatter_add_s", "updates"]], "c64_tensorarrayread_p": [[208, 1, 1, "c.c64_tensorarrayread_p", "handle_data"], [208, 1, 1, "c.c64_tensorarrayread_p", "handle_size"], [208, 1, 1, "c.c64_tensorarrayread_p", "index"], [208, 1, 1, "c.c64_tensorarrayread_p", "output_data"], [208, 1, 1, "c.c64_tensorarrayread_p", "output_size"]], "c64_tensorarrayread_s": [[208, 1, 1, "c.c64_tensorarrayread_s", "core_mask"], [208, 1, 1, "c.c64_tensorarrayread_s", "handle_data"], [208, 1, 1, "c.c64_tensorarrayread_s", "handle_size"], [208, 1, 1, "c.c64_tensorarrayread_s", "index"], [208, 1, 1, "c.c64_tensorarrayread_s", "output_data"], [208, 1, 1, "c.c64_tensorarrayread_s", "output_size"]], "c64_tensorlistfromtensor_p": [[210, 1, 1, "c.c64_tensorlistfromtensor_p", "input_tensor_shape"], [210, 1, 1, "c.c64_tensorlistfromtensor_p", "input_tensor_total_elements"], [210, 1, 1, "c.c64_tensorlistfromtensor_p", "input_tensor_values"], [210, 1, 1, "c.c64_tensorlistfromtensor_p", "output_tensors"]], "c64_tensorlistfromtensor_s": [[210, 1, 1, "c.c64_tensorlistfromtensor_s", "core_mask"], [210, 1, 1, "c.c64_tensorlistfromtensor_s", "input_tensor_shape"], [210, 1, 1, "c.c64_tensorlistfromtensor_s", "input_tensor_total_elements"], [210, 1, 1, "c.c64_tensorlistfromtensor_s", "input_tensor_values"], [210, 1, 1, "c.c64_tensorlistfromtensor_s", "output_tensors"]], "c64_tile_p": [[215, 1, 1, "c.c64_tile_p", "input"], [215, 1, 1, "c.c64_tile_p", "input_shape"], [215, 1, 1, "c.c64_tile_p", "output"], [215, 1, 1, "c.c64_tile_p", "stride"], [215, 1, 1, "c.c64_tile_p", "tile_dim"], [215, 1, 1, "c.c64_tile_p", "tile_num"]], "c64_tile_s": [[215, 1, 1, "c.c64_tile_s", "core_mask"], [215, 1, 1, "c.c64_tile_s", "input"], [215, 1, 1, "c.c64_tile_s", "input_shape"], [215, 1, 1, "c.c64_tile_s", "output"], [215, 1, 1, "c.c64_tile_s", "stride"], [215, 1, 1, "c.c64_tile_s", "tile_dim"], [215, 1, 1, "c.c64_tile_s", "tile_num"]], "c64_transpose_p": [[217, 1, 1, "c.c64_transpose_p", "in_data"], [217, 1, 1, "c.c64_transpose_p", "num_axes"], [217, 1, 1, "c.c64_transpose_p", "out_data"], [217, 1, 1, "c.c64_transpose_p", "out_strides"], [217, 1, 1, "c.c64_transpose_p", "output_shape"], [217, 1, 1, "c.c64_transpose_p", "perm"], [217, 1, 1, "c.c64_transpose_p", "strides"]], "c64_transpose_s": [[217, 1, 1, "c.c64_transpose_s", "core_mask"], [217, 1, 1, "c.c64_transpose_s", "in_data"], [217, 1, 1, "c.c64_transpose_s", "num_axes"], [217, 1, 1, "c.c64_transpose_s", "out_data"], [217, 1, 1, "c.c64_transpose_s", "out_strides"], [217, 1, 1, "c.c64_transpose_s", "output_shape"], [217, 1, 1, "c.c64_transpose_s", "perm"], [217, 1, 1, "c.c64_transpose_s", "strides"]], "c64_tril_p": [[218, 1, 1, "c.c64_tril_p", "dst"], [218, 1, 1, "c.c64_tril_p", "height"], [218, 1, 1, "c.c64_tril_p", "k"], [218, 1, 1, "c.c64_tril_p", "out_elems"], [218, 1, 1, "c.c64_tril_p", "src"], [218, 1, 1, "c.c64_tril_p", "width"]], "c64_tril_s": [[218, 1, 1, "c.c64_tril_s", "core_mask"], [218, 1, 1, "c.c64_tril_s", "dst"], [218, 1, 1, "c.c64_tril_s", "height"], [218, 1, 1, "c.c64_tril_s", "k"], [218, 1, 1, "c.c64_tril_s", "out_elems"], [218, 1, 1, "c.c64_tril_s", "src"], [218, 1, 1, "c.c64_tril_s", "width"]], "c64_triu_p": [[219, 1, 1, "c.c64_triu_p", "dst"], [219, 1, 1, "c.c64_triu_p", "height"], [219, 1, 1, "c.c64_triu_p", "k"], [219, 1, 1, "c.c64_triu_p", "out_elems"], [219, 1, 1, "c.c64_triu_p", "src"], [219, 1, 1, "c.c64_triu_p", "width"]], "c64_triu_s": [[219, 1, 1, "c.c64_triu_s", "core_mask"], [219, 1, 1, "c.c64_triu_s", "dst"], [219, 1, 1, "c.c64_triu_s", "height"], [219, 1, 1, "c.c64_triu_s", "k"], [219, 1, 1, "c.c64_triu_s", "out_elems"], [219, 1, 1, "c.c64_triu_s", "src"], [219, 1, 1, "c.c64_triu_s", "width"]], "c64_unsorted_segment_sum_p": [[222, 1, 1, "c.c64_unsorted_segment_sum_p", "dim0"], [222, 1, 1, "c.c64_unsorted_segment_sum_p", "dim1"], [222, 1, 1, "c.c64_unsorted_segment_sum_p", "id_max"], [222, 1, 1, "c.c64_unsorted_segment_sum_p", "index"], [222, 1, 1, "c.c64_unsorted_segment_sum_p", "input"], [222, 1, 1, "c.c64_unsorted_segment_sum_p", "output"]], "c64_unsorted_segment_sum_s": [[222, 1, 1, "c.c64_unsorted_segment_sum_s", "core_mask"], [222, 1, 1, "c.c64_unsorted_segment_sum_s", "dim0"], [222, 1, 1, "c.c64_unsorted_segment_sum_s", "dim1"], [222, 1, 1, "c.c64_unsorted_segment_sum_s", "id_max"], [222, 1, 1, "c.c64_unsorted_segment_sum_s", "index"], [222, 1, 1, "c.c64_unsorted_segment_sum_s", "input"], [222, 1, 1, "c.c64_unsorted_segment_sum_s", "output"]], "c64_where_p": [[225, 1, 1, "c.c64_where_p", "condition"], [225, 1, 1, "c.c64_where_p", "input0"], [225, 1, 1, "c.c64_where_p", "input1"], [225, 1, 1, "c.c64_where_p", "length"], [225, 1, 1, "c.c64_where_p", "output"]], "c64_where_s": [[225, 1, 1, "c.c64_where_s", "condition"], [225, 1, 1, "c.c64_where_s", "core_mask"], [225, 1, 1, "c.c64_where_s", "input0"], [225, 1, 1, "c.c64_where_s", "input1"], [225, 1, 1, "c.c64_where_s", "length"], [225, 1, 1, "c.c64_where_s", "output"]], "c64_zerolike_p": [[226, 1, 1, "c.c64_zerolike_p", "length"], [226, 1, 1, "c.c64_zerolike_p", "output"]], "c64_zerolike_s": [[226, 1, 1, "c.c64_zerolike_s", "core_mask"], [226, 1, 1, "c.c64_zerolike_s", "length"], [226, 1, 1, "c.c64_zerolike_s", "output"]], "castc128Toc128_p": [[42, 1, 1, "c.castc128Toc128_p", "input"], [42, 1, 1, "c.castc128Toc128_p", "length"], [42, 1, 1, "c.castc128Toc128_p", "output"]], "castc128Toc128_s": [[42, 1, 1, "c.castc128Toc128_s", "core_mask"], [42, 1, 1, "c.castc128Toc128_s", "input"], [42, 1, 1, "c.castc128Toc128_s", "length"], [42, 1, 1, "c.castc128Toc128_s", "output"]], "castc64Toc64_p": [[42, 1, 1, "c.castc64Toc64_p", "input"], [42, 1, 1, "c.castc64Toc64_p", "length"], [42, 1, 1, "c.castc64Toc64_p", "output"]], "castc64Toc64_s": [[42, 1, 1, "c.castc64Toc64_s", "core_mask"], [42, 1, 1, "c.castc64Toc64_s", "input"], [42, 1, 1, "c.castc64Toc64_s", "length"], [42, 1, 1, "c.castc64Toc64_s", "output"]], "castdpTodp_p": [[42, 1, 1, "c.castdpTodp_p", "input"], [42, 1, 1, "c.castdpTodp_p", "length"], [42, 1, 1, "c.castdpTodp_p", "output"]], "castdpTodp_s": [[42, 1, 1, "c.castdpTodp_s", "core_mask"], [42, 1, 1, "c.castdpTodp_s", "input"], [42, 1, 1, "c.castdpTodp_s", "length"], [42, 1, 1, "c.castdpTodp_s", "output"]], "castdpTofp_p": [[42, 1, 1, "c.castdpTofp_p", "input"], [42, 1, 1, "c.castdpTofp_p", "length"], [42, 1, 1, "c.castdpTofp_p", "output"]], "castdpTofp_s": [[42, 1, 1, "c.castdpTofp_s", "core_mask"], [42, 1, 1, "c.castdpTofp_s", "input"], [42, 1, 1, "c.castdpTofp_s", "length"], [42, 1, 1, "c.castdpTofp_s", "output"]], "castfpTofp_p": [[42, 1, 1, "c.castfpTofp_p", "input"], [42, 1, 1, "c.castfpTofp_p", "length"], [42, 1, 1, "c.castfpTofp_p", "output"]], "castfpTofp_s": [[42, 1, 1, "c.castfpTofp_s", "core_mask"], [42, 1, 1, "c.castfpTofp_s", "input"], [42, 1, 1, "c.castfpTofp_s", "length"], [42, 1, 1, "c.castfpTofp_s", "output"]], "castfpToint16_p": [[42, 1, 1, "c.castfpToint16_p", "input"], [42, 1, 1, "c.castfpToint16_p", "length"], [42, 1, 1, "c.castfpToint16_p", "output"]], "castfpToint16_s": [[42, 1, 1, "c.castfpToint16_s", "core_mask"], [42, 1, 1, "c.castfpToint16_s", "input"], [42, 1, 1, "c.castfpToint16_s", "length"], [42, 1, 1, "c.castfpToint16_s", "output"]], "castfpToint32_p": [[42, 1, 1, "c.castfpToint32_p", "input"], [42, 1, 1, "c.castfpToint32_p", "length"], [42, 1, 1, "c.castfpToint32_p", "output"]], "castfpToint32_s": [[42, 1, 1, "c.castfpToint32_s", "core_mask"], [42, 1, 1, "c.castfpToint32_s", "input"], [42, 1, 1, "c.castfpToint32_s", "length"], [42, 1, 1, "c.castfpToint32_s", "output"]], "castfpToint8_p": [[42, 1, 1, "c.castfpToint8_p", "input"], [42, 1, 1, "c.castfpToint8_p", "length"], [42, 1, 1, "c.castfpToint8_p", "output"]], "castfpToint8_s": [[42, 1, 1, "c.castfpToint8_s", "core_mask"], [42, 1, 1, "c.castfpToint8_s", "input"], [42, 1, 1, "c.castfpToint8_s", "length"], [42, 1, 1, "c.castfpToint8_s", "output"]], "casti16Tofp_p": [[42, 1, 1, "c.casti16Tofp_p", "input"], [42, 1, 1, "c.casti16Tofp_p", "length"], [42, 1, 1, "c.casti16Tofp_p", "output"]], "casti16Tofp_s": [[42, 1, 1, "c.casti16Tofp_s", "core_mask"], [42, 1, 1, "c.casti16Tofp_s", "input"], [42, 1, 1, "c.casti16Tofp_s", "length"], [42, 1, 1, "c.casti16Tofp_s", "output"]], "casti16Tointi16_p": [[42, 1, 1, "c.casti16Tointi16_p", "input"], [42, 1, 1, "c.casti16Tointi16_p", "length"], [42, 1, 1, "c.casti16Tointi16_p", "output"]], "casti16Tointi16_s": [[42, 1, 1, "c.casti16Tointi16_s", "core_mask"], [42, 1, 1, "c.casti16Tointi16_s", "input"], [42, 1, 1, "c.casti16Tointi16_s", "length"], [42, 1, 1, "c.casti16Tointi16_s", "output"]], "casti16Tointi32_p": [[42, 1, 1, "c.casti16Tointi32_p", "input"], [42, 1, 1, "c.casti16Tointi32_p", "length"], [42, 1, 1, "c.casti16Tointi32_p", "output"]], "casti16Tointi32_s": [[42, 1, 1, "c.casti16Tointi32_s", "core_mask"], [42, 1, 1, "c.casti16Tointi32_s", "input"], [42, 1, 1, "c.casti16Tointi32_s", "length"], [42, 1, 1, "c.casti16Tointi32_s", "output"]], "casti16Tointi8_p": [[42, 1, 1, "c.casti16Tointi8_p", "input"], [42, 1, 1, "c.casti16Tointi8_p", "length"], [42, 1, 1, "c.casti16Tointi8_p", "output"]], "casti16Tointi8_s": [[42, 1, 1, "c.casti16Tointi8_s", "core_mask"], [42, 1, 1, "c.casti16Tointi8_s", "input"], [42, 1, 1, "c.casti16Tointi8_s", "length"], [42, 1, 1, "c.casti16Tointi8_s", "output"]], "casti32Tofp_p": [[42, 1, 1, "c.casti32Tofp_p", "input"], [42, 1, 1, "c.casti32Tofp_p", "length"], [42, 1, 1, "c.casti32Tofp_p", "output"]], "casti32Tofp_s": [[42, 1, 1, "c.casti32Tofp_s", "core_mask"], [42, 1, 1, "c.casti32Tofp_s", "input"], [42, 1, 1, "c.casti32Tofp_s", "length"], [42, 1, 1, "c.casti32Tofp_s", "output"]], "casti32Tointi16_p": [[42, 1, 1, "c.casti32Tointi16_p", "input"], [42, 1, 1, "c.casti32Tointi16_p", "length"], [42, 1, 1, "c.casti32Tointi16_p", "output"]], "casti32Tointi16_s": [[42, 1, 1, "c.casti32Tointi16_s", "core_mask"], [42, 1, 1, "c.casti32Tointi16_s", "input"], [42, 1, 1, "c.casti32Tointi16_s", "length"], [42, 1, 1, "c.casti32Tointi16_s", "output"]], "casti32Tointi32_p": [[42, 1, 1, "c.casti32Tointi32_p", "input"], [42, 1, 1, "c.casti32Tointi32_p", "length"], [42, 1, 1, "c.casti32Tointi32_p", "output"]], "casti32Tointi32_s": [[42, 1, 1, "c.casti32Tointi32_s", "core_mask"], [42, 1, 1, "c.casti32Tointi32_s", "input"], [42, 1, 1, "c.casti32Tointi32_s", "length"], [42, 1, 1, "c.casti32Tointi32_s", "output"]], "casti32Tointi8_p": [[42, 1, 1, "c.casti32Tointi8_p", "input"], [42, 1, 1, "c.casti32Tointi8_p", "length"], [42, 1, 1, "c.casti32Tointi8_p", "output"]], "casti32Tointi8_s": [[42, 1, 1, "c.casti32Tointi8_s", "core_mask"], [42, 1, 1, "c.casti32Tointi8_s", "input"], [42, 1, 1, "c.casti32Tointi8_s", "length"], [42, 1, 1, "c.casti32Tointi8_s", "output"]], "casti8Tofp_p": [[42, 1, 1, "c.casti8Tofp_p", "input"], [42, 1, 1, "c.casti8Tofp_p", "length"], [42, 1, 1, "c.casti8Tofp_p", "output"]], "casti8Tofp_s": [[42, 1, 1, "c.casti8Tofp_s", "core_mask"], [42, 1, 1, "c.casti8Tofp_s", "input"], [42, 1, 1, "c.casti8Tofp_s", "length"], [42, 1, 1, "c.casti8Tofp_s", "output"]], "casti8Tointi16_p": [[42, 1, 1, "c.casti8Tointi16_p", "input"], [42, 1, 1, "c.casti8Tointi16_p", "length"], [42, 1, 1, "c.casti8Tointi16_p", "output"]], "casti8Tointi16_s": [[42, 1, 1, "c.casti8Tointi16_s", "core_mask"], [42, 1, 1, "c.casti8Tointi16_s", "input"], [42, 1, 1, "c.casti8Tointi16_s", "length"], [42, 1, 1, "c.casti8Tointi16_s", "output"]], "casti8Tointi32_p": [[42, 1, 1, "c.casti8Tointi32_p", "input"], [42, 1, 1, "c.casti8Tointi32_p", "length"], [42, 1, 1, "c.casti8Tointi32_p", "output"]], "casti8Tointi32_s": [[42, 1, 1, "c.casti8Tointi32_s", "core_mask"], [42, 1, 1, "c.casti8Tointi32_s", "input"], [42, 1, 1, "c.casti8Tointi32_s", "length"], [42, 1, 1, "c.casti8Tointi32_s", "output"]], "casti8Tointi8_p": [[42, 1, 1, "c.casti8Tointi8_p", "input"], [42, 1, 1, "c.casti8Tointi8_p", "length"], [42, 1, 1, "c.casti8Tointi8_p", "output"]], "casti8Tointi8_s": [[42, 1, 1, "c.casti8Tointi8_s", "core_mask"], [42, 1, 1, "c.casti8Tointi8_s", "input"], [42, 1, 1, "c.casti8Tointi8_s", "length"], [42, 1, 1, "c.casti8Tointi8_s", "output"]], "customnormalize_p": [[56, 1, 1, "c.customnormalize_p", "params"], [56, 1, 1, "c.customnormalize_p", "result"], [56, 1, 1, "c.customnormalize_p", "result_len"], [56, 1, 1, "c.customnormalize_p", "str"], [56, 1, 1, "c.customnormalize_p", "str_len"], [56, 1, 1, "c.customnormalize_p", "tmp_str"]], "customnormalize_s": [[56, 1, 1, "c.customnormalize_s", "core_mask"], [56, 1, 1, "c.customnormalize_s", "params"], [56, 1, 1, "c.customnormalize_s", "result"], [56, 1, 1, "c.customnormalize_s", "result_len"], [56, 1, 1, "c.customnormalize_s", "str"], [56, 1, 1, "c.customnormalize_s", "str_len"], [56, 1, 1, "c.customnormalize_s", "tmp_str"]], "custompredict_p": [[57, 1, 1, "c.custompredict_p", "input"], [57, 1, 1, "c.custompredict_p", "input_size"], [57, 1, 1, "c.custompredict_p", "output_label"], [57, 1, 1, "c.custompredict_p", "output_num"], [57, 1, 1, "c.custompredict_p", "output_weight"], [57, 1, 1, "c.custompredict_p", "weight_threshold"]], "custompredict_s": [[57, 1, 1, "c.custompredict_s", "core_mask"], [57, 1, 1, "c.custompredict_s", "input"], [57, 1, 1, "c.custompredict_s", "input_size"], [57, 1, 1, "c.custompredict_s", "output_label"], [57, 1, 1, "c.custompredict_s", "output_num"], [57, 1, 1, "c.custompredict_s", "output_weight"], [57, 1, 1, "c.custompredict_s", "weight_threshold"]], "dp_Unique_p": [[221, 1, 1, "c.dp_Unique_p", "input"], [221, 1, 1, "c.dp_Unique_p", "input_len"], [221, 1, 1, "c.dp_Unique_p", "output0"], [221, 1, 1, "c.dp_Unique_p", "output0_len"]], "dp_Unique_s": [[221, 1, 1, "c.dp_Unique_s", "core_mask"], [221, 1, 1, "c.dp_Unique_s", "input"], [221, 1, 1, "c.dp_Unique_s", "input_len"], [221, 1, 1, "c.dp_Unique_s", "output0"], [221, 1, 1, "c.dp_Unique_s", "output0_len"]], "dp_abs_p": [[10, 1, 1, "c.dp_abs_p", "dst_data"], [10, 1, 1, "c.dp_abs_p", "length"], [10, 1, 1, "c.dp_abs_p", "src_data"]], "dp_abs_s": [[10, 1, 1, "c.dp_abs_s", "core_mask"], [10, 1, 1, "c.dp_abs_s", "dst_data"], [10, 1, 1, "c.dp_abs_s", "length"], [10, 1, 1, "c.dp_abs_s", "src_data"]], "dp_addext_p": [[17, 1, 1, "c.dp_addext_p", "alpha"], [17, 1, 1, "c.dp_addext_p", "in0"], [17, 1, 1, "c.dp_addext_p", "in1"], [17, 1, 1, "c.dp_addext_p", "out"], [17, 1, 1, "c.dp_addext_p", "size"]], "dp_addext_s": [[17, 1, 1, "c.dp_addext_s", "alpha"], [17, 1, 1, "c.dp_addext_s", "core_mask"], [17, 1, 1, "c.dp_addext_s", "in0"], [17, 1, 1, "c.dp_addext_s", "in1"], [17, 1, 1, "c.dp_addext_s", "out"], [17, 1, 1, "c.dp_addext_s", "size"]], "dp_addn_p": [[19, 1, 1, "c.dp_addn_p", "input0"], [19, 1, 1, "c.dp_addn_p", "input1"], [19, 1, 1, "c.dp_addn_p", "length"], [19, 1, 1, "c.dp_addn_p", "output"]], "dp_addn_s": [[19, 1, 1, "c.dp_addn_s", "core_mask"], [19, 1, 1, "c.dp_addn_s", "input0"], [19, 1, 1, "c.dp_addn_s", "input1"], [19, 1, 1, "c.dp_addn_s", "length"], [19, 1, 1, "c.dp_addn_s", "output"]], "dp_addrelu6_p": [[17, 1, 1, "c.dp_addrelu6_p", "in0"], [17, 1, 1, "c.dp_addrelu6_p", "in1"], [17, 1, 1, "c.dp_addrelu6_p", "out"], [17, 1, 1, "c.dp_addrelu6_p", "size"]], "dp_addrelu6_s": [[17, 1, 1, "c.dp_addrelu6_s", "core_mask"], [17, 1, 1, "c.dp_addrelu6_s", "in0"], [17, 1, 1, "c.dp_addrelu6_s", "in1"], [17, 1, 1, "c.dp_addrelu6_s", "out"], [17, 1, 1, "c.dp_addrelu6_s", "size"]], "dp_addrelu_p": [[17, 1, 1, "c.dp_addrelu_p", "in0"], [17, 1, 1, "c.dp_addrelu_p", "in1"], [17, 1, 1, "c.dp_addrelu_p", "out"], [17, 1, 1, "c.dp_addrelu_p", "size"]], "dp_addrelu_s": [[17, 1, 1, "c.dp_addrelu_s", "core_mask"], [17, 1, 1, "c.dp_addrelu_s", "in0"], [17, 1, 1, "c.dp_addrelu_s", "in1"], [17, 1, 1, "c.dp_addrelu_s", "out"], [17, 1, 1, "c.dp_addrelu_s", "size"]], "dp_allgather_p": [[22, 1, 1, "c.dp_allgather_p", "data_size"], [22, 1, 1, "c.dp_allgather_p", "input"], [22, 1, 1, "c.dp_allgather_p", "input_rank"], [22, 1, 1, "c.dp_allgather_p", "output"], [22, 1, 1, "c.dp_allgather_p", "output_rank"]], "dp_allgather_s": [[22, 1, 1, "c.dp_allgather_s", "core_mask"], [22, 1, 1, "c.dp_allgather_s", "data_size"], [22, 1, 1, "c.dp_allgather_s", "input"], [22, 1, 1, "c.dp_allgather_s", "input_rank"], [22, 1, 1, "c.dp_allgather_s", "output"], [22, 1, 1, "c.dp_allgather_s", "output_rank"]], "dp_and_p": [[112, 1, 1, "c.dp_and_p", "input0"], [112, 1, 1, "c.dp_and_p", "input1"], [112, 1, 1, "c.dp_and_p", "length"], [112, 1, 1, "c.dp_and_p", "output"]], "dp_and_s": [[112, 1, 1, "c.dp_and_s", "core_mask"], [112, 1, 1, "c.dp_and_s", "input0"], [112, 1, 1, "c.dp_and_s", "input1"], [112, 1, 1, "c.dp_and_s", "length"], [112, 1, 1, "c.dp_and_s", "output"]], "dp_assign_p": [[27, 1, 1, "c.dp_assign_p", "dst"], [27, 1, 1, "c.dp_assign_p", "length"], [27, 1, 1, "c.dp_assign_p", "src"]], "dp_assign_s": [[27, 1, 1, "c.dp_assign_s", "core_mask"], [27, 1, 1, "c.dp_assign_s", "dst"], [27, 1, 1, "c.dp_assign_s", "length"], [27, 1, 1, "c.dp_assign_s", "src"]], "dp_assignadd_p": [[28, 1, 1, "c.dp_assignadd_p", "input"], [28, 1, 1, "c.dp_assignadd_p", "length"], [28, 1, 1, "c.dp_assignadd_p", "output"]], "dp_assignadd_s": [[28, 1, 1, "c.dp_assignadd_s", "core_mask"], [28, 1, 1, "c.dp_assignadd_s", "input"], [28, 1, 1, "c.dp_assignadd_s", "length"], [28, 1, 1, "c.dp_assignadd_s", "output"]], "dp_batchtospace_p": [[35, 1, 1, "c.dp_batchtospace_p", "block_size"], [35, 1, 1, "c.dp_batchtospace_p", "crops"], [35, 1, 1, "c.dp_batchtospace_p", "data_size"], [35, 1, 1, "c.dp_batchtospace_p", "input"], [35, 1, 1, "c.dp_batchtospace_p", "input_shape"], [35, 1, 1, "c.dp_batchtospace_p", "output"]], "dp_batchtospace_s": [[35, 1, 1, "c.dp_batchtospace_s", "block_size"], [35, 1, 1, "c.dp_batchtospace_s", "core_mask"], [35, 1, 1, "c.dp_batchtospace_s", "crops"], [35, 1, 1, "c.dp_batchtospace_s", "data_size"], [35, 1, 1, "c.dp_batchtospace_s", "input"], [35, 1, 1, "c.dp_batchtospace_s", "input_shape"], [35, 1, 1, "c.dp_batchtospace_s", "output"]], "dp_batchtospacend_p": [[36, 1, 1, "c.dp_batchtospacend_p", "block_size"], [36, 1, 1, "c.dp_batchtospacend_p", "crops"], [36, 1, 1, "c.dp_batchtospacend_p", "data_size"], [36, 1, 1, "c.dp_batchtospacend_p", "input"], [36, 1, 1, "c.dp_batchtospacend_p", "input_shape"], [36, 1, 1, "c.dp_batchtospacend_p", "output"]], "dp_batchtospacend_s": [[36, 1, 1, "c.dp_batchtospacend_s", "block_size"], [36, 1, 1, "c.dp_batchtospacend_s", "core_mask"], [36, 1, 1, "c.dp_batchtospacend_s", "crops"], [36, 1, 1, "c.dp_batchtospacend_s", "data_size"], [36, 1, 1, "c.dp_batchtospacend_s", "input"], [36, 1, 1, "c.dp_batchtospacend_s", "input_shape"], [36, 1, 1, "c.dp_batchtospacend_s", "output"]], "dp_biasadd_p": [[37, 1, 1, "c.dp_biasadd_p", "data_format"], [37, 1, 1, "c.dp_biasadd_p", "dims"], [37, 1, 1, "c.dp_biasadd_p", "input_bias"], [37, 1, 1, "c.dp_biasadd_p", "input_x"], [37, 1, 1, "c.dp_biasadd_p", "length"], [37, 1, 1, "c.dp_biasadd_p", "output"], [37, 1, 1, "c.dp_biasadd_p", "shape_size"]], "dp_biasadd_s": [[37, 1, 1, "c.dp_biasadd_s", "core_mask"], [37, 1, 1, "c.dp_biasadd_s", "data_format"], [37, 1, 1, "c.dp_biasadd_s", "dims"], [37, 1, 1, "c.dp_biasadd_s", "input_bias"], [37, 1, 1, "c.dp_biasadd_s", "input_x"], [37, 1, 1, "c.dp_biasadd_s", "length"], [37, 1, 1, "c.dp_biasadd_s", "output"], [37, 1, 1, "c.dp_biasadd_s", "shape_size"]], "dp_broadcastto_p": [[41, 1, 1, "c.dp_broadcastto_p", "data_size"], [41, 1, 1, "c.dp_broadcastto_p", "input"], [41, 1, 1, "c.dp_broadcastto_p", "input_shape"], [41, 1, 1, "c.dp_broadcastto_p", "input_shape_size"], [41, 1, 1, "c.dp_broadcastto_p", "output"], [41, 1, 1, "c.dp_broadcastto_p", "output_shape"], [41, 1, 1, "c.dp_broadcastto_p", "output_shape_size"]], "dp_broadcastto_s": [[41, 1, 1, "c.dp_broadcastto_s", "core_mask"], [41, 1, 1, "c.dp_broadcastto_s", "data_size"], [41, 1, 1, "c.dp_broadcastto_s", "input"], [41, 1, 1, "c.dp_broadcastto_s", "input_shape"], [41, 1, 1, "c.dp_broadcastto_s", "input_shape_size"], [41, 1, 1, "c.dp_broadcastto_s", "output"], [41, 1, 1, "c.dp_broadcastto_s", "output_shape"], [41, 1, 1, "c.dp_broadcastto_s", "output_shape_size"]], "dp_ceil_p": [[43, 1, 1, "c.dp_ceil_p", "input_size"], [43, 1, 1, "c.dp_ceil_p", "input_x"], [43, 1, 1, "c.dp_ceil_p", "output"]], "dp_ceil_s": [[43, 1, 1, "c.dp_ceil_s", "core_mask"], [43, 1, 1, "c.dp_ceil_s", "input_size"], [43, 1, 1, "c.dp_ceil_s", "input_x"], [43, 1, 1, "c.dp_ceil_s", "output"]], "dp_clip_p": [[44, 1, 1, "c.dp_clip_p", "dst"], [44, 1, 1, "c.dp_clip_p", "length"], [44, 1, 1, "c.dp_clip_p", "max"], [44, 1, 1, "c.dp_clip_p", "min"], [44, 1, 1, "c.dp_clip_p", "src"]], "dp_clip_s": [[44, 1, 1, "c.dp_clip_s", "core_mask"], [44, 1, 1, "c.dp_clip_s", "dst"], [44, 1, 1, "c.dp_clip_s", "length"], [44, 1, 1, "c.dp_clip_s", "max"], [44, 1, 1, "c.dp_clip_s", "min"], [44, 1, 1, "c.dp_clip_s", "src"]], "dp_concat_p": [[45, 1, 1, "c.dp_concat_p", "axis"], [45, 1, 1, "c.dp_concat_p", "input_ndim"], [45, 1, 1, "c.dp_concat_p", "input_shapes"], [45, 1, 1, "c.dp_concat_p", "inputs"], [45, 1, 1, "c.dp_concat_p", "num_inputs"], [45, 1, 1, "c.dp_concat_p", "output"]], "dp_concat_s": [[45, 1, 1, "c.dp_concat_s", "axis"], [45, 1, 1, "c.dp_concat_s", "core_mask"], [45, 1, 1, "c.dp_concat_s", "input_ndim"], [45, 1, 1, "c.dp_concat_s", "input_shapes"], [45, 1, 1, "c.dp_concat_s", "inputs"], [45, 1, 1, "c.dp_concat_s", "num_inputs"], [45, 1, 1, "c.dp_concat_s", "output"]], "dp_constant_of_shape_p": [[46, 1, 1, "c.dp_constant_of_shape_p", "end"], [46, 1, 1, "c.dp_constant_of_shape_p", "output"], [46, 1, 1, "c.dp_constant_of_shape_p", "start"], [46, 1, 1, "c.dp_constant_of_shape_p", "value"]], "dp_constant_of_shape_s": [[46, 1, 1, "c.dp_constant_of_shape_s", "core_mask"], [46, 1, 1, "c.dp_constant_of_shape_s", "end"], [46, 1, 1, "c.dp_constant_of_shape_s", "output"], [46, 1, 1, "c.dp_constant_of_shape_s", "start"], [46, 1, 1, "c.dp_constant_of_shape_s", "value"]], "dp_cos_p": [[51, 1, 1, "c.dp_cos_p", "dst_data"], [51, 1, 1, "c.dp_cos_p", "length"], [51, 1, 1, "c.dp_cos_p", "src_data"]], "dp_cos_s": [[51, 1, 1, "c.dp_cos_s", "core_mask"], [51, 1, 1, "c.dp_cos_s", "dst_data"], [51, 1, 1, "c.dp_cos_s", "length"], [51, 1, 1, "c.dp_cos_s", "src_data"]], "dp_cumsum_p": [[54, 1, 1, "c.dp_cumsum_p", "axis_dim"], [54, 1, 1, "c.dp_cumsum_p", "exclusive"], [54, 1, 1, "c.dp_cumsum_p", "inner_dim"], [54, 1, 1, "c.dp_cumsum_p", "input"], [54, 1, 1, "c.dp_cumsum_p", "out_dim"], [54, 1, 1, "c.dp_cumsum_p", "output"]], "dp_cumsum_s": [[54, 1, 1, "c.dp_cumsum_s", "axis_dim"], [54, 1, 1, "c.dp_cumsum_s", "core_mask"], [54, 1, 1, "c.dp_cumsum_s", "exclusive"], [54, 1, 1, "c.dp_cumsum_s", "inner_dim"], [54, 1, 1, "c.dp_cumsum_s", "input"], [54, 1, 1, "c.dp_cumsum_s", "out_dim"], [54, 1, 1, "c.dp_cumsum_s", "output"]], "dp_depthtospace_p": [[59, 1, 1, "c.dp_depthtospace_p", "block_size"], [59, 1, 1, "c.dp_depthtospace_p", "data_size"], [59, 1, 1, "c.dp_depthtospace_p", "in_shape"], [59, 1, 1, "c.dp_depthtospace_p", "input"], [59, 1, 1, "c.dp_depthtospace_p", "output"]], "dp_depthtospace_s": [[59, 1, 1, "c.dp_depthtospace_s", "block_size"], [59, 1, 1, "c.dp_depthtospace_s", "core_mask"], [59, 1, 1, "c.dp_depthtospace_s", "data_size"], [59, 1, 1, "c.dp_depthtospace_s", "in_shape"], [59, 1, 1, "c.dp_depthtospace_s", "input"], [59, 1, 1, "c.dp_depthtospace_s", "output"]], "dp_div_fusion_p": [[61, 1, 1, "c.dp_div_fusion_p", "input0"], [61, 1, 1, "c.dp_div_fusion_p", "input1"], [61, 1, 1, "c.dp_div_fusion_p", "length"], [61, 1, 1, "c.dp_div_fusion_p", "output"]], "dp_div_fusion_s": [[61, 1, 1, "c.dp_div_fusion_s", "core_mask"], [61, 1, 1, "c.dp_div_fusion_s", "input0"], [61, 1, 1, "c.dp_div_fusion_s", "input1"], [61, 1, 1, "c.dp_div_fusion_s", "length"], [61, 1, 1, "c.dp_div_fusion_s", "output"]], "dp_eltwise_p": [[67, 1, 1, "c.dp_eltwise_p", "Input0"], [67, 1, 1, "c.dp_eltwise_p", "Input1"], [67, 1, 1, "c.dp_eltwise_p", "eltwise_mode_"], [67, 1, 1, "c.dp_eltwise_p", "length"], [67, 1, 1, "c.dp_eltwise_p", "output"]], "dp_eltwise_s": [[67, 1, 1, "c.dp_eltwise_s", "Input0"], [67, 1, 1, "c.dp_eltwise_s", "Input1"], [67, 1, 1, "c.dp_eltwise_s", "core_mask"], [67, 1, 1, "c.dp_eltwise_s", "eltwise_mode_"], [67, 1, 1, "c.dp_eltwise_s", "length"], [67, 1, 1, "c.dp_eltwise_s", "output"]], "dp_equal_p": [[70, 1, 1, "c.dp_equal_p", "Input0"], [70, 1, 1, "c.dp_equal_p", "Input1"], [70, 1, 1, "c.dp_equal_p", "length"], [70, 1, 1, "c.dp_equal_p", "output"]], "dp_equal_s": [[70, 1, 1, "c.dp_equal_s", "Input0"], [70, 1, 1, "c.dp_equal_s", "Input1"], [70, 1, 1, "c.dp_equal_s", "core_mask"], [70, 1, 1, "c.dp_equal_s", "length"], [70, 1, 1, "c.dp_equal_s", "output"]], "dp_erf_p": [[71, 1, 1, "c.dp_erf_p", "input"], [71, 1, 1, "c.dp_erf_p", "length"], [71, 1, 1, "c.dp_erf_p", "output"]], "dp_erf_s": [[71, 1, 1, "c.dp_erf_s", "core_mask"], [71, 1, 1, "c.dp_erf_s", "input"], [71, 1, 1, "c.dp_erf_s", "length"], [71, 1, 1, "c.dp_erf_s", "output"]], "dp_expfusion_p": [[73, 1, 1, "c.dp_expfusion_p", "dst_data"], [73, 1, 1, "c.dp_expfusion_p", "in_scale"], [73, 1, 1, "c.dp_expfusion_p", "length"], [73, 1, 1, "c.dp_expfusion_p", "out_scale"], [73, 1, 1, "c.dp_expfusion_p", "scale"], [73, 1, 1, "c.dp_expfusion_p", "src_data"]], "dp_expfusion_s": [[73, 1, 1, "c.dp_expfusion_s", "core_mask"], [73, 1, 1, "c.dp_expfusion_s", "dst_data"], [73, 1, 1, "c.dp_expfusion_s", "in_scale"], [73, 1, 1, "c.dp_expfusion_s", "length"], [73, 1, 1, "c.dp_expfusion_s", "out_scale"], [73, 1, 1, "c.dp_expfusion_s", "scale"], [73, 1, 1, "c.dp_expfusion_s", "src_data"]], "dp_extract_features_p": [[55, 1, 1, "c.dp_extract_features_p", "num_strings"], [55, 1, 1, "c.dp_extract_features_p", "output_labels"], [55, 1, 1, "c.dp_extract_features_p", "output_weights"], [55, 1, 1, "c.dp_extract_features_p", "string_lengths"], [55, 1, 1, "c.dp_extract_features_p", "string_pointers"]], "dp_extract_features_s": [[55, 1, 1, "c.dp_extract_features_s", "core_mask"], [55, 1, 1, "c.dp_extract_features_s", "num_strings"], [55, 1, 1, "c.dp_extract_features_s", "output_labels"], [55, 1, 1, "c.dp_extract_features_s", "output_weights"], [55, 1, 1, "c.dp_extract_features_s", "string_lengths"], [55, 1, 1, "c.dp_extract_features_s", "string_pointers"]], "dp_fill_p": [[78, 1, 1, "c.dp_fill_p", "output"], [78, 1, 1, "c.dp_fill_p", "param"], [78, 1, 1, "c.dp_fill_p", "value"]], "dp_fill_s": [[78, 1, 1, "c.dp_fill_s", "core_mask"], [78, 1, 1, "c.dp_fill_s", "output"], [78, 1, 1, "c.dp_fill_s", "param"], [78, 1, 1, "c.dp_fill_s", "value"]], "dp_floor_p": [[82, 1, 1, "c.dp_floor_p", "dst_data"], [82, 1, 1, "c.dp_floor_p", "length"], [82, 1, 1, "c.dp_floor_p", "src_data"]], "dp_floor_s": [[82, 1, 1, "c.dp_floor_s", "core_mask"], [82, 1, 1, "c.dp_floor_s", "dst_data"], [82, 1, 1, "c.dp_floor_s", "length"], [82, 1, 1, "c.dp_floor_s", "src_data"]], "dp_floordiv_p": [[83, 1, 1, "c.dp_floordiv_p", "dst_data"], [83, 1, 1, "c.dp_floordiv_p", "length"], [83, 1, 1, "c.dp_floordiv_p", "src_data0"], [83, 1, 1, "c.dp_floordiv_p", "src_data1"]], "dp_floordiv_s": [[83, 1, 1, "c.dp_floordiv_s", "core_mask"], [83, 1, 1, "c.dp_floordiv_s", "dst_data"], [83, 1, 1, "c.dp_floordiv_s", "length"], [83, 1, 1, "c.dp_floordiv_s", "src_data0"], [83, 1, 1, "c.dp_floordiv_s", "src_data1"]], "dp_floormod_p": [[84, 1, 1, "c.dp_floormod_p", "input0"], [84, 1, 1, "c.dp_floormod_p", "input1"], [84, 1, 1, "c.dp_floormod_p", "output"], [84, 1, 1, "c.dp_floormod_p", "size"]], "dp_floormod_s": [[84, 1, 1, "c.dp_floormod_s", "core_mask"], [84, 1, 1, "c.dp_floormod_s", "input0"], [84, 1, 1, "c.dp_floormod_s", "input1"], [84, 1, 1, "c.dp_floormod_s", "output"], [84, 1, 1, "c.dp_floormod_s", "size"]], "dp_formattranspose_p": [[85, 1, 1, "c.dp_formattranspose_p", "batch"], [85, 1, 1, "c.dp_formattranspose_p", "channel"], [85, 1, 1, "c.dp_formattranspose_p", "dst_data"], [85, 1, 1, "c.dp_formattranspose_p", "dst_format"], [85, 1, 1, "c.dp_formattranspose_p", "plane"], [85, 1, 1, "c.dp_formattranspose_p", "src_data"], [85, 1, 1, "c.dp_formattranspose_p", "src_format"]], "dp_formattranspose_s": [[85, 1, 1, "c.dp_formattranspose_s", "batch"], [85, 1, 1, "c.dp_formattranspose_s", "channel"], [85, 1, 1, "c.dp_formattranspose_s", "core_mask"], [85, 1, 1, "c.dp_formattranspose_s", "dst_data"], [85, 1, 1, "c.dp_formattranspose_s", "dst_format"], [85, 1, 1, "c.dp_formattranspose_s", "plane"], [85, 1, 1, "c.dp_formattranspose_s", "src_data"], [85, 1, 1, "c.dp_formattranspose_s", "src_format"]], "dp_gather_nd_p": [[89, 1, 1, "c.dp_gather_nd_p", "indices"], [89, 1, 1, "c.dp_gather_nd_p", "indices_ndim"], [89, 1, 1, "c.dp_gather_nd_p", "indices_shape"], [89, 1, 1, "c.dp_gather_nd_p", "input"], [89, 1, 1, "c.dp_gather_nd_p", "input_ndim"], [89, 1, 1, "c.dp_gather_nd_p", "input_shape"], [89, 1, 1, "c.dp_gather_nd_p", "output"]], "dp_gather_nd_s": [[89, 1, 1, "c.dp_gather_nd_s", "core_mask"], [89, 1, 1, "c.dp_gather_nd_s", "indices"], [89, 1, 1, "c.dp_gather_nd_s", "indices_ndim"], [89, 1, 1, "c.dp_gather_nd_s", "indices_shape"], [89, 1, 1, "c.dp_gather_nd_s", "input"], [89, 1, 1, "c.dp_gather_nd_s", "input_ndim"], [89, 1, 1, "c.dp_gather_nd_s", "input_shape"], [89, 1, 1, "c.dp_gather_nd_s", "output"]], "dp_gather_p": [[88, 1, 1, "c.dp_gather_p", "axis"], [88, 1, 1, "c.dp_gather_p", "batch_dims"], [88, 1, 1, "c.dp_gather_p", "indices"], [88, 1, 1, "c.dp_gather_p", "indices_ndim"], [88, 1, 1, "c.dp_gather_p", "indices_shape"], [88, 1, 1, "c.dp_gather_p", "input"], [88, 1, 1, "c.dp_gather_p", "input_ndim"], [88, 1, 1, "c.dp_gather_p", "input_shape"], [88, 1, 1, "c.dp_gather_p", "output"]], "dp_gather_s": [[88, 1, 1, "c.dp_gather_s", "axis"], [88, 1, 1, "c.dp_gather_s", "batch_dims"], [88, 1, 1, "c.dp_gather_s", "core_mask"], [88, 1, 1, "c.dp_gather_s", "indices"], [88, 1, 1, "c.dp_gather_s", "indices_ndim"], [88, 1, 1, "c.dp_gather_s", "indices_shape"], [88, 1, 1, "c.dp_gather_s", "input"], [88, 1, 1, "c.dp_gather_s", "input_ndim"], [88, 1, 1, "c.dp_gather_s", "input_shape"], [88, 1, 1, "c.dp_gather_s", "output"]], "dp_gatherd_p": [[90, 1, 1, "c.dp_gatherd_p", "dim"], [90, 1, 1, "c.dp_gatherd_p", "index"], [90, 1, 1, "c.dp_gatherd_p", "index_shape"], [90, 1, 1, "c.dp_gatherd_p", "input_shape"], [90, 1, 1, "c.dp_gatherd_p", "input_shape_size"], [90, 1, 1, "c.dp_gatherd_p", "input_x"], [90, 1, 1, "c.dp_gatherd_p", "output"]], "dp_gatherd_s": [[90, 1, 1, "c.dp_gatherd_s", "core_mask"], [90, 1, 1, "c.dp_gatherd_s", "dim"], [90, 1, 1, "c.dp_gatherd_s", "index"], [90, 1, 1, "c.dp_gatherd_s", "index_shape"], [90, 1, 1, "c.dp_gatherd_s", "input_shape"], [90, 1, 1, "c.dp_gatherd_s", "input_shape_size"], [90, 1, 1, "c.dp_gatherd_s", "input_x"], [90, 1, 1, "c.dp_gatherd_s", "output"]], "dp_greater_s": [[92, 1, 1, "c.dp_greater_s", "core_mask"], [92, 1, 1, "c.dp_greater_s", "element_num"], [92, 1, 1, "c.dp_greater_s", "in_elements_num0"], [92, 1, 1, "c.dp_greater_s", "input1"], [92, 1, 1, "c.dp_greater_s", "input2"], [92, 1, 1, "c.dp_greater_s", "optimize"], [92, 1, 1, "c.dp_greater_s", "output"]], "dp_greaterequal_s": [[93, 1, 1, "c.dp_greaterequal_s", "core_mask"], [93, 1, 1, "c.dp_greaterequal_s", "element_num"], [93, 1, 1, "c.dp_greaterequal_s", "in_elements_num0"], [93, 1, 1, "c.dp_greaterequal_s", "input1"], [93, 1, 1, "c.dp_greaterequal_s", "input2"], [93, 1, 1, "c.dp_greaterequal_s", "optimize"], [93, 1, 1, "c.dp_greaterequal_s", "output"]], "dp_isfinite_p": [[99, 1, 1, "c.dp_isfinite_p", "Input"], [99, 1, 1, "c.dp_isfinite_p", "length"], [99, 1, 1, "c.dp_isfinite_p", "output"]], "dp_isfinite_s": [[99, 1, 1, "c.dp_isfinite_s", "Input"], [99, 1, 1, "c.dp_isfinite_s", "core_mask"], [99, 1, 1, "c.dp_isfinite_s", "length"], [99, 1, 1, "c.dp_isfinite_s", "output"]], "dp_less_p": [[104, 1, 1, "c.dp_less_p", "Input0"], [104, 1, 1, "c.dp_less_p", "Input1"], [104, 1, 1, "c.dp_less_p", "in_elements_num0"], [104, 1, 1, "c.dp_less_p", "length"], [104, 1, 1, "c.dp_less_p", "optimize"], [104, 1, 1, "c.dp_less_p", "output"]], "dp_less_s": [[104, 1, 1, "c.dp_less_s", "Input0"], [104, 1, 1, "c.dp_less_s", "Input1"], [104, 1, 1, "c.dp_less_s", "core_mask"], [104, 1, 1, "c.dp_less_s", "in_elements_num0"], [104, 1, 1, "c.dp_less_s", "length"], [104, 1, 1, "c.dp_less_s", "optimize"], [104, 1, 1, "c.dp_less_s", "output"]], "dp_lessequal_p": [[105, 1, 1, "c.dp_lessequal_p", "Input0"], [105, 1, 1, "c.dp_lessequal_p", "Input1"], [105, 1, 1, "c.dp_lessequal_p", "in_elements_num0"], [105, 1, 1, "c.dp_lessequal_p", "length"], [105, 1, 1, "c.dp_lessequal_p", "optimize"], [105, 1, 1, "c.dp_lessequal_p", "output"]], "dp_lessequal_s": [[105, 1, 1, "c.dp_lessequal_s", "Input0"], [105, 1, 1, "c.dp_lessequal_s", "Input1"], [105, 1, 1, "c.dp_lessequal_s", "core_mask"], [105, 1, 1, "c.dp_lessequal_s", "in_elements_num0"], [105, 1, 1, "c.dp_lessequal_s", "length"], [105, 1, 1, "c.dp_lessequal_s", "optimize"], [105, 1, 1, "c.dp_lessequal_s", "output"]], "dp_log1p_p": [[108, 1, 1, "c.dp_log1p_p", "Input"], [108, 1, 1, "c.dp_log1p_p", "length"], [108, 1, 1, "c.dp_log1p_p", "output"]], "dp_log1p_s": [[108, 1, 1, "c.dp_log1p_s", "Input"], [108, 1, 1, "c.dp_log1p_s", "core_mask"], [108, 1, 1, "c.dp_log1p_s", "length"], [108, 1, 1, "c.dp_log1p_s", "output"]], "dp_logical_not_p": [[110, 1, 1, "c.dp_logical_not_p", "input"], [110, 1, 1, "c.dp_logical_not_p", "length"], [110, 1, 1, "c.dp_logical_not_p", "output"]], "dp_logical_not_s": [[110, 1, 1, "c.dp_logical_not_s", "core_mask"], [110, 1, 1, "c.dp_logical_not_s", "input"], [110, 1, 1, "c.dp_logical_not_s", "length"], [110, 1, 1, "c.dp_logical_not_s", "output"]], "dp_logical_or_p": [[111, 1, 1, "c.dp_logical_or_p", "input0"], [111, 1, 1, "c.dp_logical_or_p", "input1"], [111, 1, 1, "c.dp_logical_or_p", "length"], [111, 1, 1, "c.dp_logical_or_p", "output"]], "dp_logical_or_s": [[111, 1, 1, "c.dp_logical_or_s", "core_mask"], [111, 1, 1, "c.dp_logical_or_s", "input0"], [111, 1, 1, "c.dp_logical_or_s", "input1"], [111, 1, 1, "c.dp_logical_or_s", "length"], [111, 1, 1, "c.dp_logical_or_s", "output"]], "dp_lsh_projection_p": [[116, 1, 1, "c.dp_lsh_projection_p", "bits_per_hash"], [116, 1, 1, "c.dp_lsh_projection_p", "feature"], [116, 1, 1, "c.dp_lsh_projection_p", "feature_num"], [116, 1, 1, "c.dp_lsh_projection_p", "hash_group_num"], [116, 1, 1, "c.dp_lsh_projection_p", "hash_seed"], [116, 1, 1, "c.dp_lsh_projection_p", "output"], [116, 1, 1, "c.dp_lsh_projection_p", "weight"]], "dp_lsh_projection_s": [[116, 1, 1, "c.dp_lsh_projection_s", "bits_per_hash"], [116, 1, 1, "c.dp_lsh_projection_s", "core_mask"], [116, 1, 1, "c.dp_lsh_projection_s", "feature"], [116, 1, 1, "c.dp_lsh_projection_s", "feature_num"], [116, 1, 1, "c.dp_lsh_projection_s", "hash_group_num"], [116, 1, 1, "c.dp_lsh_projection_s", "hash_seed"], [116, 1, 1, "c.dp_lsh_projection_s", "output"], [116, 1, 1, "c.dp_lsh_projection_s", "weight"]], "dp_matmulfusion_p": [[121, 1, 1, "c.dp_matmulfusion_p", "A"], [121, 1, 1, "c.dp_matmulfusion_p", "B"], [121, 1, 1, "c.dp_matmulfusion_p", "C"], [121, 1, 1, "c.dp_matmulfusion_p", "K"], [121, 1, 1, "c.dp_matmulfusion_p", "M"], [121, 1, 1, "c.dp_matmulfusion_p", "N"], [121, 1, 1, "c.dp_matmulfusion_p", "activation_type"], [121, 1, 1, "c.dp_matmulfusion_p", "bias"]], "dp_matmulfusion_s": [[121, 1, 1, "c.dp_matmulfusion_s", "A"], [121, 1, 1, "c.dp_matmulfusion_s", "B"], [121, 1, 1, "c.dp_matmulfusion_s", "C"], [121, 1, 1, "c.dp_matmulfusion_s", "K"], [121, 1, 1, "c.dp_matmulfusion_s", "M"], [121, 1, 1, "c.dp_matmulfusion_s", "N"], [121, 1, 1, "c.dp_matmulfusion_s", "activation_type"], [121, 1, 1, "c.dp_matmulfusion_s", "bias"], [121, 1, 1, "c.dp_matmulfusion_s", "core_mask"]], "dp_maximum_p": [[122, 1, 1, "c.dp_maximum_p", "input0"], [122, 1, 1, "c.dp_maximum_p", "input1"], [122, 1, 1, "c.dp_maximum_p", "length"], [122, 1, 1, "c.dp_maximum_p", "output"]], "dp_maximum_s": [[122, 1, 1, "c.dp_maximum_s", "core_mask"], [122, 1, 1, "c.dp_maximum_s", "input0"], [122, 1, 1, "c.dp_maximum_s", "input1"], [122, 1, 1, "c.dp_maximum_s", "length"], [122, 1, 1, "c.dp_maximum_s", "output"]], "dp_maxpool_fusion_p": [[124, 1, 1, "c.dp_maxpool_fusion_p", "params"]], "dp_maxpool_fusion_s": [[124, 1, 1, "c.dp_maxpool_fusion_s", "core_mask"], [124, 1, 1, "c.dp_maxpool_fusion_s", "params"]], "dp_maxpool_grad_p": [[125, 1, 1, "c.dp_maxpool_grad_p", "params"]], "dp_maxpool_grad_s": [[125, 1, 1, "c.dp_maxpool_grad_s", "core_mask"], [125, 1, 1, "c.dp_maxpool_grad_s", "params"]], "dp_minimum_p": [[127, 1, 1, "c.dp_minimum_p", "input0"], [127, 1, 1, "c.dp_minimum_p", "input1"], [127, 1, 1, "c.dp_minimum_p", "length"], [127, 1, 1, "c.dp_minimum_p", "output"]], "dp_minimum_s": [[127, 1, 1, "c.dp_minimum_s", "core_mask"], [127, 1, 1, "c.dp_minimum_s", "input0"], [127, 1, 1, "c.dp_minimum_s", "input1"], [127, 1, 1, "c.dp_minimum_s", "length"], [127, 1, 1, "c.dp_minimum_s", "output"]], "dp_mod_p": [[129, 1, 1, "c.dp_mod_p", "input0"], [129, 1, 1, "c.dp_mod_p", "input1"], [129, 1, 1, "c.dp_mod_p", "length"], [129, 1, 1, "c.dp_mod_p", "output"]], "dp_mod_s": [[129, 1, 1, "c.dp_mod_s", "core_mask"], [129, 1, 1, "c.dp_mod_s", "input0"], [129, 1, 1, "c.dp_mod_s", "input1"], [129, 1, 1, "c.dp_mod_s", "length"], [129, 1, 1, "c.dp_mod_s", "output"]], "dp_mul_p": [[130, 1, 1, "c.dp_mul_p", "input0"], [130, 1, 1, "c.dp_mul_p", "input1"], [130, 1, 1, "c.dp_mul_p", "length"], [130, 1, 1, "c.dp_mul_p", "output"]], "dp_mul_s": [[130, 1, 1, "c.dp_mul_s", "core_mask"], [130, 1, 1, "c.dp_mul_s", "input0"], [130, 1, 1, "c.dp_mul_s", "input1"], [130, 1, 1, "c.dp_mul_s", "length"], [130, 1, 1, "c.dp_mul_s", "output"]], "dp_neg_grad_p": [[133, 1, 1, "c.dp_neg_grad_p", "Input"], [133, 1, 1, "c.dp_neg_grad_p", "length"], [133, 1, 1, "c.dp_neg_grad_p", "output"]], "dp_neg_grad_s": [[133, 1, 1, "c.dp_neg_grad_s", "Input"], [133, 1, 1, "c.dp_neg_grad_s", "core_mask"], [133, 1, 1, "c.dp_neg_grad_s", "length"], [133, 1, 1, "c.dp_neg_grad_s", "output"]], "dp_neg_p": [[132, 1, 1, "c.dp_neg_p", "Input"], [132, 1, 1, "c.dp_neg_p", "length"], [132, 1, 1, "c.dp_neg_p", "output"]], "dp_neg_s": [[132, 1, 1, "c.dp_neg_s", "Input"], [132, 1, 1, "c.dp_neg_s", "core_mask"], [132, 1, 1, "c.dp_neg_s", "length"], [132, 1, 1, "c.dp_neg_s", "output"]], "dp_nonzero_p": [[137, 1, 1, "c.dp_nonzero_p", "dim_strides"], [137, 1, 1, "c.dp_nonzero_p", "input"], [137, 1, 1, "c.dp_nonzero_p", "input_rank"], [137, 1, 1, "c.dp_nonzero_p", "length"], [137, 1, 1, "c.dp_nonzero_p", "non_zero_num"], [137, 1, 1, "c.dp_nonzero_p", "output"], [137, 1, 1, "c.dp_nonzero_p", "shape"]], "dp_nonzero_s": [[137, 1, 1, "c.dp_nonzero_s", "core_mask"], [137, 1, 1, "c.dp_nonzero_s", "dim_strides"], [137, 1, 1, "c.dp_nonzero_s", "input"], [137, 1, 1, "c.dp_nonzero_s", "input_rank"], [137, 1, 1, "c.dp_nonzero_s", "length"], [137, 1, 1, "c.dp_nonzero_s", "non_zero_num"], [137, 1, 1, "c.dp_nonzero_s", "output"], [137, 1, 1, "c.dp_nonzero_s", "shape"]], "dp_not_equal_p": [[138, 1, 1, "c.dp_not_equal_p", "Input0"], [138, 1, 1, "c.dp_not_equal_p", "Input1"], [138, 1, 1, "c.dp_not_equal_p", "length"], [138, 1, 1, "c.dp_not_equal_p", "output"]], "dp_not_equal_s": [[138, 1, 1, "c.dp_not_equal_s", "Input0"], [138, 1, 1, "c.dp_not_equal_s", "Input1"], [138, 1, 1, "c.dp_not_equal_s", "core_mask"], [138, 1, 1, "c.dp_not_equal_s", "length"], [138, 1, 1, "c.dp_not_equal_s", "output"]], "dp_onehot_p": [[139, 1, 1, "c.dp_onehot_p", "axis"], [139, 1, 1, "c.dp_onehot_p", "depth"], [139, 1, 1, "c.dp_onehot_p", "indices"], [139, 1, 1, "c.dp_onehot_p", "indices_shape"], [139, 1, 1, "c.dp_onehot_p", "indices_shape_size"], [139, 1, 1, "c.dp_onehot_p", "on_off"], [139, 1, 1, "c.dp_onehot_p", "output"], [139, 1, 1, "c.dp_onehot_p", "support_neg_index"]], "dp_onehot_s": [[139, 1, 1, "c.dp_onehot_s", "axis"], [139, 1, 1, "c.dp_onehot_s", "core_mask"], [139, 1, 1, "c.dp_onehot_s", "depth"], [139, 1, 1, "c.dp_onehot_s", "indices"], [139, 1, 1, "c.dp_onehot_s", "indices_shape"], [139, 1, 1, "c.dp_onehot_s", "indices_shape_size"], [139, 1, 1, "c.dp_onehot_s", "on_off"], [139, 1, 1, "c.dp_onehot_s", "output"], [139, 1, 1, "c.dp_onehot_s", "support_neg_index"]], "dp_ones_like_p": [[140, 1, 1, "c.dp_ones_like_p", "length"], [140, 1, 1, "c.dp_ones_like_p", "output"]], "dp_ones_like_s": [[140, 1, 1, "c.dp_ones_like_s", "core_mask"], [140, 1, 1, "c.dp_ones_like_s", "length"], [140, 1, 1, "c.dp_ones_like_s", "output"]], "dp_padfusion_p": [[141, 1, 1, "c.dp_padfusion_p", "params"]], "dp_padfusion_s": [[141, 1, 1, "c.dp_padfusion_s", "core_mask"], [141, 1, 1, "c.dp_padfusion_s", "params"]], "dp_pow_fusion_p": [[142, 1, 1, "c.dp_pow_fusion_p", "Input"], [142, 1, 1, "c.dp_pow_fusion_p", "broadcast"], [142, 1, 1, "c.dp_pow_fusion_p", "exponent"], [142, 1, 1, "c.dp_pow_fusion_p", "length_in"], [142, 1, 1, "c.dp_pow_fusion_p", "output"], [142, 1, 1, "c.dp_pow_fusion_p", "scale"], [142, 1, 1, "c.dp_pow_fusion_p", "shift"]], "dp_pow_fusion_s": [[142, 1, 1, "c.dp_pow_fusion_s", "Input"], [142, 1, 1, "c.dp_pow_fusion_s", "broadcast"], [142, 1, 1, "c.dp_pow_fusion_s", "core_mask"], [142, 1, 1, "c.dp_pow_fusion_s", "exponent"], [142, 1, 1, "c.dp_pow_fusion_s", "length_in"], [142, 1, 1, "c.dp_pow_fusion_s", "output"], [142, 1, 1, "c.dp_pow_fusion_s", "scale"], [142, 1, 1, "c.dp_pow_fusion_s", "shift"]], "dp_raggedrange_p": [[147, 1, 1, "c.dp_raggedrange_p", "deltas"], [147, 1, 1, "c.dp_raggedrange_p", "limits"], [147, 1, 1, "c.dp_raggedrange_p", "range_count"], [147, 1, 1, "c.dp_raggedrange_p", "splits"], [147, 1, 1, "c.dp_raggedrange_p", "starts"], [147, 1, 1, "c.dp_raggedrange_p", "values"]], "dp_raggedrange_s": [[147, 1, 1, "c.dp_raggedrange_s", "core_mask"], [147, 1, 1, "c.dp_raggedrange_s", "deltas"], [147, 1, 1, "c.dp_raggedrange_s", "limits"], [147, 1, 1, "c.dp_raggedrange_s", "range_count"], [147, 1, 1, "c.dp_raggedrange_s", "splits"], [147, 1, 1, "c.dp_raggedrange_s", "starts"], [147, 1, 1, "c.dp_raggedrange_s", "values"]], "dp_range_p": [[150, 1, 1, "c.dp_range_p", "delta"], [150, 1, 1, "c.dp_range_p", "length"], [150, 1, 1, "c.dp_range_p", "output"], [150, 1, 1, "c.dp_range_p", "start"]], "dp_range_s": [[150, 1, 1, "c.dp_range_s", "core_mask"], [150, 1, 1, "c.dp_range_s", "delta"], [150, 1, 1, "c.dp_range_s", "length"], [150, 1, 1, "c.dp_range_s", "output"], [150, 1, 1, "c.dp_range_s", "start"]], "dp_real_div_p": [[152, 1, 1, "c.dp_real_div_p", "input0"], [152, 1, 1, "c.dp_real_div_p", "input1"], [152, 1, 1, "c.dp_real_div_p", "length"], [152, 1, 1, "c.dp_real_div_p", "output"]], "dp_real_div_s": [[152, 1, 1, "c.dp_real_div_s", "core_mask"], [152, 1, 1, "c.dp_real_div_s", "input0"], [152, 1, 1, "c.dp_real_div_s", "input1"], [152, 1, 1, "c.dp_real_div_s", "length"], [152, 1, 1, "c.dp_real_div_s", "output"]], "dp_reciprocal_p": [[153, 1, 1, "c.dp_reciprocal_p", "Input"], [153, 1, 1, "c.dp_reciprocal_p", "length"], [153, 1, 1, "c.dp_reciprocal_p", "output"]], "dp_reciprocal_s": [[153, 1, 1, "c.dp_reciprocal_s", "Input"], [153, 1, 1, "c.dp_reciprocal_s", "core_mask"], [153, 1, 1, "c.dp_reciprocal_s", "length"], [153, 1, 1, "c.dp_reciprocal_s", "output"]], "dp_reduce_p": [[154, 1, 1, "c.dp_reduce_p", "core_mask"], [154, 1, 1, "c.dp_reduce_p", "dst_data"], [154, 1, 1, "c.dp_reduce_p", "param"], [154, 1, 1, "c.dp_reduce_p", "src_data"], [154, 1, 1, "c.dp_reduce_p", "tmp_dst_data"], [154, 1, 1, "c.dp_reduce_p", "tmp_src_data"]], "dp_reduce_s": [[154, 1, 1, "c.dp_reduce_s", "core_mask"], [154, 1, 1, "c.dp_reduce_s", "dst_data"], [154, 1, 1, "c.dp_reduce_s", "param"], [154, 1, 1, "c.dp_reduce_s", "src_data"]], "dp_reduceall_p": [[21, 1, 1, "c.dp_reduceall_p", "axis_size"], [21, 1, 1, "c.dp_reduceall_p", "dst_data"], [21, 1, 1, "c.dp_reduceall_p", "inner_size"], [21, 1, 1, "c.dp_reduceall_p", "outer_size"], [21, 1, 1, "c.dp_reduceall_p", "src_data"]], "dp_reduceall_s": [[21, 1, 1, "c.dp_reduceall_s", "axis_size"], [21, 1, 1, "c.dp_reduceall_s", "core_mask"], [21, 1, 1, "c.dp_reduceall_s", "dst_data"], [21, 1, 1, "c.dp_reduceall_s", "inner_size"], [21, 1, 1, "c.dp_reduceall_s", "outer_size"], [21, 1, 1, "c.dp_reduceall_s", "src_data"]], "dp_reducescatter_p": [[155, 1, 1, "c.dp_reducescatter_p", "data_size"], [155, 1, 1, "c.dp_reducescatter_p", "input_data"], [155, 1, 1, "c.dp_reducescatter_p", "output_data"], [155, 1, 1, "c.dp_reducescatter_p", "reduce_type"]], "dp_reducescatter_s": [[155, 1, 1, "c.dp_reducescatter_s", "core_mask"], [155, 1, 1, "c.dp_reducescatter_s", "data_size"], [155, 1, 1, "c.dp_reducescatter_s", "input_data"], [155, 1, 1, "c.dp_reducescatter_s", "output_data"], [155, 1, 1, "c.dp_reducescatter_s", "reduce_type"]], "dp_reshape_p": [[156, 1, 1, "c.dp_reshape_p", "input"], [156, 1, 1, "c.dp_reshape_p", "length"], [156, 1, 1, "c.dp_reshape_p", "output"]], "dp_reshape_s": [[156, 1, 1, "c.dp_reshape_s", "core_mask"], [156, 1, 1, "c.dp_reshape_s", "input"], [156, 1, 1, "c.dp_reshape_s", "length"], [156, 1, 1, "c.dp_reshape_s", "output"]], "dp_round_p": [[163, 1, 1, "c.dp_round_p", "input"], [163, 1, 1, "c.dp_round_p", "length"], [163, 1, 1, "c.dp_round_p", "output"]], "dp_round_s": [[163, 1, 1, "c.dp_round_s", "core_mask"], [163, 1, 1, "c.dp_round_s", "input"], [163, 1, 1, "c.dp_round_s", "length"], [163, 1, 1, "c.dp_round_s", "output"]], "dp_rsqrt_p": [[164, 1, 1, "c.dp_rsqrt_p", "dst"], [164, 1, 1, "c.dp_rsqrt_p", "length"], [164, 1, 1, "c.dp_rsqrt_p", "src"]], "dp_rsqrt_s": [[164, 1, 1, "c.dp_rsqrt_s", "core_mask"], [164, 1, 1, "c.dp_rsqrt_s", "dst"], [164, 1, 1, "c.dp_rsqrt_s", "length"], [164, 1, 1, "c.dp_rsqrt_s", "src"]], "dp_scalefusion_p": [[166, 1, 1, "c.dp_scalefusion_p", "bias"], [166, 1, 1, "c.dp_scalefusion_p", "dst_data"], [166, 1, 1, "c.dp_scalefusion_p", "length"], [166, 1, 1, "c.dp_scalefusion_p", "scale"], [166, 1, 1, "c.dp_scalefusion_p", "src_data"]], "dp_scalefusion_s": [[166, 1, 1, "c.dp_scalefusion_s", "bias"], [166, 1, 1, "c.dp_scalefusion_s", "core_mask"], [166, 1, 1, "c.dp_scalefusion_s", "dst_data"], [166, 1, 1, "c.dp_scalefusion_s", "length"], [166, 1, 1, "c.dp_scalefusion_s", "scale"], [166, 1, 1, "c.dp_scalefusion_s", "src_data"]], "dp_scatter_elements_p": [[167, 1, 1, "c.dp_scatter_elements_p", "core_mask"], [167, 1, 1, "c.dp_scatter_elements_p", "indices"], [167, 1, 1, "c.dp_scatter_elements_p", "input"], [167, 1, 1, "c.dp_scatter_elements_p", "output"], [167, 1, 1, "c.dp_scatter_elements_p", "param"], [167, 1, 1, "c.dp_scatter_elements_p", "updates"]], "dp_scatter_elements_s": [[167, 1, 1, "c.dp_scatter_elements_s", "core_mask"], [167, 1, 1, "c.dp_scatter_elements_s", "indices"], [167, 1, 1, "c.dp_scatter_elements_s", "input"], [167, 1, 1, "c.dp_scatter_elements_s", "output"], [167, 1, 1, "c.dp_scatter_elements_s", "param"], [167, 1, 1, "c.dp_scatter_elements_s", "updates"]], "dp_scatter_nd_p": [[168, 1, 1, "c.dp_scatter_nd_p", "indices"], [168, 1, 1, "c.dp_scatter_nd_p", "indices_ndim"], [168, 1, 1, "c.dp_scatter_nd_p", "indices_shape"], [168, 1, 1, "c.dp_scatter_nd_p", "output"], [168, 1, 1, "c.dp_scatter_nd_p", "output_ndim"], [168, 1, 1, "c.dp_scatter_nd_p", "output_shape"], [168, 1, 1, "c.dp_scatter_nd_p", "updates"]], "dp_scatter_nd_s": [[168, 1, 1, "c.dp_scatter_nd_s", "core_mask"], [168, 1, 1, "c.dp_scatter_nd_s", "indices"], [168, 1, 1, "c.dp_scatter_nd_s", "indices_ndim"], [168, 1, 1, "c.dp_scatter_nd_s", "indices_shape"], [168, 1, 1, "c.dp_scatter_nd_s", "output"], [168, 1, 1, "c.dp_scatter_nd_s", "output_ndim"], [168, 1, 1, "c.dp_scatter_nd_s", "output_shape"], [168, 1, 1, "c.dp_scatter_nd_s", "updates"]], "dp_scatter_nd_update_p": [[169, 1, 1, "c.dp_scatter_nd_update_p", "indices"], [169, 1, 1, "c.dp_scatter_nd_update_p", "indices_ndim"], [169, 1, 1, "c.dp_scatter_nd_update_p", "indices_shape"], [169, 1, 1, "c.dp_scatter_nd_update_p", "output"], [169, 1, 1, "c.dp_scatter_nd_update_p", "output_ndim"], [169, 1, 1, "c.dp_scatter_nd_update_p", "output_shape"], [169, 1, 1, "c.dp_scatter_nd_update_p", "updates"]], "dp_scatter_nd_update_s": [[169, 1, 1, "c.dp_scatter_nd_update_s", "core_mask"], [169, 1, 1, "c.dp_scatter_nd_update_s", "indices"], [169, 1, 1, "c.dp_scatter_nd_update_s", "indices_ndim"], [169, 1, 1, "c.dp_scatter_nd_update_s", "indices_shape"], [169, 1, 1, "c.dp_scatter_nd_update_s", "output"], [169, 1, 1, "c.dp_scatter_nd_update_s", "output_ndim"], [169, 1, 1, "c.dp_scatter_nd_update_s", "output_shape"], [169, 1, 1, "c.dp_scatter_nd_update_s", "updates"]], "dp_select_p": [[170, 1, 1, "c.dp_select_p", "condition"], [170, 1, 1, "c.dp_select_p", "index_list1"], [170, 1, 1, "c.dp_select_p", "index_list2"], [170, 1, 1, "c.dp_select_p", "index_list3"], [170, 1, 1, "c.dp_select_p", "input0"], [170, 1, 1, "c.dp_select_p", "input1"], [170, 1, 1, "c.dp_select_p", "is_broadcast"], [170, 1, 1, "c.dp_select_p", "output"], [170, 1, 1, "c.dp_select_p", "output_dims"], [170, 1, 1, "c.dp_select_p", "output_dims_num"]], "dp_select_s": [[170, 1, 1, "c.dp_select_s", "condition"], [170, 1, 1, "c.dp_select_s", "core_mask"], [170, 1, 1, "c.dp_select_s", "index_list1"], [170, 1, 1, "c.dp_select_s", "index_list2"], [170, 1, 1, "c.dp_select_s", "index_list3"], [170, 1, 1, "c.dp_select_s", "input0"], [170, 1, 1, "c.dp_select_s", "input1"], [170, 1, 1, "c.dp_select_s", "is_broadcast"], [170, 1, 1, "c.dp_select_s", "output"], [170, 1, 1, "c.dp_select_s", "output_dims"], [170, 1, 1, "c.dp_select_s", "output_dims_num"]], "dp_sin_p": [[175, 1, 1, "c.dp_sin_p", "dst_data"], [175, 1, 1, "c.dp_sin_p", "length"], [175, 1, 1, "c.dp_sin_p", "src_data"]], "dp_sin_s": [[175, 1, 1, "c.dp_sin_s", "core_mask"], [175, 1, 1, "c.dp_sin_s", "dst_data"], [175, 1, 1, "c.dp_sin_s", "length"], [175, 1, 1, "c.dp_sin_s", "src_data"]], "dp_slice_p": [[178, 1, 1, "c.dp_slice_p", "begin"], [178, 1, 1, "c.dp_slice_p", "input"], [178, 1, 1, "c.dp_slice_p", "input_shape"], [178, 1, 1, "c.dp_slice_p", "ndim"], [178, 1, 1, "c.dp_slice_p", "output"], [178, 1, 1, "c.dp_slice_p", "size"]], "dp_slice_s": [[178, 1, 1, "c.dp_slice_s", "begin"], [178, 1, 1, "c.dp_slice_s", "core_mask"], [178, 1, 1, "c.dp_slice_s", "input"], [178, 1, 1, "c.dp_slice_s", "input_shape"], [178, 1, 1, "c.dp_slice_s", "ndim"], [178, 1, 1, "c.dp_slice_s", "output"], [178, 1, 1, "c.dp_slice_s", "size"]], "dp_spacetobatch_p": [[183, 1, 1, "c.dp_spacetobatch_p", "block_size"], [183, 1, 1, "c.dp_spacetobatch_p", "data_size"], [183, 1, 1, "c.dp_spacetobatch_p", "input"], [183, 1, 1, "c.dp_spacetobatch_p", "input_shape"], [183, 1, 1, "c.dp_spacetobatch_p", "output"], [183, 1, 1, "c.dp_spacetobatch_p", "paddings"]], "dp_spacetobatch_s": [[183, 1, 1, "c.dp_spacetobatch_s", "block_size"], [183, 1, 1, "c.dp_spacetobatch_s", "core_mask"], [183, 1, 1, "c.dp_spacetobatch_s", "data_size"], [183, 1, 1, "c.dp_spacetobatch_s", "input"], [183, 1, 1, "c.dp_spacetobatch_s", "input_shape"], [183, 1, 1, "c.dp_spacetobatch_s", "output"], [183, 1, 1, "c.dp_spacetobatch_s", "paddings"]], "dp_spacetobatchnd_p": [[184, 1, 1, "c.dp_spacetobatchnd_p", "block_size"], [184, 1, 1, "c.dp_spacetobatchnd_p", "data_size"], [184, 1, 1, "c.dp_spacetobatchnd_p", "input"], [184, 1, 1, "c.dp_spacetobatchnd_p", "input_shape"], [184, 1, 1, "c.dp_spacetobatchnd_p", "output"], [184, 1, 1, "c.dp_spacetobatchnd_p", "paddings"]], "dp_spacetobatchnd_s": [[184, 1, 1, "c.dp_spacetobatchnd_s", "block_size"], [184, 1, 1, "c.dp_spacetobatchnd_s", "core_mask"], [184, 1, 1, "c.dp_spacetobatchnd_s", "data_size"], [184, 1, 1, "c.dp_spacetobatchnd_s", "input"], [184, 1, 1, "c.dp_spacetobatchnd_s", "input_shape"], [184, 1, 1, "c.dp_spacetobatchnd_s", "output"], [184, 1, 1, "c.dp_spacetobatchnd_s", "paddings"]], "dp_spacetodepth_p": [[185, 1, 1, "c.dp_spacetodepth_p", "block"], [185, 1, 1, "c.dp_spacetodepth_p", "data_size"], [185, 1, 1, "c.dp_spacetodepth_p", "in_shape"], [185, 1, 1, "c.dp_spacetodepth_p", "input"], [185, 1, 1, "c.dp_spacetodepth_p", "output"]], "dp_spacetodepth_s": [[185, 1, 1, "c.dp_spacetodepth_s", "block"], [185, 1, 1, "c.dp_spacetodepth_s", "core_mask"], [185, 1, 1, "c.dp_spacetodepth_s", "data_size"], [185, 1, 1, "c.dp_spacetodepth_s", "in_shape"], [185, 1, 1, "c.dp_spacetodepth_s", "input"], [185, 1, 1, "c.dp_spacetodepth_s", "output"]], "dp_sparsefillemptyrows_p": [[187, 1, 1, "c.dp_sparsefillemptyrows_p", "N"], [187, 1, 1, "c.dp_sparsefillemptyrows_p", "default_value"], [187, 1, 1, "c.dp_sparsefillemptyrows_p", "dense_rows"], [187, 1, 1, "c.dp_sparsefillemptyrows_p", "filled_count"], [187, 1, 1, "c.dp_sparsefillemptyrows_p", "indices_ptr"], [187, 1, 1, "c.dp_sparsefillemptyrows_p", "output_reverse_index_map_ptr"], [187, 1, 1, "c.dp_sparsefillemptyrows_p", "output_y_indices_ptr"], [187, 1, 1, "c.dp_sparsefillemptyrows_p", "output_y_values_ptr"], [187, 1, 1, "c.dp_sparsefillemptyrows_p", "rank"], [187, 1, 1, "c.dp_sparsefillemptyrows_p", "scratch_ptr"], [187, 1, 1, "c.dp_sparsefillemptyrows_p", "values_ptr"]], "dp_sparsefillemptyrows_s": [[187, 1, 1, "c.dp_sparsefillemptyrows_s", "N"], [187, 1, 1, "c.dp_sparsefillemptyrows_s", "core_mask"], [187, 1, 1, "c.dp_sparsefillemptyrows_s", "default_value"], [187, 1, 1, "c.dp_sparsefillemptyrows_s", "dense_rows"], [187, 1, 1, "c.dp_sparsefillemptyrows_s", "filled_count"], [187, 1, 1, "c.dp_sparsefillemptyrows_s", "indices_ptr"], [187, 1, 1, "c.dp_sparsefillemptyrows_s", "output_reverse_index_map_ptr"], [187, 1, 1, "c.dp_sparsefillemptyrows_s", "output_y_indices_ptr"], [187, 1, 1, "c.dp_sparsefillemptyrows_s", "output_y_values_ptr"], [187, 1, 1, "c.dp_sparsefillemptyrows_s", "rank"], [187, 1, 1, "c.dp_sparsefillemptyrows_s", "scratch_ptr"], [187, 1, 1, "c.dp_sparsefillemptyrows_s", "values_ptr"]], "dp_sparsesegmentsum_p": [[189, 1, 1, "c.dp_sparsesegmentsum_p", "in_data"], [189, 1, 1, "c.dp_sparsesegmentsum_p", "in_data_shape"], [189, 1, 1, "c.dp_sparsesegmentsum_p", "in_data_shape_size"], [189, 1, 1, "c.dp_sparsesegmentsum_p", "in_indices"], [189, 1, 1, "c.dp_sparsesegmentsum_p", "in_indices_size"], [189, 1, 1, "c.dp_sparsesegmentsum_p", "in_segment_ids"], [189, 1, 1, "c.dp_sparsesegmentsum_p", "out_data"], [189, 1, 1, "c.dp_sparsesegmentsum_p", "out_data_shape"]], "dp_sparsesegmentsum_s": [[189, 1, 1, "c.dp_sparsesegmentsum_s", "core_mask"], [189, 1, 1, "c.dp_sparsesegmentsum_s", "in_data"], [189, 1, 1, "c.dp_sparsesegmentsum_s", "in_data_shape"], [189, 1, 1, "c.dp_sparsesegmentsum_s", "in_data_shape_size"], [189, 1, 1, "c.dp_sparsesegmentsum_s", "in_indices"], [189, 1, 1, "c.dp_sparsesegmentsum_s", "in_indices_size"], [189, 1, 1, "c.dp_sparsesegmentsum_s", "in_segment_ids"], [189, 1, 1, "c.dp_sparsesegmentsum_s", "out_data"], [189, 1, 1, "c.dp_sparsesegmentsum_s", "out_data_shape"]], "dp_sparsetodense_p": [[190, 1, 1, "c.dp_sparsetodense_p", "indices_vec"], [190, 1, 1, "c.dp_sparsetodense_p", "is_scalar"], [190, 1, 1, "c.dp_sparsetodense_p", "output"], [190, 1, 1, "c.dp_sparsetodense_p", "output_strides"], [190, 1, 1, "c.dp_sparsetodense_p", "sparse_length"], [190, 1, 1, "c.dp_sparsetodense_p", "sparse_values"]], "dp_sparsetodense_s": [[190, 1, 1, "c.dp_sparsetodense_s", "core_mask"], [190, 1, 1, "c.dp_sparsetodense_s", "indices_vec"], [190, 1, 1, "c.dp_sparsetodense_s", "is_scalar"], [190, 1, 1, "c.dp_sparsetodense_s", "output"], [190, 1, 1, "c.dp_sparsetodense_s", "output_strides"], [190, 1, 1, "c.dp_sparsetodense_s", "sparse_length"], [190, 1, 1, "c.dp_sparsetodense_s", "sparse_values"]], "dp_splice_p": [[191, 1, 1, "c.dp_splice_p", "context_dim"], [191, 1, 1, "c.dp_splice_p", "dst_col"], [191, 1, 1, "c.dp_splice_p", "dst_data"], [191, 1, 1, "c.dp_splice_p", "dst_row"], [191, 1, 1, "c.dp_splice_p", "forward_indexes"], [191, 1, 1, "c.dp_splice_p", "forward_indexes_dims"], [191, 1, 1, "c.dp_splice_p", "src_col"], [191, 1, 1, "c.dp_splice_p", "src_data"], [191, 1, 1, "c.dp_splice_p", "src_row"]], "dp_splice_s": [[191, 1, 1, "c.dp_splice_s", "context_dim"], [191, 1, 1, "c.dp_splice_s", "core_mask"], [191, 1, 1, "c.dp_splice_s", "dst_col"], [191, 1, 1, "c.dp_splice_s", "dst_data"], [191, 1, 1, "c.dp_splice_s", "dst_row"], [191, 1, 1, "c.dp_splice_s", "forward_indexes"], [191, 1, 1, "c.dp_splice_s", "forward_indexes_dims"], [191, 1, 1, "c.dp_splice_s", "src_col"], [191, 1, 1, "c.dp_splice_s", "src_data"], [191, 1, 1, "c.dp_splice_s", "src_row"]], "dp_split_p": [[192, 1, 1, "c.dp_split_p", "axis"], [192, 1, 1, "c.dp_split_p", "input"], [192, 1, 1, "c.dp_split_p", "input_ndim"], [192, 1, 1, "c.dp_split_p", "input_shape"], [192, 1, 1, "c.dp_split_p", "num_split"], [192, 1, 1, "c.dp_split_p", "outputs"], [192, 1, 1, "c.dp_split_p", "split_sizes"]], "dp_split_s": [[192, 1, 1, "c.dp_split_s", "axis"], [192, 1, 1, "c.dp_split_s", "core_mask"], [192, 1, 1, "c.dp_split_s", "input"], [192, 1, 1, "c.dp_split_s", "input_ndim"], [192, 1, 1, "c.dp_split_s", "input_shape"], [192, 1, 1, "c.dp_split_s", "num_split"], [192, 1, 1, "c.dp_split_s", "outputs"], [192, 1, 1, "c.dp_split_s", "split_sizes"]], "dp_split_with_overlap_p": [[193, 1, 1, "c.dp_split_with_overlap_p", "axis"], [193, 1, 1, "c.dp_split_with_overlap_p", "end_indices"], [193, 1, 1, "c.dp_split_with_overlap_p", "input"], [193, 1, 1, "c.dp_split_with_overlap_p", "input_ndim"], [193, 1, 1, "c.dp_split_with_overlap_p", "input_shape"], [193, 1, 1, "c.dp_split_with_overlap_p", "num_split"], [193, 1, 1, "c.dp_split_with_overlap_p", "outputs"], [193, 1, 1, "c.dp_split_with_overlap_p", "start_indices"]], "dp_split_with_overlap_s": [[193, 1, 1, "c.dp_split_with_overlap_s", "axis"], [193, 1, 1, "c.dp_split_with_overlap_s", "core_mask"], [193, 1, 1, "c.dp_split_with_overlap_s", "end_indices"], [193, 1, 1, "c.dp_split_with_overlap_s", "input"], [193, 1, 1, "c.dp_split_with_overlap_s", "input_ndim"], [193, 1, 1, "c.dp_split_with_overlap_s", "input_shape"], [193, 1, 1, "c.dp_split_with_overlap_s", "num_split"], [193, 1, 1, "c.dp_split_with_overlap_s", "outputs"], [193, 1, 1, "c.dp_split_with_overlap_s", "start_indices"]], "dp_sqrt_p": [[194, 1, 1, "c.dp_sqrt_p", "dst_data"], [194, 1, 1, "c.dp_sqrt_p", "length"], [194, 1, 1, "c.dp_sqrt_p", "src_data"]], "dp_sqrt_s": [[194, 1, 1, "c.dp_sqrt_s", "core_mask"], [194, 1, 1, "c.dp_sqrt_s", "dst_data"], [194, 1, 1, "c.dp_sqrt_s", "length"], [194, 1, 1, "c.dp_sqrt_s", "src_data"]], "dp_sqrtgrad_p": [[195, 1, 1, "c.dp_sqrtgrad_p", "input1"], [195, 1, 1, "c.dp_sqrtgrad_p", "input2"], [195, 1, 1, "c.dp_sqrtgrad_p", "output"], [195, 1, 1, "c.dp_sqrtgrad_p", "size"]], "dp_sqrtgrad_s": [[195, 1, 1, "c.dp_sqrtgrad_s", "core_mask"], [195, 1, 1, "c.dp_sqrtgrad_s", "input1"], [195, 1, 1, "c.dp_sqrtgrad_s", "input2"], [195, 1, 1, "c.dp_sqrtgrad_s", "output"], [195, 1, 1, "c.dp_sqrtgrad_s", "size"]], "dp_square_p": [[196, 1, 1, "c.dp_square_p", "dst"], [196, 1, 1, "c.dp_square_p", "length"], [196, 1, 1, "c.dp_square_p", "src"]], "dp_square_s": [[196, 1, 1, "c.dp_square_s", "core_mask"], [196, 1, 1, "c.dp_square_s", "dst"], [196, 1, 1, "c.dp_square_s", "length"], [196, 1, 1, "c.dp_square_s", "src"]], "dp_squaredifference_p": [[197, 1, 1, "c.dp_squaredifference_p", "input0"], [197, 1, 1, "c.dp_squaredifference_p", "input1"], [197, 1, 1, "c.dp_squaredifference_p", "length"], [197, 1, 1, "c.dp_squaredifference_p", "output"]], "dp_squaredifference_s": [[197, 1, 1, "c.dp_squaredifference_s", "core_mask"], [197, 1, 1, "c.dp_squaredifference_s", "input0"], [197, 1, 1, "c.dp_squaredifference_s", "input1"], [197, 1, 1, "c.dp_squaredifference_s", "length"], [197, 1, 1, "c.dp_squaredifference_s", "output"]], "dp_stack_p": [[199, 1, 1, "c.dp_stack_p", "axis"], [199, 1, 1, "c.dp_stack_p", "input_ndim"], [199, 1, 1, "c.dp_stack_p", "input_shape"], [199, 1, 1, "c.dp_stack_p", "inputs"], [199, 1, 1, "c.dp_stack_p", "num_inputs"], [199, 1, 1, "c.dp_stack_p", "output"]], "dp_stack_s": [[199, 1, 1, "c.dp_stack_s", "axis"], [199, 1, 1, "c.dp_stack_s", "core_mask"], [199, 1, 1, "c.dp_stack_s", "input_ndim"], [199, 1, 1, "c.dp_stack_s", "input_shape"], [199, 1, 1, "c.dp_stack_s", "inputs"], [199, 1, 1, "c.dp_stack_s", "num_inputs"], [199, 1, 1, "c.dp_stack_s", "output"]], "dp_subext_p": [[202, 1, 1, "c.dp_subext_p", "alpha"], [202, 1, 1, "c.dp_subext_p", "input0"], [202, 1, 1, "c.dp_subext_p", "input1"], [202, 1, 1, "c.dp_subext_p", "output"], [202, 1, 1, "c.dp_subext_p", "size"]], "dp_subext_s": [[202, 1, 1, "c.dp_subext_s", "alpha"], [202, 1, 1, "c.dp_subext_s", "core_mask"], [202, 1, 1, "c.dp_subext_s", "input0"], [202, 1, 1, "c.dp_subext_s", "input1"], [202, 1, 1, "c.dp_subext_s", "output"], [202, 1, 1, "c.dp_subext_s", "size"]], "dp_subrelu6_p": [[202, 1, 1, "c.dp_subrelu6_p", "input0"], [202, 1, 1, "c.dp_subrelu6_p", "input1"], [202, 1, 1, "c.dp_subrelu6_p", "output"], [202, 1, 1, "c.dp_subrelu6_p", "size"]], "dp_subrelu6_s": [[202, 1, 1, "c.dp_subrelu6_s", "core_mask"], [202, 1, 1, "c.dp_subrelu6_s", "input0"], [202, 1, 1, "c.dp_subrelu6_s", "input1"], [202, 1, 1, "c.dp_subrelu6_s", "output"], [202, 1, 1, "c.dp_subrelu6_s", "size"]], "dp_subrelu_p": [[202, 1, 1, "c.dp_subrelu_p", "input0"], [202, 1, 1, "c.dp_subrelu_p", "input1"], [202, 1, 1, "c.dp_subrelu_p", "output"], [202, 1, 1, "c.dp_subrelu_p", "size"]], "dp_subrelu_s": [[202, 1, 1, "c.dp_subrelu_s", "core_mask"], [202, 1, 1, "c.dp_subrelu_s", "input0"], [202, 1, 1, "c.dp_subrelu_s", "input1"], [202, 1, 1, "c.dp_subrelu_s", "output"], [202, 1, 1, "c.dp_subrelu_s", "size"]], "dp_tensor_scatter_add_p": [[206, 1, 1, "c.dp_tensor_scatter_add_p", "index_depth"], [206, 1, 1, "c.dp_tensor_scatter_add_p", "indices"], [206, 1, 1, "c.dp_tensor_scatter_add_p", "input"], [206, 1, 1, "c.dp_tensor_scatter_add_p", "input_rank"], [206, 1, 1, "c.dp_tensor_scatter_add_p", "input_shape"], [206, 1, 1, "c.dp_tensor_scatter_add_p", "num_unit"], [206, 1, 1, "c.dp_tensor_scatter_add_p", "output"], [206, 1, 1, "c.dp_tensor_scatter_add_p", "output_unit_offsets"], [206, 1, 1, "c.dp_tensor_scatter_add_p", "strides"], [206, 1, 1, "c.dp_tensor_scatter_add_p", "updates"]], "dp_tensor_scatter_add_s": [[206, 1, 1, "c.dp_tensor_scatter_add_s", "core_mask"], [206, 1, 1, "c.dp_tensor_scatter_add_s", "index_depth"], [206, 1, 1, "c.dp_tensor_scatter_add_s", "indices"], [206, 1, 1, "c.dp_tensor_scatter_add_s", "input"], [206, 1, 1, "c.dp_tensor_scatter_add_s", "input_rank"], [206, 1, 1, "c.dp_tensor_scatter_add_s", "input_shape"], [206, 1, 1, "c.dp_tensor_scatter_add_s", "num_unit"], [206, 1, 1, "c.dp_tensor_scatter_add_s", "output"], [206, 1, 1, "c.dp_tensor_scatter_add_s", "updates"]], "dp_tensorarrayread_p": [[208, 1, 1, "c.dp_tensorarrayread_p", "handle_data"], [208, 1, 1, "c.dp_tensorarrayread_p", "handle_size"], [208, 1, 1, "c.dp_tensorarrayread_p", "index"], [208, 1, 1, "c.dp_tensorarrayread_p", "output_data"], [208, 1, 1, "c.dp_tensorarrayread_p", "output_size"]], "dp_tensorarrayread_s": [[208, 1, 1, "c.dp_tensorarrayread_s", "core_mask"], [208, 1, 1, "c.dp_tensorarrayread_s", "handle_data"], [208, 1, 1, "c.dp_tensorarrayread_s", "handle_size"], [208, 1, 1, "c.dp_tensorarrayread_s", "index"], [208, 1, 1, "c.dp_tensorarrayread_s", "output_data"], [208, 1, 1, "c.dp_tensorarrayread_s", "output_size"]], "dp_tensorlistfromtensor_p": [[210, 1, 1, "c.dp_tensorlistfromtensor_p", "input_tensor_shape"], [210, 1, 1, "c.dp_tensorlistfromtensor_p", "input_tensor_total_elements"], [210, 1, 1, "c.dp_tensorlistfromtensor_p", "input_tensor_values"], [210, 1, 1, "c.dp_tensorlistfromtensor_p", "output_tensors"]], "dp_tensorlistfromtensor_s": [[210, 1, 1, "c.dp_tensorlistfromtensor_s", "core_mask"], [210, 1, 1, "c.dp_tensorlistfromtensor_s", "input_tensor_shape"], [210, 1, 1, "c.dp_tensorlistfromtensor_s", "input_tensor_total_elements"], [210, 1, 1, "c.dp_tensorlistfromtensor_s", "input_tensor_values"], [210, 1, 1, "c.dp_tensorlistfromtensor_s", "output_tensors"]], "dp_tile_p": [[215, 1, 1, "c.dp_tile_p", "input"], [215, 1, 1, "c.dp_tile_p", "input_shape"], [215, 1, 1, "c.dp_tile_p", "output"], [215, 1, 1, "c.dp_tile_p", "stride"], [215, 1, 1, "c.dp_tile_p", "tile_dim"], [215, 1, 1, "c.dp_tile_p", "tile_num"]], "dp_tile_s": [[215, 1, 1, "c.dp_tile_s", "core_mask"], [215, 1, 1, "c.dp_tile_s", "input"], [215, 1, 1, "c.dp_tile_s", "input_shape"], [215, 1, 1, "c.dp_tile_s", "output"], [215, 1, 1, "c.dp_tile_s", "stride"], [215, 1, 1, "c.dp_tile_s", "tile_dim"], [215, 1, 1, "c.dp_tile_s", "tile_num"]], "dp_transpose_p": [[217, 1, 1, "c.dp_transpose_p", "in_data"], [217, 1, 1, "c.dp_transpose_p", "num_axes"], [217, 1, 1, "c.dp_transpose_p", "out_data"], [217, 1, 1, "c.dp_transpose_p", "out_strides"], [217, 1, 1, "c.dp_transpose_p", "output_shape"], [217, 1, 1, "c.dp_transpose_p", "perm"], [217, 1, 1, "c.dp_transpose_p", "strides"]], "dp_transpose_s": [[217, 1, 1, "c.dp_transpose_s", "core_mask"], [217, 1, 1, "c.dp_transpose_s", "in_data"], [217, 1, 1, "c.dp_transpose_s", "num_axes"], [217, 1, 1, "c.dp_transpose_s", "out_data"], [217, 1, 1, "c.dp_transpose_s", "out_strides"], [217, 1, 1, "c.dp_transpose_s", "output_shape"], [217, 1, 1, "c.dp_transpose_s", "perm"], [217, 1, 1, "c.dp_transpose_s", "strides"]], "dp_tril_p": [[218, 1, 1, "c.dp_tril_p", "dst"], [218, 1, 1, "c.dp_tril_p", "height"], [218, 1, 1, "c.dp_tril_p", "k"], [218, 1, 1, "c.dp_tril_p", "out_elems"], [218, 1, 1, "c.dp_tril_p", "src"], [218, 1, 1, "c.dp_tril_p", "width"]], "dp_tril_s": [[218, 1, 1, "c.dp_tril_s", "core_mask"], [218, 1, 1, "c.dp_tril_s", "dst"], [218, 1, 1, "c.dp_tril_s", "height"], [218, 1, 1, "c.dp_tril_s", "k"], [218, 1, 1, "c.dp_tril_s", "out_elems"], [218, 1, 1, "c.dp_tril_s", "src"], [218, 1, 1, "c.dp_tril_s", "width"]], "dp_triu_p": [[219, 1, 1, "c.dp_triu_p", "dst"], [219, 1, 1, "c.dp_triu_p", "height"], [219, 1, 1, "c.dp_triu_p", "k"], [219, 1, 1, "c.dp_triu_p", "out_elems"], [219, 1, 1, "c.dp_triu_p", "src"], [219, 1, 1, "c.dp_triu_p", "width"]], "dp_triu_s": [[219, 1, 1, "c.dp_triu_s", "core_mask"], [219, 1, 1, "c.dp_triu_s", "dst"], [219, 1, 1, "c.dp_triu_s", "height"], [219, 1, 1, "c.dp_triu_s", "k"], [219, 1, 1, "c.dp_triu_s", "out_elems"], [219, 1, 1, "c.dp_triu_s", "src"], [219, 1, 1, "c.dp_triu_s", "width"]], "dp_unsorted_segment_sum_p": [[222, 1, 1, "c.dp_unsorted_segment_sum_p", "dim0"], [222, 1, 1, "c.dp_unsorted_segment_sum_p", "dim1"], [222, 1, 1, "c.dp_unsorted_segment_sum_p", "id_max"], [222, 1, 1, "c.dp_unsorted_segment_sum_p", "index"], [222, 1, 1, "c.dp_unsorted_segment_sum_p", "input"], [222, 1, 1, "c.dp_unsorted_segment_sum_p", "output"]], "dp_unsorted_segment_sum_s": [[222, 1, 1, "c.dp_unsorted_segment_sum_s", "core_mask"], [222, 1, 1, "c.dp_unsorted_segment_sum_s", "dim0"], [222, 1, 1, "c.dp_unsorted_segment_sum_s", "dim1"], [222, 1, 1, "c.dp_unsorted_segment_sum_s", "id_max"], [222, 1, 1, "c.dp_unsorted_segment_sum_s", "index"], [222, 1, 1, "c.dp_unsorted_segment_sum_s", "input"], [222, 1, 1, "c.dp_unsorted_segment_sum_s", "output"]], "dp_where_p": [[225, 1, 1, "c.dp_where_p", "condition"], [225, 1, 1, "c.dp_where_p", "input0"], [225, 1, 1, "c.dp_where_p", "input1"], [225, 1, 1, "c.dp_where_p", "length"], [225, 1, 1, "c.dp_where_p", "output"]], "dp_where_s": [[225, 1, 1, "c.dp_where_s", "condition"], [225, 1, 1, "c.dp_where_s", "core_mask"], [225, 1, 1, "c.dp_where_s", "input0"], [225, 1, 1, "c.dp_where_s", "input1"], [225, 1, 1, "c.dp_where_s", "length"], [225, 1, 1, "c.dp_where_s", "output"]], "dp_zerolike_p": [[226, 1, 1, "c.dp_zerolike_p", "length"], [226, 1, 1, "c.dp_zerolike_p", "output"]], "dp_zerolike_s": [[226, 1, 1, "c.dp_zerolike_s", "core_mask"], [226, 1, 1, "c.dp_zerolike_s", "length"], [226, 1, 1, "c.dp_zerolike_s", "output"]], "fp_Gru_p": [[95, 1, 1, "c.fp_Gru_p", "buffer"], [95, 1, 1, "c.fp_Gru_p", "core_mask"], [95, 1, 1, "c.fp_Gru_p", "gru_param"], [95, 1, 1, "c.fp_Gru_p", "hidden_state"], [95, 1, 1, "c.fp_Gru_p", "input"], [95, 1, 1, "c.fp_Gru_p", "input_bias"], [95, 1, 1, "c.fp_Gru_p", "output"], [95, 1, 1, "c.fp_Gru_p", "state_bias"], [95, 1, 1, "c.fp_Gru_p", "weight_g"], [95, 1, 1, "c.fp_Gru_p", "weight_r"]], "fp_Gru_s": [[95, 1, 1, "c.fp_Gru_s", "buffer"], [95, 1, 1, "c.fp_Gru_s", "core_mask"], [95, 1, 1, "c.fp_Gru_s", "gru_param"], [95, 1, 1, "c.fp_Gru_s", "hidden_state"], [95, 1, 1, "c.fp_Gru_s", "input"], [95, 1, 1, "c.fp_Gru_s", "input_bias"], [95, 1, 1, "c.fp_Gru_s", "output"], [95, 1, 1, "c.fp_Gru_s", "state_bias"], [95, 1, 1, "c.fp_Gru_s", "weight_g"], [95, 1, 1, "c.fp_Gru_s", "weight_r"]], "fp_Lstm_p": [[117, 1, 1, "c.fp_Lstm_p", "buffer"], [117, 1, 1, "c.fp_Lstm_p", "cell_state"], [117, 1, 1, "c.fp_Lstm_p", "hidden_state"], [117, 1, 1, "c.fp_Lstm_p", "input"], [117, 1, 1, "c.fp_Lstm_p", "input_bias"], [117, 1, 1, "c.fp_Lstm_p", "lstm_param"], [117, 1, 1, "c.fp_Lstm_p", "output"], [117, 1, 1, "c.fp_Lstm_p", "state_bias"], [117, 1, 1, "c.fp_Lstm_p", "weight_h"], [117, 1, 1, "c.fp_Lstm_p", "weight_i"]], "fp_Lstm_s": [[117, 1, 1, "c.fp_Lstm_s", "buffer"], [117, 1, 1, "c.fp_Lstm_s", "cell_state"], [117, 1, 1, "c.fp_Lstm_s", "core_mask"], [117, 1, 1, "c.fp_Lstm_s", "hidden_state"], [117, 1, 1, "c.fp_Lstm_s", "input"], [117, 1, 1, "c.fp_Lstm_s", "input_bias"], [117, 1, 1, "c.fp_Lstm_s", "lstm_param"], [117, 1, 1, "c.fp_Lstm_s", "output"], [117, 1, 1, "c.fp_Lstm_s", "state_bias"], [117, 1, 1, "c.fp_Lstm_s", "weight_h"], [117, 1, 1, "c.fp_Lstm_s", "weight_i"]], "fp_QuantData_p": [[66, 1, 1, "c.fp_QuantData_p", "axis_num"], [66, 1, 1, "c.fp_QuantData_p", "element_num"], [66, 1, 1, "c.fp_QuantData_p", "quant_values"], [66, 1, 1, "c.fp_QuantData_p", "real_values"], [66, 1, 1, "c.fp_QuantData_p", "scale"], [66, 1, 1, "c.fp_QuantData_p", "segment_num"], [66, 1, 1, "c.fp_QuantData_p", "zp"]], "fp_QuantData_s": [[66, 1, 1, "c.fp_QuantData_s", "axis_num"], [66, 1, 1, "c.fp_QuantData_s", "core_mask"], [66, 1, 1, "c.fp_QuantData_s", "element_num"], [66, 1, 1, "c.fp_QuantData_s", "quant_values"], [66, 1, 1, "c.fp_QuantData_s", "real_values"], [66, 1, 1, "c.fp_QuantData_s", "scale"], [66, 1, 1, "c.fp_QuantData_s", "segment_num"], [66, 1, 1, "c.fp_QuantData_s", "zp"]], "fp_Unique_p": [[221, 1, 1, "c.fp_Unique_p", "input"], [221, 1, 1, "c.fp_Unique_p", "input_len"], [221, 1, 1, "c.fp_Unique_p", "output0"], [221, 1, 1, "c.fp_Unique_p", "output0_len"]], "fp_Unique_s": [[221, 1, 1, "c.fp_Unique_s", "core_mask"], [221, 1, 1, "c.fp_Unique_s", "input"], [221, 1, 1, "c.fp_Unique_s", "input_len"], [221, 1, 1, "c.fp_Unique_s", "output0"], [221, 1, 1, "c.fp_Unique_s", "output0_len"]], "fp_abs_p": [[10, 1, 1, "c.fp_abs_p", "dst_data"], [10, 1, 1, "c.fp_abs_p", "length"], [10, 1, 1, "c.fp_abs_p", "src_data"]], "fp_abs_s": [[10, 1, 1, "c.fp_abs_s", "core_mask"], [10, 1, 1, "c.fp_abs_s", "dst_data"], [10, 1, 1, "c.fp_abs_s", "length"], [10, 1, 1, "c.fp_abs_s", "src_data"]], "fp_absgrad_p": [[11, 1, 1, "c.fp_absgrad_p", "input0"], [11, 1, 1, "c.fp_absgrad_p", "input1"], [11, 1, 1, "c.fp_absgrad_p", "output"], [11, 1, 1, "c.fp_absgrad_p", "size"]], "fp_absgrad_s": [[11, 1, 1, "c.fp_absgrad_s", "core_mask"], [11, 1, 1, "c.fp_absgrad_s", "input0"], [11, 1, 1, "c.fp_absgrad_s", "input1"], [11, 1, 1, "c.fp_absgrad_s", "output"], [11, 1, 1, "c.fp_absgrad_s", "size"]], "fp_adam_p": [[14, 1, 1, "c.fp_adam_p", "beta1"], [14, 1, 1, "c.fp_adam_p", "beta1_power"], [14, 1, 1, "c.fp_adam_p", "beta2"], [14, 1, 1, "c.fp_adam_p", "beta2_power"], [14, 1, 1, "c.fp_adam_p", "end"], [14, 1, 1, "c.fp_adam_p", "eps"], [14, 1, 1, "c.fp_adam_p", "gradient"], [14, 1, 1, "c.fp_adam_p", "learning_rate"], [14, 1, 1, "c.fp_adam_p", "m"], [14, 1, 1, "c.fp_adam_p", "nesterov"], [14, 1, 1, "c.fp_adam_p", "start"], [14, 1, 1, "c.fp_adam_p", "v"], [14, 1, 1, "c.fp_adam_p", "weight"]], "fp_adam_s": [[14, 1, 1, "c.fp_adam_s", "beta1"], [14, 1, 1, "c.fp_adam_s", "beta1_power"], [14, 1, 1, "c.fp_adam_s", "beta2"], [14, 1, 1, "c.fp_adam_s", "beta2_power"], [14, 1, 1, "c.fp_adam_s", "core_mask"], [14, 1, 1, "c.fp_adam_s", "end"], [14, 1, 1, "c.fp_adam_s", "eps"], [14, 1, 1, "c.fp_adam_s", "gradient"], [14, 1, 1, "c.fp_adam_s", "learning_rate"], [14, 1, 1, "c.fp_adam_s", "m"], [14, 1, 1, "c.fp_adam_s", "nesterov"], [14, 1, 1, "c.fp_adam_s", "start"], [14, 1, 1, "c.fp_adam_s", "v"], [14, 1, 1, "c.fp_adam_s", "weight"]], "fp_adamweightdecay_p": [[15, 1, 1, "c.fp_adamweightdecay_p", "beta1"], [15, 1, 1, "c.fp_adamweightdecay_p", "beta2"], [15, 1, 1, "c.fp_adamweightdecay_p", "decay"], [15, 1, 1, "c.fp_adamweightdecay_p", "epsilon"], [15, 1, 1, "c.fp_adamweightdecay_p", "gradient"], [15, 1, 1, "c.fp_adamweightdecay_p", "length"], [15, 1, 1, "c.fp_adamweightdecay_p", "lr"], [15, 1, 1, "c.fp_adamweightdecay_p", "m"], [15, 1, 1, "c.fp_adamweightdecay_p", "v"], [15, 1, 1, "c.fp_adamweightdecay_p", "var"]], "fp_adamweightdecay_s": [[15, 1, 1, "c.fp_adamweightdecay_s", "beta1"], [15, 1, 1, "c.fp_adamweightdecay_s", "beta2"], [15, 1, 1, "c.fp_adamweightdecay_s", "core_mask"], [15, 1, 1, "c.fp_adamweightdecay_s", "decay"], [15, 1, 1, "c.fp_adamweightdecay_s", "end"], [15, 1, 1, "c.fp_adamweightdecay_s", "epsilon"], [15, 1, 1, "c.fp_adamweightdecay_s", "gradient"], [15, 1, 1, "c.fp_adamweightdecay_s", "lr"], [15, 1, 1, "c.fp_adamweightdecay_s", "m"], [15, 1, 1, "c.fp_adamweightdecay_s", "start"], [15, 1, 1, "c.fp_adamweightdecay_s", "v"], [15, 1, 1, "c.fp_adamweightdecay_s", "var"]], "fp_adder_p": [[16, 1, 1, "c.fp_adder_p", "bias"], [16, 1, 1, "c.fp_adder_p", "conv_param"], [16, 1, 1, "c.fp_adder_p", "core_mask"], [16, 1, 1, "c.fp_adder_p", "input_w"], [16, 1, 1, "c.fp_adder_p", "input_x"], [16, 1, 1, "c.fp_adder_p", "out_y"]], "fp_adder_s": [[16, 1, 1, "c.fp_adder_s", "bias"], [16, 1, 1, "c.fp_adder_s", "core_mask"], [16, 1, 1, "c.fp_adder_s", "input_w"], [16, 1, 1, "c.fp_adder_s", "input_x"], [16, 1, 1, "c.fp_adder_s", "out_y"], [16, 1, 1, "c.fp_adder_s", "param"]], "fp_addext_p": [[17, 1, 1, "c.fp_addext_p", "alpha"], [17, 1, 1, "c.fp_addext_p", "in0"], [17, 1, 1, "c.fp_addext_p", "in1"], [17, 1, 1, "c.fp_addext_p", "out"], [17, 1, 1, "c.fp_addext_p", "size"]], "fp_addext_s": [[17, 1, 1, "c.fp_addext_s", "alpha"], [17, 1, 1, "c.fp_addext_s", "core_mask"], [17, 1, 1, "c.fp_addext_s", "in0"], [17, 1, 1, "c.fp_addext_s", "in1"], [17, 1, 1, "c.fp_addext_s", "out"], [17, 1, 1, "c.fp_addext_s", "size"]], "fp_addgrad_p": [[18, 1, 1, "c.fp_addgrad_p", "dx1"], [18, 1, 1, "c.fp_addgrad_p", "dx2"], [18, 1, 1, "c.fp_addgrad_p", "dy"], [18, 1, 1, "c.fp_addgrad_p", "dy_dims"], [18, 1, 1, "c.fp_addgrad_p", "num_dims"], [18, 1, 1, "c.fp_addgrad_p", "x1_dims"], [18, 1, 1, "c.fp_addgrad_p", "x2_dims"]], "fp_addgrad_s": [[18, 1, 1, "c.fp_addgrad_s", "core_mask"], [18, 1, 1, "c.fp_addgrad_s", "dx1"], [18, 1, 1, "c.fp_addgrad_s", "dx2"], [18, 1, 1, "c.fp_addgrad_s", "dy"], [18, 1, 1, "c.fp_addgrad_s", "dy_dims"], [18, 1, 1, "c.fp_addgrad_s", "num_dims"], [18, 1, 1, "c.fp_addgrad_s", "x1_dims"], [18, 1, 1, "c.fp_addgrad_s", "x2_dims"]], "fp_addn_p": [[19, 1, 1, "c.fp_addn_p", "input0"], [19, 1, 1, "c.fp_addn_p", "input1"], [19, 1, 1, "c.fp_addn_p", "length"], [19, 1, 1, "c.fp_addn_p", "output"]], "fp_addn_s": [[19, 1, 1, "c.fp_addn_s", "core_mask"], [19, 1, 1, "c.fp_addn_s", "input0"], [19, 1, 1, "c.fp_addn_s", "input1"], [19, 1, 1, "c.fp_addn_s", "length"], [19, 1, 1, "c.fp_addn_s", "output"]], "fp_addrelu6_p": [[17, 1, 1, "c.fp_addrelu6_p", "in0"], [17, 1, 1, "c.fp_addrelu6_p", "in1"], [17, 1, 1, "c.fp_addrelu6_p", "out"], [17, 1, 1, "c.fp_addrelu6_p", "size"]], "fp_addrelu6_s": [[17, 1, 1, "c.fp_addrelu6_s", "core_mask"], [17, 1, 1, "c.fp_addrelu6_s", "in0"], [17, 1, 1, "c.fp_addrelu6_s", "in1"], [17, 1, 1, "c.fp_addrelu6_s", "out"], [17, 1, 1, "c.fp_addrelu6_s", "size"]], "fp_addrelu_p": [[17, 1, 1, "c.fp_addrelu_p", "in0"], [17, 1, 1, "c.fp_addrelu_p", "in1"], [17, 1, 1, "c.fp_addrelu_p", "out"], [17, 1, 1, "c.fp_addrelu_p", "size"]], "fp_addrelu_s": [[17, 1, 1, "c.fp_addrelu_s", "core_mask"], [17, 1, 1, "c.fp_addrelu_s", "in0"], [17, 1, 1, "c.fp_addrelu_s", "in1"], [17, 1, 1, "c.fp_addrelu_s", "out"], [17, 1, 1, "c.fp_addrelu_s", "size"]], "fp_affine_p": [[20, 1, 1, "c.fp_affine_p", "params"]], "fp_affine_s": [[20, 1, 1, "c.fp_affine_s", "core_mask"], [20, 1, 1, "c.fp_affine_s", "params"]], "fp_allgather_p": [[22, 1, 1, "c.fp_allgather_p", "data_size"], [22, 1, 1, "c.fp_allgather_p", "input"], [22, 1, 1, "c.fp_allgather_p", "input_rank"], [22, 1, 1, "c.fp_allgather_p", "output"], [22, 1, 1, "c.fp_allgather_p", "output_rank"]], "fp_allgather_s": [[22, 1, 1, "c.fp_allgather_s", "core_mask"], [22, 1, 1, "c.fp_allgather_s", "data_size"], [22, 1, 1, "c.fp_allgather_s", "input"], [22, 1, 1, "c.fp_allgather_s", "input_rank"], [22, 1, 1, "c.fp_allgather_s", "output"], [22, 1, 1, "c.fp_allgather_s", "output_rank"]], "fp_and_p": [[112, 1, 1, "c.fp_and_p", "input0"], [112, 1, 1, "c.fp_and_p", "input1"], [112, 1, 1, "c.fp_and_p", "length"], [112, 1, 1, "c.fp_and_p", "output"]], "fp_and_s": [[112, 1, 1, "c.fp_and_s", "core_mask"], [112, 1, 1, "c.fp_and_s", "input0"], [112, 1, 1, "c.fp_and_s", "input1"], [112, 1, 1, "c.fp_and_s", "length"], [112, 1, 1, "c.fp_and_s", "output"]], "fp_applymomentum_p": [[23, 1, 1, "c.fp_applymomentum_p", "accumulate"], [23, 1, 1, "c.fp_applymomentum_p", "gradient"], [23, 1, 1, "c.fp_applymomentum_p", "learning_rate"], [23, 1, 1, "c.fp_applymomentum_p", "length"], [23, 1, 1, "c.fp_applymomentum_p", "moment"], [23, 1, 1, "c.fp_applymomentum_p", "nesterov"], [23, 1, 1, "c.fp_applymomentum_p", "weight"]], "fp_applymomentum_s": [[23, 1, 1, "c.fp_applymomentum_s", "accumulate"], [23, 1, 1, "c.fp_applymomentum_s", "core_mask"], [23, 1, 1, "c.fp_applymomentum_s", "end"], [23, 1, 1, "c.fp_applymomentum_s", "gradient"], [23, 1, 1, "c.fp_applymomentum_s", "learning_rate"], [23, 1, 1, "c.fp_applymomentum_s", "moment"], [23, 1, 1, "c.fp_applymomentum_s", "nesterov"], [23, 1, 1, "c.fp_applymomentum_s", "start"], [23, 1, 1, "c.fp_applymomentum_s", "weight"]], "fp_argmax_p": [[24, 1, 1, "c.fp_argmax_p", "arg_elements"], [24, 1, 1, "c.fp_argmax_p", "axis"], [24, 1, 1, "c.fp_argmax_p", "in_shape"], [24, 1, 1, "c.fp_argmax_p", "in_strides"], [24, 1, 1, "c.fp_argmax_p", "index"], [24, 1, 1, "c.fp_argmax_p", "input"], [24, 1, 1, "c.fp_argmax_p", "input_shape_size"], [24, 1, 1, "c.fp_argmax_p", "out_strides"], [24, 1, 1, "c.fp_argmax_p", "out_value"], [24, 1, 1, "c.fp_argmax_p", "output"], [24, 1, 1, "c.fp_argmax_p", "output_value"], [24, 1, 1, "c.fp_argmax_p", "topk"]], "fp_argmax_s": [[24, 1, 1, "c.fp_argmax_s", "arg_elements"], [24, 1, 1, "c.fp_argmax_s", "axis"], [24, 1, 1, "c.fp_argmax_s", "core_mask"], [24, 1, 1, "c.fp_argmax_s", "in_shape"], [24, 1, 1, "c.fp_argmax_s", "in_strides"], [24, 1, 1, "c.fp_argmax_s", "index"], [24, 1, 1, "c.fp_argmax_s", "input"], [24, 1, 1, "c.fp_argmax_s", "input_shape_size"], [24, 1, 1, "c.fp_argmax_s", "out_strides"], [24, 1, 1, "c.fp_argmax_s", "out_value"], [24, 1, 1, "c.fp_argmax_s", "output"], [24, 1, 1, "c.fp_argmax_s", "output_value"], [24, 1, 1, "c.fp_argmax_s", "topk"]], "fp_argmin_p": [[25, 1, 1, "c.fp_argmin_p", "arg_elements"], [25, 1, 1, "c.fp_argmin_p", "axis"], [25, 1, 1, "c.fp_argmin_p", "in_shape"], [25, 1, 1, "c.fp_argmin_p", "in_strides"], [25, 1, 1, "c.fp_argmin_p", "index"], [25, 1, 1, "c.fp_argmin_p", "input"], [25, 1, 1, "c.fp_argmin_p", "input_shape_size"], [25, 1, 1, "c.fp_argmin_p", "out_strides"], [25, 1, 1, "c.fp_argmin_p", "out_value"], [25, 1, 1, "c.fp_argmin_p", "output"], [25, 1, 1, "c.fp_argmin_p", "output_value"], [25, 1, 1, "c.fp_argmin_p", "topk"]], "fp_argmin_s": [[25, 1, 1, "c.fp_argmin_s", "arg_elements"], [25, 1, 1, "c.fp_argmin_s", "axis"], [25, 1, 1, "c.fp_argmin_s", "core_mask"], [25, 1, 1, "c.fp_argmin_s", "in_shape"], [25, 1, 1, "c.fp_argmin_s", "in_strides"], [25, 1, 1, "c.fp_argmin_s", "index"], [25, 1, 1, "c.fp_argmin_s", "input"], [25, 1, 1, "c.fp_argmin_s", "input_shape_size"], [25, 1, 1, "c.fp_argmin_s", "out_strides"], [25, 1, 1, "c.fp_argmin_s", "out_value"], [25, 1, 1, "c.fp_argmin_s", "output"], [25, 1, 1, "c.fp_argmin_s", "output_value"], [25, 1, 1, "c.fp_argmin_s", "topk"]], "fp_assign_p": [[27, 1, 1, "c.fp_assign_p", "dst"], [27, 1, 1, "c.fp_assign_p", "length"], [27, 1, 1, "c.fp_assign_p", "src"]], "fp_assign_s": [[27, 1, 1, "c.fp_assign_s", "core_mask"], [27, 1, 1, "c.fp_assign_s", "dst"], [27, 1, 1, "c.fp_assign_s", "length"], [27, 1, 1, "c.fp_assign_s", "src"]], "fp_assignadd_p": [[28, 1, 1, "c.fp_assignadd_p", "input"], [28, 1, 1, "c.fp_assignadd_p", "length"], [28, 1, 1, "c.fp_assignadd_p", "output"]], "fp_assignadd_s": [[28, 1, 1, "c.fp_assignadd_s", "core_mask"], [28, 1, 1, "c.fp_assignadd_s", "input"], [28, 1, 1, "c.fp_assignadd_s", "length"], [28, 1, 1, "c.fp_assignadd_s", "output"]], "fp_attention_p": [[29, 1, 1, "c.fp_attention_p", "K"], [29, 1, 1, "c.fp_attention_p", "Q"], [29, 1, 1, "c.fp_attention_p", "QK"], [29, 1, 1, "c.fp_attention_p", "V"], [29, 1, 1, "c.fp_attention_p", "batch_size"], [29, 1, 1, "c.fp_attention_p", "head_dim"], [29, 1, 1, "c.fp_attention_p", "head_num"], [29, 1, 1, "c.fp_attention_p", "output"], [29, 1, 1, "c.fp_attention_p", "seq_len"], [29, 1, 1, "c.fp_attention_p", "softmax_out"]], "fp_attention_s": [[29, 1, 1, "c.fp_attention_s", "K"], [29, 1, 1, "c.fp_attention_s", "Q"], [29, 1, 1, "c.fp_attention_s", "QK"], [29, 1, 1, "c.fp_attention_s", "V"], [29, 1, 1, "c.fp_attention_s", "batch_size"], [29, 1, 1, "c.fp_attention_s", "core_mask"], [29, 1, 1, "c.fp_attention_s", "head_dim"], [29, 1, 1, "c.fp_attention_s", "head_num"], [29, 1, 1, "c.fp_attention_s", "output"], [29, 1, 1, "c.fp_attention_s", "seq_len"], [29, 1, 1, "c.fp_attention_s", "softmax_out"]], "fp_audio_spectrogram_p": [[30, 1, 1, "c.fp_audio_spectrogram_p", "params"], [30, 1, 1, "c.fp_audio_spectrogram_p", "workspace"]], "fp_audio_spectrogram_s": [[30, 1, 1, "c.fp_audio_spectrogram_s", "core_mask"], [30, 1, 1, "c.fp_audio_spectrogram_s", "params"], [30, 1, 1, "c.fp_audio_spectrogram_s", "workspace"]], "fp_avgpool_fusion_p": [[31, 1, 1, "c.fp_avgpool_fusion_p", "batch"], [31, 1, 1, "c.fp_avgpool_fusion_p", "channel"], [31, 1, 1, "c.fp_avgpool_fusion_p", "in_h"], [31, 1, 1, "c.fp_avgpool_fusion_p", "in_w"], [31, 1, 1, "c.fp_avgpool_fusion_p", "input"], [31, 1, 1, "c.fp_avgpool_fusion_p", "max_val"], [31, 1, 1, "c.fp_avgpool_fusion_p", "min_val"], [31, 1, 1, "c.fp_avgpool_fusion_p", "output"], [31, 1, 1, "c.fp_avgpool_fusion_p", "pad_bottom"], [31, 1, 1, "c.fp_avgpool_fusion_p", "pad_left"], [31, 1, 1, "c.fp_avgpool_fusion_p", "pad_right"], [31, 1, 1, "c.fp_avgpool_fusion_p", "pad_top"], [31, 1, 1, "c.fp_avgpool_fusion_p", "stride_h"], [31, 1, 1, "c.fp_avgpool_fusion_p", "stride_w"], [31, 1, 1, "c.fp_avgpool_fusion_p", "win_h"], [31, 1, 1, "c.fp_avgpool_fusion_p", "win_w"]], "fp_avgpool_fusion_s": [[31, 1, 1, "c.fp_avgpool_fusion_s", "batch"], [31, 1, 1, "c.fp_avgpool_fusion_s", "channel"], [31, 1, 1, "c.fp_avgpool_fusion_s", "core_mask"], [31, 1, 1, "c.fp_avgpool_fusion_s", "in_h"], [31, 1, 1, "c.fp_avgpool_fusion_s", "in_w"], [31, 1, 1, "c.fp_avgpool_fusion_s", "input"], [31, 1, 1, "c.fp_avgpool_fusion_s", "max_val"], [31, 1, 1, "c.fp_avgpool_fusion_s", "min_val"], [31, 1, 1, "c.fp_avgpool_fusion_s", "output"], [31, 1, 1, "c.fp_avgpool_fusion_s", "pad_bottom"], [31, 1, 1, "c.fp_avgpool_fusion_s", "pad_left"], [31, 1, 1, "c.fp_avgpool_fusion_s", "pad_right"], [31, 1, 1, "c.fp_avgpool_fusion_s", "pad_top"], [31, 1, 1, "c.fp_avgpool_fusion_s", "stride_h"], [31, 1, 1, "c.fp_avgpool_fusion_s", "stride_w"], [31, 1, 1, "c.fp_avgpool_fusion_s", "win_h"], [31, 1, 1, "c.fp_avgpool_fusion_s", "win_w"]], "fp_avgpoolinggrad_p": [[32, 1, 1, "c.fp_avgpoolinggrad_p", "batch"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "channel"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "end_idx"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "input"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "input_h"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "input_w"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "output"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "output_h"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "output_w"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "pad_l"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "pad_u"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "start_idx"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "stride_h"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "stride_w"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "window_h"], [32, 1, 1, "c.fp_avgpoolinggrad_p", "window_w"]], "fp_avgpoolinggrad_s": [[32, 1, 1, "c.fp_avgpoolinggrad_s", "batch"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "channel"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "core_mask"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "input"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "input_h"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "input_w"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "output"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "output_h"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "output_w"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "pad_l"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "pad_u"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "stride_h"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "stride_w"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "window_h"], [32, 1, 1, "c.fp_avgpoolinggrad_s", "window_w"]], "fp_batchnorm_p": [[33, 1, 1, "c.fp_batchnorm_p", "channel"], [33, 1, 1, "c.fp_batchnorm_p", "epsilon"], [33, 1, 1, "c.fp_batchnorm_p", "input"], [33, 1, 1, "c.fp_batchnorm_p", "mean"], [33, 1, 1, "c.fp_batchnorm_p", "output"], [33, 1, 1, "c.fp_batchnorm_p", "unit"], [33, 1, 1, "c.fp_batchnorm_p", "variance"]], "fp_batchnorm_s": [[33, 1, 1, "c.fp_batchnorm_s", "channel"], [33, 1, 1, "c.fp_batchnorm_s", "core_mask"], [33, 1, 1, "c.fp_batchnorm_s", "epsilon"], [33, 1, 1, "c.fp_batchnorm_s", "input"], [33, 1, 1, "c.fp_batchnorm_s", "mean"], [33, 1, 1, "c.fp_batchnorm_s", "output"], [33, 1, 1, "c.fp_batchnorm_s", "unit"], [33, 1, 1, "c.fp_batchnorm_s", "variance"]], "fp_batchnormgrad_p": [[34, 1, 1, "c.fp_batchnormgrad_p", "batch"], [34, 1, 1, "c.fp_batchnormgrad_p", "channel"], [34, 1, 1, "c.fp_batchnormgrad_p", "dbias"], [34, 1, 1, "c.fp_batchnormgrad_p", "dscale"], [34, 1, 1, "c.fp_batchnormgrad_p", "dx"], [34, 1, 1, "c.fp_batchnormgrad_p", "dy"], [34, 1, 1, "c.fp_batchnormgrad_p", "invar"], [34, 1, 1, "c.fp_batchnormgrad_p", "is_train"], [34, 1, 1, "c.fp_batchnormgrad_p", "mean"], [34, 1, 1, "c.fp_batchnormgrad_p", "scale"], [34, 1, 1, "c.fp_batchnormgrad_p", "x"]], "fp_batchnormgrad_s": [[34, 1, 1, "c.fp_batchnormgrad_s", "batch"], [34, 1, 1, "c.fp_batchnormgrad_s", "channel"], [34, 1, 1, "c.fp_batchnormgrad_s", "core_mask"], [34, 1, 1, "c.fp_batchnormgrad_s", "dbias"], [34, 1, 1, "c.fp_batchnormgrad_s", "dscale"], [34, 1, 1, "c.fp_batchnormgrad_s", "dx"], [34, 1, 1, "c.fp_batchnormgrad_s", "dy"], [34, 1, 1, "c.fp_batchnormgrad_s", "invar"], [34, 1, 1, "c.fp_batchnormgrad_s", "is_train"], [34, 1, 1, "c.fp_batchnormgrad_s", "mean"], [34, 1, 1, "c.fp_batchnormgrad_s", "scale"], [34, 1, 1, "c.fp_batchnormgrad_s", "x"]], "fp_batchtospace_p": [[35, 1, 1, "c.fp_batchtospace_p", "block_size"], [35, 1, 1, "c.fp_batchtospace_p", "crops"], [35, 1, 1, "c.fp_batchtospace_p", "data_size"], [35, 1, 1, "c.fp_batchtospace_p", "input"], [35, 1, 1, "c.fp_batchtospace_p", "input_shape"], [35, 1, 1, "c.fp_batchtospace_p", "output"]], "fp_batchtospace_s": [[35, 1, 1, "c.fp_batchtospace_s", "block_size"], [35, 1, 1, "c.fp_batchtospace_s", "core_mask"], [35, 1, 1, "c.fp_batchtospace_s", "crops"], [35, 1, 1, "c.fp_batchtospace_s", "data_size"], [35, 1, 1, "c.fp_batchtospace_s", "input"], [35, 1, 1, "c.fp_batchtospace_s", "input_shape"], [35, 1, 1, "c.fp_batchtospace_s", "output"]], "fp_batchtospacend_p": [[36, 1, 1, "c.fp_batchtospacend_p", "block_size"], [36, 1, 1, "c.fp_batchtospacend_p", "crops"], [36, 1, 1, "c.fp_batchtospacend_p", "data_size"], [36, 1, 1, "c.fp_batchtospacend_p", "input"], [36, 1, 1, "c.fp_batchtospacend_p", "input_shape"], [36, 1, 1, "c.fp_batchtospacend_p", "output"]], "fp_batchtospacend_s": [[36, 1, 1, "c.fp_batchtospacend_s", "block_size"], [36, 1, 1, "c.fp_batchtospacend_s", "core_mask"], [36, 1, 1, "c.fp_batchtospacend_s", "crops"], [36, 1, 1, "c.fp_batchtospacend_s", "data_size"], [36, 1, 1, "c.fp_batchtospacend_s", "input"], [36, 1, 1, "c.fp_batchtospacend_s", "input_shape"], [36, 1, 1, "c.fp_batchtospacend_s", "output"]], "fp_biasadd_p": [[37, 1, 1, "c.fp_biasadd_p", "data_format"], [37, 1, 1, "c.fp_biasadd_p", "dims"], [37, 1, 1, "c.fp_biasadd_p", "input_bias"], [37, 1, 1, "c.fp_biasadd_p", "input_x"], [37, 1, 1, "c.fp_biasadd_p", "length"], [37, 1, 1, "c.fp_biasadd_p", "output"], [37, 1, 1, "c.fp_biasadd_p", "shape_size"]], "fp_biasadd_s": [[37, 1, 1, "c.fp_biasadd_s", "core_mask"], [37, 1, 1, "c.fp_biasadd_s", "data_format"], [37, 1, 1, "c.fp_biasadd_s", "dims"], [37, 1, 1, "c.fp_biasadd_s", "input_bias"], [37, 1, 1, "c.fp_biasadd_s", "input_x"], [37, 1, 1, "c.fp_biasadd_s", "length"], [37, 1, 1, "c.fp_biasadd_s", "output"], [37, 1, 1, "c.fp_biasadd_s", "shape_size"]], "fp_biasaddgrad_p": [[38, 1, 1, "c.fp_biasaddgrad_p", "dbias"], [38, 1, 1, "c.fp_biasaddgrad_p", "dy"], [38, 1, 1, "c.fp_biasaddgrad_p", "dy_dims"], [38, 1, 1, "c.fp_biasaddgrad_p", "shape_size"]], "fp_biasaddgrad_s": [[38, 1, 1, "c.fp_biasaddgrad_s", "core_mask"], [38, 1, 1, "c.fp_biasaddgrad_s", "dbias"], [38, 1, 1, "c.fp_biasaddgrad_s", "dy"], [38, 1, 1, "c.fp_biasaddgrad_s", "dy_dims"], [38, 1, 1, "c.fp_biasaddgrad_s", "shape_size"]], "fp_binarycrossentropy_p": [[39, 1, 1, "c.fp_binarycrossentropy_p", "input_size"], [39, 1, 1, "c.fp_binarycrossentropy_p", "input_x"], [39, 1, 1, "c.fp_binarycrossentropy_p", "input_y"], [39, 1, 1, "c.fp_binarycrossentropy_p", "loss"], [39, 1, 1, "c.fp_binarycrossentropy_p", "reduction"], [39, 1, 1, "c.fp_binarycrossentropy_p", "tmp_loss"], [39, 1, 1, "c.fp_binarycrossentropy_p", "weight"], [39, 1, 1, "c.fp_binarycrossentropy_p", "weight_defined"]], "fp_binarycrossentropy_s": [[39, 1, 1, "c.fp_binarycrossentropy_s", "core_mask"], [39, 1, 1, "c.fp_binarycrossentropy_s", "input_size"], [39, 1, 1, "c.fp_binarycrossentropy_s", "input_x"], [39, 1, 1, "c.fp_binarycrossentropy_s", "input_y"], [39, 1, 1, "c.fp_binarycrossentropy_s", "loss"], [39, 1, 1, "c.fp_binarycrossentropy_s", "reduction"], [39, 1, 1, "c.fp_binarycrossentropy_s", "tmp_loss"], [39, 1, 1, "c.fp_binarycrossentropy_s", "weight"], [39, 1, 1, "c.fp_binarycrossentropy_s", "weight_defined"]], "fp_binarycrossentropygrad_p": [[40, 1, 1, "c.fp_binarycrossentropygrad_p", "dloss"], [40, 1, 1, "c.fp_binarycrossentropygrad_p", "dx"], [40, 1, 1, "c.fp_binarycrossentropygrad_p", "input_size"], [40, 1, 1, "c.fp_binarycrossentropygrad_p", "input_x"], [40, 1, 1, "c.fp_binarycrossentropygrad_p", "input_y"], [40, 1, 1, "c.fp_binarycrossentropygrad_p", "reduction"], [40, 1, 1, "c.fp_binarycrossentropygrad_p", "weight"], [40, 1, 1, "c.fp_binarycrossentropygrad_p", "weight_defined"]], "fp_binarycrossentropygrad_s": [[40, 1, 1, "c.fp_binarycrossentropygrad_s", "core_mask"], [40, 1, 1, "c.fp_binarycrossentropygrad_s", "dloss"], [40, 1, 1, "c.fp_binarycrossentropygrad_s", "dx"], [40, 1, 1, "c.fp_binarycrossentropygrad_s", "input_size"], [40, 1, 1, "c.fp_binarycrossentropygrad_s", "input_x"], [40, 1, 1, "c.fp_binarycrossentropygrad_s", "input_y"], [40, 1, 1, "c.fp_binarycrossentropygrad_s", "reduction"], [40, 1, 1, "c.fp_binarycrossentropygrad_s", "weight"], [40, 1, 1, "c.fp_binarycrossentropygrad_s", "weight_defined"]], "fp_broadcastto_p": [[41, 1, 1, "c.fp_broadcastto_p", "data_size"], [41, 1, 1, "c.fp_broadcastto_p", "input"], [41, 1, 1, "c.fp_broadcastto_p", "input_shape"], [41, 1, 1, "c.fp_broadcastto_p", "input_shape_size"], [41, 1, 1, "c.fp_broadcastto_p", "output"], [41, 1, 1, "c.fp_broadcastto_p", "output_shape"], [41, 1, 1, "c.fp_broadcastto_p", "output_shape_size"]], "fp_broadcastto_s": [[41, 1, 1, "c.fp_broadcastto_s", "core_mask"], [41, 1, 1, "c.fp_broadcastto_s", "data_size"], [41, 1, 1, "c.fp_broadcastto_s", "input"], [41, 1, 1, "c.fp_broadcastto_s", "input_shape"], [41, 1, 1, "c.fp_broadcastto_s", "input_shape_size"], [41, 1, 1, "c.fp_broadcastto_s", "output"], [41, 1, 1, "c.fp_broadcastto_s", "output_shape"], [41, 1, 1, "c.fp_broadcastto_s", "output_shape_size"]], "fp_ceil_p": [[43, 1, 1, "c.fp_ceil_p", "input_size"], [43, 1, 1, "c.fp_ceil_p", "input_x"], [43, 1, 1, "c.fp_ceil_p", "output"]], "fp_ceil_s": [[43, 1, 1, "c.fp_ceil_s", "core_mask"], [43, 1, 1, "c.fp_ceil_s", "input_size"], [43, 1, 1, "c.fp_ceil_s", "input_x"], [43, 1, 1, "c.fp_ceil_s", "output"]], "fp_celu_p": [[12, 1, 1, "c.fp_celu_p", "Input0"], [12, 1, 1, "c.fp_celu_p", "alpha"], [12, 1, 1, "c.fp_celu_p", "length"], [12, 1, 1, "c.fp_celu_p", "output"]], "fp_celu_s": [[12, 1, 1, "c.fp_celu_s", "Input0"], [12, 1, 1, "c.fp_celu_s", "alpha"], [12, 1, 1, "c.fp_celu_s", "core_mask"], [12, 1, 1, "c.fp_celu_s", "length"], [12, 1, 1, "c.fp_celu_s", "output"]], "fp_clip_p": [[12, 1, 1, "c.fp_clip_p", "Input0"], [12, 1, 1, "c.fp_clip_p", "length"], [12, 1, 1, "c.fp_clip_p", "max_val"], [12, 1, 1, "c.fp_clip_p", "min_val"], [12, 1, 1, "c.fp_clip_p", "output"]], "fp_clip_s": [[12, 1, 1, "c.fp_clip_s", "Input0"], [12, 1, 1, "c.fp_clip_s", "core_mask"], [12, 1, 1, "c.fp_clip_s", "length"], [12, 1, 1, "c.fp_clip_s", "max_val"], [12, 1, 1, "c.fp_clip_s", "min_val"], [12, 1, 1, "c.fp_clip_s", "output"]], "fp_concat_p": [[45, 1, 1, "c.fp_concat_p", "axis"], [45, 1, 1, "c.fp_concat_p", "input_ndim"], [45, 1, 1, "c.fp_concat_p", "input_shapes"], [45, 1, 1, "c.fp_concat_p", "inputs"], [45, 1, 1, "c.fp_concat_p", "num_inputs"], [45, 1, 1, "c.fp_concat_p", "output"]], "fp_concat_s": [[45, 1, 1, "c.fp_concat_s", "axis"], [45, 1, 1, "c.fp_concat_s", "core_mask"], [45, 1, 1, "c.fp_concat_s", "input_ndim"], [45, 1, 1, "c.fp_concat_s", "input_shapes"], [45, 1, 1, "c.fp_concat_s", "inputs"], [45, 1, 1, "c.fp_concat_s", "num_inputs"], [45, 1, 1, "c.fp_concat_s", "output"]], "fp_constant_of_shape_p": [[46, 1, 1, "c.fp_constant_of_shape_p", "end"], [46, 1, 1, "c.fp_constant_of_shape_p", "output"], [46, 1, 1, "c.fp_constant_of_shape_p", "start"], [46, 1, 1, "c.fp_constant_of_shape_p", "value"]], "fp_constant_of_shape_s": [[46, 1, 1, "c.fp_constant_of_shape_s", "core_mask"], [46, 1, 1, "c.fp_constant_of_shape_s", "end"], [46, 1, 1, "c.fp_constant_of_shape_s", "output"], [46, 1, 1, "c.fp_constant_of_shape_s", "start"], [46, 1, 1, "c.fp_constant_of_shape_s", "value"]], "fp_conv2d_p": [[47, 1, 1, "c.fp_conv2d_p", "bias"], [47, 1, 1, "c.fp_conv2d_p", "conv_param"], [47, 1, 1, "c.fp_conv2d_p", "core_mask"], [47, 1, 1, "c.fp_conv2d_p", "input_w"], [47, 1, 1, "c.fp_conv2d_p", "input_x"], [47, 1, 1, "c.fp_conv2d_p", "out_y"]], "fp_conv2d_s": [[47, 1, 1, "c.fp_conv2d_s", "bias"], [47, 1, 1, "c.fp_conv2d_s", "conv_param"], [47, 1, 1, "c.fp_conv2d_s", "core_mask"], [47, 1, 1, "c.fp_conv2d_s", "input_w"], [47, 1, 1, "c.fp_conv2d_s", "input_x"], [47, 1, 1, "c.fp_conv2d_s", "out_y"]], "fp_conv2dbackpropfilterfusion_p": [[49, 1, 1, "c.fp_conv2dbackpropfilterfusion_p", "conv_param"], [49, 1, 1, "c.fp_conv2dbackpropfilterfusion_p", "dw"], [49, 1, 1, "c.fp_conv2dbackpropfilterfusion_p", "dy"], [49, 1, 1, "c.fp_conv2dbackpropfilterfusion_p", "x"]], "fp_conv2dbackpropfilterfusion_s": [[49, 1, 1, "c.fp_conv2dbackpropfilterfusion_s", "conv_param"], [49, 1, 1, "c.fp_conv2dbackpropfilterfusion_s", "core_mask"], [49, 1, 1, "c.fp_conv2dbackpropfilterfusion_s", "dw"], [49, 1, 1, "c.fp_conv2dbackpropfilterfusion_s", "dy"], [49, 1, 1, "c.fp_conv2dbackpropfilterfusion_s", "x"]], "fp_conv2dbackpropinputfusion_p": [[50, 1, 1, "c.fp_conv2dbackpropinputfusion_p", "conv_param"], [50, 1, 1, "c.fp_conv2dbackpropinputfusion_p", "dx"], [50, 1, 1, "c.fp_conv2dbackpropinputfusion_p", "dy"], [50, 1, 1, "c.fp_conv2dbackpropinputfusion_p", "w"]], "fp_conv2dbackpropinputfusion_s": [[50, 1, 1, "c.fp_conv2dbackpropinputfusion_s", "conv_param"], [50, 1, 1, "c.fp_conv2dbackpropinputfusion_s", "core_mask"], [50, 1, 1, "c.fp_conv2dbackpropinputfusion_s", "dx"], [50, 1, 1, "c.fp_conv2dbackpropinputfusion_s", "dy"], [50, 1, 1, "c.fp_conv2dbackpropinputfusion_s", "w"]], "fp_convtranspose_p": [[48, 1, 1, "c.fp_convtranspose_p", "bias"], [48, 1, 1, "c.fp_convtranspose_p", "conv_param"], [48, 1, 1, "c.fp_convtranspose_p", "core_mask"], [48, 1, 1, "c.fp_convtranspose_p", "input_w"], [48, 1, 1, "c.fp_convtranspose_p", "input_x"], [48, 1, 1, "c.fp_convtranspose_p", "out_y"]], "fp_convtranspose_s": [[48, 1, 1, "c.fp_convtranspose_s", "bias"], [48, 1, 1, "c.fp_convtranspose_s", "conv_param"], [48, 1, 1, "c.fp_convtranspose_s", "core_mask"], [48, 1, 1, "c.fp_convtranspose_s", "input_w"], [48, 1, 1, "c.fp_convtranspose_s", "input_x"], [48, 1, 1, "c.fp_convtranspose_s", "out_y"]], "fp_cos_p": [[51, 1, 1, "c.fp_cos_p", "dst_data"], [51, 1, 1, "c.fp_cos_p", "length"], [51, 1, 1, "c.fp_cos_p", "src_data"]], "fp_cos_s": [[51, 1, 1, "c.fp_cos_s", "core_mask"], [51, 1, 1, "c.fp_cos_s", "dst_data"], [51, 1, 1, "c.fp_cos_s", "length"], [51, 1, 1, "c.fp_cos_s", "src_data"]], "fp_crop_and_resize_anycore": [[53, 1, 1, "c.fp_crop_and_resize_anycore", "box_idx"], [53, 1, 1, "c.fp_crop_and_resize_anycore", "boxes"], [53, 1, 1, "c.fp_crop_and_resize_anycore", "core_mask"], [53, 1, 1, "c.fp_crop_and_resize_anycore", "dst"], [53, 1, 1, "c.fp_crop_and_resize_anycore", "extrapolation_value"], [53, 1, 1, "c.fp_crop_and_resize_anycore", "param"], [53, 1, 1, "c.fp_crop_and_resize_anycore", "src"]], "fp_cumsum_p": [[54, 1, 1, "c.fp_cumsum_p", "axis_dim"], [54, 1, 1, "c.fp_cumsum_p", "exclusive"], [54, 1, 1, "c.fp_cumsum_p", "inner_dim"], [54, 1, 1, "c.fp_cumsum_p", "input"], [54, 1, 1, "c.fp_cumsum_p", "out_dim"], [54, 1, 1, "c.fp_cumsum_p", "output"]], "fp_cumsum_s": [[54, 1, 1, "c.fp_cumsum_s", "axis_dim"], [54, 1, 1, "c.fp_cumsum_s", "core_mask"], [54, 1, 1, "c.fp_cumsum_s", "exclusive"], [54, 1, 1, "c.fp_cumsum_s", "inner_dim"], [54, 1, 1, "c.fp_cumsum_s", "input"], [54, 1, 1, "c.fp_cumsum_s", "out_dim"], [54, 1, 1, "c.fp_cumsum_s", "output"]], "fp_deconvgradfilter_p": [[58, 1, 1, "c.fp_deconvgradfilter_p", "dw_data"], [58, 1, 1, "c.fp_deconvgradfilter_p", "dy_data"], [58, 1, 1, "c.fp_deconvgradfilter_p", "param"], [58, 1, 1, "c.fp_deconvgradfilter_p", "x_data"]], "fp_deconvgradfilter_s": [[58, 1, 1, "c.fp_deconvgradfilter_s", "core_mask"], [58, 1, 1, "c.fp_deconvgradfilter_s", "dw_data"], [58, 1, 1, "c.fp_deconvgradfilter_s", "dy_data"], [58, 1, 1, "c.fp_deconvgradfilter_s", "param"], [58, 1, 1, "c.fp_deconvgradfilter_s", "x_data"]], "fp_depthtospace_p": [[59, 1, 1, "c.fp_depthtospace_p", "block_size"], [59, 1, 1, "c.fp_depthtospace_p", "data_size"], [59, 1, 1, "c.fp_depthtospace_p", "in_shape"], [59, 1, 1, "c.fp_depthtospace_p", "input"], [59, 1, 1, "c.fp_depthtospace_p", "output"]], "fp_depthtospace_s": [[59, 1, 1, "c.fp_depthtospace_s", "block_size"], [59, 1, 1, "c.fp_depthtospace_s", "core_mask"], [59, 1, 1, "c.fp_depthtospace_s", "data_size"], [59, 1, 1, "c.fp_depthtospace_s", "in_shape"], [59, 1, 1, "c.fp_depthtospace_s", "input"], [59, 1, 1, "c.fp_depthtospace_s", "output"]], "fp_detection_post_process_p": [[60, 1, 1, "c.fp_detection_post_process_p", "anchors"], [60, 1, 1, "c.fp_detection_post_process_p", "input_boxes"], [60, 1, 1, "c.fp_detection_post_process_p", "input_scores"], [60, 1, 1, "c.fp_detection_post_process_p", "output_boxes"], [60, 1, 1, "c.fp_detection_post_process_p", "output_classes"], [60, 1, 1, "c.fp_detection_post_process_p", "output_num"], [60, 1, 1, "c.fp_detection_post_process_p", "output_scores"], [60, 1, 1, "c.fp_detection_post_process_p", "param"]], "fp_detection_post_process_s": [[60, 1, 1, "c.fp_detection_post_process_s", "anchors"], [60, 1, 1, "c.fp_detection_post_process_s", "core_mask"], [60, 1, 1, "c.fp_detection_post_process_s", "input_boxes"], [60, 1, 1, "c.fp_detection_post_process_s", "input_scores"], [60, 1, 1, "c.fp_detection_post_process_s", "output_boxes"], [60, 1, 1, "c.fp_detection_post_process_s", "output_classes"], [60, 1, 1, "c.fp_detection_post_process_s", "output_num"], [60, 1, 1, "c.fp_detection_post_process_s", "output_scores"], [60, 1, 1, "c.fp_detection_post_process_s", "param"]], "fp_div_fusion_p": [[61, 1, 1, "c.fp_div_fusion_p", "input0"], [61, 1, 1, "c.fp_div_fusion_p", "input1"], [61, 1, 1, "c.fp_div_fusion_p", "length"], [61, 1, 1, "c.fp_div_fusion_p", "output"]], "fp_div_fusion_s": [[61, 1, 1, "c.fp_div_fusion_s", "core_mask"], [61, 1, 1, "c.fp_div_fusion_s", "input0"], [61, 1, 1, "c.fp_div_fusion_s", "input1"], [61, 1, 1, "c.fp_div_fusion_s", "length"], [61, 1, 1, "c.fp_div_fusion_s", "output"]], "fp_dropout_p": [[63, 1, 1, "c.fp_dropout_p", "input"], [63, 1, 1, "c.fp_dropout_p", "length"], [63, 1, 1, "c.fp_dropout_p", "mask"], [63, 1, 1, "c.fp_dropout_p", "output"], [63, 1, 1, "c.fp_dropout_p", "scale"]], "fp_dropout_s": [[63, 1, 1, "c.fp_dropout_s", "core_mask"], [63, 1, 1, "c.fp_dropout_s", "input"], [63, 1, 1, "c.fp_dropout_s", "length"], [63, 1, 1, "c.fp_dropout_s", "mask"], [63, 1, 1, "c.fp_dropout_s", "output"], [63, 1, 1, "c.fp_dropout_s", "scale"]], "fp_dropoutgrad_p": [[64, 1, 1, "c.fp_dropoutgrad_p", "input"], [64, 1, 1, "c.fp_dropoutgrad_p", "length"], [64, 1, 1, "c.fp_dropoutgrad_p", "mask"], [64, 1, 1, "c.fp_dropoutgrad_p", "output"], [64, 1, 1, "c.fp_dropoutgrad_p", "scale"]], "fp_dropoutgrad_s": [[64, 1, 1, "c.fp_dropoutgrad_s", "core_mask"], [64, 1, 1, "c.fp_dropoutgrad_s", "input"], [64, 1, 1, "c.fp_dropoutgrad_s", "length"], [64, 1, 1, "c.fp_dropoutgrad_s", "mask"], [64, 1, 1, "c.fp_dropoutgrad_s", "output"], [64, 1, 1, "c.fp_dropoutgrad_s", "scale"]], "fp_eltwise_p": [[67, 1, 1, "c.fp_eltwise_p", "Input0"], [67, 1, 1, "c.fp_eltwise_p", "Input1"], [67, 1, 1, "c.fp_eltwise_p", "eltwise_mode_"], [67, 1, 1, "c.fp_eltwise_p", "length"], [67, 1, 1, "c.fp_eltwise_p", "output"]], "fp_eltwise_s": [[67, 1, 1, "c.fp_eltwise_s", "Input0"], [67, 1, 1, "c.fp_eltwise_s", "Input1"], [67, 1, 1, "c.fp_eltwise_s", "core_mask"], [67, 1, 1, "c.fp_eltwise_s", "eltwise_mode_"], [67, 1, 1, "c.fp_eltwise_s", "length"], [67, 1, 1, "c.fp_eltwise_s", "output"]], "fp_elu_grad_p": [[13, 1, 1, "c.fp_elu_grad_p", "alpha"], [13, 1, 1, "c.fp_elu_grad_p", "dst"], [13, 1, 1, "c.fp_elu_grad_p", "length"], [13, 1, 1, "c.fp_elu_grad_p", "src0"], [13, 1, 1, "c.fp_elu_grad_p", "src1"]], "fp_elu_grad_s": [[13, 1, 1, "c.fp_elu_grad_s", "alpha"], [13, 1, 1, "c.fp_elu_grad_s", "core_mask"], [13, 1, 1, "c.fp_elu_grad_s", "dst"], [13, 1, 1, "c.fp_elu_grad_s", "length"], [13, 1, 1, "c.fp_elu_grad_s", "src0"], [13, 1, 1, "c.fp_elu_grad_s", "src1"]], "fp_elu_p": [[12, 1, 1, "c.fp_elu_p", "Input0"], [12, 1, 1, "c.fp_elu_p", "alpha"], [12, 1, 1, "c.fp_elu_p", "length"], [12, 1, 1, "c.fp_elu_p", "output"]], "fp_elu_s": [[12, 1, 1, "c.fp_elu_s", "Input0"], [12, 1, 1, "c.fp_elu_s", "alpha"], [12, 1, 1, "c.fp_elu_s", "core_mask"], [12, 1, 1, "c.fp_elu_s", "length"], [12, 1, 1, "c.fp_elu_s", "output"]], "fp_embeddinglookup_p": [[69, 1, 1, "c.fp_embeddinglookup_p", "Input0"], [69, 1, 1, "c.fp_embeddinglookup_p", "Input1"], [69, 1, 1, "c.fp_embeddinglookup_p", "length"], [69, 1, 1, "c.fp_embeddinglookup_p", "output"]], "fp_embeddinglookup_s": [[69, 1, 1, "c.fp_embeddinglookup_s", "core_mask"], [69, 1, 1, "c.fp_embeddinglookup_s", "ids"], [69, 1, 1, "c.fp_embeddinglookup_s", "ids_size_"], [69, 1, 1, "c.fp_embeddinglookup_s", "input_data"], [69, 1, 1, "c.fp_embeddinglookup_s", "is_regulated"], [69, 1, 1, "c.fp_embeddinglookup_s", "layer_num_"], [69, 1, 1, "c.fp_embeddinglookup_s", "layer_size_"], [69, 1, 1, "c.fp_embeddinglookup_s", "max_norm_"], [69, 1, 1, "c.fp_embeddinglookup_s", "output"]], "fp_equal_p": [[70, 1, 1, "c.fp_equal_p", "Input0"], [70, 1, 1, "c.fp_equal_p", "Input1"], [70, 1, 1, "c.fp_equal_p", "length"], [70, 1, 1, "c.fp_equal_p", "output"]], "fp_equal_s": [[70, 1, 1, "c.fp_equal_s", "Input0"], [70, 1, 1, "c.fp_equal_s", "Input1"], [70, 1, 1, "c.fp_equal_s", "core_mask"], [70, 1, 1, "c.fp_equal_s", "length"], [70, 1, 1, "c.fp_equal_s", "output"]], "fp_erf_p": [[71, 1, 1, "c.fp_erf_p", "input"], [71, 1, 1, "c.fp_erf_p", "length"], [71, 1, 1, "c.fp_erf_p", "output"]], "fp_erf_s": [[71, 1, 1, "c.fp_erf_s", "core_mask"], [71, 1, 1, "c.fp_erf_s", "input"], [71, 1, 1, "c.fp_erf_s", "length"], [71, 1, 1, "c.fp_erf_s", "output"]], "fp_expfusion_p": [[73, 1, 1, "c.fp_expfusion_p", "dst_data"], [73, 1, 1, "c.fp_expfusion_p", "in_scale"], [73, 1, 1, "c.fp_expfusion_p", "length"], [73, 1, 1, "c.fp_expfusion_p", "out_scale"], [73, 1, 1, "c.fp_expfusion_p", "scale"], [73, 1, 1, "c.fp_expfusion_p", "src_data"]], "fp_expfusion_s": [[73, 1, 1, "c.fp_expfusion_s", "core_mask"], [73, 1, 1, "c.fp_expfusion_s", "dst_data"], [73, 1, 1, "c.fp_expfusion_s", "in_scale"], [73, 1, 1, "c.fp_expfusion_s", "length"], [73, 1, 1, "c.fp_expfusion_s", "out_scale"], [73, 1, 1, "c.fp_expfusion_s", "scale"], [73, 1, 1, "c.fp_expfusion_s", "src_data"]], "fp_extract_features_p": [[55, 1, 1, "c.fp_extract_features_p", "num_strings"], [55, 1, 1, "c.fp_extract_features_p", "output_labels"], [55, 1, 1, "c.fp_extract_features_p", "output_weights"], [55, 1, 1, "c.fp_extract_features_p", "string_lengths"], [55, 1, 1, "c.fp_extract_features_p", "string_pointers"]], "fp_extract_features_s": [[55, 1, 1, "c.fp_extract_features_s", "core_mask"], [55, 1, 1, "c.fp_extract_features_s", "num_strings"], [55, 1, 1, "c.fp_extract_features_s", "output_labels"], [55, 1, 1, "c.fp_extract_features_s", "output_weights"], [55, 1, 1, "c.fp_extract_features_s", "string_lengths"], [55, 1, 1, "c.fp_extract_features_s", "string_pointers"]], "fp_fake_quant_with_min_max_vars_p": [[74, 1, 1, "c.fp_fake_quant_with_min_max_vars_p", "length"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_p", "max_val"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_p", "min_val"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_p", "output"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_p", "quant_max"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_p", "quant_min"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_p", "src"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_p", "symmetric"]], "fp_fake_quant_with_min_max_vars_per_channel_p": [[75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_p", "channel_num"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_p", "length"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_p", "max_val"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_p", "min_val"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_p", "output"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_p", "quant_max"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_p", "quant_min"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_p", "src"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_p", "symmetric"]], "fp_fake_quant_with_min_max_vars_per_channel_s": [[75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_s", "channel_num"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_s", "core_mask"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_s", "length"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_s", "max_val"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_s", "min_val"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_s", "output"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_s", "quant_max"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_s", "quant_min"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_s", "src"], [75, 1, 1, "c.fp_fake_quant_with_min_max_vars_per_channel_s", "symmetric"]], "fp_fake_quant_with_min_max_vars_s": [[74, 1, 1, "c.fp_fake_quant_with_min_max_vars_s", "core_mask"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_s", "length"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_s", "max_val"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_s", "min_val"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_s", "output"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_s", "quant_max"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_s", "quant_min"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_s", "src"], [74, 1, 1, "c.fp_fake_quant_with_min_max_vars_s", "symmetric"]], "fp_fill_p": [[78, 1, 1, "c.fp_fill_p", "output"], [78, 1, 1, "c.fp_fill_p", "param"], [78, 1, 1, "c.fp_fill_p", "value"]], "fp_fill_s": [[78, 1, 1, "c.fp_fill_s", "core_mask"], [78, 1, 1, "c.fp_fill_s", "output"], [78, 1, 1, "c.fp_fill_s", "param"], [78, 1, 1, "c.fp_fill_s", "value"]], "fp_flattengrad_p": [[81, 1, 1, "c.fp_flattengrad_p", "input"], [81, 1, 1, "c.fp_flattengrad_p", "origin_ndim"], [81, 1, 1, "c.fp_flattengrad_p", "origin_shape"], [81, 1, 1, "c.fp_flattengrad_p", "output"]], "fp_flattengrad_s": [[81, 1, 1, "c.fp_flattengrad_s", "core_mask"], [81, 1, 1, "c.fp_flattengrad_s", "input"], [81, 1, 1, "c.fp_flattengrad_s", "origin_ndim"], [81, 1, 1, "c.fp_flattengrad_s", "origin_shape"], [81, 1, 1, "c.fp_flattengrad_s", "output"]], "fp_floor_p": [[82, 1, 1, "c.fp_floor_p", "dst_data"], [82, 1, 1, "c.fp_floor_p", "length"], [82, 1, 1, "c.fp_floor_p", "src_data"]], "fp_floor_s": [[82, 1, 1, "c.fp_floor_s", "core_mask"], [82, 1, 1, "c.fp_floor_s", "dst_data"], [82, 1, 1, "c.fp_floor_s", "length"], [82, 1, 1, "c.fp_floor_s", "src_data"]], "fp_floordiv_p": [[83, 1, 1, "c.fp_floordiv_p", "dst_data"], [83, 1, 1, "c.fp_floordiv_p", "length"], [83, 1, 1, "c.fp_floordiv_p", "src_data0"], [83, 1, 1, "c.fp_floordiv_p", "src_data1"]], "fp_floordiv_s": [[83, 1, 1, "c.fp_floordiv_s", "core_mask"], [83, 1, 1, "c.fp_floordiv_s", "dst_data"], [83, 1, 1, "c.fp_floordiv_s", "length"], [83, 1, 1, "c.fp_floordiv_s", "src_data0"], [83, 1, 1, "c.fp_floordiv_s", "src_data1"]], "fp_floormod_p": [[84, 1, 1, "c.fp_floormod_p", "input0"], [84, 1, 1, "c.fp_floormod_p", "input1"], [84, 1, 1, "c.fp_floormod_p", "output"], [84, 1, 1, "c.fp_floormod_p", "size"]], "fp_floormod_s": [[84, 1, 1, "c.fp_floormod_s", "core_mask"], [84, 1, 1, "c.fp_floormod_s", "input0"], [84, 1, 1, "c.fp_floormod_s", "input1"], [84, 1, 1, "c.fp_floormod_s", "output"], [84, 1, 1, "c.fp_floormod_s", "size"]], "fp_formattranspose_p": [[85, 1, 1, "c.fp_formattranspose_p", "batch"], [85, 1, 1, "c.fp_formattranspose_p", "channel"], [85, 1, 1, "c.fp_formattranspose_p", "dst_data"], [85, 1, 1, "c.fp_formattranspose_p", "dst_format"], [85, 1, 1, "c.fp_formattranspose_p", "plane"], [85, 1, 1, "c.fp_formattranspose_p", "src_data"], [85, 1, 1, "c.fp_formattranspose_p", "src_format"]], "fp_formattranspose_s": [[85, 1, 1, "c.fp_formattranspose_s", "batch"], [85, 1, 1, "c.fp_formattranspose_s", "channel"], [85, 1, 1, "c.fp_formattranspose_s", "core_mask"], [85, 1, 1, "c.fp_formattranspose_s", "dst_data"], [85, 1, 1, "c.fp_formattranspose_s", "dst_format"], [85, 1, 1, "c.fp_formattranspose_s", "plane"], [85, 1, 1, "c.fp_formattranspose_s", "src_data"], [85, 1, 1, "c.fp_formattranspose_s", "src_format"]], "fp_fullconnection_p": [[86, 1, 1, "c.fp_fullconnection_p", "A"], [86, 1, 1, "c.fp_fullconnection_p", "B"], [86, 1, 1, "c.fp_fullconnection_p", "C"], [86, 1, 1, "c.fp_fullconnection_p", "K"], [86, 1, 1, "c.fp_fullconnection_p", "M"], [86, 1, 1, "c.fp_fullconnection_p", "N"], [86, 1, 1, "c.fp_fullconnection_p", "activation_type"], [86, 1, 1, "c.fp_fullconnection_p", "bias"]], "fp_fullconnection_s": [[86, 1, 1, "c.fp_fullconnection_s", "A"], [86, 1, 1, "c.fp_fullconnection_s", "B"], [86, 1, 1, "c.fp_fullconnection_s", "C"], [86, 1, 1, "c.fp_fullconnection_s", "K"], [86, 1, 1, "c.fp_fullconnection_s", "M"], [86, 1, 1, "c.fp_fullconnection_s", "N"], [86, 1, 1, "c.fp_fullconnection_s", "activation_type"], [86, 1, 1, "c.fp_fullconnection_s", "bias"], [86, 1, 1, "c.fp_fullconnection_s", "core_mask"]], "fp_fusedbatchnorm_p": [[87, 1, 1, "c.fp_fusedbatchnorm_p", "channel"], [87, 1, 1, "c.fp_fusedbatchnorm_p", "epsilon"], [87, 1, 1, "c.fp_fusedbatchnorm_p", "input"], [87, 1, 1, "c.fp_fusedbatchnorm_p", "mean"], [87, 1, 1, "c.fp_fusedbatchnorm_p", "offset"], [87, 1, 1, "c.fp_fusedbatchnorm_p", "output"], [87, 1, 1, "c.fp_fusedbatchnorm_p", "scale"], [87, 1, 1, "c.fp_fusedbatchnorm_p", "unit"], [87, 1, 1, "c.fp_fusedbatchnorm_p", "variance"]], "fp_fusedbatchnorm_s": [[87, 1, 1, "c.fp_fusedbatchnorm_s", "channel"], [87, 1, 1, "c.fp_fusedbatchnorm_s", "core_mask"], [87, 1, 1, "c.fp_fusedbatchnorm_s", "epsilon"], [87, 1, 1, "c.fp_fusedbatchnorm_s", "input"], [87, 1, 1, "c.fp_fusedbatchnorm_s", "mean"], [87, 1, 1, "c.fp_fusedbatchnorm_s", "offset"], [87, 1, 1, "c.fp_fusedbatchnorm_s", "output"], [87, 1, 1, "c.fp_fusedbatchnorm_s", "scale"], [87, 1, 1, "c.fp_fusedbatchnorm_s", "unit"], [87, 1, 1, "c.fp_fusedbatchnorm_s", "variance"]], "fp_gather_nd_p": [[89, 1, 1, "c.fp_gather_nd_p", "indices"], [89, 1, 1, "c.fp_gather_nd_p", "indices_ndim"], [89, 1, 1, "c.fp_gather_nd_p", "indices_shape"], [89, 1, 1, "c.fp_gather_nd_p", "input"], [89, 1, 1, "c.fp_gather_nd_p", "input_ndim"], [89, 1, 1, "c.fp_gather_nd_p", "input_shape"], [89, 1, 1, "c.fp_gather_nd_p", "output"]], "fp_gather_nd_s": [[89, 1, 1, "c.fp_gather_nd_s", "core_mask"], [89, 1, 1, "c.fp_gather_nd_s", "indices"], [89, 1, 1, "c.fp_gather_nd_s", "indices_ndim"], [89, 1, 1, "c.fp_gather_nd_s", "indices_shape"], [89, 1, 1, "c.fp_gather_nd_s", "input"], [89, 1, 1, "c.fp_gather_nd_s", "input_ndim"], [89, 1, 1, "c.fp_gather_nd_s", "input_shape"], [89, 1, 1, "c.fp_gather_nd_s", "output"]], "fp_gather_p": [[88, 1, 1, "c.fp_gather_p", "axis"], [88, 1, 1, "c.fp_gather_p", "batch_dims"], [88, 1, 1, "c.fp_gather_p", "indices"], [88, 1, 1, "c.fp_gather_p", "indices_ndim"], [88, 1, 1, "c.fp_gather_p", "indices_shape"], [88, 1, 1, "c.fp_gather_p", "input"], [88, 1, 1, "c.fp_gather_p", "input_ndim"], [88, 1, 1, "c.fp_gather_p", "input_shape"], [88, 1, 1, "c.fp_gather_p", "output"]], "fp_gather_s": [[88, 1, 1, "c.fp_gather_s", "axis"], [88, 1, 1, "c.fp_gather_s", "batch_dims"], [88, 1, 1, "c.fp_gather_s", "core_mask"], [88, 1, 1, "c.fp_gather_s", "indices"], [88, 1, 1, "c.fp_gather_s", "indices_ndim"], [88, 1, 1, "c.fp_gather_s", "indices_shape"], [88, 1, 1, "c.fp_gather_s", "input"], [88, 1, 1, "c.fp_gather_s", "input_ndim"], [88, 1, 1, "c.fp_gather_s", "input_shape"], [88, 1, 1, "c.fp_gather_s", "output"]], "fp_gatherd_p": [[90, 1, 1, "c.fp_gatherd_p", "dim"], [90, 1, 1, "c.fp_gatherd_p", "index"], [90, 1, 1, "c.fp_gatherd_p", "index_shape"], [90, 1, 1, "c.fp_gatherd_p", "input_shape"], [90, 1, 1, "c.fp_gatherd_p", "input_shape_size"], [90, 1, 1, "c.fp_gatherd_p", "input_x"], [90, 1, 1, "c.fp_gatherd_p", "output"]], "fp_gatherd_s": [[90, 1, 1, "c.fp_gatherd_s", "core_mask"], [90, 1, 1, "c.fp_gatherd_s", "dim"], [90, 1, 1, "c.fp_gatherd_s", "index"], [90, 1, 1, "c.fp_gatherd_s", "index_shape"], [90, 1, 1, "c.fp_gatherd_s", "input_shape"], [90, 1, 1, "c.fp_gatherd_s", "input_shape_size"], [90, 1, 1, "c.fp_gatherd_s", "input_x"], [90, 1, 1, "c.fp_gatherd_s", "output"]], "fp_gelu_grad_p": [[13, 1, 1, "c.fp_gelu_grad_p", "dst"], [13, 1, 1, "c.fp_gelu_grad_p", "length"], [13, 1, 1, "c.fp_gelu_grad_p", "src0"], [13, 1, 1, "c.fp_gelu_grad_p", "src1"]], "fp_gelu_grad_s": [[13, 1, 1, "c.fp_gelu_grad_s", "core_mask"], [13, 1, 1, "c.fp_gelu_grad_s", "dst"], [13, 1, 1, "c.fp_gelu_grad_s", "length"], [13, 1, 1, "c.fp_gelu_grad_s", "src0"], [13, 1, 1, "c.fp_gelu_grad_s", "src1"]], "fp_gelu_p": [[12, 1, 1, "c.fp_gelu_p", "Input0"], [12, 1, 1, "c.fp_gelu_p", "approximate"], [12, 1, 1, "c.fp_gelu_p", "length"], [12, 1, 1, "c.fp_gelu_p", "output"]], "fp_gelu_s": [[12, 1, 1, "c.fp_gelu_s", "Input0"], [12, 1, 1, "c.fp_gelu_s", "approximate"], [12, 1, 1, "c.fp_gelu_s", "core_mask"], [12, 1, 1, "c.fp_gelu_s", "length"], [12, 1, 1, "c.fp_gelu_s", "output"]], "fp_glu_p": [[91, 1, 1, "c.fp_glu_p", "in_data"], [91, 1, 1, "c.fp_glu_p", "input_shape"], [91, 1, 1, "c.fp_glu_p", "len"], [91, 1, 1, "c.fp_glu_p", "ndim"], [91, 1, 1, "c.fp_glu_p", "num_split"], [91, 1, 1, "c.fp_glu_p", "out_data"], [91, 1, 1, "c.fp_glu_p", "split_data"], [91, 1, 1, "c.fp_glu_p", "split_dim"], [91, 1, 1, "c.fp_glu_p", "split_sizes"], [91, 1, 1, "c.fp_glu_p", "strides"]], "fp_glu_s": [[91, 1, 1, "c.fp_glu_s", "core_mask"], [91, 1, 1, "c.fp_glu_s", "in_data"], [91, 1, 1, "c.fp_glu_s", "input_shape"], [91, 1, 1, "c.fp_glu_s", "len"], [91, 1, 1, "c.fp_glu_s", "ndim"], [91, 1, 1, "c.fp_glu_s", "num_split"], [91, 1, 1, "c.fp_glu_s", "out_data"], [91, 1, 1, "c.fp_glu_s", "split_data"], [91, 1, 1, "c.fp_glu_s", "split_dim"], [91, 1, 1, "c.fp_glu_s", "split_sizes"], [91, 1, 1, "c.fp_glu_s", "strides"]], "fp_graddiv1l_p": [[62, 1, 1, "c.fp_graddiv1l_p", "dx1"], [62, 1, 1, "c.fp_graddiv1l_p", "dx2"], [62, 1, 1, "c.fp_graddiv1l_p", "dy"], [62, 1, 1, "c.fp_graddiv1l_p", "indices"], [62, 1, 1, "c.fp_graddiv1l_p", "large_multiples"], [62, 1, 1, "c.fp_graddiv1l_p", "large_shape"], [62, 1, 1, "c.fp_graddiv1l_p", "large_strides"], [62, 1, 1, "c.fp_graddiv1l_p", "ndims"], [62, 1, 1, "c.fp_graddiv1l_p", "out_shape"], [62, 1, 1, "c.fp_graddiv1l_p", "out_strides"], [62, 1, 1, "c.fp_graddiv1l_p", "small_multiples"], [62, 1, 1, "c.fp_graddiv1l_p", "small_shape"], [62, 1, 1, "c.fp_graddiv1l_p", "small_strides"], [62, 1, 1, "c.fp_graddiv1l_p", "tile_data0"], [62, 1, 1, "c.fp_graddiv1l_p", "tile_data1"], [62, 1, 1, "c.fp_graddiv1l_p", "tile_data2"], [62, 1, 1, "c.fp_graddiv1l_p", "x1"], [62, 1, 1, "c.fp_graddiv1l_p", "x2"]], "fp_graddiv1l_s": [[62, 1, 1, "c.fp_graddiv1l_s", "core_mask"], [62, 1, 1, "c.fp_graddiv1l_s", "dx1"], [62, 1, 1, "c.fp_graddiv1l_s", "dx2"], [62, 1, 1, "c.fp_graddiv1l_s", "dy"], [62, 1, 1, "c.fp_graddiv1l_s", "indices"], [62, 1, 1, "c.fp_graddiv1l_s", "large_multiples"], [62, 1, 1, "c.fp_graddiv1l_s", "large_shape"], [62, 1, 1, "c.fp_graddiv1l_s", "large_strides"], [62, 1, 1, "c.fp_graddiv1l_s", "ndims"], [62, 1, 1, "c.fp_graddiv1l_s", "out_shape"], [62, 1, 1, "c.fp_graddiv1l_s", "out_strides"], [62, 1, 1, "c.fp_graddiv1l_s", "small_multiples"], [62, 1, 1, "c.fp_graddiv1l_s", "small_shape"], [62, 1, 1, "c.fp_graddiv1l_s", "small_strides"], [62, 1, 1, "c.fp_graddiv1l_s", "tile_data0"], [62, 1, 1, "c.fp_graddiv1l_s", "tile_data1"], [62, 1, 1, "c.fp_graddiv1l_s", "tile_data2"], [62, 1, 1, "c.fp_graddiv1l_s", "x1"], [62, 1, 1, "c.fp_graddiv1l_s", "x2"]], "fp_graddiv2l_p": [[62, 1, 1, "c.fp_graddiv2l_p", "dx1"], [62, 1, 1, "c.fp_graddiv2l_p", "dx2"], [62, 1, 1, "c.fp_graddiv2l_p", "dy"], [62, 1, 1, "c.fp_graddiv2l_p", "indices"], [62, 1, 1, "c.fp_graddiv2l_p", "large_multiples"], [62, 1, 1, "c.fp_graddiv2l_p", "large_shape"], [62, 1, 1, "c.fp_graddiv2l_p", "large_strides"], [62, 1, 1, "c.fp_graddiv2l_p", "ndims"], [62, 1, 1, "c.fp_graddiv2l_p", "out_shape"], [62, 1, 1, "c.fp_graddiv2l_p", "out_strides"], [62, 1, 1, "c.fp_graddiv2l_p", "small_multiples"], [62, 1, 1, "c.fp_graddiv2l_p", "small_shape"], [62, 1, 1, "c.fp_graddiv2l_p", "small_strides"], [62, 1, 1, "c.fp_graddiv2l_p", "tile_data0"], [62, 1, 1, "c.fp_graddiv2l_p", "tile_data1"], [62, 1, 1, "c.fp_graddiv2l_p", "tile_data2"], [62, 1, 1, "c.fp_graddiv2l_p", "x1"], [62, 1, 1, "c.fp_graddiv2l_p", "x2"]], "fp_graddiv2l_s": [[62, 1, 1, "c.fp_graddiv2l_s", "core_mask"], [62, 1, 1, "c.fp_graddiv2l_s", "dx1"], [62, 1, 1, "c.fp_graddiv2l_s", "dx2"], [62, 1, 1, "c.fp_graddiv2l_s", "dy"], [62, 1, 1, "c.fp_graddiv2l_s", "indices"], [62, 1, 1, "c.fp_graddiv2l_s", "large_multiples"], [62, 1, 1, "c.fp_graddiv2l_s", "large_shape"], [62, 1, 1, "c.fp_graddiv2l_s", "large_strides"], [62, 1, 1, "c.fp_graddiv2l_s", "ndims"], [62, 1, 1, "c.fp_graddiv2l_s", "out_shape"], [62, 1, 1, "c.fp_graddiv2l_s", "out_strides"], [62, 1, 1, "c.fp_graddiv2l_s", "small_multiples"], [62, 1, 1, "c.fp_graddiv2l_s", "small_shape"], [62, 1, 1, "c.fp_graddiv2l_s", "small_strides"], [62, 1, 1, "c.fp_graddiv2l_s", "tile_data0"], [62, 1, 1, "c.fp_graddiv2l_s", "tile_data1"], [62, 1, 1, "c.fp_graddiv2l_s", "tile_data2"], [62, 1, 1, "c.fp_graddiv2l_s", "x1"], [62, 1, 1, "c.fp_graddiv2l_s", "x2"]], "fp_graddiv_p": [[62, 1, 1, "c.fp_graddiv_p", "dx1"], [62, 1, 1, "c.fp_graddiv_p", "dx2"], [62, 1, 1, "c.fp_graddiv_p", "dy"], [62, 1, 1, "c.fp_graddiv_p", "indices"], [62, 1, 1, "c.fp_graddiv_p", "large_multiples"], [62, 1, 1, "c.fp_graddiv_p", "large_shape"], [62, 1, 1, "c.fp_graddiv_p", "large_strides"], [62, 1, 1, "c.fp_graddiv_p", "ndims"], [62, 1, 1, "c.fp_graddiv_p", "out_shape"], [62, 1, 1, "c.fp_graddiv_p", "out_strides"], [62, 1, 1, "c.fp_graddiv_p", "small_multiples"], [62, 1, 1, "c.fp_graddiv_p", "small_shape"], [62, 1, 1, "c.fp_graddiv_p", "small_strides"], [62, 1, 1, "c.fp_graddiv_p", "tile_data0"], [62, 1, 1, "c.fp_graddiv_p", "tile_data1"], [62, 1, 1, "c.fp_graddiv_p", "tile_data2"], [62, 1, 1, "c.fp_graddiv_p", "x1"], [62, 1, 1, "c.fp_graddiv_p", "x2"]], "fp_graddiv_s": [[62, 1, 1, "c.fp_graddiv_s", "core_mask"], [62, 1, 1, "c.fp_graddiv_s", "dx1"], [62, 1, 1, "c.fp_graddiv_s", "dx2"], [62, 1, 1, "c.fp_graddiv_s", "dy"], [62, 1, 1, "c.fp_graddiv_s", "indices"], [62, 1, 1, "c.fp_graddiv_s", "large_multiples"], [62, 1, 1, "c.fp_graddiv_s", "large_shape"], [62, 1, 1, "c.fp_graddiv_s", "large_strides"], [62, 1, 1, "c.fp_graddiv_s", "ndims"], [62, 1, 1, "c.fp_graddiv_s", "out_shape"], [62, 1, 1, "c.fp_graddiv_s", "out_strides"], [62, 1, 1, "c.fp_graddiv_s", "small_multiples"], [62, 1, 1, "c.fp_graddiv_s", "small_shape"], [62, 1, 1, "c.fp_graddiv_s", "small_strides"], [62, 1, 1, "c.fp_graddiv_s", "tile_data0"], [62, 1, 1, "c.fp_graddiv_s", "tile_data1"], [62, 1, 1, "c.fp_graddiv_s", "tile_data2"], [62, 1, 1, "c.fp_graddiv_s", "x1"], [62, 1, 1, "c.fp_graddiv_s", "x2"]], "fp_gradmul1l_p": [[131, 1, 1, "c.fp_gradmul1l_p", "dx1"], [131, 1, 1, "c.fp_gradmul1l_p", "dx2"], [131, 1, 1, "c.fp_gradmul1l_p", "dy"], [131, 1, 1, "c.fp_gradmul1l_p", "indices"], [131, 1, 1, "c.fp_gradmul1l_p", "large_multiples"], [131, 1, 1, "c.fp_gradmul1l_p", "large_shape"], [131, 1, 1, "c.fp_gradmul1l_p", "large_strides"], [131, 1, 1, "c.fp_gradmul1l_p", "ndims"], [131, 1, 1, "c.fp_gradmul1l_p", "out_shape"], [131, 1, 1, "c.fp_gradmul1l_p", "out_strides"], [131, 1, 1, "c.fp_gradmul1l_p", "small_multiples"], [131, 1, 1, "c.fp_gradmul1l_p", "small_shape"], [131, 1, 1, "c.fp_gradmul1l_p", "small_strides"], [131, 1, 1, "c.fp_gradmul1l_p", "tile_data0"], [131, 1, 1, "c.fp_gradmul1l_p", "tile_data1"], [131, 1, 1, "c.fp_gradmul1l_p", "x1"], [131, 1, 1, "c.fp_gradmul1l_p", "x2"]], "fp_gradmul1l_s": [[131, 1, 1, "c.fp_gradmul1l_s", "core_mask"], [131, 1, 1, "c.fp_gradmul1l_s", "dx1"], [131, 1, 1, "c.fp_gradmul1l_s", "dx2"], [131, 1, 1, "c.fp_gradmul1l_s", "dy"], [131, 1, 1, "c.fp_gradmul1l_s", "indices"], [131, 1, 1, "c.fp_gradmul1l_s", "large_multiples"], [131, 1, 1, "c.fp_gradmul1l_s", "large_shape"], [131, 1, 1, "c.fp_gradmul1l_s", "large_strides"], [131, 1, 1, "c.fp_gradmul1l_s", "ndims"], [131, 1, 1, "c.fp_gradmul1l_s", "out_shape"], [131, 1, 1, "c.fp_gradmul1l_s", "out_strides"], [131, 1, 1, "c.fp_gradmul1l_s", "small_multiples"], [131, 1, 1, "c.fp_gradmul1l_s", "small_shape"], [131, 1, 1, "c.fp_gradmul1l_s", "small_strides"], [131, 1, 1, "c.fp_gradmul1l_s", "tile_data0"], [131, 1, 1, "c.fp_gradmul1l_s", "tile_data1"], [131, 1, 1, "c.fp_gradmul1l_s", "x1"], [131, 1, 1, "c.fp_gradmul1l_s", "x2"]], "fp_gradmul2l_p": [[131, 1, 1, "c.fp_gradmul2l_p", "dx1"], [131, 1, 1, "c.fp_gradmul2l_p", "dx2"], [131, 1, 1, "c.fp_gradmul2l_p", "dy"], [131, 1, 1, "c.fp_gradmul2l_p", "indices"], [131, 1, 1, "c.fp_gradmul2l_p", "large_multiples"], [131, 1, 1, "c.fp_gradmul2l_p", "large_shape"], [131, 1, 1, "c.fp_gradmul2l_p", "large_strides"], [131, 1, 1, "c.fp_gradmul2l_p", "ndims"], [131, 1, 1, "c.fp_gradmul2l_p", "out_shape"], [131, 1, 1, "c.fp_gradmul2l_p", "out_strides"], [131, 1, 1, "c.fp_gradmul2l_p", "small_multiples"], [131, 1, 1, "c.fp_gradmul2l_p", "small_shape"], [131, 1, 1, "c.fp_gradmul2l_p", "small_strides"], [131, 1, 1, "c.fp_gradmul2l_p", "tile_data0"], [131, 1, 1, "c.fp_gradmul2l_p", "tile_data1"], [131, 1, 1, "c.fp_gradmul2l_p", "x1"], [131, 1, 1, "c.fp_gradmul2l_p", "x2"]], "fp_gradmul2l_s": [[131, 1, 1, "c.fp_gradmul2l_s", "core_mask"], [131, 1, 1, "c.fp_gradmul2l_s", "dx1"], [131, 1, 1, "c.fp_gradmul2l_s", "dx2"], [131, 1, 1, "c.fp_gradmul2l_s", "dy"], [131, 1, 1, "c.fp_gradmul2l_s", "indices"], [131, 1, 1, "c.fp_gradmul2l_s", "large_multiples"], [131, 1, 1, "c.fp_gradmul2l_s", "large_shape"], [131, 1, 1, "c.fp_gradmul2l_s", "large_strides"], [131, 1, 1, "c.fp_gradmul2l_s", "ndims"], [131, 1, 1, "c.fp_gradmul2l_s", "out_shape"], [131, 1, 1, "c.fp_gradmul2l_s", "out_strides"], [131, 1, 1, "c.fp_gradmul2l_s", "small_multiples"], [131, 1, 1, "c.fp_gradmul2l_s", "small_shape"], [131, 1, 1, "c.fp_gradmul2l_s", "small_strides"], [131, 1, 1, "c.fp_gradmul2l_s", "tile_data0"], [131, 1, 1, "c.fp_gradmul2l_s", "tile_data1"], [131, 1, 1, "c.fp_gradmul2l_s", "x1"], [131, 1, 1, "c.fp_gradmul2l_s", "x2"]], "fp_gradmul_p": [[131, 1, 1, "c.fp_gradmul_p", "dx1"], [131, 1, 1, "c.fp_gradmul_p", "dx2"], [131, 1, 1, "c.fp_gradmul_p", "dy"], [131, 1, 1, "c.fp_gradmul_p", "indices"], [131, 1, 1, "c.fp_gradmul_p", "large_multiples"], [131, 1, 1, "c.fp_gradmul_p", "large_shape"], [131, 1, 1, "c.fp_gradmul_p", "large_strides"], [131, 1, 1, "c.fp_gradmul_p", "ndims"], [131, 1, 1, "c.fp_gradmul_p", "out_shape"], [131, 1, 1, "c.fp_gradmul_p", "out_strides"], [131, 1, 1, "c.fp_gradmul_p", "small_multiples"], [131, 1, 1, "c.fp_gradmul_p", "small_shape"], [131, 1, 1, "c.fp_gradmul_p", "small_strides"], [131, 1, 1, "c.fp_gradmul_p", "tile_data0"], [131, 1, 1, "c.fp_gradmul_p", "tile_data1"], [131, 1, 1, "c.fp_gradmul_p", "x1"], [131, 1, 1, "c.fp_gradmul_p", "x2"]], "fp_gradmul_s": [[131, 1, 1, "c.fp_gradmul_s", "core_mask"], [131, 1, 1, "c.fp_gradmul_s", "dx1"], [131, 1, 1, "c.fp_gradmul_s", "dx2"], [131, 1, 1, "c.fp_gradmul_s", "dy"], [131, 1, 1, "c.fp_gradmul_s", "indices"], [131, 1, 1, "c.fp_gradmul_s", "large_multiples"], [131, 1, 1, "c.fp_gradmul_s", "large_shape"], [131, 1, 1, "c.fp_gradmul_s", "large_strides"], [131, 1, 1, "c.fp_gradmul_s", "ndims"], [131, 1, 1, "c.fp_gradmul_s", "out_shape"], [131, 1, 1, "c.fp_gradmul_s", "out_strides"], [131, 1, 1, "c.fp_gradmul_s", "small_multiples"], [131, 1, 1, "c.fp_gradmul_s", "small_shape"], [131, 1, 1, "c.fp_gradmul_s", "small_strides"], [131, 1, 1, "c.fp_gradmul_s", "tile_data0"], [131, 1, 1, "c.fp_gradmul_s", "tile_data1"], [131, 1, 1, "c.fp_gradmul_s", "x1"], [131, 1, 1, "c.fp_gradmul_s", "x2"]], "fp_greater_p": [[92, 1, 1, "c.fp_greater_p", "element_num"], [92, 1, 1, "c.fp_greater_p", "in_elements_num0"], [92, 1, 1, "c.fp_greater_p", "input1"], [92, 1, 1, "c.fp_greater_p", "input2"], [92, 1, 1, "c.fp_greater_p", "optimize"], [92, 1, 1, "c.fp_greater_p", "output"]], "fp_greater_s": [[92, 1, 1, "c.fp_greater_s", "core_mask"], [92, 1, 1, "c.fp_greater_s", "element_num"], [92, 1, 1, "c.fp_greater_s", "in_elements_num0"], [92, 1, 1, "c.fp_greater_s", "input1"], [92, 1, 1, "c.fp_greater_s", "input2"], [92, 1, 1, "c.fp_greater_s", "optimize"], [92, 1, 1, "c.fp_greater_s", "output"]], "fp_greaterequal_p": [[93, 1, 1, "c.fp_greaterequal_p", "element_num"], [93, 1, 1, "c.fp_greaterequal_p", "in_elements_num0"], [93, 1, 1, "c.fp_greaterequal_p", "input1"], [93, 1, 1, "c.fp_greaterequal_p", "input2"], [93, 1, 1, "c.fp_greaterequal_p", "optimize"], [93, 1, 1, "c.fp_greaterequal_p", "output"]], "fp_greaterequal_s": [[93, 1, 1, "c.fp_greaterequal_s", "core_mask"], [93, 1, 1, "c.fp_greaterequal_s", "element_num"], [93, 1, 1, "c.fp_greaterequal_s", "in_elements_num0"], [93, 1, 1, "c.fp_greaterequal_s", "input1"], [93, 1, 1, "c.fp_greaterequal_s", "input2"], [93, 1, 1, "c.fp_greaterequal_s", "optimize"], [93, 1, 1, "c.fp_greaterequal_s", "output"]], "fp_groupnormfusion_p": [[94, 1, 1, "c.fp_groupnormfusion_p", "batch"], [94, 1, 1, "c.fp_groupnormfusion_p", "channel"], [94, 1, 1, "c.fp_groupnormfusion_p", "epsilon"], [94, 1, 1, "c.fp_groupnormfusion_p", "input"], [94, 1, 1, "c.fp_groupnormfusion_p", "mean"], [94, 1, 1, "c.fp_groupnormfusion_p", "num_groups"], [94, 1, 1, "c.fp_groupnormfusion_p", "offset"], [94, 1, 1, "c.fp_groupnormfusion_p", "output"], [94, 1, 1, "c.fp_groupnormfusion_p", "scale"], [94, 1, 1, "c.fp_groupnormfusion_p", "unit"], [94, 1, 1, "c.fp_groupnormfusion_p", "variance"]], "fp_groupnormfusion_s": [[94, 1, 1, "c.fp_groupnormfusion_s", "batch"], [94, 1, 1, "c.fp_groupnormfusion_s", "channel"], [94, 1, 1, "c.fp_groupnormfusion_s", "core_mask"], [94, 1, 1, "c.fp_groupnormfusion_s", "epsilon"], [94, 1, 1, "c.fp_groupnormfusion_s", "input"], [94, 1, 1, "c.fp_groupnormfusion_s", "mean"], [94, 1, 1, "c.fp_groupnormfusion_s", "num_groups"], [94, 1, 1, "c.fp_groupnormfusion_s", "offset"], [94, 1, 1, "c.fp_groupnormfusion_s", "output"], [94, 1, 1, "c.fp_groupnormfusion_s", "scale"], [94, 1, 1, "c.fp_groupnormfusion_s", "unit"], [94, 1, 1, "c.fp_groupnormfusion_s", "variance"]], "fp_h_sigmoid_grad_p": [[13, 1, 1, "c.fp_h_sigmoid_grad_p", "dst"], [13, 1, 1, "c.fp_h_sigmoid_grad_p", "length"], [13, 1, 1, "c.fp_h_sigmoid_grad_p", "src0"], [13, 1, 1, "c.fp_h_sigmoid_grad_p", "src1"]], "fp_h_sigmoid_grad_s": [[13, 1, 1, "c.fp_h_sigmoid_grad_s", "core_mask"], [13, 1, 1, "c.fp_h_sigmoid_grad_s", "dst"], [13, 1, 1, "c.fp_h_sigmoid_grad_s", "length"], [13, 1, 1, "c.fp_h_sigmoid_grad_s", "src0"], [13, 1, 1, "c.fp_h_sigmoid_grad_s", "src1"]], "fp_h_swish_grad_p": [[13, 1, 1, "c.fp_h_swish_grad_p", "dst"], [13, 1, 1, "c.fp_h_swish_grad_p", "length"], [13, 1, 1, "c.fp_h_swish_grad_p", "src0"], [13, 1, 1, "c.fp_h_swish_grad_p", "src1"]], "fp_h_swish_grad_s": [[13, 1, 1, "c.fp_h_swish_grad_s", "core_mask"], [13, 1, 1, "c.fp_h_swish_grad_s", "dst"], [13, 1, 1, "c.fp_h_swish_grad_s", "length"], [13, 1, 1, "c.fp_h_swish_grad_s", "src0"], [13, 1, 1, "c.fp_h_swish_grad_s", "src1"]], "fp_hard_shrink_grad_p": [[13, 1, 1, "c.fp_hard_shrink_grad_p", "dst"], [13, 1, 1, "c.fp_hard_shrink_grad_p", "lambd"], [13, 1, 1, "c.fp_hard_shrink_grad_p", "length"], [13, 1, 1, "c.fp_hard_shrink_grad_p", "src0"], [13, 1, 1, "c.fp_hard_shrink_grad_p", "src1"]], "fp_hard_shrink_grad_s": [[13, 1, 1, "c.fp_hard_shrink_grad_s", "core_mask"], [13, 1, 1, "c.fp_hard_shrink_grad_s", "dst"], [13, 1, 1, "c.fp_hard_shrink_grad_s", "lambd"], [13, 1, 1, "c.fp_hard_shrink_grad_s", "length"], [13, 1, 1, "c.fp_hard_shrink_grad_s", "src0"], [13, 1, 1, "c.fp_hard_shrink_grad_s", "src1"]], "fp_hardshrink_p": [[12, 1, 1, "c.fp_hardshrink_p", "Input0"], [12, 1, 1, "c.fp_hardshrink_p", "lambd"], [12, 1, 1, "c.fp_hardshrink_p", "length"], [12, 1, 1, "c.fp_hardshrink_p", "output"]], "fp_hardshrink_s": [[12, 1, 1, "c.fp_hardshrink_s", "Input0"], [12, 1, 1, "c.fp_hardshrink_s", "core_mask"], [12, 1, 1, "c.fp_hardshrink_s", "lambd"], [12, 1, 1, "c.fp_hardshrink_s", "length"], [12, 1, 1, "c.fp_hardshrink_s", "output"]], "fp_hardtanh_p": [[12, 1, 1, "c.fp_hardtanh_p", "Input0"], [12, 1, 1, "c.fp_hardtanh_p", "length"], [12, 1, 1, "c.fp_hardtanh_p", "max_val"], [12, 1, 1, "c.fp_hardtanh_p", "min_val"], [12, 1, 1, "c.fp_hardtanh_p", "output"]], "fp_hardtanh_s": [[12, 1, 1, "c.fp_hardtanh_s", "Input0"], [12, 1, 1, "c.fp_hardtanh_s", "core_mask"], [12, 1, 1, "c.fp_hardtanh_s", "length"], [12, 1, 1, "c.fp_hardtanh_s", "max_val"], [12, 1, 1, "c.fp_hardtanh_s", "min_val"], [12, 1, 1, "c.fp_hardtanh_s", "output"]], "fp_hsigmoid_p": [[12, 1, 1, "c.fp_hsigmoid_p", "Input0"], [12, 1, 1, "c.fp_hsigmoid_p", "length"], [12, 1, 1, "c.fp_hsigmoid_p", "output"]], "fp_hsigmoid_s": [[12, 1, 1, "c.fp_hsigmoid_s", "Input0"], [12, 1, 1, "c.fp_hsigmoid_s", "core_mask"], [12, 1, 1, "c.fp_hsigmoid_s", "length"], [12, 1, 1, "c.fp_hsigmoid_s", "output"]], "fp_hswish_p": [[12, 1, 1, "c.fp_hswish_p", "Input0"], [12, 1, 1, "c.fp_hswish_p", "length"], [12, 1, 1, "c.fp_hswish_p", "output"]], "fp_hswish_s": [[12, 1, 1, "c.fp_hswish_s", "Input0"], [12, 1, 1, "c.fp_hswish_s", "core_mask"], [12, 1, 1, "c.fp_hswish_s", "length"], [12, 1, 1, "c.fp_hswish_s", "output"]], "fp_instancenorm_p": [[97, 1, 1, "c.fp_instancenorm_p", "batch"], [97, 1, 1, "c.fp_instancenorm_p", "beta"], [97, 1, 1, "c.fp_instancenorm_p", "channel"], [97, 1, 1, "c.fp_instancenorm_p", "epsilon"], [97, 1, 1, "c.fp_instancenorm_p", "gamma"], [97, 1, 1, "c.fp_instancenorm_p", "inner_size"], [97, 1, 1, "c.fp_instancenorm_p", "input"], [97, 1, 1, "c.fp_instancenorm_p", "output"]], "fp_instancenorm_s": [[97, 1, 1, "c.fp_instancenorm_s", "batch"], [97, 1, 1, "c.fp_instancenorm_s", "beta"], [97, 1, 1, "c.fp_instancenorm_s", "channel"], [97, 1, 1, "c.fp_instancenorm_s", "core_mask"], [97, 1, 1, "c.fp_instancenorm_s", "epsilon"], [97, 1, 1, "c.fp_instancenorm_s", "gamma"], [97, 1, 1, "c.fp_instancenorm_s", "inner_size"], [97, 1, 1, "c.fp_instancenorm_s", "input"], [97, 1, 1, "c.fp_instancenorm_s", "output"]], "fp_isfinite_p": [[99, 1, 1, "c.fp_isfinite_p", "Input"], [99, 1, 1, "c.fp_isfinite_p", "length"], [99, 1, 1, "c.fp_isfinite_p", "output"]], "fp_isfinite_s": [[99, 1, 1, "c.fp_isfinite_s", "Input"], [99, 1, 1, "c.fp_isfinite_s", "core_mask"], [99, 1, 1, "c.fp_isfinite_s", "length"], [99, 1, 1, "c.fp_isfinite_s", "output"]], "fp_l2norm_p": [[100, 1, 1, "c.fp_l2norm_p", "Input"], [100, 1, 1, "c.fp_l2norm_p", "is_relu"], [100, 1, 1, "c.fp_l2norm_p", "is_relu6"], [100, 1, 1, "c.fp_l2norm_p", "length"], [100, 1, 1, "c.fp_l2norm_p", "output"], [100, 1, 1, "c.fp_l2norm_p", "sqrt_sum"]], "fp_l2norm_s": [[100, 1, 1, "c.fp_l2norm_s", "Input"], [100, 1, 1, "c.fp_l2norm_s", "core_mask"], [100, 1, 1, "c.fp_l2norm_s", "is_relu"], [100, 1, 1, "c.fp_l2norm_s", "is_relu6"], [100, 1, 1, "c.fp_l2norm_s", "length"], [100, 1, 1, "c.fp_l2norm_s", "output"], [100, 1, 1, "c.fp_l2norm_s", "sqrt_sum"]], "fp_l_relu_grad_p": [[13, 1, 1, "c.fp_l_relu_grad_p", "alpha"], [13, 1, 1, "c.fp_l_relu_grad_p", "dst"], [13, 1, 1, "c.fp_l_relu_grad_p", "length"], [13, 1, 1, "c.fp_l_relu_grad_p", "src0"], [13, 1, 1, "c.fp_l_relu_grad_p", "src1"]], "fp_l_relu_grad_s": [[13, 1, 1, "c.fp_l_relu_grad_s", "alpha"], [13, 1, 1, "c.fp_l_relu_grad_s", "core_mask"], [13, 1, 1, "c.fp_l_relu_grad_s", "dst"], [13, 1, 1, "c.fp_l_relu_grad_s", "length"], [13, 1, 1, "c.fp_l_relu_grad_s", "src0"], [13, 1, 1, "c.fp_l_relu_grad_s", "src1"]], "fp_layernormfusion_p": [[101, 1, 1, "c.fp_layernormfusion_p", "beta_data"], [101, 1, 1, "c.fp_layernormfusion_p", "dst_data"], [101, 1, 1, "c.fp_layernormfusion_p", "epsilon"], [101, 1, 1, "c.fp_layernormfusion_p", "gamma_data"], [101, 1, 1, "c.fp_layernormfusion_p", "norm_inner_size"], [101, 1, 1, "c.fp_layernormfusion_p", "norm_outer_size"], [101, 1, 1, "c.fp_layernormfusion_p", "out_mean"], [101, 1, 1, "c.fp_layernormfusion_p", "out_variance"], [101, 1, 1, "c.fp_layernormfusion_p", "param_inner_size"], [101, 1, 1, "c.fp_layernormfusion_p", "param_outer_size"], [101, 1, 1, "c.fp_layernormfusion_p", "src_data"]], "fp_layernormfusion_s": [[101, 1, 1, "c.fp_layernormfusion_s", "Input0"], [101, 1, 1, "c.fp_layernormfusion_s", "beta_data"], [101, 1, 1, "c.fp_layernormfusion_s", "core_mask"], [101, 1, 1, "c.fp_layernormfusion_s", "epsilon"], [101, 1, 1, "c.fp_layernormfusion_s", "gamma_data"], [101, 1, 1, "c.fp_layernormfusion_s", "length"], [101, 1, 1, "c.fp_layernormfusion_s", "norm_inner_size"], [101, 1, 1, "c.fp_layernormfusion_s", "norm_outer_size"], [101, 1, 1, "c.fp_layernormfusion_s", "out_mean"], [101, 1, 1, "c.fp_layernormfusion_s", "out_variance"], [101, 1, 1, "c.fp_layernormfusion_s", "output"], [101, 1, 1, "c.fp_layernormfusion_s", "param_inner_size"], [101, 1, 1, "c.fp_layernormfusion_s", "param_outer_size"]], "fp_layernormgrad_p": [[102, 1, 1, "c.fp_layernormgrad_p", "block_num"], [102, 1, 1, "c.fp_layernormgrad_p", "block_size"], [102, 1, 1, "c.fp_layernormgrad_p", "db"], [102, 1, 1, "c.fp_layernormgrad_p", "dg"], [102, 1, 1, "c.fp_layernormgrad_p", "dx"], [102, 1, 1, "c.fp_layernormgrad_p", "dy"], [102, 1, 1, "c.fp_layernormgrad_p", "gamma"], [102, 1, 1, "c.fp_layernormgrad_p", "mean"], [102, 1, 1, "c.fp_layernormgrad_p", "param_num"], [102, 1, 1, "c.fp_layernormgrad_p", "param_size"], [102, 1, 1, "c.fp_layernormgrad_p", "var"], [102, 1, 1, "c.fp_layernormgrad_p", "x"]], "fp_layernormgrad_s": [[102, 1, 1, "c.fp_layernormgrad_s", "block_num"], [102, 1, 1, "c.fp_layernormgrad_s", "block_size"], [102, 1, 1, "c.fp_layernormgrad_s", "core_mask"], [102, 1, 1, "c.fp_layernormgrad_s", "db"], [102, 1, 1, "c.fp_layernormgrad_s", "dg"], [102, 1, 1, "c.fp_layernormgrad_s", "dx"], [102, 1, 1, "c.fp_layernormgrad_s", "dy"], [102, 1, 1, "c.fp_layernormgrad_s", "gamma"], [102, 1, 1, "c.fp_layernormgrad_s", "mean"], [102, 1, 1, "c.fp_layernormgrad_s", "param_num"], [102, 1, 1, "c.fp_layernormgrad_s", "param_size"], [102, 1, 1, "c.fp_layernormgrad_s", "var"], [102, 1, 1, "c.fp_layernormgrad_s", "x"]], "fp_leaky_relu_p": [[103, 1, 1, "c.fp_leaky_relu_p", "alpha"], [103, 1, 1, "c.fp_leaky_relu_p", "core_mask"], [103, 1, 1, "c.fp_leaky_relu_p", "elem_cnt"], [103, 1, 1, "c.fp_leaky_relu_p", "input"], [103, 1, 1, "c.fp_leaky_relu_p", "output"]], "fp_leaky_relu_s": [[103, 1, 1, "c.fp_leaky_relu_s", "alpha"], [103, 1, 1, "c.fp_leaky_relu_s", "core_mask"], [103, 1, 1, "c.fp_leaky_relu_s", "elem_cnt"], [103, 1, 1, "c.fp_leaky_relu_s", "input"], [103, 1, 1, "c.fp_leaky_relu_s", "output"]], "fp_less_p": [[104, 1, 1, "c.fp_less_p", "Input0"], [104, 1, 1, "c.fp_less_p", "Input1"], [104, 1, 1, "c.fp_less_p", "in_elements_num0"], [104, 1, 1, "c.fp_less_p", "length"], [104, 1, 1, "c.fp_less_p", "optimize"], [104, 1, 1, "c.fp_less_p", "output"]], "fp_less_s": [[104, 1, 1, "c.fp_less_s", "Input0"], [104, 1, 1, "c.fp_less_s", "Input1"], [104, 1, 1, "c.fp_less_s", "core_mask"], [104, 1, 1, "c.fp_less_s", "in_elements_num0"], [104, 1, 1, "c.fp_less_s", "length"], [104, 1, 1, "c.fp_less_s", "optimize"], [104, 1, 1, "c.fp_less_s", "output"]], "fp_lessequal_p": [[105, 1, 1, "c.fp_lessequal_p", "Input0"], [105, 1, 1, "c.fp_lessequal_p", "Input1"], [105, 1, 1, "c.fp_lessequal_p", "in_elements_num0"], [105, 1, 1, "c.fp_lessequal_p", "length"], [105, 1, 1, "c.fp_lessequal_p", "optimize"], [105, 1, 1, "c.fp_lessequal_p", "output"]], "fp_lessequal_s": [[105, 1, 1, "c.fp_lessequal_s", "Input0"], [105, 1, 1, "c.fp_lessequal_s", "Input1"], [105, 1, 1, "c.fp_lessequal_s", "core_mask"], [105, 1, 1, "c.fp_lessequal_s", "in_elements_num0"], [105, 1, 1, "c.fp_lessequal_s", "length"], [105, 1, 1, "c.fp_lessequal_s", "optimize"], [105, 1, 1, "c.fp_lessequal_s", "output"]], "fp_linspace_p": [[106, 1, 1, "c.fp_linspace_p", "num"], [106, 1, 1, "c.fp_linspace_p", "output"], [106, 1, 1, "c.fp_linspace_p", "start"], [106, 1, 1, "c.fp_linspace_p", "step"]], "fp_linspace_s": [[106, 1, 1, "c.fp_linspace_s", "core_mask"], [106, 1, 1, "c.fp_linspace_s", "end"], [106, 1, 1, "c.fp_linspace_s", "length"], [106, 1, 1, "c.fp_linspace_s", "output"], [106, 1, 1, "c.fp_linspace_s", "start"]], "fp_log1p_p": [[108, 1, 1, "c.fp_log1p_p", "Input"], [108, 1, 1, "c.fp_log1p_p", "length"], [108, 1, 1, "c.fp_log1p_p", "output"]], "fp_log1p_s": [[108, 1, 1, "c.fp_log1p_s", "Input"], [108, 1, 1, "c.fp_log1p_s", "core_mask"], [108, 1, 1, "c.fp_log1p_s", "length"], [108, 1, 1, "c.fp_log1p_s", "output"]], "fp_log_grad_p": [[109, 1, 1, "c.fp_log_grad_p", "input0"], [109, 1, 1, "c.fp_log_grad_p", "input1"], [109, 1, 1, "c.fp_log_grad_p", "length"], [109, 1, 1, "c.fp_log_grad_p", "output"]], "fp_log_grad_s": [[109, 1, 1, "c.fp_log_grad_s", "core_mask"], [109, 1, 1, "c.fp_log_grad_s", "input0"], [109, 1, 1, "c.fp_log_grad_s", "input1"], [109, 1, 1, "c.fp_log_grad_s", "length"], [109, 1, 1, "c.fp_log_grad_s", "output"]], "fp_log_p": [[107, 1, 1, "c.fp_log_p", "input"], [107, 1, 1, "c.fp_log_p", "length"], [107, 1, 1, "c.fp_log_p", "output"]], "fp_log_s": [[107, 1, 1, "c.fp_log_s", "core_mask"], [107, 1, 1, "c.fp_log_s", "input"], [107, 1, 1, "c.fp_log_s", "length"], [107, 1, 1, "c.fp_log_s", "output"]], "fp_logical_not_p": [[110, 1, 1, "c.fp_logical_not_p", "input"], [110, 1, 1, "c.fp_logical_not_p", "length"], [110, 1, 1, "c.fp_logical_not_p", "output"]], "fp_logical_not_s": [[110, 1, 1, "c.fp_logical_not_s", "core_mask"], [110, 1, 1, "c.fp_logical_not_s", "input"], [110, 1, 1, "c.fp_logical_not_s", "length"], [110, 1, 1, "c.fp_logical_not_s", "output"]], "fp_logical_or_p": [[111, 1, 1, "c.fp_logical_or_p", "input0"], [111, 1, 1, "c.fp_logical_or_p", "input1"], [111, 1, 1, "c.fp_logical_or_p", "length"], [111, 1, 1, "c.fp_logical_or_p", "output"]], "fp_logical_or_s": [[111, 1, 1, "c.fp_logical_or_s", "core_mask"], [111, 1, 1, "c.fp_logical_or_s", "input0"], [111, 1, 1, "c.fp_logical_or_s", "input1"], [111, 1, 1, "c.fp_logical_or_s", "length"], [111, 1, 1, "c.fp_logical_or_s", "output"]], "fp_logsoftmax_p": [[113, 1, 1, "c.fp_logsoftmax_p", "axis"], [113, 1, 1, "c.fp_logsoftmax_p", "axis_size"], [113, 1, 1, "c.fp_logsoftmax_p", "inner_size"], [113, 1, 1, "c.fp_logsoftmax_p", "input_ptr"], [113, 1, 1, "c.fp_logsoftmax_p", "n_dim"], [113, 1, 1, "c.fp_logsoftmax_p", "output_ptr"], [113, 1, 1, "c.fp_logsoftmax_p", "outter_size"], [113, 1, 1, "c.fp_logsoftmax_p", "sum_data"]], "fp_logsoftmax_s": [[113, 1, 1, "c.fp_logsoftmax_s", "axis"], [113, 1, 1, "c.fp_logsoftmax_s", "axis_size"], [113, 1, 1, "c.fp_logsoftmax_s", "core_mask"], [113, 1, 1, "c.fp_logsoftmax_s", "inner_size"], [113, 1, 1, "c.fp_logsoftmax_s", "input_ptr"], [113, 1, 1, "c.fp_logsoftmax_s", "n_dim"], [113, 1, 1, "c.fp_logsoftmax_s", "output_ptr"], [113, 1, 1, "c.fp_logsoftmax_s", "outter_size"], [113, 1, 1, "c.fp_logsoftmax_s", "sum_data"]], "fp_lpnorm_p": [[114, 1, 1, "c.fp_lpnorm_p", "batch"], [114, 1, 1, "c.fp_lpnorm_p", "beta"], [114, 1, 1, "c.fp_lpnorm_p", "channel"], [114, 1, 1, "c.fp_lpnorm_p", "epsilon"], [114, 1, 1, "c.fp_lpnorm_p", "gamma"], [114, 1, 1, "c.fp_lpnorm_p", "inner_size"], [114, 1, 1, "c.fp_lpnorm_p", "input"], [114, 1, 1, "c.fp_lpnorm_p", "output"], [114, 1, 1, "c.fp_lpnorm_p", "p"]], "fp_lpnorm_s": [[114, 1, 1, "c.fp_lpnorm_s", "batch"], [114, 1, 1, "c.fp_lpnorm_s", "beta"], [114, 1, 1, "c.fp_lpnorm_s", "channel"], [114, 1, 1, "c.fp_lpnorm_s", "core_mask"], [114, 1, 1, "c.fp_lpnorm_s", "epsilon"], [114, 1, 1, "c.fp_lpnorm_s", "gamma"], [114, 1, 1, "c.fp_lpnorm_s", "inner_size"], [114, 1, 1, "c.fp_lpnorm_s", "input"], [114, 1, 1, "c.fp_lpnorm_s", "output"], [114, 1, 1, "c.fp_lpnorm_s", "p"]], "fp_lrelu_p": [[12, 1, 1, "c.fp_lrelu_p", "Input0"], [12, 1, 1, "c.fp_lrelu_p", "alpha"], [12, 1, 1, "c.fp_lrelu_p", "length"], [12, 1, 1, "c.fp_lrelu_p", "output"]], "fp_lrelu_s": [[12, 1, 1, "c.fp_lrelu_s", "Input0"], [12, 1, 1, "c.fp_lrelu_s", "alpha"], [12, 1, 1, "c.fp_lrelu_s", "core_mask"], [12, 1, 1, "c.fp_lrelu_s", "length"], [12, 1, 1, "c.fp_lrelu_s", "output"]], "fp_lrn_p": [[115, 1, 1, "c.fp_lrn_p", "alpha"], [115, 1, 1, "c.fp_lrn_p", "beta"], [115, 1, 1, "c.fp_lrn_p", "bias"], [115, 1, 1, "c.fp_lrn_p", "channel"], [115, 1, 1, "c.fp_lrn_p", "depth_radius"], [115, 1, 1, "c.fp_lrn_p", "input"], [115, 1, 1, "c.fp_lrn_p", "out_size"], [115, 1, 1, "c.fp_lrn_p", "output"]], "fp_lrn_s": [[115, 1, 1, "c.fp_lrn_s", "alpha"], [115, 1, 1, "c.fp_lrn_s", "beta"], [115, 1, 1, "c.fp_lrn_s", "bias"], [115, 1, 1, "c.fp_lrn_s", "channel"], [115, 1, 1, "c.fp_lrn_s", "core_mask"], [115, 1, 1, "c.fp_lrn_s", "depth_radius"], [115, 1, 1, "c.fp_lrn_s", "input"], [115, 1, 1, "c.fp_lrn_s", "out_size"], [115, 1, 1, "c.fp_lrn_s", "output"]], "fp_lsh_projection_p": [[116, 1, 1, "c.fp_lsh_projection_p", "bits_per_hash"], [116, 1, 1, "c.fp_lsh_projection_p", "feature"], [116, 1, 1, "c.fp_lsh_projection_p", "feature_num"], [116, 1, 1, "c.fp_lsh_projection_p", "hash_group_num"], [116, 1, 1, "c.fp_lsh_projection_p", "hash_seed"], [116, 1, 1, "c.fp_lsh_projection_p", "output"], [116, 1, 1, "c.fp_lsh_projection_p", "weight"]], "fp_lsh_projection_s": [[116, 1, 1, "c.fp_lsh_projection_s", "bits_per_hash"], [116, 1, 1, "c.fp_lsh_projection_s", "core_mask"], [116, 1, 1, "c.fp_lsh_projection_s", "feature"], [116, 1, 1, "c.fp_lsh_projection_s", "feature_num"], [116, 1, 1, "c.fp_lsh_projection_s", "hash_group_num"], [116, 1, 1, "c.fp_lsh_projection_s", "hash_seed"], [116, 1, 1, "c.fp_lsh_projection_s", "output"], [116, 1, 1, "c.fp_lsh_projection_s", "weight"]], "fp_lstmgrad_p": [[118, 1, 1, "c.fp_lstmgrad_p", "dynamic_params"], [118, 1, 1, "c.fp_lstmgrad_p", "params"]], "fp_lstmgrad_s": [[118, 1, 1, "c.fp_lstmgrad_s", "core_mask"], [118, 1, 1, "c.fp_lstmgrad_s", "dynamic_params"], [118, 1, 1, "c.fp_lstmgrad_s", "params"]], "fp_lstmgraddata_p": [[119, 1, 1, "c.fp_lstmgraddata_p", "dynamic_params"], [119, 1, 1, "c.fp_lstmgraddata_p", "params"]], "fp_lstmgraddata_s": [[119, 1, 1, "c.fp_lstmgraddata_s", "core_mask"], [119, 1, 1, "c.fp_lstmgraddata_s", "dynamic_params"], [119, 1, 1, "c.fp_lstmgraddata_s", "params"]], "fp_lstmgradweight_p": [[120, 1, 1, "c.fp_lstmgradweight_p", "dynamic_params"], [120, 1, 1, "c.fp_lstmgradweight_p", "params"]], "fp_lstmgradweight_s": [[120, 1, 1, "c.fp_lstmgradweight_s", "core_mask"], [120, 1, 1, "c.fp_lstmgradweight_s", "dynamic_params"], [120, 1, 1, "c.fp_lstmgradweight_s", "params"]], "fp_matmulfusion_p": [[121, 1, 1, "c.fp_matmulfusion_p", "A"], [121, 1, 1, "c.fp_matmulfusion_p", "B"], [121, 1, 1, "c.fp_matmulfusion_p", "C"], [121, 1, 1, "c.fp_matmulfusion_p", "K"], [121, 1, 1, "c.fp_matmulfusion_p", "M"], [121, 1, 1, "c.fp_matmulfusion_p", "N"], [121, 1, 1, "c.fp_matmulfusion_p", "activation_type"], [121, 1, 1, "c.fp_matmulfusion_p", "bias"]], "fp_matmulfusion_s": [[121, 1, 1, "c.fp_matmulfusion_s", "A"], [121, 1, 1, "c.fp_matmulfusion_s", "B"], [121, 1, 1, "c.fp_matmulfusion_s", "C"], [121, 1, 1, "c.fp_matmulfusion_s", "K"], [121, 1, 1, "c.fp_matmulfusion_s", "M"], [121, 1, 1, "c.fp_matmulfusion_s", "N"], [121, 1, 1, "c.fp_matmulfusion_s", "activation_type"], [121, 1, 1, "c.fp_matmulfusion_s", "bias"], [121, 1, 1, "c.fp_matmulfusion_s", "core_mask"]], "fp_maximum_p": [[122, 1, 1, "c.fp_maximum_p", "input0"], [122, 1, 1, "c.fp_maximum_p", "input1"], [122, 1, 1, "c.fp_maximum_p", "length"], [122, 1, 1, "c.fp_maximum_p", "output"]], "fp_maximum_s": [[122, 1, 1, "c.fp_maximum_s", "core_mask"], [122, 1, 1, "c.fp_maximum_s", "input0"], [122, 1, 1, "c.fp_maximum_s", "input1"], [122, 1, 1, "c.fp_maximum_s", "length"], [122, 1, 1, "c.fp_maximum_s", "output"]], "fp_maximumgrad_p": [[123, 1, 1, "c.fp_maximumgrad_p", "Input0"], [123, 1, 1, "c.fp_maximumgrad_p", "Input0_dims"], [123, 1, 1, "c.fp_maximumgrad_p", "Input1"], [123, 1, 1, "c.fp_maximumgrad_p", "Input1_dims"], [123, 1, 1, "c.fp_maximumgrad_p", "dx0"], [123, 1, 1, "c.fp_maximumgrad_p", "dx1"], [123, 1, 1, "c.fp_maximumgrad_p", "dy"], [123, 1, 1, "c.fp_maximumgrad_p", "num_dims"]], "fp_maximumgrad_s": [[123, 1, 1, "c.fp_maximumgrad_s", "Input0"], [123, 1, 1, "c.fp_maximumgrad_s", "Input0_dims"], [123, 1, 1, "c.fp_maximumgrad_s", "Input1"], [123, 1, 1, "c.fp_maximumgrad_s", "Input1_dims"], [123, 1, 1, "c.fp_maximumgrad_s", "core_mask"], [123, 1, 1, "c.fp_maximumgrad_s", "dx0"], [123, 1, 1, "c.fp_maximumgrad_s", "dx1"], [123, 1, 1, "c.fp_maximumgrad_s", "dy"], [123, 1, 1, "c.fp_maximumgrad_s", "num_dims"]], "fp_maxpool_fusion_p": [[124, 1, 1, "c.fp_maxpool_fusion_p", "params"]], "fp_maxpool_fusion_s": [[124, 1, 1, "c.fp_maxpool_fusion_s", "core_mask"], [124, 1, 1, "c.fp_maxpool_fusion_s", "params"]], "fp_maxpool_grad_p": [[125, 1, 1, "c.fp_maxpool_grad_p", "params"]], "fp_maxpool_grad_s": [[125, 1, 1, "c.fp_maxpool_grad_s", "core_mask"], [125, 1, 1, "c.fp_maxpool_grad_s", "params"]], "fp_mfcc_p": [[126, 1, 1, "c.fp_mfcc_p", "mfcc_params"], [126, 1, 1, "c.fp_mfcc_p", "mfcc_workspace"], [126, 1, 1, "c.fp_mfcc_p", "spec_params"], [126, 1, 1, "c.fp_mfcc_p", "spec_workspace"]], "fp_mfcc_s": [[126, 1, 1, "c.fp_mfcc_s", "core_mask"], [126, 1, 1, "c.fp_mfcc_s", "mfcc_params"], [126, 1, 1, "c.fp_mfcc_s", "mfcc_workspace"], [126, 1, 1, "c.fp_mfcc_s", "spec_params"], [126, 1, 1, "c.fp_mfcc_s", "spec_workspace"]], "fp_minimum_p": [[127, 1, 1, "c.fp_minimum_p", "input0"], [127, 1, 1, "c.fp_minimum_p", "input1"], [127, 1, 1, "c.fp_minimum_p", "length"], [127, 1, 1, "c.fp_minimum_p", "output"]], "fp_minimum_s": [[127, 1, 1, "c.fp_minimum_s", "core_mask"], [127, 1, 1, "c.fp_minimum_s", "input0"], [127, 1, 1, "c.fp_minimum_s", "input1"], [127, 1, 1, "c.fp_minimum_s", "length"], [127, 1, 1, "c.fp_minimum_s", "output"]], "fp_minimumgrad_p": [[128, 1, 1, "c.fp_minimumgrad_p", "Input0"], [128, 1, 1, "c.fp_minimumgrad_p", "Input0_dims"], [128, 1, 1, "c.fp_minimumgrad_p", "Input1"], [128, 1, 1, "c.fp_minimumgrad_p", "Input1_dims"], [128, 1, 1, "c.fp_minimumgrad_p", "dx0"], [128, 1, 1, "c.fp_minimumgrad_p", "dx1"], [128, 1, 1, "c.fp_minimumgrad_p", "dy"], [128, 1, 1, "c.fp_minimumgrad_p", "num_dims"]], "fp_minimumgrad_s": [[128, 1, 1, "c.fp_minimumgrad_s", "Input0"], [128, 1, 1, "c.fp_minimumgrad_s", "Input0_dims"], [128, 1, 1, "c.fp_minimumgrad_s", "Input1"], [128, 1, 1, "c.fp_minimumgrad_s", "Input1_dims"], [128, 1, 1, "c.fp_minimumgrad_s", "core_mask"], [128, 1, 1, "c.fp_minimumgrad_s", "dx0"], [128, 1, 1, "c.fp_minimumgrad_s", "dx1"], [128, 1, 1, "c.fp_minimumgrad_s", "dy"], [128, 1, 1, "c.fp_minimumgrad_s", "num_dims"]], "fp_mod_p": [[129, 1, 1, "c.fp_mod_p", "input0"], [129, 1, 1, "c.fp_mod_p", "input1"], [129, 1, 1, "c.fp_mod_p", "length"], [129, 1, 1, "c.fp_mod_p", "output"]], "fp_mod_s": [[129, 1, 1, "c.fp_mod_s", "core_mask"], [129, 1, 1, "c.fp_mod_s", "input0"], [129, 1, 1, "c.fp_mod_s", "input1"], [129, 1, 1, "c.fp_mod_s", "length"], [129, 1, 1, "c.fp_mod_s", "output"]], "fp_mul_p": [[130, 1, 1, "c.fp_mul_p", "input0"], [130, 1, 1, "c.fp_mul_p", "input1"], [130, 1, 1, "c.fp_mul_p", "length"], [130, 1, 1, "c.fp_mul_p", "output"]], "fp_mul_s": [[130, 1, 1, "c.fp_mul_s", "core_mask"], [130, 1, 1, "c.fp_mul_s", "input0"], [130, 1, 1, "c.fp_mul_s", "input1"], [130, 1, 1, "c.fp_mul_s", "length"], [130, 1, 1, "c.fp_mul_s", "output"]], "fp_neg_grad_p": [[133, 1, 1, "c.fp_neg_grad_p", "Input"], [133, 1, 1, "c.fp_neg_grad_p", "length"], [133, 1, 1, "c.fp_neg_grad_p", "output"]], "fp_neg_grad_s": [[133, 1, 1, "c.fp_neg_grad_s", "Input"], [133, 1, 1, "c.fp_neg_grad_s", "core_mask"], [133, 1, 1, "c.fp_neg_grad_s", "length"], [133, 1, 1, "c.fp_neg_grad_s", "output"]], "fp_neg_p": [[132, 1, 1, "c.fp_neg_p", "Input"], [132, 1, 1, "c.fp_neg_p", "length"], [132, 1, 1, "c.fp_neg_p", "output"]], "fp_neg_s": [[132, 1, 1, "c.fp_neg_s", "Input"], [132, 1, 1, "c.fp_neg_s", "core_mask"], [132, 1, 1, "c.fp_neg_s", "length"], [132, 1, 1, "c.fp_neg_s", "output"]], "fp_nllloss_p": [[134, 1, 1, "c.fp_nllloss_p", "batch_size"], [134, 1, 1, "c.fp_nllloss_p", "class_num"], [134, 1, 1, "c.fp_nllloss_p", "labels"], [134, 1, 1, "c.fp_nllloss_p", "log_probs"], [134, 1, 1, "c.fp_nllloss_p", "loss"], [134, 1, 1, "c.fp_nllloss_p", "reduction_type"], [134, 1, 1, "c.fp_nllloss_p", "total_weight"], [134, 1, 1, "c.fp_nllloss_p", "weight"]], "fp_nllloss_s": [[134, 1, 1, "c.fp_nllloss_s", "batch_size"], [134, 1, 1, "c.fp_nllloss_s", "class_num"], [134, 1, 1, "c.fp_nllloss_s", "core_mask"], [134, 1, 1, "c.fp_nllloss_s", "labels"], [134, 1, 1, "c.fp_nllloss_s", "log_probs"], [134, 1, 1, "c.fp_nllloss_s", "loss"], [134, 1, 1, "c.fp_nllloss_s", "reduction_type"], [134, 1, 1, "c.fp_nllloss_s", "total_weight"], [134, 1, 1, "c.fp_nllloss_s", "weight"]], "fp_nlllossgrad_p": [[135, 1, 1, "c.fp_nlllossgrad_p", "batch"], [135, 1, 1, "c.fp_nlllossgrad_p", "class_num"], [135, 1, 1, "c.fp_nlllossgrad_p", "labels"], [135, 1, 1, "c.fp_nlllossgrad_p", "logits"], [135, 1, 1, "c.fp_nlllossgrad_p", "logits_grad"], [135, 1, 1, "c.fp_nlllossgrad_p", "loss_grad"], [135, 1, 1, "c.fp_nlllossgrad_p", "reduction_type"], [135, 1, 1, "c.fp_nlllossgrad_p", "total_weight"], [135, 1, 1, "c.fp_nlllossgrad_p", "weight"]], "fp_nlllossgrad_s": [[135, 1, 1, "c.fp_nlllossgrad_s", "batch"], [135, 1, 1, "c.fp_nlllossgrad_s", "class_num"], [135, 1, 1, "c.fp_nlllossgrad_s", "core_mask"], [135, 1, 1, "c.fp_nlllossgrad_s", "labels"], [135, 1, 1, "c.fp_nlllossgrad_s", "logits"], [135, 1, 1, "c.fp_nlllossgrad_s", "logits_grad"], [135, 1, 1, "c.fp_nlllossgrad_s", "loss_grad"], [135, 1, 1, "c.fp_nlllossgrad_s", "reduction_type"], [135, 1, 1, "c.fp_nlllossgrad_s", "total_weight"], [135, 1, 1, "c.fp_nlllossgrad_s", "weight"]], "fp_non_max_suppression_p": [[136, 1, 1, "c.fp_non_max_suppression_p", "param"]], "fp_non_max_suppression_s": [[136, 1, 1, "c.fp_non_max_suppression_s", "core_mask"], [136, 1, 1, "c.fp_non_max_suppression_s", "param"]], "fp_nonzero_p": [[137, 1, 1, "c.fp_nonzero_p", "dim_strides"], [137, 1, 1, "c.fp_nonzero_p", "input"], [137, 1, 1, "c.fp_nonzero_p", "input_rank"], [137, 1, 1, "c.fp_nonzero_p", "length"], [137, 1, 1, "c.fp_nonzero_p", "non_zero_num"], [137, 1, 1, "c.fp_nonzero_p", "output"], [137, 1, 1, "c.fp_nonzero_p", "shape"]], "fp_nonzero_s": [[137, 1, 1, "c.fp_nonzero_s", "core_mask"], [137, 1, 1, "c.fp_nonzero_s", "dim_strides"], [137, 1, 1, "c.fp_nonzero_s", "input"], [137, 1, 1, "c.fp_nonzero_s", "input_rank"], [137, 1, 1, "c.fp_nonzero_s", "length"], [137, 1, 1, "c.fp_nonzero_s", "non_zero_num"], [137, 1, 1, "c.fp_nonzero_s", "output"], [137, 1, 1, "c.fp_nonzero_s", "shape"]], "fp_not_equal_p": [[138, 1, 1, "c.fp_not_equal_p", "Input0"], [138, 1, 1, "c.fp_not_equal_p", "Input1"], [138, 1, 1, "c.fp_not_equal_p", "length"], [138, 1, 1, "c.fp_not_equal_p", "output"]], "fp_not_equal_s": [[138, 1, 1, "c.fp_not_equal_s", "Input0"], [138, 1, 1, "c.fp_not_equal_s", "Input1"], [138, 1, 1, "c.fp_not_equal_s", "core_mask"], [138, 1, 1, "c.fp_not_equal_s", "length"], [138, 1, 1, "c.fp_not_equal_s", "output"]], "fp_onehot_p": [[139, 1, 1, "c.fp_onehot_p", "axis"], [139, 1, 1, "c.fp_onehot_p", "depth"], [139, 1, 1, "c.fp_onehot_p", "indices"], [139, 1, 1, "c.fp_onehot_p", "indices_shape"], [139, 1, 1, "c.fp_onehot_p", "indices_shape_size"], [139, 1, 1, "c.fp_onehot_p", "on_off"], [139, 1, 1, "c.fp_onehot_p", "output"], [139, 1, 1, "c.fp_onehot_p", "support_neg_index"]], "fp_onehot_s": [[139, 1, 1, "c.fp_onehot_s", "axis"], [139, 1, 1, "c.fp_onehot_s", "core_mask"], [139, 1, 1, "c.fp_onehot_s", "depth"], [139, 1, 1, "c.fp_onehot_s", "indices"], [139, 1, 1, "c.fp_onehot_s", "indices_shape"], [139, 1, 1, "c.fp_onehot_s", "indices_shape_size"], [139, 1, 1, "c.fp_onehot_s", "on_off"], [139, 1, 1, "c.fp_onehot_s", "output"], [139, 1, 1, "c.fp_onehot_s", "support_neg_index"]], "fp_ones_like_p": [[140, 1, 1, "c.fp_ones_like_p", "length"], [140, 1, 1, "c.fp_ones_like_p", "output"]], "fp_ones_like_s": [[140, 1, 1, "c.fp_ones_like_s", "core_mask"], [140, 1, 1, "c.fp_ones_like_s", "length"], [140, 1, 1, "c.fp_ones_like_s", "output"]], "fp_padfusion_p": [[141, 1, 1, "c.fp_padfusion_p", "params"]], "fp_padfusion_s": [[141, 1, 1, "c.fp_padfusion_s", "core_mask"], [141, 1, 1, "c.fp_padfusion_s", "params"]], "fp_pow_fusion_p": [[142, 1, 1, "c.fp_pow_fusion_p", "Input"], [142, 1, 1, "c.fp_pow_fusion_p", "broadcast"], [142, 1, 1, "c.fp_pow_fusion_p", "exponent"], [142, 1, 1, "c.fp_pow_fusion_p", "length_in"], [142, 1, 1, "c.fp_pow_fusion_p", "output"], [142, 1, 1, "c.fp_pow_fusion_p", "scale"], [142, 1, 1, "c.fp_pow_fusion_p", "shift"]], "fp_pow_fusion_s": [[142, 1, 1, "c.fp_pow_fusion_s", "Input"], [142, 1, 1, "c.fp_pow_fusion_s", "broadcast"], [142, 1, 1, "c.fp_pow_fusion_s", "core_mask"], [142, 1, 1, "c.fp_pow_fusion_s", "exponent"], [142, 1, 1, "c.fp_pow_fusion_s", "length_in"], [142, 1, 1, "c.fp_pow_fusion_s", "output"], [142, 1, 1, "c.fp_pow_fusion_s", "scale"], [142, 1, 1, "c.fp_pow_fusion_s", "shift"]], "fp_power_grad_p": [[143, 1, 1, "c.fp_power_grad_p", "Input1"], [143, 1, 1, "c.fp_power_grad_p", "Input2"], [143, 1, 1, "c.fp_power_grad_p", "length"], [143, 1, 1, "c.fp_power_grad_p", "output"], [143, 1, 1, "c.fp_power_grad_p", "power"], [143, 1, 1, "c.fp_power_grad_p", "scale"], [143, 1, 1, "c.fp_power_grad_p", "shift"]], "fp_power_grad_s": [[143, 1, 1, "c.fp_power_grad_s", "Input1"], [143, 1, 1, "c.fp_power_grad_s", "Input2"], [143, 1, 1, "c.fp_power_grad_s", "core_mask"], [143, 1, 1, "c.fp_power_grad_s", "length"], [143, 1, 1, "c.fp_power_grad_s", "output"], [143, 1, 1, "c.fp_power_grad_s", "power"], [143, 1, 1, "c.fp_power_grad_s", "scale"], [143, 1, 1, "c.fp_power_grad_s", "shift"]], "fp_prelufusion_p": [[144, 1, 1, "c.fp_prelufusion_p", "dst_data"], [144, 1, 1, "c.fp_prelufusion_p", "end"], [144, 1, 1, "c.fp_prelufusion_p", "slope"], [144, 1, 1, "c.fp_prelufusion_p", "src_data"], [144, 1, 1, "c.fp_prelufusion_p", "start"]], "fp_prelufusion_s": [[144, 1, 1, "c.fp_prelufusion_s", "core_mask"], [144, 1, 1, "c.fp_prelufusion_s", "dst_data"], [144, 1, 1, "c.fp_prelufusion_s", "end"], [144, 1, 1, "c.fp_prelufusion_s", "slope"], [144, 1, 1, "c.fp_prelufusion_s", "src_data"], [144, 1, 1, "c.fp_prelufusion_s", "start"]], "fp_priorbox_p": [[145, 1, 1, "c.fp_priorbox_p", "different_aspect_ratios"], [145, 1, 1, "c.fp_priorbox_p", "different_aspect_ratios_size"], [145, 1, 1, "c.fp_priorbox_p", "fmap_h"], [145, 1, 1, "c.fp_priorbox_p", "fmap_w"], [145, 1, 1, "c.fp_priorbox_p", "max_sizes"], [145, 1, 1, "c.fp_priorbox_p", "max_sizes_size"], [145, 1, 1, "c.fp_priorbox_p", "min_sizes"], [145, 1, 1, "c.fp_priorbox_p", "min_sizes_size"], [145, 1, 1, "c.fp_priorbox_p", "offset"], [145, 1, 1, "c.fp_priorbox_p", "output"], [145, 1, 1, "c.fp_priorbox_p", "output_size"], [145, 1, 1, "c.fp_priorbox_p", "step_h"], [145, 1, 1, "c.fp_priorbox_p", "step_w"]], "fp_priorbox_s": [[145, 1, 1, "c.fp_priorbox_s", "core_mask"], [145, 1, 1, "c.fp_priorbox_s", "different_aspect_ratios"], [145, 1, 1, "c.fp_priorbox_s", "different_aspect_ratios_size"], [145, 1, 1, "c.fp_priorbox_s", "fmap_h"], [145, 1, 1, "c.fp_priorbox_s", "fmap_w"], [145, 1, 1, "c.fp_priorbox_s", "max_sizes"], [145, 1, 1, "c.fp_priorbox_s", "max_sizes_size"], [145, 1, 1, "c.fp_priorbox_s", "min_sizes"], [145, 1, 1, "c.fp_priorbox_s", "min_sizes_size"], [145, 1, 1, "c.fp_priorbox_s", "offset"], [145, 1, 1, "c.fp_priorbox_s", "output"], [145, 1, 1, "c.fp_priorbox_s", "output_size"], [145, 1, 1, "c.fp_priorbox_s", "step_h"], [145, 1, 1, "c.fp_priorbox_s", "step_w"]], "fp_raggedrange_p": [[147, 1, 1, "c.fp_raggedrange_p", "deltas"], [147, 1, 1, "c.fp_raggedrange_p", "limits"], [147, 1, 1, "c.fp_raggedrange_p", "range_count"], [147, 1, 1, "c.fp_raggedrange_p", "splits"], [147, 1, 1, "c.fp_raggedrange_p", "starts"], [147, 1, 1, "c.fp_raggedrange_p", "values"]], "fp_raggedrange_s": [[147, 1, 1, "c.fp_raggedrange_s", "core_mask"], [147, 1, 1, "c.fp_raggedrange_s", "deltas"], [147, 1, 1, "c.fp_raggedrange_s", "limits"], [147, 1, 1, "c.fp_raggedrange_s", "range_count"], [147, 1, 1, "c.fp_raggedrange_s", "splits"], [147, 1, 1, "c.fp_raggedrange_s", "starts"], [147, 1, 1, "c.fp_raggedrange_s", "values"]], "fp_random_normal_p": [[148, 1, 1, "c.fp_random_normal_p", "length"], [148, 1, 1, "c.fp_random_normal_p", "mean"], [148, 1, 1, "c.fp_random_normal_p", "output"], [148, 1, 1, "c.fp_random_normal_p", "scale"], [148, 1, 1, "c.fp_random_normal_p", "seed"]], "fp_random_normal_s": [[148, 1, 1, "c.fp_random_normal_s", "core_mask"], [148, 1, 1, "c.fp_random_normal_s", "length"], [148, 1, 1, "c.fp_random_normal_s", "mean"], [148, 1, 1, "c.fp_random_normal_s", "output"], [148, 1, 1, "c.fp_random_normal_s", "scale"], [148, 1, 1, "c.fp_random_normal_s", "seed"]], "fp_random_standard_normal_p": [[149, 1, 1, "c.fp_random_standard_normal_p", "length"], [149, 1, 1, "c.fp_random_standard_normal_p", "output"], [149, 1, 1, "c.fp_random_standard_normal_p", "seed"]], "fp_random_standard_normal_s": [[149, 1, 1, "c.fp_random_standard_normal_s", "core_mask"], [149, 1, 1, "c.fp_random_standard_normal_s", "length"], [149, 1, 1, "c.fp_random_standard_normal_s", "output"], [149, 1, 1, "c.fp_random_standard_normal_s", "seed"]], "fp_range_p": [[150, 1, 1, "c.fp_range_p", "delta"], [150, 1, 1, "c.fp_range_p", "length"], [150, 1, 1, "c.fp_range_p", "output"], [150, 1, 1, "c.fp_range_p", "start"]], "fp_range_s": [[150, 1, 1, "c.fp_range_s", "core_mask"], [150, 1, 1, "c.fp_range_s", "delta"], [150, 1, 1, "c.fp_range_s", "length"], [150, 1, 1, "c.fp_range_s", "output"], [150, 1, 1, "c.fp_range_s", "start"]], "fp_real_div_p": [[152, 1, 1, "c.fp_real_div_p", "input0"], [152, 1, 1, "c.fp_real_div_p", "input1"], [152, 1, 1, "c.fp_real_div_p", "length"], [152, 1, 1, "c.fp_real_div_p", "output"]], "fp_real_div_s": [[152, 1, 1, "c.fp_real_div_s", "core_mask"], [152, 1, 1, "c.fp_real_div_s", "input0"], [152, 1, 1, "c.fp_real_div_s", "input1"], [152, 1, 1, "c.fp_real_div_s", "length"], [152, 1, 1, "c.fp_real_div_s", "output"]], "fp_reciprocal_p": [[153, 1, 1, "c.fp_reciprocal_p", "Input"], [153, 1, 1, "c.fp_reciprocal_p", "length"], [153, 1, 1, "c.fp_reciprocal_p", "output"]], "fp_reciprocal_s": [[153, 1, 1, "c.fp_reciprocal_s", "Input"], [153, 1, 1, "c.fp_reciprocal_s", "core_mask"], [153, 1, 1, "c.fp_reciprocal_s", "length"], [153, 1, 1, "c.fp_reciprocal_s", "output"]], "fp_reduce_p": [[154, 1, 1, "c.fp_reduce_p", "core_mask"], [154, 1, 1, "c.fp_reduce_p", "dst_data"], [154, 1, 1, "c.fp_reduce_p", "param"], [154, 1, 1, "c.fp_reduce_p", "src_data"], [154, 1, 1, "c.fp_reduce_p", "tmp_dst_data"], [154, 1, 1, "c.fp_reduce_p", "tmp_src_data"]], "fp_reduce_s": [[154, 1, 1, "c.fp_reduce_s", "core_mask"], [154, 1, 1, "c.fp_reduce_s", "dst_data"], [154, 1, 1, "c.fp_reduce_s", "param"], [154, 1, 1, "c.fp_reduce_s", "src_data"]], "fp_reduceall_p": [[21, 1, 1, "c.fp_reduceall_p", "axis_size"], [21, 1, 1, "c.fp_reduceall_p", "dst_data"], [21, 1, 1, "c.fp_reduceall_p", "inner_size"], [21, 1, 1, "c.fp_reduceall_p", "outer_size"], [21, 1, 1, "c.fp_reduceall_p", "src_data"]], "fp_reduceall_s": [[21, 1, 1, "c.fp_reduceall_s", "axis_size"], [21, 1, 1, "c.fp_reduceall_s", "core_mask"], [21, 1, 1, "c.fp_reduceall_s", "dst_data"], [21, 1, 1, "c.fp_reduceall_s", "inner_size"], [21, 1, 1, "c.fp_reduceall_s", "outer_size"], [21, 1, 1, "c.fp_reduceall_s", "src_data"]], "fp_reducescatter_p": [[155, 1, 1, "c.fp_reducescatter_p", "data_size"], [155, 1, 1, "c.fp_reducescatter_p", "input_data"], [155, 1, 1, "c.fp_reducescatter_p", "output_data"], [155, 1, 1, "c.fp_reducescatter_p", "reduce_type"]], "fp_reducescatter_s": [[155, 1, 1, "c.fp_reducescatter_s", "core_mask"], [155, 1, 1, "c.fp_reducescatter_s", "data_size"], [155, 1, 1, "c.fp_reducescatter_s", "input_data"], [155, 1, 1, "c.fp_reducescatter_s", "output_data"], [155, 1, 1, "c.fp_reducescatter_s", "reduce_type"]], "fp_relu6_grad_p": [[13, 1, 1, "c.fp_relu6_grad_p", "dst"], [13, 1, 1, "c.fp_relu6_grad_p", "length"], [13, 1, 1, "c.fp_relu6_grad_p", "src0"], [13, 1, 1, "c.fp_relu6_grad_p", "src1"]], "fp_relu6_grad_s": [[13, 1, 1, "c.fp_relu6_grad_s", "core_mask"], [13, 1, 1, "c.fp_relu6_grad_s", "dst"], [13, 1, 1, "c.fp_relu6_grad_s", "length"], [13, 1, 1, "c.fp_relu6_grad_s", "src0"], [13, 1, 1, "c.fp_relu6_grad_s", "src1"]], "fp_relu6_p": [[12, 1, 1, "c.fp_relu6_p", "Input0"], [12, 1, 1, "c.fp_relu6_p", "length"], [12, 1, 1, "c.fp_relu6_p", "output"]], "fp_relu6_s": [[12, 1, 1, "c.fp_relu6_s", "Input0"], [12, 1, 1, "c.fp_relu6_s", "core_mask"], [12, 1, 1, "c.fp_relu6_s", "length"], [12, 1, 1, "c.fp_relu6_s", "output"]], "fp_relu_grad_p": [[13, 1, 1, "c.fp_relu_grad_p", "dst"], [13, 1, 1, "c.fp_relu_grad_p", "length"], [13, 1, 1, "c.fp_relu_grad_p", "src0"], [13, 1, 1, "c.fp_relu_grad_p", "src1"]], "fp_relu_grad_s": [[13, 1, 1, "c.fp_relu_grad_s", "core_mask"], [13, 1, 1, "c.fp_relu_grad_s", "dst"], [13, 1, 1, "c.fp_relu_grad_s", "length"], [13, 1, 1, "c.fp_relu_grad_s", "src0"], [13, 1, 1, "c.fp_relu_grad_s", "src1"]], "fp_relu_p": [[12, 1, 1, "c.fp_relu_p", "Input0"], [12, 1, 1, "c.fp_relu_p", "length"], [12, 1, 1, "c.fp_relu_p", "output"]], "fp_relu_s": [[12, 1, 1, "c.fp_relu_s", "Input0"], [12, 1, 1, "c.fp_relu_s", "core_mask"], [12, 1, 1, "c.fp_relu_s", "length"], [12, 1, 1, "c.fp_relu_s", "output"]], "fp_reshape_p": [[156, 1, 1, "c.fp_reshape_p", "input"], [156, 1, 1, "c.fp_reshape_p", "length"], [156, 1, 1, "c.fp_reshape_p", "output"]], "fp_reshape_s": [[156, 1, 1, "c.fp_reshape_s", "core_mask"], [156, 1, 1, "c.fp_reshape_s", "input"], [156, 1, 1, "c.fp_reshape_s", "length"], [156, 1, 1, "c.fp_reshape_s", "output"]], "fp_resize_anycore": [[157, 1, 1, "c.fp_resize_anycore", "core_mask"], [157, 1, 1, "c.fp_resize_anycore", "input"], [157, 1, 1, "c.fp_resize_anycore", "output"], [157, 1, 1, "c.fp_resize_anycore", "param"]], "fp_resizebilineargrad_p": [[158, 1, 1, "c.fp_resizebilineargrad_p", "align_corners"], [158, 1, 1, "c.fp_resizebilineargrad_p", "batch_size"], [158, 1, 1, "c.fp_resizebilineargrad_p", "channel"], [158, 1, 1, "c.fp_resizebilineargrad_p", "format"], [158, 1, 1, "c.fp_resizebilineargrad_p", "height_scale"], [158, 1, 1, "c.fp_resizebilineargrad_p", "in_addr"], [158, 1, 1, "c.fp_resizebilineargrad_p", "in_height"], [158, 1, 1, "c.fp_resizebilineargrad_p", "in_width"], [158, 1, 1, "c.fp_resizebilineargrad_p", "out_addr"], [158, 1, 1, "c.fp_resizebilineargrad_p", "out_height"], [158, 1, 1, "c.fp_resizebilineargrad_p", "out_width"], [158, 1, 1, "c.fp_resizebilineargrad_p", "width_scale"]], "fp_resizebilineargrad_s": [[158, 1, 1, "c.fp_resizebilineargrad_s", "align_corners"], [158, 1, 1, "c.fp_resizebilineargrad_s", "batch_size"], [158, 1, 1, "c.fp_resizebilineargrad_s", "channel"], [158, 1, 1, "c.fp_resizebilineargrad_s", "core_mask"], [158, 1, 1, "c.fp_resizebilineargrad_s", "format"], [158, 1, 1, "c.fp_resizebilineargrad_s", "height_scale"], [158, 1, 1, "c.fp_resizebilineargrad_s", "in_addr"], [158, 1, 1, "c.fp_resizebilineargrad_s", "in_height"], [158, 1, 1, "c.fp_resizebilineargrad_s", "in_width"], [158, 1, 1, "c.fp_resizebilineargrad_s", "out_addr"], [158, 1, 1, "c.fp_resizebilineargrad_s", "out_height"], [158, 1, 1, "c.fp_resizebilineargrad_s", "out_width"], [158, 1, 1, "c.fp_resizebilineargrad_s", "width_scale"]], "fp_resizenearestneighborgrad_p": [[158, 1, 1, "c.fp_resizenearestneighborgrad_p", "align_corners"], [158, 1, 1, "c.fp_resizenearestneighborgrad_p", "batch_size"], [158, 1, 1, "c.fp_resizenearestneighborgrad_p", "channel"], [158, 1, 1, "c.fp_resizenearestneighborgrad_p", "format"], [158, 1, 1, "c.fp_resizenearestneighborgrad_p", "height_scale"], [158, 1, 1, "c.fp_resizenearestneighborgrad_p", "in_addr"], [158, 1, 1, "c.fp_resizenearestneighborgrad_p", "in_height"], [158, 1, 1, "c.fp_resizenearestneighborgrad_p", "in_width"], [158, 1, 1, "c.fp_resizenearestneighborgrad_p", "out_addr"], [158, 1, 1, "c.fp_resizenearestneighborgrad_p", "out_height"], [158, 1, 1, "c.fp_resizenearestneighborgrad_p", "out_width"], [158, 1, 1, "c.fp_resizenearestneighborgrad_p", "width_scale"]], "fp_resizenearestneighborgrad_s": [[158, 1, 1, "c.fp_resizenearestneighborgrad_s", "align_corners"], [158, 1, 1, "c.fp_resizenearestneighborgrad_s", "batch_size"], [158, 1, 1, "c.fp_resizenearestneighborgrad_s", "channel"], [158, 1, 1, "c.fp_resizenearestneighborgrad_s", "core_mask"], [158, 1, 1, "c.fp_resizenearestneighborgrad_s", "format"], [158, 1, 1, "c.fp_resizenearestneighborgrad_s", "height_scale"], [158, 1, 1, "c.fp_resizenearestneighborgrad_s", "in_addr"], [158, 1, 1, "c.fp_resizenearestneighborgrad_s", "in_height"], [158, 1, 1, "c.fp_resizenearestneighborgrad_s", "in_width"], [158, 1, 1, "c.fp_resizenearestneighborgrad_s", "out_addr"], [158, 1, 1, "c.fp_resizenearestneighborgrad_s", "out_height"], [158, 1, 1, "c.fp_resizenearestneighborgrad_s", "out_width"], [158, 1, 1, "c.fp_resizenearestneighborgrad_s", "width_scale"]], "fp_roipooling_p": [[162, 1, 1, "c.fp_roipooling_p", "in_ptr"], [162, 1, 1, "c.fp_roipooling_p", "input_c"], [162, 1, 1, "c.fp_roipooling_p", "input_h"], [162, 1, 1, "c.fp_roipooling_p", "input_n"], [162, 1, 1, "c.fp_roipooling_p", "input_w"], [162, 1, 1, "c.fp_roipooling_p", "max_c"], [162, 1, 1, "c.fp_roipooling_p", "num_rois"], [162, 1, 1, "c.fp_roipooling_p", "out_ptr"], [162, 1, 1, "c.fp_roipooling_p", "pooled_height"], [162, 1, 1, "c.fp_roipooling_p", "pooled_width"], [162, 1, 1, "c.fp_roipooling_p", "roi"], [162, 1, 1, "c.fp_roipooling_p", "scale"]], "fp_roipooling_s": [[162, 1, 1, "c.fp_roipooling_s", "core_mask"], [162, 1, 1, "c.fp_roipooling_s", "in_ptr"], [162, 1, 1, "c.fp_roipooling_s", "input_c"], [162, 1, 1, "c.fp_roipooling_s", "input_h"], [162, 1, 1, "c.fp_roipooling_s", "input_n"], [162, 1, 1, "c.fp_roipooling_s", "input_w"], [162, 1, 1, "c.fp_roipooling_s", "max_c"], [162, 1, 1, "c.fp_roipooling_s", "num_rois"], [162, 1, 1, "c.fp_roipooling_s", "out_ptr"], [162, 1, 1, "c.fp_roipooling_s", "pooled_height"], [162, 1, 1, "c.fp_roipooling_s", "pooled_width"], [162, 1, 1, "c.fp_roipooling_s", "roi"], [162, 1, 1, "c.fp_roipooling_s", "scale"]], "fp_round_p": [[163, 1, 1, "c.fp_round_p", "input"], [163, 1, 1, "c.fp_round_p", "length"], [163, 1, 1, "c.fp_round_p", "output"]], "fp_round_s": [[163, 1, 1, "c.fp_round_s", "core_mask"], [163, 1, 1, "c.fp_round_s", "input"], [163, 1, 1, "c.fp_round_s", "length"], [163, 1, 1, "c.fp_round_s", "output"]], "fp_rsqrt_p": [[164, 1, 1, "c.fp_rsqrt_p", "dst"], [164, 1, 1, "c.fp_rsqrt_p", "length"], [164, 1, 1, "c.fp_rsqrt_p", "src"]], "fp_rsqrt_s": [[164, 1, 1, "c.fp_rsqrt_s", "core_mask"], [164, 1, 1, "c.fp_rsqrt_s", "dst"], [164, 1, 1, "c.fp_rsqrt_s", "length"], [164, 1, 1, "c.fp_rsqrt_s", "src"]], "fp_rsqrtgrad_p": [[165, 1, 1, "c.fp_rsqrtgrad_p", "input1"], [165, 1, 1, "c.fp_rsqrtgrad_p", "input2"], [165, 1, 1, "c.fp_rsqrtgrad_p", "output"], [165, 1, 1, "c.fp_rsqrtgrad_p", "size"]], "fp_rsqrtgrad_s": [[165, 1, 1, "c.fp_rsqrtgrad_s", "core_mask"], [165, 1, 1, "c.fp_rsqrtgrad_s", "input1"], [165, 1, 1, "c.fp_rsqrtgrad_s", "input2"], [165, 1, 1, "c.fp_rsqrtgrad_s", "output"], [165, 1, 1, "c.fp_rsqrtgrad_s", "size"]], "fp_scalefusion_p": [[166, 1, 1, "c.fp_scalefusion_p", "bias"], [166, 1, 1, "c.fp_scalefusion_p", "dst_data"], [166, 1, 1, "c.fp_scalefusion_p", "length"], [166, 1, 1, "c.fp_scalefusion_p", "scale"], [166, 1, 1, "c.fp_scalefusion_p", "src_data"]], "fp_scalefusion_s": [[166, 1, 1, "c.fp_scalefusion_s", "bias"], [166, 1, 1, "c.fp_scalefusion_s", "core_mask"], [166, 1, 1, "c.fp_scalefusion_s", "dst_data"], [166, 1, 1, "c.fp_scalefusion_s", "length"], [166, 1, 1, "c.fp_scalefusion_s", "scale"], [166, 1, 1, "c.fp_scalefusion_s", "src_data"]], "fp_scatter_elements_p": [[167, 1, 1, "c.fp_scatter_elements_p", "core_mask"], [167, 1, 1, "c.fp_scatter_elements_p", "indices"], [167, 1, 1, "c.fp_scatter_elements_p", "input"], [167, 1, 1, "c.fp_scatter_elements_p", "output"], [167, 1, 1, "c.fp_scatter_elements_p", "param"], [167, 1, 1, "c.fp_scatter_elements_p", "updates"]], "fp_scatter_elements_s": [[167, 1, 1, "c.fp_scatter_elements_s", "core_mask"], [167, 1, 1, "c.fp_scatter_elements_s", "indices"], [167, 1, 1, "c.fp_scatter_elements_s", "input"], [167, 1, 1, "c.fp_scatter_elements_s", "output"], [167, 1, 1, "c.fp_scatter_elements_s", "param"], [167, 1, 1, "c.fp_scatter_elements_s", "updates"]], "fp_scatter_nd_p": [[168, 1, 1, "c.fp_scatter_nd_p", "indices"], [168, 1, 1, "c.fp_scatter_nd_p", "indices_ndim"], [168, 1, 1, "c.fp_scatter_nd_p", "indices_shape"], [168, 1, 1, "c.fp_scatter_nd_p", "output"], [168, 1, 1, "c.fp_scatter_nd_p", "output_ndim"], [168, 1, 1, "c.fp_scatter_nd_p", "output_shape"], [168, 1, 1, "c.fp_scatter_nd_p", "updates"]], "fp_scatter_nd_s": [[168, 1, 1, "c.fp_scatter_nd_s", "core_mask"], [168, 1, 1, "c.fp_scatter_nd_s", "indices"], [168, 1, 1, "c.fp_scatter_nd_s", "indices_ndim"], [168, 1, 1, "c.fp_scatter_nd_s", "indices_shape"], [168, 1, 1, "c.fp_scatter_nd_s", "output"], [168, 1, 1, "c.fp_scatter_nd_s", "output_ndim"], [168, 1, 1, "c.fp_scatter_nd_s", "output_shape"], [168, 1, 1, "c.fp_scatter_nd_s", "updates"]], "fp_scatter_nd_update_p": [[169, 1, 1, "c.fp_scatter_nd_update_p", "indices"], [169, 1, 1, "c.fp_scatter_nd_update_p", "indices_ndim"], [169, 1, 1, "c.fp_scatter_nd_update_p", "indices_shape"], [169, 1, 1, "c.fp_scatter_nd_update_p", "output"], [169, 1, 1, "c.fp_scatter_nd_update_p", "output_ndim"], [169, 1, 1, "c.fp_scatter_nd_update_p", "output_shape"], [169, 1, 1, "c.fp_scatter_nd_update_p", "updates"]], "fp_scatter_nd_update_s": [[169, 1, 1, "c.fp_scatter_nd_update_s", "core_mask"], [169, 1, 1, "c.fp_scatter_nd_update_s", "indices"], [169, 1, 1, "c.fp_scatter_nd_update_s", "indices_ndim"], [169, 1, 1, "c.fp_scatter_nd_update_s", "indices_shape"], [169, 1, 1, "c.fp_scatter_nd_update_s", "output"], [169, 1, 1, "c.fp_scatter_nd_update_s", "output_ndim"], [169, 1, 1, "c.fp_scatter_nd_update_s", "output_shape"], [169, 1, 1, "c.fp_scatter_nd_update_s", "updates"]], "fp_select_p": [[170, 1, 1, "c.fp_select_p", "condition"], [170, 1, 1, "c.fp_select_p", "index_list1"], [170, 1, 1, "c.fp_select_p", "index_list2"], [170, 1, 1, "c.fp_select_p", "index_list3"], [170, 1, 1, "c.fp_select_p", "input0"], [170, 1, 1, "c.fp_select_p", "input1"], [170, 1, 1, "c.fp_select_p", "is_broadcast"], [170, 1, 1, "c.fp_select_p", "output"], [170, 1, 1, "c.fp_select_p", "output_dims"], [170, 1, 1, "c.fp_select_p", "output_dims_num"]], "fp_select_s": [[170, 1, 1, "c.fp_select_s", "condition"], [170, 1, 1, "c.fp_select_s", "core_mask"], [170, 1, 1, "c.fp_select_s", "index_list1"], [170, 1, 1, "c.fp_select_s", "index_list2"], [170, 1, 1, "c.fp_select_s", "index_list3"], [170, 1, 1, "c.fp_select_s", "input0"], [170, 1, 1, "c.fp_select_s", "input1"], [170, 1, 1, "c.fp_select_s", "is_broadcast"], [170, 1, 1, "c.fp_select_s", "output"], [170, 1, 1, "c.fp_select_s", "output_dims"], [170, 1, 1, "c.fp_select_s", "output_dims_num"]], "fp_sgd_p": [[171, 1, 1, "c.fp_sgd_p", "accumulate"], [171, 1, 1, "c.fp_sgd_p", "dampening"], [171, 1, 1, "c.fp_sgd_p", "gradient"], [171, 1, 1, "c.fp_sgd_p", "learning_rate"], [171, 1, 1, "c.fp_sgd_p", "length"], [171, 1, 1, "c.fp_sgd_p", "moment"], [171, 1, 1, "c.fp_sgd_p", "nesterov"], [171, 1, 1, "c.fp_sgd_p", "weight"], [171, 1, 1, "c.fp_sgd_p", "weight_decay"]], "fp_sgd_s": [[171, 1, 1, "c.fp_sgd_s", "accumulate"], [171, 1, 1, "c.fp_sgd_s", "core_mask"], [171, 1, 1, "c.fp_sgd_s", "dampening"], [171, 1, 1, "c.fp_sgd_s", "end"], [171, 1, 1, "c.fp_sgd_s", "gradient"], [171, 1, 1, "c.fp_sgd_s", "learning_rate"], [171, 1, 1, "c.fp_sgd_s", "moment"], [171, 1, 1, "c.fp_sgd_s", "nesterov"], [171, 1, 1, "c.fp_sgd_s", "start"], [171, 1, 1, "c.fp_sgd_s", "weight"], [171, 1, 1, "c.fp_sgd_s", "weight_decay"]], "fp_sigmoid_grad_p": [[13, 1, 1, "c.fp_sigmoid_grad_p", "dst"], [13, 1, 1, "c.fp_sigmoid_grad_p", "length"], [13, 1, 1, "c.fp_sigmoid_grad_p", "src0"], [13, 1, 1, "c.fp_sigmoid_grad_p", "src1"]], "fp_sigmoid_grad_s": [[13, 1, 1, "c.fp_sigmoid_grad_s", "core_mask"], [13, 1, 1, "c.fp_sigmoid_grad_s", "dst"], [13, 1, 1, "c.fp_sigmoid_grad_s", "length"], [13, 1, 1, "c.fp_sigmoid_grad_s", "src0"], [13, 1, 1, "c.fp_sigmoid_grad_s", "src1"]], "fp_sigmoid_p": [[12, 1, 1, "c.fp_sigmoid_p", "Input0"], [12, 1, 1, "c.fp_sigmoid_p", "length"], [12, 1, 1, "c.fp_sigmoid_p", "output"]], "fp_sigmoid_s": [[12, 1, 1, "c.fp_sigmoid_s", "Input0"], [12, 1, 1, "c.fp_sigmoid_s", "core_mask"], [12, 1, 1, "c.fp_sigmoid_s", "length"], [12, 1, 1, "c.fp_sigmoid_s", "output"]], "fp_sigmoidcrossentropywithlogits_p": [[174, 1, 1, "c.fp_sigmoidcrossentropywithlogits_p", "input0"], [174, 1, 1, "c.fp_sigmoidcrossentropywithlogits_p", "input1"], [174, 1, 1, "c.fp_sigmoidcrossentropywithlogits_p", "length"], [174, 1, 1, "c.fp_sigmoidcrossentropywithlogits_p", "output"]], "fp_sigmoidcrossentropywithlogits_s": [[174, 1, 1, "c.fp_sigmoidcrossentropywithlogits_s", "core_mask"], [174, 1, 1, "c.fp_sigmoidcrossentropywithlogits_s", "input0"], [174, 1, 1, "c.fp_sigmoidcrossentropywithlogits_s", "input1"], [174, 1, 1, "c.fp_sigmoidcrossentropywithlogits_s", "length"], [174, 1, 1, "c.fp_sigmoidcrossentropywithlogits_s", "output"]], "fp_sigmoidcrossentropywithlogitsgrad_p": [[173, 1, 1, "c.fp_sigmoidcrossentropywithlogitsgrad_p", "Input0"], [173, 1, 1, "c.fp_sigmoidcrossentropywithlogitsgrad_p", "Input1"], [173, 1, 1, "c.fp_sigmoidcrossentropywithlogitsgrad_p", "length"], [173, 1, 1, "c.fp_sigmoidcrossentropywithlogitsgrad_p", "output"]], "fp_sigmoidcrossentropywithlogitsgrad_s": [[173, 1, 1, "c.fp_sigmoidcrossentropywithlogitsgrad_s", "Input0"], [173, 1, 1, "c.fp_sigmoidcrossentropywithlogitsgrad_s", "Input1"], [173, 1, 1, "c.fp_sigmoidcrossentropywithlogitsgrad_s", "core_mask"], [173, 1, 1, "c.fp_sigmoidcrossentropywithlogitsgrad_s", "length"], [173, 1, 1, "c.fp_sigmoidcrossentropywithlogitsgrad_s", "output"]], "fp_sin_p": [[175, 1, 1, "c.fp_sin_p", "dst_data"], [175, 1, 1, "c.fp_sin_p", "length"], [175, 1, 1, "c.fp_sin_p", "src_data"]], "fp_sin_s": [[175, 1, 1, "c.fp_sin_s", "core_mask"], [175, 1, 1, "c.fp_sin_s", "dst_data"], [175, 1, 1, "c.fp_sin_s", "length"], [175, 1, 1, "c.fp_sin_s", "src_data"]], "fp_slice_p": [[178, 1, 1, "c.fp_slice_p", "begin"], [178, 1, 1, "c.fp_slice_p", "input"], [178, 1, 1, "c.fp_slice_p", "input_shape"], [178, 1, 1, "c.fp_slice_p", "ndim"], [178, 1, 1, "c.fp_slice_p", "output"], [178, 1, 1, "c.fp_slice_p", "size"]], "fp_slice_s": [[178, 1, 1, "c.fp_slice_s", "begin"], [178, 1, 1, "c.fp_slice_s", "core_mask"], [178, 1, 1, "c.fp_slice_s", "input"], [178, 1, 1, "c.fp_slice_s", "input_shape"], [178, 1, 1, "c.fp_slice_s", "ndim"], [178, 1, 1, "c.fp_slice_s", "output"], [178, 1, 1, "c.fp_slice_s", "size"]], "fp_smoothl1loss_p": [[179, 1, 1, "c.fp_smoothl1loss_p", "beta"], [179, 1, 1, "c.fp_smoothl1loss_p", "length"], [179, 1, 1, "c.fp_smoothl1loss_p", "out"], [179, 1, 1, "c.fp_smoothl1loss_p", "predict"], [179, 1, 1, "c.fp_smoothl1loss_p", "target"]], "fp_smoothl1loss_s": [[179, 1, 1, "c.fp_smoothl1loss_s", "beta"], [179, 1, 1, "c.fp_smoothl1loss_s", "core_mask"], [179, 1, 1, "c.fp_smoothl1loss_s", "length"], [179, 1, 1, "c.fp_smoothl1loss_s", "out"], [179, 1, 1, "c.fp_smoothl1loss_s", "predict"], [179, 1, 1, "c.fp_smoothl1loss_s", "target"]], "fp_smoothl1lossgrad_p": [[180, 1, 1, "c.fp_smoothl1lossgrad_p", "beta"], [180, 1, 1, "c.fp_smoothl1lossgrad_p", "dx1"], [180, 1, 1, "c.fp_smoothl1lossgrad_p", "dy"], [180, 1, 1, "c.fp_smoothl1lossgrad_p", "length"], [180, 1, 1, "c.fp_smoothl1lossgrad_p", "x1"], [180, 1, 1, "c.fp_smoothl1lossgrad_p", "x2"]], "fp_smoothl1lossgrad_s": [[180, 1, 1, "c.fp_smoothl1lossgrad_s", "beta"], [180, 1, 1, "c.fp_smoothl1lossgrad_s", "core_mask"], [180, 1, 1, "c.fp_smoothl1lossgrad_s", "dx1"], [180, 1, 1, "c.fp_smoothl1lossgrad_s", "dy"], [180, 1, 1, "c.fp_smoothl1lossgrad_s", "length"], [180, 1, 1, "c.fp_smoothl1lossgrad_s", "x1"], [180, 1, 1, "c.fp_smoothl1lossgrad_s", "x2"]], "fp_softmax_cross_entropy_with_logits_p": [[182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_p", "batch_size"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_p", "grads"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_p", "labels"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_p", "logits"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_p", "need_grads"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_p", "num_of_classes"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_p", "output"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_p", "probs"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_p", "sum_data"]], "fp_softmax_cross_entropy_with_logits_s": [[182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_s", "batch_size"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_s", "core_mask"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_s", "grads"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_s", "labels"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_s", "logits"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_s", "need_grads"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_s", "num_of_classes"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_s", "output"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_s", "probs"], [182, 1, 1, "c.fp_softmax_cross_entropy_with_logits_s", "sum_data"]], "fp_softmax_p": [[181, 1, 1, "c.fp_softmax_p", "axis"], [181, 1, 1, "c.fp_softmax_p", "axis_size"], [181, 1, 1, "c.fp_softmax_p", "inner_size"], [181, 1, 1, "c.fp_softmax_p", "input_ptr"], [181, 1, 1, "c.fp_softmax_p", "n_dim"], [181, 1, 1, "c.fp_softmax_p", "output_ptr"], [181, 1, 1, "c.fp_softmax_p", "outter_size"], [181, 1, 1, "c.fp_softmax_p", "sum_data"]], "fp_softmax_s": [[181, 1, 1, "c.fp_softmax_s", "axis"], [181, 1, 1, "c.fp_softmax_s", "axis_size"], [181, 1, 1, "c.fp_softmax_s", "core_mask"], [181, 1, 1, "c.fp_softmax_s", "inner_size"], [181, 1, 1, "c.fp_softmax_s", "input_ptr"], [181, 1, 1, "c.fp_softmax_s", "n_dim"], [181, 1, 1, "c.fp_softmax_s", "output_ptr"], [181, 1, 1, "c.fp_softmax_s", "outter_size"], [181, 1, 1, "c.fp_softmax_s", "sum_data"]], "fp_softplus_grad_p": [[13, 1, 1, "c.fp_softplus_grad_p", "dst"], [13, 1, 1, "c.fp_softplus_grad_p", "length"], [13, 1, 1, "c.fp_softplus_grad_p", "src0"], [13, 1, 1, "c.fp_softplus_grad_p", "src1"]], "fp_softplus_grad_s": [[13, 1, 1, "c.fp_softplus_grad_s", "core_mask"], [13, 1, 1, "c.fp_softplus_grad_s", "dst"], [13, 1, 1, "c.fp_softplus_grad_s", "length"], [13, 1, 1, "c.fp_softplus_grad_s", "src0"], [13, 1, 1, "c.fp_softplus_grad_s", "src1"]], "fp_softplus_p": [[12, 1, 1, "c.fp_softplus_p", "Input0"], [12, 1, 1, "c.fp_softplus_p", "length"], [12, 1, 1, "c.fp_softplus_p", "output"]], "fp_softplus_s": [[12, 1, 1, "c.fp_softplus_s", "Input0"], [12, 1, 1, "c.fp_softplus_s", "core_mask"], [12, 1, 1, "c.fp_softplus_s", "length"], [12, 1, 1, "c.fp_softplus_s", "output"]], "fp_softshrink_grad_p": [[13, 1, 1, "c.fp_softshrink_grad_p", "dst"], [13, 1, 1, "c.fp_softshrink_grad_p", "lambd"], [13, 1, 1, "c.fp_softshrink_grad_p", "length"], [13, 1, 1, "c.fp_softshrink_grad_p", "src0"], [13, 1, 1, "c.fp_softshrink_grad_p", "src1"]], "fp_softshrink_grad_s": [[13, 1, 1, "c.fp_softshrink_grad_s", "core_mask"], [13, 1, 1, "c.fp_softshrink_grad_s", "dst"], [13, 1, 1, "c.fp_softshrink_grad_s", "lambd"], [13, 1, 1, "c.fp_softshrink_grad_s", "length"], [13, 1, 1, "c.fp_softshrink_grad_s", "src0"], [13, 1, 1, "c.fp_softshrink_grad_s", "src1"]], "fp_softshrink_p": [[12, 1, 1, "c.fp_softshrink_p", "Input0"], [12, 1, 1, "c.fp_softshrink_p", "lambd"], [12, 1, 1, "c.fp_softshrink_p", "length"], [12, 1, 1, "c.fp_softshrink_p", "output"]], "fp_softshrink_s": [[12, 1, 1, "c.fp_softshrink_s", "Input0"], [12, 1, 1, "c.fp_softshrink_s", "core_mask"], [12, 1, 1, "c.fp_softshrink_s", "lambd"], [12, 1, 1, "c.fp_softshrink_s", "length"], [12, 1, 1, "c.fp_softshrink_s", "output"]], "fp_softsignopt_p": [[12, 1, 1, "c.fp_softsignopt_p", "Input0"], [12, 1, 1, "c.fp_softsignopt_p", "length"], [12, 1, 1, "c.fp_softsignopt_p", "output"]], "fp_softsignopt_s": [[12, 1, 1, "c.fp_softsignopt_s", "Input0"], [12, 1, 1, "c.fp_softsignopt_s", "core_mask"], [12, 1, 1, "c.fp_softsignopt_s", "length"], [12, 1, 1, "c.fp_softsignopt_s", "output"]], "fp_spacetobatch_p": [[183, 1, 1, "c.fp_spacetobatch_p", "block_size"], [183, 1, 1, "c.fp_spacetobatch_p", "data_size"], [183, 1, 1, "c.fp_spacetobatch_p", "input"], [183, 1, 1, "c.fp_spacetobatch_p", "input_shape"], [183, 1, 1, "c.fp_spacetobatch_p", "output"], [183, 1, 1, "c.fp_spacetobatch_p", "paddings"]], "fp_spacetobatch_s": [[183, 1, 1, "c.fp_spacetobatch_s", "block_size"], [183, 1, 1, "c.fp_spacetobatch_s", "core_mask"], [183, 1, 1, "c.fp_spacetobatch_s", "data_size"], [183, 1, 1, "c.fp_spacetobatch_s", "input"], [183, 1, 1, "c.fp_spacetobatch_s", "input_shape"], [183, 1, 1, "c.fp_spacetobatch_s", "output"], [183, 1, 1, "c.fp_spacetobatch_s", "paddings"]], "fp_spacetobatchnd_p": [[184, 1, 1, "c.fp_spacetobatchnd_p", "block_size"], [184, 1, 1, "c.fp_spacetobatchnd_p", "data_size"], [184, 1, 1, "c.fp_spacetobatchnd_p", "input"], [184, 1, 1, "c.fp_spacetobatchnd_p", "input_shape"], [184, 1, 1, "c.fp_spacetobatchnd_p", "output"], [184, 1, 1, "c.fp_spacetobatchnd_p", "paddings"]], "fp_spacetobatchnd_s": [[184, 1, 1, "c.fp_spacetobatchnd_s", "block_size"], [184, 1, 1, "c.fp_spacetobatchnd_s", "core_mask"], [184, 1, 1, "c.fp_spacetobatchnd_s", "data_size"], [184, 1, 1, "c.fp_spacetobatchnd_s", "input"], [184, 1, 1, "c.fp_spacetobatchnd_s", "input_shape"], [184, 1, 1, "c.fp_spacetobatchnd_s", "output"], [184, 1, 1, "c.fp_spacetobatchnd_s", "paddings"]], "fp_spacetodepth_p": [[185, 1, 1, "c.fp_spacetodepth_p", "block"], [185, 1, 1, "c.fp_spacetodepth_p", "data_size"], [185, 1, 1, "c.fp_spacetodepth_p", "in_shape"], [185, 1, 1, "c.fp_spacetodepth_p", "input"], [185, 1, 1, "c.fp_spacetodepth_p", "output"]], "fp_spacetodepth_s": [[185, 1, 1, "c.fp_spacetodepth_s", "block"], [185, 1, 1, "c.fp_spacetodepth_s", "core_mask"], [185, 1, 1, "c.fp_spacetodepth_s", "data_size"], [185, 1, 1, "c.fp_spacetodepth_s", "in_shape"], [185, 1, 1, "c.fp_spacetodepth_s", "input"], [185, 1, 1, "c.fp_spacetodepth_s", "output"]], "fp_sparse_softmax_cross_entropy_with_logits_p": [[186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "axis_size"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "batch_size"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "inner_size"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "input"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "is_grad"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "labels"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "losses"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "number_of_classes"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "output"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "outter_size"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "partial_losses"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_p", "sum_data"]], "fp_sparse_softmax_cross_entropy_with_logits_s": [[186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "axis_size"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "batch_size"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "core_mask"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "inner_size"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "input"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "is_grad"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "labels"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "losses"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "number_of_classes"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "output"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "outter_size"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "partial_losses"], [186, 1, 1, "c.fp_sparse_softmax_cross_entropy_with_logits_s", "sum_data"]], "fp_sparsefillemptyrows_p": [[187, 1, 1, "c.fp_sparsefillemptyrows_p", "N"], [187, 1, 1, "c.fp_sparsefillemptyrows_p", "default_value"], [187, 1, 1, "c.fp_sparsefillemptyrows_p", "dense_rows"], [187, 1, 1, "c.fp_sparsefillemptyrows_p", "filled_count"], [187, 1, 1, "c.fp_sparsefillemptyrows_p", "indices_ptr"], [187, 1, 1, "c.fp_sparsefillemptyrows_p", "output_reverse_index_map_ptr"], [187, 1, 1, "c.fp_sparsefillemptyrows_p", "output_y_indices_ptr"], [187, 1, 1, "c.fp_sparsefillemptyrows_p", "output_y_values_ptr"], [187, 1, 1, "c.fp_sparsefillemptyrows_p", "rank"], [187, 1, 1, "c.fp_sparsefillemptyrows_p", "scratch_ptr"], [187, 1, 1, "c.fp_sparsefillemptyrows_p", "values_ptr"]], "fp_sparsefillemptyrows_s": [[187, 1, 1, "c.fp_sparsefillemptyrows_s", "N"], [187, 1, 1, "c.fp_sparsefillemptyrows_s", "core_mask"], [187, 1, 1, "c.fp_sparsefillemptyrows_s", "default_value"], [187, 1, 1, "c.fp_sparsefillemptyrows_s", "dense_rows"], [187, 1, 1, "c.fp_sparsefillemptyrows_s", "filled_count"], [187, 1, 1, "c.fp_sparsefillemptyrows_s", "indices_ptr"], [187, 1, 1, "c.fp_sparsefillemptyrows_s", "output_reverse_index_map_ptr"], [187, 1, 1, "c.fp_sparsefillemptyrows_s", "output_y_indices_ptr"], [187, 1, 1, "c.fp_sparsefillemptyrows_s", "output_y_values_ptr"], [187, 1, 1, "c.fp_sparsefillemptyrows_s", "rank"], [187, 1, 1, "c.fp_sparsefillemptyrows_s", "scratch_ptr"], [187, 1, 1, "c.fp_sparsefillemptyrows_s", "values_ptr"]], "fp_sparsesegmentsum_p": [[189, 1, 1, "c.fp_sparsesegmentsum_p", "in_data"], [189, 1, 1, "c.fp_sparsesegmentsum_p", "in_data_shape"], [189, 1, 1, "c.fp_sparsesegmentsum_p", "in_data_shape_size"], [189, 1, 1, "c.fp_sparsesegmentsum_p", "in_indices"], [189, 1, 1, "c.fp_sparsesegmentsum_p", "in_indices_size"], [189, 1, 1, "c.fp_sparsesegmentsum_p", "in_segment_ids"], [189, 1, 1, "c.fp_sparsesegmentsum_p", "out_data"], [189, 1, 1, "c.fp_sparsesegmentsum_p", "out_data_shape"]], "fp_sparsesegmentsum_s": [[189, 1, 1, "c.fp_sparsesegmentsum_s", "core_mask"], [189, 1, 1, "c.fp_sparsesegmentsum_s", "in_data"], [189, 1, 1, "c.fp_sparsesegmentsum_s", "in_data_shape"], [189, 1, 1, "c.fp_sparsesegmentsum_s", "in_data_shape_size"], [189, 1, 1, "c.fp_sparsesegmentsum_s", "in_indices"], [189, 1, 1, "c.fp_sparsesegmentsum_s", "in_indices_size"], [189, 1, 1, "c.fp_sparsesegmentsum_s", "in_segment_ids"], [189, 1, 1, "c.fp_sparsesegmentsum_s", "out_data"], [189, 1, 1, "c.fp_sparsesegmentsum_s", "out_data_shape"]], "fp_sparsetodense_p": [[190, 1, 1, "c.fp_sparsetodense_p", "indices_vec"], [190, 1, 1, "c.fp_sparsetodense_p", "is_scalar"], [190, 1, 1, "c.fp_sparsetodense_p", "output"], [190, 1, 1, "c.fp_sparsetodense_p", "output_strides"], [190, 1, 1, "c.fp_sparsetodense_p", "sparse_length"], [190, 1, 1, "c.fp_sparsetodense_p", "sparse_values"]], "fp_sparsetodense_s": [[190, 1, 1, "c.fp_sparsetodense_s", "core_mask"], [190, 1, 1, "c.fp_sparsetodense_s", "indices_vec"], [190, 1, 1, "c.fp_sparsetodense_s", "is_scalar"], [190, 1, 1, "c.fp_sparsetodense_s", "output"], [190, 1, 1, "c.fp_sparsetodense_s", "output_strides"], [190, 1, 1, "c.fp_sparsetodense_s", "sparse_length"], [190, 1, 1, "c.fp_sparsetodense_s", "sparse_values"]], "fp_splice_p": [[191, 1, 1, "c.fp_splice_p", "context_dim"], [191, 1, 1, "c.fp_splice_p", "dst_col"], [191, 1, 1, "c.fp_splice_p", "dst_data"], [191, 1, 1, "c.fp_splice_p", "dst_row"], [191, 1, 1, "c.fp_splice_p", "forward_indexes"], [191, 1, 1, "c.fp_splice_p", "forward_indexes_dims"], [191, 1, 1, "c.fp_splice_p", "src_col"], [191, 1, 1, "c.fp_splice_p", "src_data"], [191, 1, 1, "c.fp_splice_p", "src_row"]], "fp_splice_s": [[191, 1, 1, "c.fp_splice_s", "context_dim"], [191, 1, 1, "c.fp_splice_s", "core_mask"], [191, 1, 1, "c.fp_splice_s", "dst_col"], [191, 1, 1, "c.fp_splice_s", "dst_data"], [191, 1, 1, "c.fp_splice_s", "dst_row"], [191, 1, 1, "c.fp_splice_s", "forward_indexes"], [191, 1, 1, "c.fp_splice_s", "forward_indexes_dims"], [191, 1, 1, "c.fp_splice_s", "src_col"], [191, 1, 1, "c.fp_splice_s", "src_data"], [191, 1, 1, "c.fp_splice_s", "src_row"]], "fp_split_p": [[192, 1, 1, "c.fp_split_p", "axis"], [192, 1, 1, "c.fp_split_p", "input"], [192, 1, 1, "c.fp_split_p", "input_ndim"], [192, 1, 1, "c.fp_split_p", "input_shape"], [192, 1, 1, "c.fp_split_p", "num_split"], [192, 1, 1, "c.fp_split_p", "outputs"], [192, 1, 1, "c.fp_split_p", "split_sizes"]], "fp_split_s": [[192, 1, 1, "c.fp_split_s", "axis"], [192, 1, 1, "c.fp_split_s", "core_mask"], [192, 1, 1, "c.fp_split_s", "input"], [192, 1, 1, "c.fp_split_s", "input_ndim"], [192, 1, 1, "c.fp_split_s", "input_shape"], [192, 1, 1, "c.fp_split_s", "num_split"], [192, 1, 1, "c.fp_split_s", "outputs"], [192, 1, 1, "c.fp_split_s", "split_sizes"]], "fp_split_with_overlap_p": [[193, 1, 1, "c.fp_split_with_overlap_p", "axis"], [193, 1, 1, "c.fp_split_with_overlap_p", "end_indices"], [193, 1, 1, "c.fp_split_with_overlap_p", "input"], [193, 1, 1, "c.fp_split_with_overlap_p", "input_ndim"], [193, 1, 1, "c.fp_split_with_overlap_p", "input_shape"], [193, 1, 1, "c.fp_split_with_overlap_p", "num_split"], [193, 1, 1, "c.fp_split_with_overlap_p", "outputs"], [193, 1, 1, "c.fp_split_with_overlap_p", "start_indices"]], "fp_split_with_overlap_s": [[193, 1, 1, "c.fp_split_with_overlap_s", "axis"], [193, 1, 1, "c.fp_split_with_overlap_s", "core_mask"], [193, 1, 1, "c.fp_split_with_overlap_s", "end_indices"], [193, 1, 1, "c.fp_split_with_overlap_s", "input"], [193, 1, 1, "c.fp_split_with_overlap_s", "input_ndim"], [193, 1, 1, "c.fp_split_with_overlap_s", "input_shape"], [193, 1, 1, "c.fp_split_with_overlap_s", "num_split"], [193, 1, 1, "c.fp_split_with_overlap_s", "outputs"], [193, 1, 1, "c.fp_split_with_overlap_s", "start_indices"]], "fp_sqrt_p": [[194, 1, 1, "c.fp_sqrt_p", "dst_data"], [194, 1, 1, "c.fp_sqrt_p", "length"], [194, 1, 1, "c.fp_sqrt_p", "src_data"]], "fp_sqrt_s": [[194, 1, 1, "c.fp_sqrt_s", "core_mask"], [194, 1, 1, "c.fp_sqrt_s", "dst_data"], [194, 1, 1, "c.fp_sqrt_s", "length"], [194, 1, 1, "c.fp_sqrt_s", "src_data"]], "fp_sqrtgrad_p": [[195, 1, 1, "c.fp_sqrtgrad_p", "input1"], [195, 1, 1, "c.fp_sqrtgrad_p", "input2"], [195, 1, 1, "c.fp_sqrtgrad_p", "output"], [195, 1, 1, "c.fp_sqrtgrad_p", "size"]], "fp_sqrtgrad_s": [[195, 1, 1, "c.fp_sqrtgrad_s", "core_mask"], [195, 1, 1, "c.fp_sqrtgrad_s", "input1"], [195, 1, 1, "c.fp_sqrtgrad_s", "input2"], [195, 1, 1, "c.fp_sqrtgrad_s", "output"], [195, 1, 1, "c.fp_sqrtgrad_s", "size"]], "fp_square_p": [[196, 1, 1, "c.fp_square_p", "dst"], [196, 1, 1, "c.fp_square_p", "length"], [196, 1, 1, "c.fp_square_p", "src"]], "fp_square_s": [[196, 1, 1, "c.fp_square_s", "core_mask"], [196, 1, 1, "c.fp_square_s", "dst"], [196, 1, 1, "c.fp_square_s", "length"], [196, 1, 1, "c.fp_square_s", "src"]], "fp_squaredifference_p": [[197, 1, 1, "c.fp_squaredifference_p", "input0"], [197, 1, 1, "c.fp_squaredifference_p", "input1"], [197, 1, 1, "c.fp_squaredifference_p", "length"], [197, 1, 1, "c.fp_squaredifference_p", "output"]], "fp_squaredifference_s": [[197, 1, 1, "c.fp_squaredifference_s", "core_mask"], [197, 1, 1, "c.fp_squaredifference_s", "input0"], [197, 1, 1, "c.fp_squaredifference_s", "input1"], [197, 1, 1, "c.fp_squaredifference_s", "length"], [197, 1, 1, "c.fp_squaredifference_s", "output"]], "fp_stack_p": [[199, 1, 1, "c.fp_stack_p", "axis"], [199, 1, 1, "c.fp_stack_p", "input_ndim"], [199, 1, 1, "c.fp_stack_p", "input_shape"], [199, 1, 1, "c.fp_stack_p", "inputs"], [199, 1, 1, "c.fp_stack_p", "num_inputs"], [199, 1, 1, "c.fp_stack_p", "output"]], "fp_stack_s": [[199, 1, 1, "c.fp_stack_s", "axis"], [199, 1, 1, "c.fp_stack_s", "core_mask"], [199, 1, 1, "c.fp_stack_s", "input_ndim"], [199, 1, 1, "c.fp_stack_s", "input_shape"], [199, 1, 1, "c.fp_stack_s", "inputs"], [199, 1, 1, "c.fp_stack_s", "num_inputs"], [199, 1, 1, "c.fp_stack_s", "output"]], "fp_stridedslicegrad_p": [[201, 1, 1, "c.fp_stridedslicegrad_p", "begins"], [201, 1, 1, "c.fp_stridedslicegrad_p", "dx_shape"], [201, 1, 1, "c.fp_stridedslicegrad_p", "in_shape"], [201, 1, 1, "c.fp_stridedslicegrad_p", "inputs"], [201, 1, 1, "c.fp_stridedslicegrad_p", "output"], [201, 1, 1, "c.fp_stridedslicegrad_p", "strides"]], "fp_stridedslicegrad_s": [[201, 1, 1, "c.fp_stridedslicegrad_s", "begins"], [201, 1, 1, "c.fp_stridedslicegrad_s", "core_mask"], [201, 1, 1, "c.fp_stridedslicegrad_s", "dx_shape"], [201, 1, 1, "c.fp_stridedslicegrad_s", "in_shape"], [201, 1, 1, "c.fp_stridedslicegrad_s", "inputs"], [201, 1, 1, "c.fp_stridedslicegrad_s", "output"], [201, 1, 1, "c.fp_stridedslicegrad_s", "strides"]], "fp_subext_p": [[202, 1, 1, "c.fp_subext_p", "alpha"], [202, 1, 1, "c.fp_subext_p", "input0"], [202, 1, 1, "c.fp_subext_p", "input1"], [202, 1, 1, "c.fp_subext_p", "output"], [202, 1, 1, "c.fp_subext_p", "size"]], "fp_subext_s": [[202, 1, 1, "c.fp_subext_s", "alpha"], [202, 1, 1, "c.fp_subext_s", "core_mask"], [202, 1, 1, "c.fp_subext_s", "input0"], [202, 1, 1, "c.fp_subext_s", "input1"], [202, 1, 1, "c.fp_subext_s", "output"], [202, 1, 1, "c.fp_subext_s", "size"]], "fp_subgrad_p": [[203, 1, 1, "c.fp_subgrad_p", "dx1"], [203, 1, 1, "c.fp_subgrad_p", "dx2"], [203, 1, 1, "c.fp_subgrad_p", "dy"], [203, 1, 1, "c.fp_subgrad_p", "dy_dims"], [203, 1, 1, "c.fp_subgrad_p", "num_dims"], [203, 1, 1, "c.fp_subgrad_p", "x1_dims"], [203, 1, 1, "c.fp_subgrad_p", "x2_dims"]], "fp_subgrad_s": [[203, 1, 1, "c.fp_subgrad_s", "core_mask"], [203, 1, 1, "c.fp_subgrad_s", "dx1"], [203, 1, 1, "c.fp_subgrad_s", "dx2"], [203, 1, 1, "c.fp_subgrad_s", "dy"], [203, 1, 1, "c.fp_subgrad_s", "dy_dims"], [203, 1, 1, "c.fp_subgrad_s", "num_dims"], [203, 1, 1, "c.fp_subgrad_s", "x1_dims"], [203, 1, 1, "c.fp_subgrad_s", "x2_dims"]], "fp_subrelu6_p": [[202, 1, 1, "c.fp_subrelu6_p", "input0"], [202, 1, 1, "c.fp_subrelu6_p", "input1"], [202, 1, 1, "c.fp_subrelu6_p", "output"], [202, 1, 1, "c.fp_subrelu6_p", "size"]], "fp_subrelu6_s": [[202, 1, 1, "c.fp_subrelu6_s", "core_mask"], [202, 1, 1, "c.fp_subrelu6_s", "input0"], [202, 1, 1, "c.fp_subrelu6_s", "input1"], [202, 1, 1, "c.fp_subrelu6_s", "output"], [202, 1, 1, "c.fp_subrelu6_s", "size"]], "fp_subrelu_p": [[202, 1, 1, "c.fp_subrelu_p", "input0"], [202, 1, 1, "c.fp_subrelu_p", "input1"], [202, 1, 1, "c.fp_subrelu_p", "output"], [202, 1, 1, "c.fp_subrelu_p", "size"]], "fp_subrelu_s": [[202, 1, 1, "c.fp_subrelu_s", "core_mask"], [202, 1, 1, "c.fp_subrelu_s", "input0"], [202, 1, 1, "c.fp_subrelu_s", "input1"], [202, 1, 1, "c.fp_subrelu_s", "output"], [202, 1, 1, "c.fp_subrelu_s", "size"]], "fp_swish_p": [[12, 1, 1, "c.fp_swish_p", "Input0"], [12, 1, 1, "c.fp_swish_p", "length"], [12, 1, 1, "c.fp_swish_p", "output"]], "fp_swish_s": [[12, 1, 1, "c.fp_swish_s", "Input0"], [12, 1, 1, "c.fp_swish_s", "core_mask"], [12, 1, 1, "c.fp_swish_s", "length"], [12, 1, 1, "c.fp_swish_s", "output"]], "fp_tanh_grad_p": [[13, 1, 1, "c.fp_tanh_grad_p", "dst"], [13, 1, 1, "c.fp_tanh_grad_p", "length"], [13, 1, 1, "c.fp_tanh_grad_p", "src0"], [13, 1, 1, "c.fp_tanh_grad_p", "src1"]], "fp_tanh_grad_s": [[13, 1, 1, "c.fp_tanh_grad_s", "core_mask"], [13, 1, 1, "c.fp_tanh_grad_s", "dst"], [13, 1, 1, "c.fp_tanh_grad_s", "length"], [13, 1, 1, "c.fp_tanh_grad_s", "src0"], [13, 1, 1, "c.fp_tanh_grad_s", "src1"]], "fp_tanh_p": [[12, 1, 1, "c.fp_tanh_p", "Input0"], [12, 1, 1, "c.fp_tanh_p", "length"], [12, 1, 1, "c.fp_tanh_p", "output"]], "fp_tanh_s": [[12, 1, 1, "c.fp_tanh_s", "Input0"], [12, 1, 1, "c.fp_tanh_s", "core_mask"], [12, 1, 1, "c.fp_tanh_s", "length"], [12, 1, 1, "c.fp_tanh_s", "output"]], "fp_tensor_scatter_add_p": [[206, 1, 1, "c.fp_tensor_scatter_add_p", "index_depth"], [206, 1, 1, "c.fp_tensor_scatter_add_p", "indices"], [206, 1, 1, "c.fp_tensor_scatter_add_p", "input"], [206, 1, 1, "c.fp_tensor_scatter_add_p", "input_rank"], [206, 1, 1, "c.fp_tensor_scatter_add_p", "input_shape"], [206, 1, 1, "c.fp_tensor_scatter_add_p", "num_unit"], [206, 1, 1, "c.fp_tensor_scatter_add_p", "output"], [206, 1, 1, "c.fp_tensor_scatter_add_p", "output_unit_offsets"], [206, 1, 1, "c.fp_tensor_scatter_add_p", "strides"], [206, 1, 1, "c.fp_tensor_scatter_add_p", "updates"]], "fp_tensor_scatter_add_s": [[206, 1, 1, "c.fp_tensor_scatter_add_s", "core_mask"], [206, 1, 1, "c.fp_tensor_scatter_add_s", "index_depth"], [206, 1, 1, "c.fp_tensor_scatter_add_s", "indices"], [206, 1, 1, "c.fp_tensor_scatter_add_s", "input"], [206, 1, 1, "c.fp_tensor_scatter_add_s", "input_rank"], [206, 1, 1, "c.fp_tensor_scatter_add_s", "input_shape"], [206, 1, 1, "c.fp_tensor_scatter_add_s", "num_unit"], [206, 1, 1, "c.fp_tensor_scatter_add_s", "output"], [206, 1, 1, "c.fp_tensor_scatter_add_s", "updates"]], "fp_tensorarrayread_p": [[208, 1, 1, "c.fp_tensorarrayread_p", "handle_data"], [208, 1, 1, "c.fp_tensorarrayread_p", "handle_size"], [208, 1, 1, "c.fp_tensorarrayread_p", "index"], [208, 1, 1, "c.fp_tensorarrayread_p", "output_data"], [208, 1, 1, "c.fp_tensorarrayread_p", "output_size"]], "fp_tensorarrayread_s": [[208, 1, 1, "c.fp_tensorarrayread_s", "core_mask"], [208, 1, 1, "c.fp_tensorarrayread_s", "handle_data"], [208, 1, 1, "c.fp_tensorarrayread_s", "handle_size"], [208, 1, 1, "c.fp_tensorarrayread_s", "index"], [208, 1, 1, "c.fp_tensorarrayread_s", "output_data"], [208, 1, 1, "c.fp_tensorarrayread_s", "output_size"]], "fp_tensorlistfromtensor_p": [[210, 1, 1, "c.fp_tensorlistfromtensor_p", "input_tensor_shape"], [210, 1, 1, "c.fp_tensorlistfromtensor_p", "input_tensor_total_elements"], [210, 1, 1, "c.fp_tensorlistfromtensor_p", "input_tensor_values"], [210, 1, 1, "c.fp_tensorlistfromtensor_p", "output_tensors"]], "fp_tensorlistfromtensor_s": [[210, 1, 1, "c.fp_tensorlistfromtensor_s", "core_mask"], [210, 1, 1, "c.fp_tensorlistfromtensor_s", "input_tensor_shape"], [210, 1, 1, "c.fp_tensorlistfromtensor_s", "input_tensor_total_elements"], [210, 1, 1, "c.fp_tensorlistfromtensor_s", "input_tensor_values"], [210, 1, 1, "c.fp_tensorlistfromtensor_s", "output_tensors"]], "fp_tile_p": [[215, 1, 1, "c.fp_tile_p", "input"], [215, 1, 1, "c.fp_tile_p", "input_shape"], [215, 1, 1, "c.fp_tile_p", "output"], [215, 1, 1, "c.fp_tile_p", "stride"], [215, 1, 1, "c.fp_tile_p", "tile_dim"], [215, 1, 1, "c.fp_tile_p", "tile_num"]], "fp_tile_s": [[215, 1, 1, "c.fp_tile_s", "core_mask"], [215, 1, 1, "c.fp_tile_s", "input"], [215, 1, 1, "c.fp_tile_s", "input_shape"], [215, 1, 1, "c.fp_tile_s", "output"], [215, 1, 1, "c.fp_tile_s", "stride"], [215, 1, 1, "c.fp_tile_s", "tile_dim"], [215, 1, 1, "c.fp_tile_s", "tile_num"]], "fp_to_i8_quant_p": [[146, 1, 1, "c.fp_to_i8_quant_p", "input"], [146, 1, 1, "c.fp_to_i8_quant_p", "length"], [146, 1, 1, "c.fp_to_i8_quant_p", "output"], [146, 1, 1, "c.fp_to_i8_quant_p", "scale"], [146, 1, 1, "c.fp_to_i8_quant_p", "zp"]], "fp_to_i8_quant_s": [[146, 1, 1, "c.fp_to_i8_quant_s", "core_mask"], [146, 1, 1, "c.fp_to_i8_quant_s", "input"], [146, 1, 1, "c.fp_to_i8_quant_s", "length"], [146, 1, 1, "c.fp_to_i8_quant_s", "output"], [146, 1, 1, "c.fp_to_i8_quant_s", "scale"], [146, 1, 1, "c.fp_to_i8_quant_s", "zp"]], "fp_topk_fusion_p": [[216, 1, 1, "c.fp_topk_fusion_p", "input"], [216, 1, 1, "c.fp_topk_fusion_p", "output"], [216, 1, 1, "c.fp_topk_fusion_p", "output_index"], [216, 1, 1, "c.fp_topk_fusion_p", "parameter"]], "fp_topk_fusion_s": [[216, 1, 1, "c.fp_topk_fusion_s", "core_mask"], [216, 1, 1, "c.fp_topk_fusion_s", "input"], [216, 1, 1, "c.fp_topk_fusion_s", "output"], [216, 1, 1, "c.fp_topk_fusion_s", "output_index"], [216, 1, 1, "c.fp_topk_fusion_s", "parameter"]], "fp_transpose_p": [[217, 1, 1, "c.fp_transpose_p", "in_data"], [217, 1, 1, "c.fp_transpose_p", "num_axes"], [217, 1, 1, "c.fp_transpose_p", "out_data"], [217, 1, 1, "c.fp_transpose_p", "out_strides"], [217, 1, 1, "c.fp_transpose_p", "output_shape"], [217, 1, 1, "c.fp_transpose_p", "perm"], [217, 1, 1, "c.fp_transpose_p", "strides"]], "fp_transpose_s": [[217, 1, 1, "c.fp_transpose_s", "core_mask"], [217, 1, 1, "c.fp_transpose_s", "in_data"], [217, 1, 1, "c.fp_transpose_s", "num_axes"], [217, 1, 1, "c.fp_transpose_s", "out_data"], [217, 1, 1, "c.fp_transpose_s", "out_strides"], [217, 1, 1, "c.fp_transpose_s", "output_shape"], [217, 1, 1, "c.fp_transpose_s", "perm"], [217, 1, 1, "c.fp_transpose_s", "strides"]], "fp_tril_p": [[218, 1, 1, "c.fp_tril_p", "dst"], [218, 1, 1, "c.fp_tril_p", "height"], [218, 1, 1, "c.fp_tril_p", "k"], [218, 1, 1, "c.fp_tril_p", "out_elems"], [218, 1, 1, "c.fp_tril_p", "src"], [218, 1, 1, "c.fp_tril_p", "width"]], "fp_tril_s": [[218, 1, 1, "c.fp_tril_s", "core_mask"], [218, 1, 1, "c.fp_tril_s", "dst"], [218, 1, 1, "c.fp_tril_s", "height"], [218, 1, 1, "c.fp_tril_s", "k"], [218, 1, 1, "c.fp_tril_s", "out_elems"], [218, 1, 1, "c.fp_tril_s", "src"], [218, 1, 1, "c.fp_tril_s", "width"]], "fp_triu_p": [[219, 1, 1, "c.fp_triu_p", "dst"], [219, 1, 1, "c.fp_triu_p", "height"], [219, 1, 1, "c.fp_triu_p", "k"], [219, 1, 1, "c.fp_triu_p", "out_elems"], [219, 1, 1, "c.fp_triu_p", "src"], [219, 1, 1, "c.fp_triu_p", "width"]], "fp_triu_s": [[219, 1, 1, "c.fp_triu_s", "core_mask"], [219, 1, 1, "c.fp_triu_s", "dst"], [219, 1, 1, "c.fp_triu_s", "height"], [219, 1, 1, "c.fp_triu_s", "k"], [219, 1, 1, "c.fp_triu_s", "out_elems"], [219, 1, 1, "c.fp_triu_s", "src"], [219, 1, 1, "c.fp_triu_s", "width"]], "fp_uniform_real_p": [[220, 1, 1, "c.fp_uniform_real_p", "length"], [220, 1, 1, "c.fp_uniform_real_p", "output"], [220, 1, 1, "c.fp_uniform_real_p", "seed"], [220, 1, 1, "c.fp_uniform_real_p", "seed2"]], "fp_uniform_real_s": [[220, 1, 1, "c.fp_uniform_real_s", "core_mask"], [220, 1, 1, "c.fp_uniform_real_s", "length"], [220, 1, 1, "c.fp_uniform_real_s", "output"], [220, 1, 1, "c.fp_uniform_real_s", "seed"], [220, 1, 1, "c.fp_uniform_real_s", "seed2"]], "fp_unsorted_segment_sum_p": [[222, 1, 1, "c.fp_unsorted_segment_sum_p", "dim0"], [222, 1, 1, "c.fp_unsorted_segment_sum_p", "dim1"], [222, 1, 1, "c.fp_unsorted_segment_sum_p", "id_max"], [222, 1, 1, "c.fp_unsorted_segment_sum_p", "index"], [222, 1, 1, "c.fp_unsorted_segment_sum_p", "input"], [222, 1, 1, "c.fp_unsorted_segment_sum_p", "output"]], "fp_unsorted_segment_sum_s": [[222, 1, 1, "c.fp_unsorted_segment_sum_s", "core_mask"], [222, 1, 1, "c.fp_unsorted_segment_sum_s", "dim0"], [222, 1, 1, "c.fp_unsorted_segment_sum_s", "dim1"], [222, 1, 1, "c.fp_unsorted_segment_sum_s", "id_max"], [222, 1, 1, "c.fp_unsorted_segment_sum_s", "index"], [222, 1, 1, "c.fp_unsorted_segment_sum_s", "input"], [222, 1, 1, "c.fp_unsorted_segment_sum_s", "output"]], "fp_where_p": [[225, 1, 1, "c.fp_where_p", "condition"], [225, 1, 1, "c.fp_where_p", "input0"], [225, 1, 1, "c.fp_where_p", "input1"], [225, 1, 1, "c.fp_where_p", "length"], [225, 1, 1, "c.fp_where_p", "output"]], "fp_where_s": [[225, 1, 1, "c.fp_where_s", "condition"], [225, 1, 1, "c.fp_where_s", "core_mask"], [225, 1, 1, "c.fp_where_s", "input0"], [225, 1, 1, "c.fp_where_s", "input1"], [225, 1, 1, "c.fp_where_s", "length"], [225, 1, 1, "c.fp_where_s", "output"]], "fp_zerolike_p": [[226, 1, 1, "c.fp_zerolike_p", "length"], [226, 1, 1, "c.fp_zerolike_p", "output"]], "fp_zerolike_s": [[226, 1, 1, "c.fp_zerolike_s", "core_mask"], [226, 1, 1, "c.fp_zerolike_s", "length"], [226, 1, 1, "c.fp_zerolike_s", "output"]], "hp_Gru_p": [[95, 1, 1, "c.hp_Gru_p", "buffer"], [95, 1, 1, "c.hp_Gru_p", "core_mask"], [95, 1, 1, "c.hp_Gru_p", "gru_param"], [95, 1, 1, "c.hp_Gru_p", "hidden_state"], [95, 1, 1, "c.hp_Gru_p", "input"], [95, 1, 1, "c.hp_Gru_p", "input_bias"], [95, 1, 1, "c.hp_Gru_p", "output"], [95, 1, 1, "c.hp_Gru_p", "state_bias"], [95, 1, 1, "c.hp_Gru_p", "weight_g"], [95, 1, 1, "c.hp_Gru_p", "weight_r"]], "hp_Gru_s": [[95, 1, 1, "c.hp_Gru_s", "buffer"], [95, 1, 1, "c.hp_Gru_s", "core_mask"], [95, 1, 1, "c.hp_Gru_s", "gru_param"], [95, 1, 1, "c.hp_Gru_s", "hidden_state"], [95, 1, 1, "c.hp_Gru_s", "input"], [95, 1, 1, "c.hp_Gru_s", "input_bias"], [95, 1, 1, "c.hp_Gru_s", "output"], [95, 1, 1, "c.hp_Gru_s", "state_bias"], [95, 1, 1, "c.hp_Gru_s", "weight_g"], [95, 1, 1, "c.hp_Gru_s", "weight_r"]], "hp_Lstm_p": [[117, 1, 1, "c.hp_Lstm_p", "buffer"], [117, 1, 1, "c.hp_Lstm_p", "cell_state"], [117, 1, 1, "c.hp_Lstm_p", "hidden_state"], [117, 1, 1, "c.hp_Lstm_p", "input"], [117, 1, 1, "c.hp_Lstm_p", "input_bias"], [117, 1, 1, "c.hp_Lstm_p", "lstm_param"], [117, 1, 1, "c.hp_Lstm_p", "output"], [117, 1, 1, "c.hp_Lstm_p", "state_bias"], [117, 1, 1, "c.hp_Lstm_p", "weight_h"], [117, 1, 1, "c.hp_Lstm_p", "weight_i"]], "hp_Lstm_s": [[117, 1, 1, "c.hp_Lstm_s", "buffer"], [117, 1, 1, "c.hp_Lstm_s", "cell_state"], [117, 1, 1, "c.hp_Lstm_s", "core_mask"], [117, 1, 1, "c.hp_Lstm_s", "hidden_state"], [117, 1, 1, "c.hp_Lstm_s", "input"], [117, 1, 1, "c.hp_Lstm_s", "input_bias"], [117, 1, 1, "c.hp_Lstm_s", "lstm_param"], [117, 1, 1, "c.hp_Lstm_s", "output"], [117, 1, 1, "c.hp_Lstm_s", "state_bias"], [117, 1, 1, "c.hp_Lstm_s", "weight_h"], [117, 1, 1, "c.hp_Lstm_s", "weight_i"]], "hp_QuantData_p": [[66, 1, 1, "c.hp_QuantData_p", "axis_num"], [66, 1, 1, "c.hp_QuantData_p", "element_num"], [66, 1, 1, "c.hp_QuantData_p", "quant_values"], [66, 1, 1, "c.hp_QuantData_p", "real_values"], [66, 1, 1, "c.hp_QuantData_p", "scale"], [66, 1, 1, "c.hp_QuantData_p", "segment_num"], [66, 1, 1, "c.hp_QuantData_p", "zp"]], "hp_QuantData_s": [[66, 1, 1, "c.hp_QuantData_s", "axis_num"], [66, 1, 1, "c.hp_QuantData_s", "core_mask"], [66, 1, 1, "c.hp_QuantData_s", "element_num"], [66, 1, 1, "c.hp_QuantData_s", "quant_values"], [66, 1, 1, "c.hp_QuantData_s", "real_values"], [66, 1, 1, "c.hp_QuantData_s", "scale"], [66, 1, 1, "c.hp_QuantData_s", "segment_num"], [66, 1, 1, "c.hp_QuantData_s", "zp"]], "hp_Unique_p": [[221, 1, 1, "c.hp_Unique_p", "input"], [221, 1, 1, "c.hp_Unique_p", "input_len"], [221, 1, 1, "c.hp_Unique_p", "output0"], [221, 1, 1, "c.hp_Unique_p", "output0_len"]], "hp_Unique_s": [[221, 1, 1, "c.hp_Unique_s", "core_mask"], [221, 1, 1, "c.hp_Unique_s", "input"], [221, 1, 1, "c.hp_Unique_s", "input_len"], [221, 1, 1, "c.hp_Unique_s", "output0"], [221, 1, 1, "c.hp_Unique_s", "output0_len"]], "hp_abs_p": [[10, 1, 1, "c.hp_abs_p", "dst_data"], [10, 1, 1, "c.hp_abs_p", "length"], [10, 1, 1, "c.hp_abs_p", "src_data"]], "hp_abs_s": [[10, 1, 1, "c.hp_abs_s", "core_mask"], [10, 1, 1, "c.hp_abs_s", "dst_data"], [10, 1, 1, "c.hp_abs_s", "length"], [10, 1, 1, "c.hp_abs_s", "src_data"]], "hp_absgrad_p": [[11, 1, 1, "c.hp_absgrad_p", "input0"], [11, 1, 1, "c.hp_absgrad_p", "input1"], [11, 1, 1, "c.hp_absgrad_p", "output"], [11, 1, 1, "c.hp_absgrad_p", "size"]], "hp_absgrad_s": [[11, 1, 1, "c.hp_absgrad_s", "core_mask"], [11, 1, 1, "c.hp_absgrad_s", "input0"], [11, 1, 1, "c.hp_absgrad_s", "input1"], [11, 1, 1, "c.hp_absgrad_s", "output"], [11, 1, 1, "c.hp_absgrad_s", "size"]], "hp_adamweightdecay_p": [[15, 1, 1, "c.hp_adamweightdecay_p", "beta1"], [15, 1, 1, "c.hp_adamweightdecay_p", "beta2"], [15, 1, 1, "c.hp_adamweightdecay_p", "decay"], [15, 1, 1, "c.hp_adamweightdecay_p", "epsilon"], [15, 1, 1, "c.hp_adamweightdecay_p", "gradient"], [15, 1, 1, "c.hp_adamweightdecay_p", "length"], [15, 1, 1, "c.hp_adamweightdecay_p", "lr"], [15, 1, 1, "c.hp_adamweightdecay_p", "m"], [15, 1, 1, "c.hp_adamweightdecay_p", "v"], [15, 1, 1, "c.hp_adamweightdecay_p", "var"]], "hp_adamweightdecay_s": [[15, 1, 1, "c.hp_adamweightdecay_s", "beta1"], [15, 1, 1, "c.hp_adamweightdecay_s", "beta2"], [15, 1, 1, "c.hp_adamweightdecay_s", "core_mask"], [15, 1, 1, "c.hp_adamweightdecay_s", "decay"], [15, 1, 1, "c.hp_adamweightdecay_s", "end"], [15, 1, 1, "c.hp_adamweightdecay_s", "epsilon"], [15, 1, 1, "c.hp_adamweightdecay_s", "gradient"], [15, 1, 1, "c.hp_adamweightdecay_s", "lr"], [15, 1, 1, "c.hp_adamweightdecay_s", "m"], [15, 1, 1, "c.hp_adamweightdecay_s", "start"], [15, 1, 1, "c.hp_adamweightdecay_s", "v"], [15, 1, 1, "c.hp_adamweightdecay_s", "var"]], "hp_adder_p": [[16, 1, 1, "c.hp_adder_p", "bias"], [16, 1, 1, "c.hp_adder_p", "conv_param"], [16, 1, 1, "c.hp_adder_p", "core_mask"], [16, 1, 1, "c.hp_adder_p", "input_w"], [16, 1, 1, "c.hp_adder_p", "input_x"], [16, 1, 1, "c.hp_adder_p", "out_y"]], "hp_adder_s": [[16, 1, 1, "c.hp_adder_s", "bias"], [16, 1, 1, "c.hp_adder_s", "core_mask"], [16, 1, 1, "c.hp_adder_s", "input_w"], [16, 1, 1, "c.hp_adder_s", "input_x"], [16, 1, 1, "c.hp_adder_s", "out_y"], [16, 1, 1, "c.hp_adder_s", "param"]], "hp_addext_p": [[17, 1, 1, "c.hp_addext_p", "alpha"], [17, 1, 1, "c.hp_addext_p", "in0"], [17, 1, 1, "c.hp_addext_p", "in1"], [17, 1, 1, "c.hp_addext_p", "out"], [17, 1, 1, "c.hp_addext_p", "size"]], "hp_addext_s": [[17, 1, 1, "c.hp_addext_s", "alpha"], [17, 1, 1, "c.hp_addext_s", "core_mask"], [17, 1, 1, "c.hp_addext_s", "in0"], [17, 1, 1, "c.hp_addext_s", "in1"], [17, 1, 1, "c.hp_addext_s", "out"], [17, 1, 1, "c.hp_addext_s", "size"]], "hp_addgrad_p": [[18, 1, 1, "c.hp_addgrad_p", "dx1"], [18, 1, 1, "c.hp_addgrad_p", "dx2"], [18, 1, 1, "c.hp_addgrad_p", "dy"], [18, 1, 1, "c.hp_addgrad_p", "dy_dims"], [18, 1, 1, "c.hp_addgrad_p", "num_dims"], [18, 1, 1, "c.hp_addgrad_p", "x1_dims"], [18, 1, 1, "c.hp_addgrad_p", "x2_dims"]], "hp_addgrad_s": [[18, 1, 1, "c.hp_addgrad_s", "core_mask"], [18, 1, 1, "c.hp_addgrad_s", "dx1"], [18, 1, 1, "c.hp_addgrad_s", "dx2"], [18, 1, 1, "c.hp_addgrad_s", "dy"], [18, 1, 1, "c.hp_addgrad_s", "dy_dims"], [18, 1, 1, "c.hp_addgrad_s", "num_dims"], [18, 1, 1, "c.hp_addgrad_s", "x1_dims"], [18, 1, 1, "c.hp_addgrad_s", "x2_dims"]], "hp_addrelu6_p": [[17, 1, 1, "c.hp_addrelu6_p", "in0"], [17, 1, 1, "c.hp_addrelu6_p", "in1"], [17, 1, 1, "c.hp_addrelu6_p", "out"], [17, 1, 1, "c.hp_addrelu6_p", "size"]], "hp_addrelu6_s": [[17, 1, 1, "c.hp_addrelu6_s", "core_mask"], [17, 1, 1, "c.hp_addrelu6_s", "in0"], [17, 1, 1, "c.hp_addrelu6_s", "in1"], [17, 1, 1, "c.hp_addrelu6_s", "out"], [17, 1, 1, "c.hp_addrelu6_s", "size"]], "hp_addrelu_p": [[17, 1, 1, "c.hp_addrelu_p", "in0"], [17, 1, 1, "c.hp_addrelu_p", "in1"], [17, 1, 1, "c.hp_addrelu_p", "out"], [17, 1, 1, "c.hp_addrelu_p", "size"]], "hp_addrelu_s": [[17, 1, 1, "c.hp_addrelu_s", "core_mask"], [17, 1, 1, "c.hp_addrelu_s", "in0"], [17, 1, 1, "c.hp_addrelu_s", "in1"], [17, 1, 1, "c.hp_addrelu_s", "out"], [17, 1, 1, "c.hp_addrelu_s", "size"]], "hp_affine_p": [[20, 1, 1, "c.hp_affine_p", "params"]], "hp_affine_s": [[20, 1, 1, "c.hp_affine_s", "core_mask"], [20, 1, 1, "c.hp_affine_s", "params"]], "hp_and_p": [[112, 1, 1, "c.hp_and_p", "input0"], [112, 1, 1, "c.hp_and_p", "input1"], [112, 1, 1, "c.hp_and_p", "length"], [112, 1, 1, "c.hp_and_p", "output"]], "hp_and_s": [[112, 1, 1, "c.hp_and_s", "core_mask"], [112, 1, 1, "c.hp_and_s", "input0"], [112, 1, 1, "c.hp_and_s", "input1"], [112, 1, 1, "c.hp_and_s", "length"], [112, 1, 1, "c.hp_and_s", "output"]], "hp_applymomentum_p": [[23, 1, 1, "c.hp_applymomentum_p", "accumulate"], [23, 1, 1, "c.hp_applymomentum_p", "gradient"], [23, 1, 1, "c.hp_applymomentum_p", "learning_rate"], [23, 1, 1, "c.hp_applymomentum_p", "length"], [23, 1, 1, "c.hp_applymomentum_p", "moment"], [23, 1, 1, "c.hp_applymomentum_p", "nesterov"], [23, 1, 1, "c.hp_applymomentum_p", "weight"]], "hp_applymomentum_s": [[23, 1, 1, "c.hp_applymomentum_s", "accumulate"], [23, 1, 1, "c.hp_applymomentum_s", "core_mask"], [23, 1, 1, "c.hp_applymomentum_s", "end"], [23, 1, 1, "c.hp_applymomentum_s", "gradient"], [23, 1, 1, "c.hp_applymomentum_s", "learning_rate"], [23, 1, 1, "c.hp_applymomentum_s", "moment"], [23, 1, 1, "c.hp_applymomentum_s", "nesterov"], [23, 1, 1, "c.hp_applymomentum_s", "start"], [23, 1, 1, "c.hp_applymomentum_s", "weight"]], "hp_argmax_p": [[24, 1, 1, "c.hp_argmax_p", "arg_elements"], [24, 1, 1, "c.hp_argmax_p", "axis"], [24, 1, 1, "c.hp_argmax_p", "in_shape"], [24, 1, 1, "c.hp_argmax_p", "in_strides"], [24, 1, 1, "c.hp_argmax_p", "index"], [24, 1, 1, "c.hp_argmax_p", "input"], [24, 1, 1, "c.hp_argmax_p", "input_shape_size"], [24, 1, 1, "c.hp_argmax_p", "out_strides"], [24, 1, 1, "c.hp_argmax_p", "out_value"], [24, 1, 1, "c.hp_argmax_p", "output"], [24, 1, 1, "c.hp_argmax_p", "output_value"], [24, 1, 1, "c.hp_argmax_p", "topk"]], "hp_argmax_s": [[24, 1, 1, "c.hp_argmax_s", "arg_elements"], [24, 1, 1, "c.hp_argmax_s", "axis"], [24, 1, 1, "c.hp_argmax_s", "core_mask"], [24, 1, 1, "c.hp_argmax_s", "in_shape"], [24, 1, 1, "c.hp_argmax_s", "in_strides"], [24, 1, 1, "c.hp_argmax_s", "index"], [24, 1, 1, "c.hp_argmax_s", "input"], [24, 1, 1, "c.hp_argmax_s", "input_shape_size"], [24, 1, 1, "c.hp_argmax_s", "out_strides"], [24, 1, 1, "c.hp_argmax_s", "out_value"], [24, 1, 1, "c.hp_argmax_s", "output"], [24, 1, 1, "c.hp_argmax_s", "output_value"], [24, 1, 1, "c.hp_argmax_s", "topk"]], "hp_argmin_p": [[25, 1, 1, "c.hp_argmin_p", "arg_elements"], [25, 1, 1, "c.hp_argmin_p", "axis"], [25, 1, 1, "c.hp_argmin_p", "in_shape"], [25, 1, 1, "c.hp_argmin_p", "in_strides"], [25, 1, 1, "c.hp_argmin_p", "index"], [25, 1, 1, "c.hp_argmin_p", "input"], [25, 1, 1, "c.hp_argmin_p", "input_shape_size"], [25, 1, 1, "c.hp_argmin_p", "out_strides"], [25, 1, 1, "c.hp_argmin_p", "out_value"], [25, 1, 1, "c.hp_argmin_p", "output"], [25, 1, 1, "c.hp_argmin_p", "output_value"], [25, 1, 1, "c.hp_argmin_p", "topk"]], "hp_argmin_s": [[25, 1, 1, "c.hp_argmin_s", "arg_elements"], [25, 1, 1, "c.hp_argmin_s", "axis"], [25, 1, 1, "c.hp_argmin_s", "core_mask"], [25, 1, 1, "c.hp_argmin_s", "in_shape"], [25, 1, 1, "c.hp_argmin_s", "in_strides"], [25, 1, 1, "c.hp_argmin_s", "index"], [25, 1, 1, "c.hp_argmin_s", "input"], [25, 1, 1, "c.hp_argmin_s", "input_shape_size"], [25, 1, 1, "c.hp_argmin_s", "out_strides"], [25, 1, 1, "c.hp_argmin_s", "out_value"], [25, 1, 1, "c.hp_argmin_s", "output"], [25, 1, 1, "c.hp_argmin_s", "output_value"], [25, 1, 1, "c.hp_argmin_s", "topk"]], "hp_assign_p": [[27, 1, 1, "c.hp_assign_p", "dst"], [27, 1, 1, "c.hp_assign_p", "length"], [27, 1, 1, "c.hp_assign_p", "src"]], "hp_assign_s": [[27, 1, 1, "c.hp_assign_s", "core_mask"], [27, 1, 1, "c.hp_assign_s", "dst"], [27, 1, 1, "c.hp_assign_s", "length"], [27, 1, 1, "c.hp_assign_s", "src"]], "hp_assignadd_p": [[28, 1, 1, "c.hp_assignadd_p", "input"], [28, 1, 1, "c.hp_assignadd_p", "length"], [28, 1, 1, "c.hp_assignadd_p", "output"]], "hp_assignadd_s": [[28, 1, 1, "c.hp_assignadd_s", "core_mask"], [28, 1, 1, "c.hp_assignadd_s", "input"], [28, 1, 1, "c.hp_assignadd_s", "length"], [28, 1, 1, "c.hp_assignadd_s", "output"]], "hp_avgpool_fusion_p": [[31, 1, 1, "c.hp_avgpool_fusion_p", "batch"], [31, 1, 1, "c.hp_avgpool_fusion_p", "channel"], [31, 1, 1, "c.hp_avgpool_fusion_p", "in_h"], [31, 1, 1, "c.hp_avgpool_fusion_p", "in_w"], [31, 1, 1, "c.hp_avgpool_fusion_p", "input"], [31, 1, 1, "c.hp_avgpool_fusion_p", "max_val"], [31, 1, 1, "c.hp_avgpool_fusion_p", "min_val"], [31, 1, 1, "c.hp_avgpool_fusion_p", "output"], [31, 1, 1, "c.hp_avgpool_fusion_p", "pad_bottom"], [31, 1, 1, "c.hp_avgpool_fusion_p", "pad_left"], [31, 1, 1, "c.hp_avgpool_fusion_p", "pad_right"], [31, 1, 1, "c.hp_avgpool_fusion_p", "pad_top"], [31, 1, 1, "c.hp_avgpool_fusion_p", "stride_h"], [31, 1, 1, "c.hp_avgpool_fusion_p", "stride_w"], [31, 1, 1, "c.hp_avgpool_fusion_p", "win_h"], [31, 1, 1, "c.hp_avgpool_fusion_p", "win_w"]], "hp_avgpool_fusion_s": [[31, 1, 1, "c.hp_avgpool_fusion_s", "batch"], [31, 1, 1, "c.hp_avgpool_fusion_s", "channel"], [31, 1, 1, "c.hp_avgpool_fusion_s", "core_mask"], [31, 1, 1, "c.hp_avgpool_fusion_s", "in_h"], [31, 1, 1, "c.hp_avgpool_fusion_s", "in_w"], [31, 1, 1, "c.hp_avgpool_fusion_s", "input"], [31, 1, 1, "c.hp_avgpool_fusion_s", "max_val"], [31, 1, 1, "c.hp_avgpool_fusion_s", "min_val"], [31, 1, 1, "c.hp_avgpool_fusion_s", "output"], [31, 1, 1, "c.hp_avgpool_fusion_s", "pad_bottom"], [31, 1, 1, "c.hp_avgpool_fusion_s", "pad_left"], [31, 1, 1, "c.hp_avgpool_fusion_s", "pad_right"], [31, 1, 1, "c.hp_avgpool_fusion_s", "pad_top"], [31, 1, 1, "c.hp_avgpool_fusion_s", "stride_h"], [31, 1, 1, "c.hp_avgpool_fusion_s", "stride_w"], [31, 1, 1, "c.hp_avgpool_fusion_s", "win_h"], [31, 1, 1, "c.hp_avgpool_fusion_s", "win_w"]], "hp_avgpoolinggrad_p": [[32, 1, 1, "c.hp_avgpoolinggrad_p", "batch"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "channel"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "end_idx"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "input"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "input_h"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "input_w"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "output"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "output_h"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "output_w"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "pad_l"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "pad_u"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "start_idx"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "stride_h"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "stride_w"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "window_h"], [32, 1, 1, "c.hp_avgpoolinggrad_p", "window_w"]], "hp_avgpoolinggrad_s": [[32, 1, 1, "c.hp_avgpoolinggrad_s", "batch"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "channel"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "core_mask"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "input"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "input_h"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "input_w"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "output"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "output_h"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "output_w"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "pad_l"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "pad_u"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "stride_h"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "stride_w"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "window_h"], [32, 1, 1, "c.hp_avgpoolinggrad_s", "window_w"]], "hp_batchnorm_p": [[33, 1, 1, "c.hp_batchnorm_p", "channel"], [33, 1, 1, "c.hp_batchnorm_p", "epsilon"], [33, 1, 1, "c.hp_batchnorm_p", "input"], [33, 1, 1, "c.hp_batchnorm_p", "mean"], [33, 1, 1, "c.hp_batchnorm_p", "output"], [33, 1, 1, "c.hp_batchnorm_p", "unit"], [33, 1, 1, "c.hp_batchnorm_p", "variance"]], "hp_batchnorm_s": [[33, 1, 1, "c.hp_batchnorm_s", "channel"], [33, 1, 1, "c.hp_batchnorm_s", "core_mask"], [33, 1, 1, "c.hp_batchnorm_s", "epsilon"], [33, 1, 1, "c.hp_batchnorm_s", "input"], [33, 1, 1, "c.hp_batchnorm_s", "mean"], [33, 1, 1, "c.hp_batchnorm_s", "output"], [33, 1, 1, "c.hp_batchnorm_s", "unit"], [33, 1, 1, "c.hp_batchnorm_s", "variance"]], "hp_batchnormgrad_p": [[34, 1, 1, "c.hp_batchnormgrad_p", "batch"], [34, 1, 1, "c.hp_batchnormgrad_p", "channel"], [34, 1, 1, "c.hp_batchnormgrad_p", "dbias"], [34, 1, 1, "c.hp_batchnormgrad_p", "dscale"], [34, 1, 1, "c.hp_batchnormgrad_p", "dx"], [34, 1, 1, "c.hp_batchnormgrad_p", "dy"], [34, 1, 1, "c.hp_batchnormgrad_p", "invar"], [34, 1, 1, "c.hp_batchnormgrad_p", "is_train"], [34, 1, 1, "c.hp_batchnormgrad_p", "mean"], [34, 1, 1, "c.hp_batchnormgrad_p", "scale"], [34, 1, 1, "c.hp_batchnormgrad_p", "x"]], "hp_batchnormgrad_s": [[34, 1, 1, "c.hp_batchnormgrad_s", "batch"], [34, 1, 1, "c.hp_batchnormgrad_s", "channel"], [34, 1, 1, "c.hp_batchnormgrad_s", "core_mask"], [34, 1, 1, "c.hp_batchnormgrad_s", "dbias"], [34, 1, 1, "c.hp_batchnormgrad_s", "dscale"], [34, 1, 1, "c.hp_batchnormgrad_s", "dx"], [34, 1, 1, "c.hp_batchnormgrad_s", "dy"], [34, 1, 1, "c.hp_batchnormgrad_s", "invar"], [34, 1, 1, "c.hp_batchnormgrad_s", "is_train"], [34, 1, 1, "c.hp_batchnormgrad_s", "mean"], [34, 1, 1, "c.hp_batchnormgrad_s", "scale"], [34, 1, 1, "c.hp_batchnormgrad_s", "x"]], "hp_batchtospace_p": [[35, 1, 1, "c.hp_batchtospace_p", "block_size"], [35, 1, 1, "c.hp_batchtospace_p", "crops"], [35, 1, 1, "c.hp_batchtospace_p", "data_size"], [35, 1, 1, "c.hp_batchtospace_p", "input"], [35, 1, 1, "c.hp_batchtospace_p", "input_shape"], [35, 1, 1, "c.hp_batchtospace_p", "output"]], "hp_batchtospace_s": [[35, 1, 1, "c.hp_batchtospace_s", "block_size"], [35, 1, 1, "c.hp_batchtospace_s", "core_mask"], [35, 1, 1, "c.hp_batchtospace_s", "crops"], [35, 1, 1, "c.hp_batchtospace_s", "data_size"], [35, 1, 1, "c.hp_batchtospace_s", "input"], [35, 1, 1, "c.hp_batchtospace_s", "input_shape"], [35, 1, 1, "c.hp_batchtospace_s", "output"]], "hp_batchtospacend_p": [[36, 1, 1, "c.hp_batchtospacend_p", "block_size"], [36, 1, 1, "c.hp_batchtospacend_p", "crops"], [36, 1, 1, "c.hp_batchtospacend_p", "data_size"], [36, 1, 1, "c.hp_batchtospacend_p", "input"], [36, 1, 1, "c.hp_batchtospacend_p", "input_shape"], [36, 1, 1, "c.hp_batchtospacend_p", "output"]], "hp_batchtospacend_s": [[36, 1, 1, "c.hp_batchtospacend_s", "block_size"], [36, 1, 1, "c.hp_batchtospacend_s", "core_mask"], [36, 1, 1, "c.hp_batchtospacend_s", "crops"], [36, 1, 1, "c.hp_batchtospacend_s", "data_size"], [36, 1, 1, "c.hp_batchtospacend_s", "input"], [36, 1, 1, "c.hp_batchtospacend_s", "input_shape"], [36, 1, 1, "c.hp_batchtospacend_s", "output"]], "hp_biasadd_p": [[37, 1, 1, "c.hp_biasadd_p", "data_format"], [37, 1, 1, "c.hp_biasadd_p", "dims"], [37, 1, 1, "c.hp_biasadd_p", "input_bias"], [37, 1, 1, "c.hp_biasadd_p", "input_x"], [37, 1, 1, "c.hp_biasadd_p", "length"], [37, 1, 1, "c.hp_biasadd_p", "output"], [37, 1, 1, "c.hp_biasadd_p", "shape_size"]], "hp_biasadd_s": [[37, 1, 1, "c.hp_biasadd_s", "core_mask"], [37, 1, 1, "c.hp_biasadd_s", "data_format"], [37, 1, 1, "c.hp_biasadd_s", "dims"], [37, 1, 1, "c.hp_biasadd_s", "input_bias"], [37, 1, 1, "c.hp_biasadd_s", "input_x"], [37, 1, 1, "c.hp_biasadd_s", "length"], [37, 1, 1, "c.hp_biasadd_s", "output"], [37, 1, 1, "c.hp_biasadd_s", "shape_size"]], "hp_biasaddgrad_p": [[38, 1, 1, "c.hp_biasaddgrad_p", "dbias"], [38, 1, 1, "c.hp_biasaddgrad_p", "dy"], [38, 1, 1, "c.hp_biasaddgrad_p", "dy_dims"], [38, 1, 1, "c.hp_biasaddgrad_p", "shape_size"]], "hp_biasaddgrad_s": [[38, 1, 1, "c.hp_biasaddgrad_s", "core_mask"], [38, 1, 1, "c.hp_biasaddgrad_s", "dbias"], [38, 1, 1, "c.hp_biasaddgrad_s", "dy"], [38, 1, 1, "c.hp_biasaddgrad_s", "dy_dims"], [38, 1, 1, "c.hp_biasaddgrad_s", "shape_size"]], "hp_binarycrossentropy_p": [[39, 1, 1, "c.hp_binarycrossentropy_p", "input_size"], [39, 1, 1, "c.hp_binarycrossentropy_p", "input_x"], [39, 1, 1, "c.hp_binarycrossentropy_p", "input_y"], [39, 1, 1, "c.hp_binarycrossentropy_p", "loss"], [39, 1, 1, "c.hp_binarycrossentropy_p", "reduction"], [39, 1, 1, "c.hp_binarycrossentropy_p", "tmp_loss"], [39, 1, 1, "c.hp_binarycrossentropy_p", "weight"], [39, 1, 1, "c.hp_binarycrossentropy_p", "weight_defined"]], "hp_binarycrossentropy_s": [[39, 1, 1, "c.hp_binarycrossentropy_s", "core_mask"], [39, 1, 1, "c.hp_binarycrossentropy_s", "input_size"], [39, 1, 1, "c.hp_binarycrossentropy_s", "input_x"], [39, 1, 1, "c.hp_binarycrossentropy_s", "input_y"], [39, 1, 1, "c.hp_binarycrossentropy_s", "loss"], [39, 1, 1, "c.hp_binarycrossentropy_s", "reduction"], [39, 1, 1, "c.hp_binarycrossentropy_s", "tmp_loss"], [39, 1, 1, "c.hp_binarycrossentropy_s", "weight"], [39, 1, 1, "c.hp_binarycrossentropy_s", "weight_defined"]], "hp_binarycrossentropygrad_p": [[40, 1, 1, "c.hp_binarycrossentropygrad_p", "dloss"], [40, 1, 1, "c.hp_binarycrossentropygrad_p", "dx"], [40, 1, 1, "c.hp_binarycrossentropygrad_p", "input_size"], [40, 1, 1, "c.hp_binarycrossentropygrad_p", "input_x"], [40, 1, 1, "c.hp_binarycrossentropygrad_p", "input_y"], [40, 1, 1, "c.hp_binarycrossentropygrad_p", "reduction"], [40, 1, 1, "c.hp_binarycrossentropygrad_p", "weight"], [40, 1, 1, "c.hp_binarycrossentropygrad_p", "weight_defined"]], "hp_binarycrossentropygrad_s": [[40, 1, 1, "c.hp_binarycrossentropygrad_s", "core_mask"], [40, 1, 1, "c.hp_binarycrossentropygrad_s", "dloss"], [40, 1, 1, "c.hp_binarycrossentropygrad_s", "dx"], [40, 1, 1, "c.hp_binarycrossentropygrad_s", "input_size"], [40, 1, 1, "c.hp_binarycrossentropygrad_s", "input_x"], [40, 1, 1, "c.hp_binarycrossentropygrad_s", "input_y"], [40, 1, 1, "c.hp_binarycrossentropygrad_s", "reduction"], [40, 1, 1, "c.hp_binarycrossentropygrad_s", "weight"], [40, 1, 1, "c.hp_binarycrossentropygrad_s", "weight_defined"]], "hp_broadcastto_p": [[41, 1, 1, "c.hp_broadcastto_p", "data_size"], [41, 1, 1, "c.hp_broadcastto_p", "input"], [41, 1, 1, "c.hp_broadcastto_p", "input_shape"], [41, 1, 1, "c.hp_broadcastto_p", "input_shape_size"], [41, 1, 1, "c.hp_broadcastto_p", "output"], [41, 1, 1, "c.hp_broadcastto_p", "output_shape"], [41, 1, 1, "c.hp_broadcastto_p", "output_shape_size"]], "hp_broadcastto_s": [[41, 1, 1, "c.hp_broadcastto_s", "core_mask"], [41, 1, 1, "c.hp_broadcastto_s", "data_size"], [41, 1, 1, "c.hp_broadcastto_s", "input"], [41, 1, 1, "c.hp_broadcastto_s", "input_shape"], [41, 1, 1, "c.hp_broadcastto_s", "input_shape_size"], [41, 1, 1, "c.hp_broadcastto_s", "output"], [41, 1, 1, "c.hp_broadcastto_s", "output_shape"], [41, 1, 1, "c.hp_broadcastto_s", "output_shape_size"]], "hp_ceil_p": [[43, 1, 1, "c.hp_ceil_p", "input_size"], [43, 1, 1, "c.hp_ceil_p", "input_x"], [43, 1, 1, "c.hp_ceil_p", "output"]], "hp_ceil_s": [[43, 1, 1, "c.hp_ceil_s", "core_mask"], [43, 1, 1, "c.hp_ceil_s", "input_size"], [43, 1, 1, "c.hp_ceil_s", "input_x"], [43, 1, 1, "c.hp_ceil_s", "output"]], "hp_celu_p": [[12, 1, 1, "c.hp_celu_p", "Input0"], [12, 1, 1, "c.hp_celu_p", "alpha"], [12, 1, 1, "c.hp_celu_p", "length"], [12, 1, 1, "c.hp_celu_p", "output"]], "hp_celu_s": [[12, 1, 1, "c.hp_celu_s", "Input0"], [12, 1, 1, "c.hp_celu_s", "alpha"], [12, 1, 1, "c.hp_celu_s", "core_mask"], [12, 1, 1, "c.hp_celu_s", "length"], [12, 1, 1, "c.hp_celu_s", "output"]], "hp_clip_p": [[12, 1, 1, "c.hp_clip_p", "Input0"], [12, 1, 1, "c.hp_clip_p", "length"], [12, 1, 1, "c.hp_clip_p", "max_val"], [12, 1, 1, "c.hp_clip_p", "min_val"], [12, 1, 1, "c.hp_clip_p", "output"]], "hp_clip_s": [[12, 1, 1, "c.hp_clip_s", "Input0"], [12, 1, 1, "c.hp_clip_s", "core_mask"], [12, 1, 1, "c.hp_clip_s", "length"], [12, 1, 1, "c.hp_clip_s", "max_val"], [12, 1, 1, "c.hp_clip_s", "min_val"], [12, 1, 1, "c.hp_clip_s", "output"]], "hp_concat_p": [[45, 1, 1, "c.hp_concat_p", "axis"], [45, 1, 1, "c.hp_concat_p", "input_ndim"], [45, 1, 1, "c.hp_concat_p", "input_shapes"], [45, 1, 1, "c.hp_concat_p", "inputs"], [45, 1, 1, "c.hp_concat_p", "num_inputs"], [45, 1, 1, "c.hp_concat_p", "output"]], "hp_concat_s": [[45, 1, 1, "c.hp_concat_s", "axis"], [45, 1, 1, "c.hp_concat_s", "core_mask"], [45, 1, 1, "c.hp_concat_s", "input_ndim"], [45, 1, 1, "c.hp_concat_s", "input_shapes"], [45, 1, 1, "c.hp_concat_s", "inputs"], [45, 1, 1, "c.hp_concat_s", "num_inputs"], [45, 1, 1, "c.hp_concat_s", "output"]], "hp_conv2d_p": [[47, 1, 1, "c.hp_conv2d_p", "bias"], [47, 1, 1, "c.hp_conv2d_p", "conv_param"], [47, 1, 1, "c.hp_conv2d_p", "core_mask"], [47, 1, 1, "c.hp_conv2d_p", "input_w"], [47, 1, 1, "c.hp_conv2d_p", "input_x"], [47, 1, 1, "c.hp_conv2d_p", "out_y"]], "hp_conv2d_s": [[47, 1, 1, "c.hp_conv2d_s", "bias"], [47, 1, 1, "c.hp_conv2d_s", "conv_param"], [47, 1, 1, "c.hp_conv2d_s", "core_mask"], [47, 1, 1, "c.hp_conv2d_s", "input_w"], [47, 1, 1, "c.hp_conv2d_s", "input_x"], [47, 1, 1, "c.hp_conv2d_s", "out_y"]], "hp_conv2dbackpropfilterfusion_p": [[49, 1, 1, "c.hp_conv2dbackpropfilterfusion_p", "conv_param"], [49, 1, 1, "c.hp_conv2dbackpropfilterfusion_p", "dw"], [49, 1, 1, "c.hp_conv2dbackpropfilterfusion_p", "dy"], [49, 1, 1, "c.hp_conv2dbackpropfilterfusion_p", "x"]], "hp_conv2dbackpropfilterfusion_s": [[49, 1, 1, "c.hp_conv2dbackpropfilterfusion_s", "conv_param"], [49, 1, 1, "c.hp_conv2dbackpropfilterfusion_s", "core_mask"], [49, 1, 1, "c.hp_conv2dbackpropfilterfusion_s", "dw"], [49, 1, 1, "c.hp_conv2dbackpropfilterfusion_s", "dy"], [49, 1, 1, "c.hp_conv2dbackpropfilterfusion_s", "x"]], "hp_conv2dbackpropinputfusion_p": [[50, 1, 1, "c.hp_conv2dbackpropinputfusion_p", "conv_param"], [50, 1, 1, "c.hp_conv2dbackpropinputfusion_p", "dx"], [50, 1, 1, "c.hp_conv2dbackpropinputfusion_p", "dy"], [50, 1, 1, "c.hp_conv2dbackpropinputfusion_p", "w"]], "hp_conv2dbackpropinputfusion_s": [[50, 1, 1, "c.hp_conv2dbackpropinputfusion_s", "conv_param"], [50, 1, 1, "c.hp_conv2dbackpropinputfusion_s", "core_mask"], [50, 1, 1, "c.hp_conv2dbackpropinputfusion_s", "dx"], [50, 1, 1, "c.hp_conv2dbackpropinputfusion_s", "dy"], [50, 1, 1, "c.hp_conv2dbackpropinputfusion_s", "w"]], "hp_convtranspose_p": [[48, 1, 1, "c.hp_convtranspose_p", "bias"], [48, 1, 1, "c.hp_convtranspose_p", "conv_param"], [48, 1, 1, "c.hp_convtranspose_p", "core_mask"], [48, 1, 1, "c.hp_convtranspose_p", "input_w"], [48, 1, 1, "c.hp_convtranspose_p", "input_x"], [48, 1, 1, "c.hp_convtranspose_p", "out_y"]], "hp_convtranspose_s": [[48, 1, 1, "c.hp_convtranspose_s", "bias"], [48, 1, 1, "c.hp_convtranspose_s", "conv_param"], [48, 1, 1, "c.hp_convtranspose_s", "core_mask"], [48, 1, 1, "c.hp_convtranspose_s", "input_w"], [48, 1, 1, "c.hp_convtranspose_s", "input_x"], [48, 1, 1, "c.hp_convtranspose_s", "out_y"]], "hp_cos_p": [[51, 1, 1, "c.hp_cos_p", "dst_data"], [51, 1, 1, "c.hp_cos_p", "length"], [51, 1, 1, "c.hp_cos_p", "src_data"]], "hp_cos_s": [[51, 1, 1, "c.hp_cos_s", "core_mask"], [51, 1, 1, "c.hp_cos_s", "dst_data"], [51, 1, 1, "c.hp_cos_s", "length"], [51, 1, 1, "c.hp_cos_s", "src_data"]], "hp_crop_and_resize_anycore": [[53, 1, 1, "c.hp_crop_and_resize_anycore", "box_idx"], [53, 1, 1, "c.hp_crop_and_resize_anycore", "boxes"], [53, 1, 1, "c.hp_crop_and_resize_anycore", "core_mask"], [53, 1, 1, "c.hp_crop_and_resize_anycore", "dst"], [53, 1, 1, "c.hp_crop_and_resize_anycore", "extrapolation_value"], [53, 1, 1, "c.hp_crop_and_resize_anycore", "param"], [53, 1, 1, "c.hp_crop_and_resize_anycore", "src"]], "hp_cumsum_p": [[54, 1, 1, "c.hp_cumsum_p", "axis_dim"], [54, 1, 1, "c.hp_cumsum_p", "exclusive"], [54, 1, 1, "c.hp_cumsum_p", "inner_dim"], [54, 1, 1, "c.hp_cumsum_p", "input"], [54, 1, 1, "c.hp_cumsum_p", "out_dim"], [54, 1, 1, "c.hp_cumsum_p", "output"]], "hp_cumsum_s": [[54, 1, 1, "c.hp_cumsum_s", "axis_dim"], [54, 1, 1, "c.hp_cumsum_s", "core_mask"], [54, 1, 1, "c.hp_cumsum_s", "exclusive"], [54, 1, 1, "c.hp_cumsum_s", "inner_dim"], [54, 1, 1, "c.hp_cumsum_s", "input"], [54, 1, 1, "c.hp_cumsum_s", "out_dim"], [54, 1, 1, "c.hp_cumsum_s", "output"]], "hp_deconvgradfilter_p": [[58, 1, 1, "c.hp_deconvgradfilter_p", "dw_data"], [58, 1, 1, "c.hp_deconvgradfilter_p", "dy_data"], [58, 1, 1, "c.hp_deconvgradfilter_p", "param"], [58, 1, 1, "c.hp_deconvgradfilter_p", "x_data"]], "hp_deconvgradfilter_s": [[58, 1, 1, "c.hp_deconvgradfilter_s", "core_mask"], [58, 1, 1, "c.hp_deconvgradfilter_s", "dw_data"], [58, 1, 1, "c.hp_deconvgradfilter_s", "dy_data"], [58, 1, 1, "c.hp_deconvgradfilter_s", "param"], [58, 1, 1, "c.hp_deconvgradfilter_s", "x_data"]], "hp_depthtospace_p": [[59, 1, 1, "c.hp_depthtospace_p", "block_size"], [59, 1, 1, "c.hp_depthtospace_p", "data_size"], [59, 1, 1, "c.hp_depthtospace_p", "in_shape"], [59, 1, 1, "c.hp_depthtospace_p", "input"], [59, 1, 1, "c.hp_depthtospace_p", "output"]], "hp_depthtospace_s": [[59, 1, 1, "c.hp_depthtospace_s", "block_size"], [59, 1, 1, "c.hp_depthtospace_s", "core_mask"], [59, 1, 1, "c.hp_depthtospace_s", "data_size"], [59, 1, 1, "c.hp_depthtospace_s", "in_shape"], [59, 1, 1, "c.hp_depthtospace_s", "input"], [59, 1, 1, "c.hp_depthtospace_s", "output"]], "hp_detection_post_process_p": [[60, 1, 1, "c.hp_detection_post_process_p", "anchors"], [60, 1, 1, "c.hp_detection_post_process_p", "input_boxes"], [60, 1, 1, "c.hp_detection_post_process_p", "input_scores"], [60, 1, 1, "c.hp_detection_post_process_p", "output_boxes"], [60, 1, 1, "c.hp_detection_post_process_p", "output_classes"], [60, 1, 1, "c.hp_detection_post_process_p", "output_num"], [60, 1, 1, "c.hp_detection_post_process_p", "output_scores"], [60, 1, 1, "c.hp_detection_post_process_p", "param"]], "hp_detection_post_process_s": [[60, 1, 1, "c.hp_detection_post_process_s", "anchors"], [60, 1, 1, "c.hp_detection_post_process_s", "core_mask"], [60, 1, 1, "c.hp_detection_post_process_s", "input_boxes"], [60, 1, 1, "c.hp_detection_post_process_s", "input_scores"], [60, 1, 1, "c.hp_detection_post_process_s", "output_boxes"], [60, 1, 1, "c.hp_detection_post_process_s", "output_classes"], [60, 1, 1, "c.hp_detection_post_process_s", "output_num"], [60, 1, 1, "c.hp_detection_post_process_s", "output_scores"], [60, 1, 1, "c.hp_detection_post_process_s", "param"]], "hp_div_fusion_p": [[61, 1, 1, "c.hp_div_fusion_p", "input0"], [61, 1, 1, "c.hp_div_fusion_p", "input1"], [61, 1, 1, "c.hp_div_fusion_p", "length"], [61, 1, 1, "c.hp_div_fusion_p", "output"]], "hp_div_fusion_s": [[61, 1, 1, "c.hp_div_fusion_s", "core_mask"], [61, 1, 1, "c.hp_div_fusion_s", "input0"], [61, 1, 1, "c.hp_div_fusion_s", "input1"], [61, 1, 1, "c.hp_div_fusion_s", "length"], [61, 1, 1, "c.hp_div_fusion_s", "output"]], "hp_dropout_p": [[63, 1, 1, "c.hp_dropout_p", "input"], [63, 1, 1, "c.hp_dropout_p", "length"], [63, 1, 1, "c.hp_dropout_p", "mask"], [63, 1, 1, "c.hp_dropout_p", "output"], [63, 1, 1, "c.hp_dropout_p", "scale"]], "hp_dropout_s": [[63, 1, 1, "c.hp_dropout_s", "core_mask"], [63, 1, 1, "c.hp_dropout_s", "input"], [63, 1, 1, "c.hp_dropout_s", "length"], [63, 1, 1, "c.hp_dropout_s", "mask"], [63, 1, 1, "c.hp_dropout_s", "output"], [63, 1, 1, "c.hp_dropout_s", "scale"]], "hp_dropoutgrad_p": [[64, 1, 1, "c.hp_dropoutgrad_p", "input"], [64, 1, 1, "c.hp_dropoutgrad_p", "length"], [64, 1, 1, "c.hp_dropoutgrad_p", "mask"], [64, 1, 1, "c.hp_dropoutgrad_p", "output"], [64, 1, 1, "c.hp_dropoutgrad_p", "scale"]], "hp_dropoutgrad_s": [[64, 1, 1, "c.hp_dropoutgrad_s", "core_mask"], [64, 1, 1, "c.hp_dropoutgrad_s", "input"], [64, 1, 1, "c.hp_dropoutgrad_s", "length"], [64, 1, 1, "c.hp_dropoutgrad_s", "mask"], [64, 1, 1, "c.hp_dropoutgrad_s", "output"], [64, 1, 1, "c.hp_dropoutgrad_s", "scale"]], "hp_eltwise_p": [[67, 1, 1, "c.hp_eltwise_p", "Input0"], [67, 1, 1, "c.hp_eltwise_p", "Input1"], [67, 1, 1, "c.hp_eltwise_p", "eltwise_mode_"], [67, 1, 1, "c.hp_eltwise_p", "length"], [67, 1, 1, "c.hp_eltwise_p", "output"]], "hp_eltwise_s": [[67, 1, 1, "c.hp_eltwise_s", "Input0"], [67, 1, 1, "c.hp_eltwise_s", "Input1"], [67, 1, 1, "c.hp_eltwise_s", "core_mask"], [67, 1, 1, "c.hp_eltwise_s", "eltwise_mode_"], [67, 1, 1, "c.hp_eltwise_s", "length"], [67, 1, 1, "c.hp_eltwise_s", "output"]], "hp_elu_p": [[12, 1, 1, "c.hp_elu_p", "Input0"], [12, 1, 1, "c.hp_elu_p", "alpha"], [12, 1, 1, "c.hp_elu_p", "length"], [12, 1, 1, "c.hp_elu_p", "output"]], "hp_elu_s": [[12, 1, 1, "c.hp_elu_s", "Input0"], [12, 1, 1, "c.hp_elu_s", "alpha"], [12, 1, 1, "c.hp_elu_s", "core_mask"], [12, 1, 1, "c.hp_elu_s", "length"], [12, 1, 1, "c.hp_elu_s", "output"]], "hp_embeddinglookup_p": [[69, 1, 1, "c.hp_embeddinglookup_p", "Input0"], [69, 1, 1, "c.hp_embeddinglookup_p", "Input1"], [69, 1, 1, "c.hp_embeddinglookup_p", "length"], [69, 1, 1, "c.hp_embeddinglookup_p", "output"]], "hp_embeddinglookup_s": [[69, 1, 1, "c.hp_embeddinglookup_s", "core_mask"], [69, 1, 1, "c.hp_embeddinglookup_s", "ids"], [69, 1, 1, "c.hp_embeddinglookup_s", "ids_size_"], [69, 1, 1, "c.hp_embeddinglookup_s", "input_data"], [69, 1, 1, "c.hp_embeddinglookup_s", "is_regulated"], [69, 1, 1, "c.hp_embeddinglookup_s", "layer_num_"], [69, 1, 1, "c.hp_embeddinglookup_s", "layer_size_"], [69, 1, 1, "c.hp_embeddinglookup_s", "max_norm_"], [69, 1, 1, "c.hp_embeddinglookup_s", "output"]], "hp_equal_p": [[70, 1, 1, "c.hp_equal_p", "Input0"], [70, 1, 1, "c.hp_equal_p", "Input1"], [70, 1, 1, "c.hp_equal_p", "length"], [70, 1, 1, "c.hp_equal_p", "output"]], "hp_equal_s": [[70, 1, 1, "c.hp_equal_s", "Input0"], [70, 1, 1, "c.hp_equal_s", "Input1"], [70, 1, 1, "c.hp_equal_s", "core_mask"], [70, 1, 1, "c.hp_equal_s", "length"], [70, 1, 1, "c.hp_equal_s", "output"]], "hp_erf_p": [[71, 1, 1, "c.hp_erf_p", "input"], [71, 1, 1, "c.hp_erf_p", "length"], [71, 1, 1, "c.hp_erf_p", "output"]], "hp_erf_s": [[71, 1, 1, "c.hp_erf_s", "core_mask"], [71, 1, 1, "c.hp_erf_s", "input"], [71, 1, 1, "c.hp_erf_s", "length"], [71, 1, 1, "c.hp_erf_s", "output"]], "hp_expfusion_p": [[73, 1, 1, "c.hp_expfusion_p", "dst_data"], [73, 1, 1, "c.hp_expfusion_p", "in_scale"], [73, 1, 1, "c.hp_expfusion_p", "length"], [73, 1, 1, "c.hp_expfusion_p", "out_scale"], [73, 1, 1, "c.hp_expfusion_p", "scale"], [73, 1, 1, "c.hp_expfusion_p", "src_data"]], "hp_expfusion_s": [[73, 1, 1, "c.hp_expfusion_s", "core_mask"], [73, 1, 1, "c.hp_expfusion_s", "dst_data"], [73, 1, 1, "c.hp_expfusion_s", "in_scale"], [73, 1, 1, "c.hp_expfusion_s", "length"], [73, 1, 1, "c.hp_expfusion_s", "out_scale"], [73, 1, 1, "c.hp_expfusion_s", "scale"], [73, 1, 1, "c.hp_expfusion_s", "src_data"]], "hp_fake_quant_with_min_max_vars_p": [[74, 1, 1, "c.hp_fake_quant_with_min_max_vars_p", "length"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_p", "max_val"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_p", "min_val"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_p", "output"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_p", "quant_max"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_p", "quant_min"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_p", "src"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_p", "symmetric"]], "hp_fake_quant_with_min_max_vars_per_channel_p": [[75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_p", "channel_num"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_p", "length"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_p", "max_val"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_p", "min_val"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_p", "output"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_p", "quant_max"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_p", "quant_min"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_p", "src"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_p", "symmetric"]], "hp_fake_quant_with_min_max_vars_per_channel_s": [[75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_s", "channel_num"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_s", "core_mask"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_s", "length"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_s", "max_val"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_s", "min_val"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_s", "output"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_s", "quant_max"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_s", "quant_min"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_s", "src"], [75, 1, 1, "c.hp_fake_quant_with_min_max_vars_per_channel_s", "symmetric"]], "hp_fake_quant_with_min_max_vars_s": [[74, 1, 1, "c.hp_fake_quant_with_min_max_vars_s", "core_mask"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_s", "length"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_s", "max_val"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_s", "min_val"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_s", "output"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_s", "quant_max"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_s", "quant_min"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_s", "src"], [74, 1, 1, "c.hp_fake_quant_with_min_max_vars_s", "symmetric"]], "hp_fill_p": [[78, 1, 1, "c.hp_fill_p", "output"], [78, 1, 1, "c.hp_fill_p", "param"], [78, 1, 1, "c.hp_fill_p", "value"]], "hp_fill_s": [[78, 1, 1, "c.hp_fill_s", "core_mask"], [78, 1, 1, "c.hp_fill_s", "output"], [78, 1, 1, "c.hp_fill_s", "param"], [78, 1, 1, "c.hp_fill_s", "value"]], "hp_flattengrad_p": [[81, 1, 1, "c.hp_flattengrad_p", "input"], [81, 1, 1, "c.hp_flattengrad_p", "origin_ndim"], [81, 1, 1, "c.hp_flattengrad_p", "origin_shape"], [81, 1, 1, "c.hp_flattengrad_p", "output"]], "hp_flattengrad_s": [[81, 1, 1, "c.hp_flattengrad_s", "core_mask"], [81, 1, 1, "c.hp_flattengrad_s", "input"], [81, 1, 1, "c.hp_flattengrad_s", "origin_ndim"], [81, 1, 1, "c.hp_flattengrad_s", "origin_shape"], [81, 1, 1, "c.hp_flattengrad_s", "output"]], "hp_floor_p": [[82, 1, 1, "c.hp_floor_p", "dst_data"], [82, 1, 1, "c.hp_floor_p", "length"], [82, 1, 1, "c.hp_floor_p", "src_data"]], "hp_floor_s": [[82, 1, 1, "c.hp_floor_s", "core_mask"], [82, 1, 1, "c.hp_floor_s", "dst_data"], [82, 1, 1, "c.hp_floor_s", "length"], [82, 1, 1, "c.hp_floor_s", "src_data"]], "hp_floordiv_p": [[83, 1, 1, "c.hp_floordiv_p", "dst_data"], [83, 1, 1, "c.hp_floordiv_p", "length"], [83, 1, 1, "c.hp_floordiv_p", "src_data0"], [83, 1, 1, "c.hp_floordiv_p", "src_data1"]], "hp_floordiv_s": [[83, 1, 1, "c.hp_floordiv_s", "core_mask"], [83, 1, 1, "c.hp_floordiv_s", "dst_data"], [83, 1, 1, "c.hp_floordiv_s", "length"], [83, 1, 1, "c.hp_floordiv_s", "src_data0"], [83, 1, 1, "c.hp_floordiv_s", "src_data1"]], "hp_floormod_p": [[84, 1, 1, "c.hp_floormod_p", "input0"], [84, 1, 1, "c.hp_floormod_p", "input1"], [84, 1, 1, "c.hp_floormod_p", "output"], [84, 1, 1, "c.hp_floormod_p", "size"]], "hp_floormod_s": [[84, 1, 1, "c.hp_floormod_s", "core_mask"], [84, 1, 1, "c.hp_floormod_s", "input0"], [84, 1, 1, "c.hp_floormod_s", "input1"], [84, 1, 1, "c.hp_floormod_s", "output"], [84, 1, 1, "c.hp_floormod_s", "size"]], "hp_formattranspose_p": [[85, 1, 1, "c.hp_formattranspose_p", "batch"], [85, 1, 1, "c.hp_formattranspose_p", "channel"], [85, 1, 1, "c.hp_formattranspose_p", "dst_data"], [85, 1, 1, "c.hp_formattranspose_p", "dst_format"], [85, 1, 1, "c.hp_formattranspose_p", "plane"], [85, 1, 1, "c.hp_formattranspose_p", "src_data"], [85, 1, 1, "c.hp_formattranspose_p", "src_format"]], "hp_formattranspose_s": [[85, 1, 1, "c.hp_formattranspose_s", "batch"], [85, 1, 1, "c.hp_formattranspose_s", "channel"], [85, 1, 1, "c.hp_formattranspose_s", "core_mask"], [85, 1, 1, "c.hp_formattranspose_s", "dst_data"], [85, 1, 1, "c.hp_formattranspose_s", "dst_format"], [85, 1, 1, "c.hp_formattranspose_s", "plane"], [85, 1, 1, "c.hp_formattranspose_s", "src_data"], [85, 1, 1, "c.hp_formattranspose_s", "src_format"]], "hp_fullconnection_p": [[86, 1, 1, "c.hp_fullconnection_p", "A"], [86, 1, 1, "c.hp_fullconnection_p", "B"], [86, 1, 1, "c.hp_fullconnection_p", "C"], [86, 1, 1, "c.hp_fullconnection_p", "K"], [86, 1, 1, "c.hp_fullconnection_p", "M"], [86, 1, 1, "c.hp_fullconnection_p", "N"], [86, 1, 1, "c.hp_fullconnection_p", "activation_type"], [86, 1, 1, "c.hp_fullconnection_p", "bias"]], "hp_fullconnection_s": [[86, 1, 1, "c.hp_fullconnection_s", "A"], [86, 1, 1, "c.hp_fullconnection_s", "B"], [86, 1, 1, "c.hp_fullconnection_s", "C"], [86, 1, 1, "c.hp_fullconnection_s", "K"], [86, 1, 1, "c.hp_fullconnection_s", "M"], [86, 1, 1, "c.hp_fullconnection_s", "N"], [86, 1, 1, "c.hp_fullconnection_s", "activation_type"], [86, 1, 1, "c.hp_fullconnection_s", "bias"], [86, 1, 1, "c.hp_fullconnection_s", "core_mask"]], "hp_fusedbatchnorm_p": [[87, 1, 1, "c.hp_fusedbatchnorm_p", "channel"], [87, 1, 1, "c.hp_fusedbatchnorm_p", "epsilon"], [87, 1, 1, "c.hp_fusedbatchnorm_p", "input"], [87, 1, 1, "c.hp_fusedbatchnorm_p", "mean"], [87, 1, 1, "c.hp_fusedbatchnorm_p", "offset"], [87, 1, 1, "c.hp_fusedbatchnorm_p", "output"], [87, 1, 1, "c.hp_fusedbatchnorm_p", "scale"], [87, 1, 1, "c.hp_fusedbatchnorm_p", "unit"], [87, 1, 1, "c.hp_fusedbatchnorm_p", "variance"]], "hp_fusedbatchnorm_s": [[87, 1, 1, "c.hp_fusedbatchnorm_s", "channel"], [87, 1, 1, "c.hp_fusedbatchnorm_s", "core_mask"], [87, 1, 1, "c.hp_fusedbatchnorm_s", "epsilon"], [87, 1, 1, "c.hp_fusedbatchnorm_s", "input"], [87, 1, 1, "c.hp_fusedbatchnorm_s", "mean"], [87, 1, 1, "c.hp_fusedbatchnorm_s", "offset"], [87, 1, 1, "c.hp_fusedbatchnorm_s", "output"], [87, 1, 1, "c.hp_fusedbatchnorm_s", "scale"], [87, 1, 1, "c.hp_fusedbatchnorm_s", "unit"], [87, 1, 1, "c.hp_fusedbatchnorm_s", "variance"]], "hp_gather_nd_p": [[89, 1, 1, "c.hp_gather_nd_p", "indices"], [89, 1, 1, "c.hp_gather_nd_p", "indices_ndim"], [89, 1, 1, "c.hp_gather_nd_p", "indices_shape"], [89, 1, 1, "c.hp_gather_nd_p", "input"], [89, 1, 1, "c.hp_gather_nd_p", "input_ndim"], [89, 1, 1, "c.hp_gather_nd_p", "input_shape"], [89, 1, 1, "c.hp_gather_nd_p", "output"]], "hp_gather_nd_s": [[89, 1, 1, "c.hp_gather_nd_s", "core_mask"], [89, 1, 1, "c.hp_gather_nd_s", "indices"], [89, 1, 1, "c.hp_gather_nd_s", "indices_ndim"], [89, 1, 1, "c.hp_gather_nd_s", "indices_shape"], [89, 1, 1, "c.hp_gather_nd_s", "input"], [89, 1, 1, "c.hp_gather_nd_s", "input_ndim"], [89, 1, 1, "c.hp_gather_nd_s", "input_shape"], [89, 1, 1, "c.hp_gather_nd_s", "output"]], "hp_gather_p": [[88, 1, 1, "c.hp_gather_p", "axis"], [88, 1, 1, "c.hp_gather_p", "batch_dims"], [88, 1, 1, "c.hp_gather_p", "indices"], [88, 1, 1, "c.hp_gather_p", "indices_ndim"], [88, 1, 1, "c.hp_gather_p", "indices_shape"], [88, 1, 1, "c.hp_gather_p", "input"], [88, 1, 1, "c.hp_gather_p", "input_ndim"], [88, 1, 1, "c.hp_gather_p", "input_shape"], [88, 1, 1, "c.hp_gather_p", "output"]], "hp_gather_s": [[88, 1, 1, "c.hp_gather_s", "axis"], [88, 1, 1, "c.hp_gather_s", "batch_dims"], [88, 1, 1, "c.hp_gather_s", "core_mask"], [88, 1, 1, "c.hp_gather_s", "indices"], [88, 1, 1, "c.hp_gather_s", "indices_ndim"], [88, 1, 1, "c.hp_gather_s", "indices_shape"], [88, 1, 1, "c.hp_gather_s", "input"], [88, 1, 1, "c.hp_gather_s", "input_ndim"], [88, 1, 1, "c.hp_gather_s", "input_shape"], [88, 1, 1, "c.hp_gather_s", "output"]], "hp_gelu_p": [[12, 1, 1, "c.hp_gelu_p", "Input0"], [12, 1, 1, "c.hp_gelu_p", "approximate"], [12, 1, 1, "c.hp_gelu_p", "length"], [12, 1, 1, "c.hp_gelu_p", "output"]], "hp_gelu_s": [[12, 1, 1, "c.hp_gelu_s", "Input0"], [12, 1, 1, "c.hp_gelu_s", "approximate"], [12, 1, 1, "c.hp_gelu_s", "core_mask"], [12, 1, 1, "c.hp_gelu_s", "length"], [12, 1, 1, "c.hp_gelu_s", "output"]], "hp_glu_p": [[91, 1, 1, "c.hp_glu_p", "in_data"], [91, 1, 1, "c.hp_glu_p", "input_shape"], [91, 1, 1, "c.hp_glu_p", "len"], [91, 1, 1, "c.hp_glu_p", "ndim"], [91, 1, 1, "c.hp_glu_p", "num_split"], [91, 1, 1, "c.hp_glu_p", "out_data"], [91, 1, 1, "c.hp_glu_p", "split_data"], [91, 1, 1, "c.hp_glu_p", "split_dim"], [91, 1, 1, "c.hp_glu_p", "split_sizes"], [91, 1, 1, "c.hp_glu_p", "strides"]], "hp_glu_s": [[91, 1, 1, "c.hp_glu_s", "core_mask"], [91, 1, 1, "c.hp_glu_s", "in_data"], [91, 1, 1, "c.hp_glu_s", "input_shape"], [91, 1, 1, "c.hp_glu_s", "len"], [91, 1, 1, "c.hp_glu_s", "ndim"], [91, 1, 1, "c.hp_glu_s", "num_split"], [91, 1, 1, "c.hp_glu_s", "out_data"], [91, 1, 1, "c.hp_glu_s", "split_data"], [91, 1, 1, "c.hp_glu_s", "split_dim"], [91, 1, 1, "c.hp_glu_s", "split_sizes"], [91, 1, 1, "c.hp_glu_s", "strides"]], "hp_graddiv1l_p": [[62, 1, 1, "c.hp_graddiv1l_p", "dx1"], [62, 1, 1, "c.hp_graddiv1l_p", "dx2"], [62, 1, 1, "c.hp_graddiv1l_p", "dy"], [62, 1, 1, "c.hp_graddiv1l_p", "indices"], [62, 1, 1, "c.hp_graddiv1l_p", "large_multiples"], [62, 1, 1, "c.hp_graddiv1l_p", "large_shape"], [62, 1, 1, "c.hp_graddiv1l_p", "large_strides"], [62, 1, 1, "c.hp_graddiv1l_p", "ndims"], [62, 1, 1, "c.hp_graddiv1l_p", "out_shape"], [62, 1, 1, "c.hp_graddiv1l_p", "out_strides"], [62, 1, 1, "c.hp_graddiv1l_p", "small_multiples"], [62, 1, 1, "c.hp_graddiv1l_p", "small_shape"], [62, 1, 1, "c.hp_graddiv1l_p", "small_strides"], [62, 1, 1, "c.hp_graddiv1l_p", "tile_data0"], [62, 1, 1, "c.hp_graddiv1l_p", "tile_data1"], [62, 1, 1, "c.hp_graddiv1l_p", "tile_data2"], [62, 1, 1, "c.hp_graddiv1l_p", "x1"], [62, 1, 1, "c.hp_graddiv1l_p", "x2"]], "hp_graddiv1l_s": [[62, 1, 1, "c.hp_graddiv1l_s", "core_mask"], [62, 1, 1, "c.hp_graddiv1l_s", "dx1"], [62, 1, 1, "c.hp_graddiv1l_s", "dx2"], [62, 1, 1, "c.hp_graddiv1l_s", "dy"], [62, 1, 1, "c.hp_graddiv1l_s", "indices"], [62, 1, 1, "c.hp_graddiv1l_s", "large_multiples"], [62, 1, 1, "c.hp_graddiv1l_s", "large_shape"], [62, 1, 1, "c.hp_graddiv1l_s", "large_strides"], [62, 1, 1, "c.hp_graddiv1l_s", "ndims"], [62, 1, 1, "c.hp_graddiv1l_s", "out_shape"], [62, 1, 1, "c.hp_graddiv1l_s", "out_strides"], [62, 1, 1, "c.hp_graddiv1l_s", "small_multiples"], [62, 1, 1, "c.hp_graddiv1l_s", "small_shape"], [62, 1, 1, "c.hp_graddiv1l_s", "small_strides"], [62, 1, 1, "c.hp_graddiv1l_s", "tile_data0"], [62, 1, 1, "c.hp_graddiv1l_s", "tile_data1"], [62, 1, 1, "c.hp_graddiv1l_s", "tile_data2"], [62, 1, 1, "c.hp_graddiv1l_s", "x1"], [62, 1, 1, "c.hp_graddiv1l_s", "x2"]], "hp_graddiv2l_p": [[62, 1, 1, "c.hp_graddiv2l_p", "dx1"], [62, 1, 1, "c.hp_graddiv2l_p", "dx2"], [62, 1, 1, "c.hp_graddiv2l_p", "dy"], [62, 1, 1, "c.hp_graddiv2l_p", "indices"], [62, 1, 1, "c.hp_graddiv2l_p", "large_multiples"], [62, 1, 1, "c.hp_graddiv2l_p", "large_shape"], [62, 1, 1, "c.hp_graddiv2l_p", "large_strides"], [62, 1, 1, "c.hp_graddiv2l_p", "ndims"], [62, 1, 1, "c.hp_graddiv2l_p", "out_shape"], [62, 1, 1, "c.hp_graddiv2l_p", "out_strides"], [62, 1, 1, "c.hp_graddiv2l_p", "small_multiples"], [62, 1, 1, "c.hp_graddiv2l_p", "small_shape"], [62, 1, 1, "c.hp_graddiv2l_p", "small_strides"], [62, 1, 1, "c.hp_graddiv2l_p", "tile_data0"], [62, 1, 1, "c.hp_graddiv2l_p", "tile_data1"], [62, 1, 1, "c.hp_graddiv2l_p", "tile_data2"], [62, 1, 1, "c.hp_graddiv2l_p", "x1"], [62, 1, 1, "c.hp_graddiv2l_p", "x2"]], "hp_graddiv2l_s": [[62, 1, 1, "c.hp_graddiv2l_s", "core_mask"], [62, 1, 1, "c.hp_graddiv2l_s", "dx1"], [62, 1, 1, "c.hp_graddiv2l_s", "dx2"], [62, 1, 1, "c.hp_graddiv2l_s", "dy"], [62, 1, 1, "c.hp_graddiv2l_s", "indices"], [62, 1, 1, "c.hp_graddiv2l_s", "large_multiples"], [62, 1, 1, "c.hp_graddiv2l_s", "large_shape"], [62, 1, 1, "c.hp_graddiv2l_s", "large_strides"], [62, 1, 1, "c.hp_graddiv2l_s", "ndims"], [62, 1, 1, "c.hp_graddiv2l_s", "out_shape"], [62, 1, 1, "c.hp_graddiv2l_s", "out_strides"], [62, 1, 1, "c.hp_graddiv2l_s", "small_multiples"], [62, 1, 1, "c.hp_graddiv2l_s", "small_shape"], [62, 1, 1, "c.hp_graddiv2l_s", "small_strides"], [62, 1, 1, "c.hp_graddiv2l_s", "tile_data0"], [62, 1, 1, "c.hp_graddiv2l_s", "tile_data1"], [62, 1, 1, "c.hp_graddiv2l_s", "tile_data2"], [62, 1, 1, "c.hp_graddiv2l_s", "x1"], [62, 1, 1, "c.hp_graddiv2l_s", "x2"]], "hp_graddiv_p": [[62, 1, 1, "c.hp_graddiv_p", "dx1"], [62, 1, 1, "c.hp_graddiv_p", "dx2"], [62, 1, 1, "c.hp_graddiv_p", "dy"], [62, 1, 1, "c.hp_graddiv_p", "large_multiples"], [62, 1, 1, "c.hp_graddiv_p", "large_shape"], [62, 1, 1, "c.hp_graddiv_p", "large_strides"], [62, 1, 1, "c.hp_graddiv_p", "ndims"], [62, 1, 1, "c.hp_graddiv_p", "out_shape"], [62, 1, 1, "c.hp_graddiv_p", "out_strides"], [62, 1, 1, "c.hp_graddiv_p", "small_multiples"], [62, 1, 1, "c.hp_graddiv_p", "small_shape"], [62, 1, 1, "c.hp_graddiv_p", "small_strides"], [62, 1, 1, "c.hp_graddiv_p", "tile_data0"], [62, 1, 1, "c.hp_graddiv_p", "tile_data1"], [62, 1, 1, "c.hp_graddiv_p", "tile_data2"], [62, 1, 1, "c.hp_graddiv_p", "x1"], [62, 1, 1, "c.hp_graddiv_p", "x2"]], "hp_graddiv_s": [[62, 1, 1, "c.hp_graddiv_s", "core_mask"], [62, 1, 1, "c.hp_graddiv_s", "dx1"], [62, 1, 1, "c.hp_graddiv_s", "dx2"], [62, 1, 1, "c.hp_graddiv_s", "dy"], [62, 1, 1, "c.hp_graddiv_s", "indices"], [62, 1, 1, "c.hp_graddiv_s", "large_multiples"], [62, 1, 1, "c.hp_graddiv_s", "large_shape"], [62, 1, 1, "c.hp_graddiv_s", "large_strides"], [62, 1, 1, "c.hp_graddiv_s", "ndims"], [62, 1, 1, "c.hp_graddiv_s", "out_shape"], [62, 1, 1, "c.hp_graddiv_s", "out_strides"], [62, 1, 1, "c.hp_graddiv_s", "small_multiples"], [62, 1, 1, "c.hp_graddiv_s", "small_shape"], [62, 1, 1, "c.hp_graddiv_s", "small_strides"], [62, 1, 1, "c.hp_graddiv_s", "tile_data0"], [62, 1, 1, "c.hp_graddiv_s", "tile_data1"], [62, 1, 1, "c.hp_graddiv_s", "tile_data2"], [62, 1, 1, "c.hp_graddiv_s", "x1"], [62, 1, 1, "c.hp_graddiv_s", "x2"]], "hp_gradmul1l_p": [[131, 1, 1, "c.hp_gradmul1l_p", "dx1"], [131, 1, 1, "c.hp_gradmul1l_p", "dx2"], [131, 1, 1, "c.hp_gradmul1l_p", "dy"], [131, 1, 1, "c.hp_gradmul1l_p", "indices"], [131, 1, 1, "c.hp_gradmul1l_p", "large_multiples"], [131, 1, 1, "c.hp_gradmul1l_p", "large_shape"], [131, 1, 1, "c.hp_gradmul1l_p", "large_strides"], [131, 1, 1, "c.hp_gradmul1l_p", "ndims"], [131, 1, 1, "c.hp_gradmul1l_p", "out_shape"], [131, 1, 1, "c.hp_gradmul1l_p", "out_strides"], [131, 1, 1, "c.hp_gradmul1l_p", "small_multiples"], [131, 1, 1, "c.hp_gradmul1l_p", "small_shape"], [131, 1, 1, "c.hp_gradmul1l_p", "small_strides"], [131, 1, 1, "c.hp_gradmul1l_p", "tile_data0"], [131, 1, 1, "c.hp_gradmul1l_p", "tile_data1"], [131, 1, 1, "c.hp_gradmul1l_p", "x1"], [131, 1, 1, "c.hp_gradmul1l_p", "x2"]], "hp_gradmul1l_s": [[131, 1, 1, "c.hp_gradmul1l_s", "core_mask"], [131, 1, 1, "c.hp_gradmul1l_s", "dx1"], [131, 1, 1, "c.hp_gradmul1l_s", "dx2"], [131, 1, 1, "c.hp_gradmul1l_s", "dy"], [131, 1, 1, "c.hp_gradmul1l_s", "indices"], [131, 1, 1, "c.hp_gradmul1l_s", "large_multiples"], [131, 1, 1, "c.hp_gradmul1l_s", "large_shape"], [131, 1, 1, "c.hp_gradmul1l_s", "large_strides"], [131, 1, 1, "c.hp_gradmul1l_s", "ndims"], [131, 1, 1, "c.hp_gradmul1l_s", "out_shape"], [131, 1, 1, "c.hp_gradmul1l_s", "out_strides"], [131, 1, 1, "c.hp_gradmul1l_s", "small_multiples"], [131, 1, 1, "c.hp_gradmul1l_s", "small_shape"], [131, 1, 1, "c.hp_gradmul1l_s", "small_strides"], [131, 1, 1, "c.hp_gradmul1l_s", "tile_data0"], [131, 1, 1, "c.hp_gradmul1l_s", "tile_data1"], [131, 1, 1, "c.hp_gradmul1l_s", "x1"], [131, 1, 1, "c.hp_gradmul1l_s", "x2"]], "hp_gradmul2l_p": [[131, 1, 1, "c.hp_gradmul2l_p", "dx1"], [131, 1, 1, "c.hp_gradmul2l_p", "dx2"], [131, 1, 1, "c.hp_gradmul2l_p", "dy"], [131, 1, 1, "c.hp_gradmul2l_p", "indices"], [131, 1, 1, "c.hp_gradmul2l_p", "large_multiples"], [131, 1, 1, "c.hp_gradmul2l_p", "large_shape"], [131, 1, 1, "c.hp_gradmul2l_p", "large_strides"], [131, 1, 1, "c.hp_gradmul2l_p", "ndims"], [131, 1, 1, "c.hp_gradmul2l_p", "out_shape"], [131, 1, 1, "c.hp_gradmul2l_p", "out_strides"], [131, 1, 1, "c.hp_gradmul2l_p", "small_multiples"], [131, 1, 1, "c.hp_gradmul2l_p", "small_shape"], [131, 1, 1, "c.hp_gradmul2l_p", "small_strides"], [131, 1, 1, "c.hp_gradmul2l_p", "tile_data0"], [131, 1, 1, "c.hp_gradmul2l_p", "tile_data1"], [131, 1, 1, "c.hp_gradmul2l_p", "x1"], [131, 1, 1, "c.hp_gradmul2l_p", "x2"]], "hp_gradmul2l_s": [[131, 1, 1, "c.hp_gradmul2l_s", "core_mask"], [131, 1, 1, "c.hp_gradmul2l_s", "dx1"], [131, 1, 1, "c.hp_gradmul2l_s", "dx2"], [131, 1, 1, "c.hp_gradmul2l_s", "dy"], [131, 1, 1, "c.hp_gradmul2l_s", "indices"], [131, 1, 1, "c.hp_gradmul2l_s", "large_multiples"], [131, 1, 1, "c.hp_gradmul2l_s", "large_shape"], [131, 1, 1, "c.hp_gradmul2l_s", "large_strides"], [131, 1, 1, "c.hp_gradmul2l_s", "ndims"], [131, 1, 1, "c.hp_gradmul2l_s", "out_shape"], [131, 1, 1, "c.hp_gradmul2l_s", "out_strides"], [131, 1, 1, "c.hp_gradmul2l_s", "small_multiples"], [131, 1, 1, "c.hp_gradmul2l_s", "small_shape"], [131, 1, 1, "c.hp_gradmul2l_s", "small_strides"], [131, 1, 1, "c.hp_gradmul2l_s", "tile_data0"], [131, 1, 1, "c.hp_gradmul2l_s", "tile_data1"], [131, 1, 1, "c.hp_gradmul2l_s", "x1"], [131, 1, 1, "c.hp_gradmul2l_s", "x2"]], "hp_gradmul_p": [[131, 1, 1, "c.hp_gradmul_p", "dx1"], [131, 1, 1, "c.hp_gradmul_p", "dx2"], [131, 1, 1, "c.hp_gradmul_p", "dy"], [131, 1, 1, "c.hp_gradmul_p", "large_multiples"], [131, 1, 1, "c.hp_gradmul_p", "large_shape"], [131, 1, 1, "c.hp_gradmul_p", "large_strides"], [131, 1, 1, "c.hp_gradmul_p", "ndims"], [131, 1, 1, "c.hp_gradmul_p", "out_shape"], [131, 1, 1, "c.hp_gradmul_p", "out_strides"], [131, 1, 1, "c.hp_gradmul_p", "small_multiples"], [131, 1, 1, "c.hp_gradmul_p", "small_shape"], [131, 1, 1, "c.hp_gradmul_p", "small_strides"], [131, 1, 1, "c.hp_gradmul_p", "tile_data0"], [131, 1, 1, "c.hp_gradmul_p", "tile_data1"], [131, 1, 1, "c.hp_gradmul_p", "x1"], [131, 1, 1, "c.hp_gradmul_p", "x2"]], "hp_gradmul_s": [[131, 1, 1, "c.hp_gradmul_s", "core_mask"], [131, 1, 1, "c.hp_gradmul_s", "dx1"], [131, 1, 1, "c.hp_gradmul_s", "dx2"], [131, 1, 1, "c.hp_gradmul_s", "dy"], [131, 1, 1, "c.hp_gradmul_s", "indices"], [131, 1, 1, "c.hp_gradmul_s", "large_multiples"], [131, 1, 1, "c.hp_gradmul_s", "large_shape"], [131, 1, 1, "c.hp_gradmul_s", "large_strides"], [131, 1, 1, "c.hp_gradmul_s", "ndims"], [131, 1, 1, "c.hp_gradmul_s", "out_shape"], [131, 1, 1, "c.hp_gradmul_s", "out_strides"], [131, 1, 1, "c.hp_gradmul_s", "small_multiples"], [131, 1, 1, "c.hp_gradmul_s", "small_shape"], [131, 1, 1, "c.hp_gradmul_s", "small_strides"], [131, 1, 1, "c.hp_gradmul_s", "tile_data0"], [131, 1, 1, "c.hp_gradmul_s", "tile_data1"], [131, 1, 1, "c.hp_gradmul_s", "x1"], [131, 1, 1, "c.hp_gradmul_s", "x2"]], "hp_greater_p": [[92, 1, 1, "c.hp_greater_p", "element_num"], [92, 1, 1, "c.hp_greater_p", "in_elements_num0"], [92, 1, 1, "c.hp_greater_p", "input1"], [92, 1, 1, "c.hp_greater_p", "input2"], [92, 1, 1, "c.hp_greater_p", "optimize"], [92, 1, 1, "c.hp_greater_p", "output"]], "hp_greater_s": [[92, 1, 1, "c.hp_greater_s", "core_mask"], [92, 1, 1, "c.hp_greater_s", "element_num"], [92, 1, 1, "c.hp_greater_s", "in_elements_num0"], [92, 1, 1, "c.hp_greater_s", "input1"], [92, 1, 1, "c.hp_greater_s", "input2"], [92, 1, 1, "c.hp_greater_s", "optimize"], [92, 1, 1, "c.hp_greater_s", "output"]], "hp_greaterequal_p": [[93, 1, 1, "c.hp_greaterequal_p", "element_num"], [93, 1, 1, "c.hp_greaterequal_p", "in_elements_num0"], [93, 1, 1, "c.hp_greaterequal_p", "input1"], [93, 1, 1, "c.hp_greaterequal_p", "input2"], [93, 1, 1, "c.hp_greaterequal_p", "optimize"], [93, 1, 1, "c.hp_greaterequal_p", "output"]], "hp_greaterequal_s": [[93, 1, 1, "c.hp_greaterequal_s", "core_mask"], [93, 1, 1, "c.hp_greaterequal_s", "element_num"], [93, 1, 1, "c.hp_greaterequal_s", "in_elements_num0"], [93, 1, 1, "c.hp_greaterequal_s", "input1"], [93, 1, 1, "c.hp_greaterequal_s", "input2"], [93, 1, 1, "c.hp_greaterequal_s", "optimize"], [93, 1, 1, "c.hp_greaterequal_s", "output"]], "hp_groupnormfusion_p": [[94, 1, 1, "c.hp_groupnormfusion_p", "batch"], [94, 1, 1, "c.hp_groupnormfusion_p", "channel"], [94, 1, 1, "c.hp_groupnormfusion_p", "epsilon"], [94, 1, 1, "c.hp_groupnormfusion_p", "input"], [94, 1, 1, "c.hp_groupnormfusion_p", "mean"], [94, 1, 1, "c.hp_groupnormfusion_p", "num_groups"], [94, 1, 1, "c.hp_groupnormfusion_p", "offset"], [94, 1, 1, "c.hp_groupnormfusion_p", "output"], [94, 1, 1, "c.hp_groupnormfusion_p", "scale"], [94, 1, 1, "c.hp_groupnormfusion_p", "unit"], [94, 1, 1, "c.hp_groupnormfusion_p", "variance"]], "hp_groupnormfusion_s": [[94, 1, 1, "c.hp_groupnormfusion_s", "batch"], [94, 1, 1, "c.hp_groupnormfusion_s", "channel"], [94, 1, 1, "c.hp_groupnormfusion_s", "core_mask"], [94, 1, 1, "c.hp_groupnormfusion_s", "epsilon"], [94, 1, 1, "c.hp_groupnormfusion_s", "input"], [94, 1, 1, "c.hp_groupnormfusion_s", "mean"], [94, 1, 1, "c.hp_groupnormfusion_s", "num_groups"], [94, 1, 1, "c.hp_groupnormfusion_s", "offset"], [94, 1, 1, "c.hp_groupnormfusion_s", "output"], [94, 1, 1, "c.hp_groupnormfusion_s", "scale"], [94, 1, 1, "c.hp_groupnormfusion_s", "unit"], [94, 1, 1, "c.hp_groupnormfusion_s", "variance"]], "hp_hardshrink_p": [[12, 1, 1, "c.hp_hardshrink_p", "Input0"], [12, 1, 1, "c.hp_hardshrink_p", "lambd"], [12, 1, 1, "c.hp_hardshrink_p", "length"], [12, 1, 1, "c.hp_hardshrink_p", "output"]], "hp_hardshrink_s": [[12, 1, 1, "c.hp_hardshrink_s", "Input0"], [12, 1, 1, "c.hp_hardshrink_s", "core_mask"], [12, 1, 1, "c.hp_hardshrink_s", "lambd"], [12, 1, 1, "c.hp_hardshrink_s", "length"], [12, 1, 1, "c.hp_hardshrink_s", "output"]], "hp_hardtanh_p": [[12, 1, 1, "c.hp_hardtanh_p", "Input0"], [12, 1, 1, "c.hp_hardtanh_p", "length"], [12, 1, 1, "c.hp_hardtanh_p", "max_val"], [12, 1, 1, "c.hp_hardtanh_p", "min_val"], [12, 1, 1, "c.hp_hardtanh_p", "output"]], "hp_hardtanh_s": [[12, 1, 1, "c.hp_hardtanh_s", "Input0"], [12, 1, 1, "c.hp_hardtanh_s", "core_mask"], [12, 1, 1, "c.hp_hardtanh_s", "length"], [12, 1, 1, "c.hp_hardtanh_s", "max_val"], [12, 1, 1, "c.hp_hardtanh_s", "min_val"], [12, 1, 1, "c.hp_hardtanh_s", "output"]], "hp_hsigmoid_p": [[12, 1, 1, "c.hp_hsigmoid_p", "Input0"], [12, 1, 1, "c.hp_hsigmoid_p", "length"], [12, 1, 1, "c.hp_hsigmoid_p", "output"]], "hp_hsigmoid_s": [[12, 1, 1, "c.hp_hsigmoid_s", "Input0"], [12, 1, 1, "c.hp_hsigmoid_s", "core_mask"], [12, 1, 1, "c.hp_hsigmoid_s", "length"], [12, 1, 1, "c.hp_hsigmoid_s", "output"]], "hp_hswish_p": [[12, 1, 1, "c.hp_hswish_p", "Input0"], [12, 1, 1, "c.hp_hswish_p", "length"], [12, 1, 1, "c.hp_hswish_p", "output"]], "hp_hswish_s": [[12, 1, 1, "c.hp_hswish_s", "Input0"], [12, 1, 1, "c.hp_hswish_s", "core_mask"], [12, 1, 1, "c.hp_hswish_s", "length"], [12, 1, 1, "c.hp_hswish_s", "output"]], "hp_instancenorm_p": [[97, 1, 1, "c.hp_instancenorm_p", "batch"], [97, 1, 1, "c.hp_instancenorm_p", "beta"], [97, 1, 1, "c.hp_instancenorm_p", "channel"], [97, 1, 1, "c.hp_instancenorm_p", "epsilon"], [97, 1, 1, "c.hp_instancenorm_p", "gamma"], [97, 1, 1, "c.hp_instancenorm_p", "inner_size"], [97, 1, 1, "c.hp_instancenorm_p", "input"], [97, 1, 1, "c.hp_instancenorm_p", "output"]], "hp_instancenorm_s": [[97, 1, 1, "c.hp_instancenorm_s", "batch"], [97, 1, 1, "c.hp_instancenorm_s", "beta"], [97, 1, 1, "c.hp_instancenorm_s", "channel"], [97, 1, 1, "c.hp_instancenorm_s", "core_mask"], [97, 1, 1, "c.hp_instancenorm_s", "epsilon"], [97, 1, 1, "c.hp_instancenorm_s", "gamma"], [97, 1, 1, "c.hp_instancenorm_s", "inner_size"], [97, 1, 1, "c.hp_instancenorm_s", "input"], [97, 1, 1, "c.hp_instancenorm_s", "output"]], "hp_isfinite_p": [[99, 1, 1, "c.hp_isfinite_p", "Input"], [99, 1, 1, "c.hp_isfinite_p", "length"], [99, 1, 1, "c.hp_isfinite_p", "output"]], "hp_isfinite_s": [[99, 1, 1, "c.hp_isfinite_s", "Input"], [99, 1, 1, "c.hp_isfinite_s", "core_mask"], [99, 1, 1, "c.hp_isfinite_s", "length"], [99, 1, 1, "c.hp_isfinite_s", "output"]], "hp_l2norm_p": [[100, 1, 1, "c.hp_l2norm_p", "Input"], [100, 1, 1, "c.hp_l2norm_p", "is_relu"], [100, 1, 1, "c.hp_l2norm_p", "is_relu6"], [100, 1, 1, "c.hp_l2norm_p", "length"], [100, 1, 1, "c.hp_l2norm_p", "output"], [100, 1, 1, "c.hp_l2norm_p", "sqrt_sum"]], "hp_l2norm_s": [[100, 1, 1, "c.hp_l2norm_s", "Input"], [100, 1, 1, "c.hp_l2norm_s", "core_mask"], [100, 1, 1, "c.hp_l2norm_s", "is_relu"], [100, 1, 1, "c.hp_l2norm_s", "is_relu6"], [100, 1, 1, "c.hp_l2norm_s", "length"], [100, 1, 1, "c.hp_l2norm_s", "output"], [100, 1, 1, "c.hp_l2norm_s", "sqrt_sum"]], "hp_layernormfusion_p": [[101, 1, 1, "c.hp_layernormfusion_p", "beta_data"], [101, 1, 1, "c.hp_layernormfusion_p", "dst_data"], [101, 1, 1, "c.hp_layernormfusion_p", "epsilon"], [101, 1, 1, "c.hp_layernormfusion_p", "gamma_data"], [101, 1, 1, "c.hp_layernormfusion_p", "norm_inner_size"], [101, 1, 1, "c.hp_layernormfusion_p", "norm_outer_size"], [101, 1, 1, "c.hp_layernormfusion_p", "out_mean"], [101, 1, 1, "c.hp_layernormfusion_p", "out_variance"], [101, 1, 1, "c.hp_layernormfusion_p", "param_inner_size"], [101, 1, 1, "c.hp_layernormfusion_p", "param_outer_size"], [101, 1, 1, "c.hp_layernormfusion_p", "src_data"]], "hp_layernormfusion_s": [[101, 1, 1, "c.hp_layernormfusion_s", "beta_data"], [101, 1, 1, "c.hp_layernormfusion_s", "core_mask"], [101, 1, 1, "c.hp_layernormfusion_s", "dst_data"], [101, 1, 1, "c.hp_layernormfusion_s", "epsilon"], [101, 1, 1, "c.hp_layernormfusion_s", "gamma_data"], [101, 1, 1, "c.hp_layernormfusion_s", "length"], [101, 1, 1, "c.hp_layernormfusion_s", "norm_inner_size"], [101, 1, 1, "c.hp_layernormfusion_s", "norm_outer_size"], [101, 1, 1, "c.hp_layernormfusion_s", "out_mean"], [101, 1, 1, "c.hp_layernormfusion_s", "out_variance"], [101, 1, 1, "c.hp_layernormfusion_s", "param_inner_size"], [101, 1, 1, "c.hp_layernormfusion_s", "param_outer_size"], [101, 1, 1, "c.hp_layernormfusion_s", "src_data"]], "hp_layernormgrad_p": [[102, 1, 1, "c.hp_layernormgrad_p", "block_num"], [102, 1, 1, "c.hp_layernormgrad_p", "block_size"], [102, 1, 1, "c.hp_layernormgrad_p", "db"], [102, 1, 1, "c.hp_layernormgrad_p", "dg"], [102, 1, 1, "c.hp_layernormgrad_p", "dx"], [102, 1, 1, "c.hp_layernormgrad_p", "dy"], [102, 1, 1, "c.hp_layernormgrad_p", "gamma"], [102, 1, 1, "c.hp_layernormgrad_p", "mean"], [102, 1, 1, "c.hp_layernormgrad_p", "param_num"], [102, 1, 1, "c.hp_layernormgrad_p", "param_size"], [102, 1, 1, "c.hp_layernormgrad_p", "var"], [102, 1, 1, "c.hp_layernormgrad_p", "x"]], "hp_layernormgrad_s": [[102, 1, 1, "c.hp_layernormgrad_s", "block_num"], [102, 1, 1, "c.hp_layernormgrad_s", "block_size"], [102, 1, 1, "c.hp_layernormgrad_s", "core_mask"], [102, 1, 1, "c.hp_layernormgrad_s", "db"], [102, 1, 1, "c.hp_layernormgrad_s", "dg"], [102, 1, 1, "c.hp_layernormgrad_s", "dx"], [102, 1, 1, "c.hp_layernormgrad_s", "dy"], [102, 1, 1, "c.hp_layernormgrad_s", "gamma"], [102, 1, 1, "c.hp_layernormgrad_s", "mean"], [102, 1, 1, "c.hp_layernormgrad_s", "param_num"], [102, 1, 1, "c.hp_layernormgrad_s", "param_size"], [102, 1, 1, "c.hp_layernormgrad_s", "var"], [102, 1, 1, "c.hp_layernormgrad_s", "x"]], "hp_leaky_relu_p": [[103, 1, 1, "c.hp_leaky_relu_p", "alpha"], [103, 1, 1, "c.hp_leaky_relu_p", "core_mask"], [103, 1, 1, "c.hp_leaky_relu_p", "elem_cnt"], [103, 1, 1, "c.hp_leaky_relu_p", "input"], [103, 1, 1, "c.hp_leaky_relu_p", "output"]], "hp_leaky_relu_s": [[103, 1, 1, "c.hp_leaky_relu_s", "alpha"], [103, 1, 1, "c.hp_leaky_relu_s", "core_mask"], [103, 1, 1, "c.hp_leaky_relu_s", "elem_cnt"], [103, 1, 1, "c.hp_leaky_relu_s", "input"], [103, 1, 1, "c.hp_leaky_relu_s", "output"]], "hp_less_p": [[104, 1, 1, "c.hp_less_p", "Input0"], [104, 1, 1, "c.hp_less_p", "Input1"], [104, 1, 1, "c.hp_less_p", "in_elements_num0"], [104, 1, 1, "c.hp_less_p", "length"], [104, 1, 1, "c.hp_less_p", "optimize"], [104, 1, 1, "c.hp_less_p", "output"]], "hp_less_s": [[104, 1, 1, "c.hp_less_s", "Input0"], [104, 1, 1, "c.hp_less_s", "Input1"], [104, 1, 1, "c.hp_less_s", "core_mask"], [104, 1, 1, "c.hp_less_s", "in_elements_num0"], [104, 1, 1, "c.hp_less_s", "length"], [104, 1, 1, "c.hp_less_s", "optimize"], [104, 1, 1, "c.hp_less_s", "output"]], "hp_lessequal_p": [[105, 1, 1, "c.hp_lessequal_p", "Input0"], [105, 1, 1, "c.hp_lessequal_p", "Input1"], [105, 1, 1, "c.hp_lessequal_p", "in_elements_num0"], [105, 1, 1, "c.hp_lessequal_p", "length"], [105, 1, 1, "c.hp_lessequal_p", "optimize"], [105, 1, 1, "c.hp_lessequal_p", "output"]], "hp_lessequal_s": [[105, 1, 1, "c.hp_lessequal_s", "Input0"], [105, 1, 1, "c.hp_lessequal_s", "Input1"], [105, 1, 1, "c.hp_lessequal_s", "core_mask"], [105, 1, 1, "c.hp_lessequal_s", "in_elements_num0"], [105, 1, 1, "c.hp_lessequal_s", "length"], [105, 1, 1, "c.hp_lessequal_s", "optimize"], [105, 1, 1, "c.hp_lessequal_s", "output"]], "hp_log1p_p": [[108, 1, 1, "c.hp_log1p_p", "Input"], [108, 1, 1, "c.hp_log1p_p", "length"], [108, 1, 1, "c.hp_log1p_p", "output"]], "hp_log1p_s": [[108, 1, 1, "c.hp_log1p_s", "Input"], [108, 1, 1, "c.hp_log1p_s", "core_mask"], [108, 1, 1, "c.hp_log1p_s", "length"], [108, 1, 1, "c.hp_log1p_s", "output"]], "hp_log_grad_p": [[109, 1, 1, "c.hp_log_grad_p", "input0"], [109, 1, 1, "c.hp_log_grad_p", "input1"], [109, 1, 1, "c.hp_log_grad_p", "length"], [109, 1, 1, "c.hp_log_grad_p", "output"]], "hp_log_grad_s": [[109, 1, 1, "c.hp_log_grad_s", "core_mask"], [109, 1, 1, "c.hp_log_grad_s", "input0"], [109, 1, 1, "c.hp_log_grad_s", "input1"], [109, 1, 1, "c.hp_log_grad_s", "length"], [109, 1, 1, "c.hp_log_grad_s", "output"]], "hp_log_p": [[107, 1, 1, "c.hp_log_p", "input"], [107, 1, 1, "c.hp_log_p", "length"], [107, 1, 1, "c.hp_log_p", "output"]], "hp_log_s": [[107, 1, 1, "c.hp_log_s", "core_mask"], [107, 1, 1, "c.hp_log_s", "input"], [107, 1, 1, "c.hp_log_s", "length"], [107, 1, 1, "c.hp_log_s", "output"]], "hp_logical_not_p": [[110, 1, 1, "c.hp_logical_not_p", "input"], [110, 1, 1, "c.hp_logical_not_p", "length"], [110, 1, 1, "c.hp_logical_not_p", "output"]], "hp_logical_not_s": [[110, 1, 1, "c.hp_logical_not_s", "core_mask"], [110, 1, 1, "c.hp_logical_not_s", "input"], [110, 1, 1, "c.hp_logical_not_s", "length"], [110, 1, 1, "c.hp_logical_not_s", "output"]], "hp_logical_or_p": [[111, 1, 1, "c.hp_logical_or_p", "input0"], [111, 1, 1, "c.hp_logical_or_p", "input1"], [111, 1, 1, "c.hp_logical_or_p", "length"], [111, 1, 1, "c.hp_logical_or_p", "output"]], "hp_logical_or_s": [[111, 1, 1, "c.hp_logical_or_s", "core_mask"], [111, 1, 1, "c.hp_logical_or_s", "input0"], [111, 1, 1, "c.hp_logical_or_s", "input1"], [111, 1, 1, "c.hp_logical_or_s", "length"], [111, 1, 1, "c.hp_logical_or_s", "output"]], "hp_logsoftmax_p": [[113, 1, 1, "c.hp_logsoftmax_p", "axis"], [113, 1, 1, "c.hp_logsoftmax_p", "axis_size"], [113, 1, 1, "c.hp_logsoftmax_p", "inner_size"], [113, 1, 1, "c.hp_logsoftmax_p", "input_ptr"], [113, 1, 1, "c.hp_logsoftmax_p", "n_dim"], [113, 1, 1, "c.hp_logsoftmax_p", "output_ptr"], [113, 1, 1, "c.hp_logsoftmax_p", "outter_size"], [113, 1, 1, "c.hp_logsoftmax_p", "sum_data"]], "hp_logsoftmax_s": [[113, 1, 1, "c.hp_logsoftmax_s", "axis"], [113, 1, 1, "c.hp_logsoftmax_s", "axis_size"], [113, 1, 1, "c.hp_logsoftmax_s", "core_mask"], [113, 1, 1, "c.hp_logsoftmax_s", "inner_size"], [113, 1, 1, "c.hp_logsoftmax_s", "input_ptr"], [113, 1, 1, "c.hp_logsoftmax_s", "n_dim"], [113, 1, 1, "c.hp_logsoftmax_s", "output_ptr"], [113, 1, 1, "c.hp_logsoftmax_s", "outter_size"], [113, 1, 1, "c.hp_logsoftmax_s", "sum_data"]], "hp_lpnorm_p": [[114, 1, 1, "c.hp_lpnorm_p", "batch"], [114, 1, 1, "c.hp_lpnorm_p", "beta"], [114, 1, 1, "c.hp_lpnorm_p", "channel"], [114, 1, 1, "c.hp_lpnorm_p", "epsilon"], [114, 1, 1, "c.hp_lpnorm_p", "gamma"], [114, 1, 1, "c.hp_lpnorm_p", "inner_size"], [114, 1, 1, "c.hp_lpnorm_p", "input"], [114, 1, 1, "c.hp_lpnorm_p", "output"], [114, 1, 1, "c.hp_lpnorm_p", "p"]], "hp_lpnorm_s": [[114, 1, 1, "c.hp_lpnorm_s", "batch"], [114, 1, 1, "c.hp_lpnorm_s", "beta"], [114, 1, 1, "c.hp_lpnorm_s", "channel"], [114, 1, 1, "c.hp_lpnorm_s", "core_mask"], [114, 1, 1, "c.hp_lpnorm_s", "epsilon"], [114, 1, 1, "c.hp_lpnorm_s", "gamma"], [114, 1, 1, "c.hp_lpnorm_s", "inner_size"], [114, 1, 1, "c.hp_lpnorm_s", "input"], [114, 1, 1, "c.hp_lpnorm_s", "output"], [114, 1, 1, "c.hp_lpnorm_s", "p"]], "hp_lrelu_p": [[12, 1, 1, "c.hp_lrelu_p", "Input0"], [12, 1, 1, "c.hp_lrelu_p", "alpha"], [12, 1, 1, "c.hp_lrelu_p", "length"], [12, 1, 1, "c.hp_lrelu_p", "output"]], "hp_lrelu_s": [[12, 1, 1, "c.hp_lrelu_s", "Input0"], [12, 1, 1, "c.hp_lrelu_s", "alpha"], [12, 1, 1, "c.hp_lrelu_s", "core_mask"], [12, 1, 1, "c.hp_lrelu_s", "length"], [12, 1, 1, "c.hp_lrelu_s", "output"]], "hp_lrn_p": [[115, 1, 1, "c.hp_lrn_p", "alpha"], [115, 1, 1, "c.hp_lrn_p", "beta"], [115, 1, 1, "c.hp_lrn_p", "bias"], [115, 1, 1, "c.hp_lrn_p", "channel"], [115, 1, 1, "c.hp_lrn_p", "depth_radius"], [115, 1, 1, "c.hp_lrn_p", "input"], [115, 1, 1, "c.hp_lrn_p", "out_size"], [115, 1, 1, "c.hp_lrn_p", "output"]], "hp_lrn_s": [[115, 1, 1, "c.hp_lrn_s", "alpha"], [115, 1, 1, "c.hp_lrn_s", "beta"], [115, 1, 1, "c.hp_lrn_s", "bias"], [115, 1, 1, "c.hp_lrn_s", "channel"], [115, 1, 1, "c.hp_lrn_s", "core_mask"], [115, 1, 1, "c.hp_lrn_s", "depth_radius"], [115, 1, 1, "c.hp_lrn_s", "input"], [115, 1, 1, "c.hp_lrn_s", "out_size"], [115, 1, 1, "c.hp_lrn_s", "output"]], "hp_lsh_projection_p": [[116, 1, 1, "c.hp_lsh_projection_p", "bits_per_hash"], [116, 1, 1, "c.hp_lsh_projection_p", "feature"], [116, 1, 1, "c.hp_lsh_projection_p", "feature_num"], [116, 1, 1, "c.hp_lsh_projection_p", "hash_group_num"], [116, 1, 1, "c.hp_lsh_projection_p", "hash_seed"], [116, 1, 1, "c.hp_lsh_projection_p", "output"], [116, 1, 1, "c.hp_lsh_projection_p", "weight"]], "hp_lsh_projection_s": [[116, 1, 1, "c.hp_lsh_projection_s", "bits_per_hash"], [116, 1, 1, "c.hp_lsh_projection_s", "core_mask"], [116, 1, 1, "c.hp_lsh_projection_s", "feature"], [116, 1, 1, "c.hp_lsh_projection_s", "feature_num"], [116, 1, 1, "c.hp_lsh_projection_s", "hash_group_num"], [116, 1, 1, "c.hp_lsh_projection_s", "hash_seed"], [116, 1, 1, "c.hp_lsh_projection_s", "output"], [116, 1, 1, "c.hp_lsh_projection_s", "weight"]], "hp_lstmgrad_p": [[118, 1, 1, "c.hp_lstmgrad_p", "dynamic_params"], [118, 1, 1, "c.hp_lstmgrad_p", "params"]], "hp_lstmgrad_s": [[118, 1, 1, "c.hp_lstmgrad_s", "core_mask"], [118, 1, 1, "c.hp_lstmgrad_s", "dynamic_params"], [118, 1, 1, "c.hp_lstmgrad_s", "params"]], "hp_lstmgraddata_p": [[119, 1, 1, "c.hp_lstmgraddata_p", "dynamic_params"], [119, 1, 1, "c.hp_lstmgraddata_p", "params"]], "hp_lstmgraddata_s": [[119, 1, 1, "c.hp_lstmgraddata_s", "core_mask"], [119, 1, 1, "c.hp_lstmgraddata_s", "dynamic_params"], [119, 1, 1, "c.hp_lstmgraddata_s", "params"]], "hp_lstmgradweight_p": [[120, 1, 1, "c.hp_lstmgradweight_p", "dynamic_params"], [120, 1, 1, "c.hp_lstmgradweight_p", "params"]], "hp_lstmgradweight_s": [[120, 1, 1, "c.hp_lstmgradweight_s", "core_mask"], [120, 1, 1, "c.hp_lstmgradweight_s", "dynamic_params"], [120, 1, 1, "c.hp_lstmgradweight_s", "params"]], "hp_maximum_p": [[122, 1, 1, "c.hp_maximum_p", "input0"], [122, 1, 1, "c.hp_maximum_p", "input1"], [122, 1, 1, "c.hp_maximum_p", "length"], [122, 1, 1, "c.hp_maximum_p", "output"]], "hp_maximum_s": [[122, 1, 1, "c.hp_maximum_s", "core_mask"], [122, 1, 1, "c.hp_maximum_s", "input0"], [122, 1, 1, "c.hp_maximum_s", "input1"], [122, 1, 1, "c.hp_maximum_s", "length"], [122, 1, 1, "c.hp_maximum_s", "output"]], "hp_maximumgrad_p": [[123, 1, 1, "c.hp_maximumgrad_p", "Input0"], [123, 1, 1, "c.hp_maximumgrad_p", "Input0_dims"], [123, 1, 1, "c.hp_maximumgrad_p", "Input1"], [123, 1, 1, "c.hp_maximumgrad_p", "Input1_dims"], [123, 1, 1, "c.hp_maximumgrad_p", "dx0"], [123, 1, 1, "c.hp_maximumgrad_p", "dx1"], [123, 1, 1, "c.hp_maximumgrad_p", "dy"], [123, 1, 1, "c.hp_maximumgrad_p", "num_dims"]], "hp_maximumgrad_s": [[123, 1, 1, "c.hp_maximumgrad_s", "Input0"], [123, 1, 1, "c.hp_maximumgrad_s", "Input0_dims"], [123, 1, 1, "c.hp_maximumgrad_s", "Input1"], [123, 1, 1, "c.hp_maximumgrad_s", "Input1_dims"], [123, 1, 1, "c.hp_maximumgrad_s", "core_mask"], [123, 1, 1, "c.hp_maximumgrad_s", "dx0"], [123, 1, 1, "c.hp_maximumgrad_s", "dx1"], [123, 1, 1, "c.hp_maximumgrad_s", "dy"], [123, 1, 1, "c.hp_maximumgrad_s", "num_dims"]], "hp_maxpool_fusion_p": [[124, 1, 1, "c.hp_maxpool_fusion_p", "params"]], "hp_maxpool_fusion_s": [[124, 1, 1, "c.hp_maxpool_fusion_s", "core_mask"], [124, 1, 1, "c.hp_maxpool_fusion_s", "params"]], "hp_maxpool_grad_p": [[125, 1, 1, "c.hp_maxpool_grad_p", "params"]], "hp_maxpool_grad_s": [[125, 1, 1, "c.hp_maxpool_grad_s", "core_mask"], [125, 1, 1, "c.hp_maxpool_grad_s", "params"]], "hp_mfcc_p": [[126, 1, 1, "c.hp_mfcc_p", "mfcc_params"], [126, 1, 1, "c.hp_mfcc_p", "mfcc_workspace"], [126, 1, 1, "c.hp_mfcc_p", "spec_params"], [126, 1, 1, "c.hp_mfcc_p", "spec_workspace"]], "hp_mfcc_s": [[126, 1, 1, "c.hp_mfcc_s", "core_mask"], [126, 1, 1, "c.hp_mfcc_s", "mfcc_params"], [126, 1, 1, "c.hp_mfcc_s", "mfcc_workspace"], [126, 1, 1, "c.hp_mfcc_s", "spec_params"], [126, 1, 1, "c.hp_mfcc_s", "spec_workspace"]], "hp_minimum_p": [[127, 1, 1, "c.hp_minimum_p", "input0"], [127, 1, 1, "c.hp_minimum_p", "input1"], [127, 1, 1, "c.hp_minimum_p", "length"], [127, 1, 1, "c.hp_minimum_p", "output"]], "hp_minimum_s": [[127, 1, 1, "c.hp_minimum_s", "core_mask"], [127, 1, 1, "c.hp_minimum_s", "input0"], [127, 1, 1, "c.hp_minimum_s", "input1"], [127, 1, 1, "c.hp_minimum_s", "length"], [127, 1, 1, "c.hp_minimum_s", "output"]], "hp_minimumgrad_p": [[128, 1, 1, "c.hp_minimumgrad_p", "Input0"], [128, 1, 1, "c.hp_minimumgrad_p", "Input0_dims"], [128, 1, 1, "c.hp_minimumgrad_p", "Input1"], [128, 1, 1, "c.hp_minimumgrad_p", "Input1_dims"], [128, 1, 1, "c.hp_minimumgrad_p", "dx0"], [128, 1, 1, "c.hp_minimumgrad_p", "dx1"], [128, 1, 1, "c.hp_minimumgrad_p", "dy"], [128, 1, 1, "c.hp_minimumgrad_p", "num_dims"]], "hp_minimumgrad_s": [[128, 1, 1, "c.hp_minimumgrad_s", "Input0"], [128, 1, 1, "c.hp_minimumgrad_s", "Input0_dims"], [128, 1, 1, "c.hp_minimumgrad_s", "Input1"], [128, 1, 1, "c.hp_minimumgrad_s", "Input1_dims"], [128, 1, 1, "c.hp_minimumgrad_s", "core_mask"], [128, 1, 1, "c.hp_minimumgrad_s", "dx0"], [128, 1, 1, "c.hp_minimumgrad_s", "dx1"], [128, 1, 1, "c.hp_minimumgrad_s", "dy"], [128, 1, 1, "c.hp_minimumgrad_s", "num_dims"]], "hp_mod_p": [[129, 1, 1, "c.hp_mod_p", "input0"], [129, 1, 1, "c.hp_mod_p", "input1"], [129, 1, 1, "c.hp_mod_p", "length"], [129, 1, 1, "c.hp_mod_p", "output"]], "hp_mod_s": [[129, 1, 1, "c.hp_mod_s", "core_mask"], [129, 1, 1, "c.hp_mod_s", "input0"], [129, 1, 1, "c.hp_mod_s", "input1"], [129, 1, 1, "c.hp_mod_s", "length"], [129, 1, 1, "c.hp_mod_s", "output"]], "hp_mul_p": [[130, 1, 1, "c.hp_mul_p", "input0"], [130, 1, 1, "c.hp_mul_p", "input1"], [130, 1, 1, "c.hp_mul_p", "length"], [130, 1, 1, "c.hp_mul_p", "output"]], "hp_mul_s": [[130, 1, 1, "c.hp_mul_s", "core_mask"], [130, 1, 1, "c.hp_mul_s", "input0"], [130, 1, 1, "c.hp_mul_s", "input1"], [130, 1, 1, "c.hp_mul_s", "length"], [130, 1, 1, "c.hp_mul_s", "output"]], "hp_neg_grad_p": [[133, 1, 1, "c.hp_neg_grad_p", "Input"], [133, 1, 1, "c.hp_neg_grad_p", "length"], [133, 1, 1, "c.hp_neg_grad_p", "output"]], "hp_neg_grad_s": [[133, 1, 1, "c.hp_neg_grad_s", "Input"], [133, 1, 1, "c.hp_neg_grad_s", "core_mask"], [133, 1, 1, "c.hp_neg_grad_s", "length"], [133, 1, 1, "c.hp_neg_grad_s", "output"]], "hp_neg_p": [[132, 1, 1, "c.hp_neg_p", "Input"], [132, 1, 1, "c.hp_neg_p", "length"], [132, 1, 1, "c.hp_neg_p", "output"]], "hp_neg_s": [[132, 1, 1, "c.hp_neg_s", "Input"], [132, 1, 1, "c.hp_neg_s", "core_mask"], [132, 1, 1, "c.hp_neg_s", "length"], [132, 1, 1, "c.hp_neg_s", "output"]], "hp_nllloss_p": [[134, 1, 1, "c.hp_nllloss_p", "batch_size"], [134, 1, 1, "c.hp_nllloss_p", "class_num"], [134, 1, 1, "c.hp_nllloss_p", "labels"], [134, 1, 1, "c.hp_nllloss_p", "log_probs"], [134, 1, 1, "c.hp_nllloss_p", "loss"], [134, 1, 1, "c.hp_nllloss_p", "reduction_type"], [134, 1, 1, "c.hp_nllloss_p", "total_weight"], [134, 1, 1, "c.hp_nllloss_p", "weight"]], "hp_nllloss_s": [[134, 1, 1, "c.hp_nllloss_s", "batch_size"], [134, 1, 1, "c.hp_nllloss_s", "class_num"], [134, 1, 1, "c.hp_nllloss_s", "core_mask"], [134, 1, 1, "c.hp_nllloss_s", "labels"], [134, 1, 1, "c.hp_nllloss_s", "log_probs"], [134, 1, 1, "c.hp_nllloss_s", "loss"], [134, 1, 1, "c.hp_nllloss_s", "reduction_type"], [134, 1, 1, "c.hp_nllloss_s", "total_weight"], [134, 1, 1, "c.hp_nllloss_s", "weight"]], "hp_nlllossgrad_p": [[135, 1, 1, "c.hp_nlllossgrad_p", "batch"], [135, 1, 1, "c.hp_nlllossgrad_p", "class_num"], [135, 1, 1, "c.hp_nlllossgrad_p", "labels"], [135, 1, 1, "c.hp_nlllossgrad_p", "logits"], [135, 1, 1, "c.hp_nlllossgrad_p", "logits_grad"], [135, 1, 1, "c.hp_nlllossgrad_p", "loss_grad"], [135, 1, 1, "c.hp_nlllossgrad_p", "reduction_type"], [135, 1, 1, "c.hp_nlllossgrad_p", "total_weight"], [135, 1, 1, "c.hp_nlllossgrad_p", "weight"]], "hp_nlllossgrad_s": [[135, 1, 1, "c.hp_nlllossgrad_s", "batch"], [135, 1, 1, "c.hp_nlllossgrad_s", "class_num"], [135, 1, 1, "c.hp_nlllossgrad_s", "core_mask"], [135, 1, 1, "c.hp_nlllossgrad_s", "labels"], [135, 1, 1, "c.hp_nlllossgrad_s", "logits"], [135, 1, 1, "c.hp_nlllossgrad_s", "logits_grad"], [135, 1, 1, "c.hp_nlllossgrad_s", "loss_grad"], [135, 1, 1, "c.hp_nlllossgrad_s", "reduction_type"], [135, 1, 1, "c.hp_nlllossgrad_s", "total_weight"], [135, 1, 1, "c.hp_nlllossgrad_s", "weight"]], "hp_non_max_suppression_p": [[136, 1, 1, "c.hp_non_max_suppression_p", "param"]], "hp_non_max_suppression_s": [[136, 1, 1, "c.hp_non_max_suppression_s", "core_mask"], [136, 1, 1, "c.hp_non_max_suppression_s", "param"]], "hp_not_equal_p": [[138, 1, 1, "c.hp_not_equal_p", "Input0"], [138, 1, 1, "c.hp_not_equal_p", "Input1"], [138, 1, 1, "c.hp_not_equal_p", "length"], [138, 1, 1, "c.hp_not_equal_p", "output"]], "hp_not_equal_s": [[138, 1, 1, "c.hp_not_equal_s", "Input0"], [138, 1, 1, "c.hp_not_equal_s", "Input1"], [138, 1, 1, "c.hp_not_equal_s", "core_mask"], [138, 1, 1, "c.hp_not_equal_s", "length"], [138, 1, 1, "c.hp_not_equal_s", "output"]], "hp_onehot_p": [[139, 1, 1, "c.hp_onehot_p", "axis"], [139, 1, 1, "c.hp_onehot_p", "depth"], [139, 1, 1, "c.hp_onehot_p", "indices"], [139, 1, 1, "c.hp_onehot_p", "indices_shape"], [139, 1, 1, "c.hp_onehot_p", "indices_shape_size"], [139, 1, 1, "c.hp_onehot_p", "on_off"], [139, 1, 1, "c.hp_onehot_p", "output"], [139, 1, 1, "c.hp_onehot_p", "support_neg_index"]], "hp_onehot_s": [[139, 1, 1, "c.hp_onehot_s", "axis"], [139, 1, 1, "c.hp_onehot_s", "core_mask"], [139, 1, 1, "c.hp_onehot_s", "depth"], [139, 1, 1, "c.hp_onehot_s", "indices"], [139, 1, 1, "c.hp_onehot_s", "indices_shape"], [139, 1, 1, "c.hp_onehot_s", "indices_shape_size"], [139, 1, 1, "c.hp_onehot_s", "on_off"], [139, 1, 1, "c.hp_onehot_s", "output"], [139, 1, 1, "c.hp_onehot_s", "support_neg_index"]], "hp_ones_like_p": [[140, 1, 1, "c.hp_ones_like_p", "length"], [140, 1, 1, "c.hp_ones_like_p", "output"]], "hp_ones_like_s": [[140, 1, 1, "c.hp_ones_like_s", "core_mask"], [140, 1, 1, "c.hp_ones_like_s", "length"], [140, 1, 1, "c.hp_ones_like_s", "output"]], "hp_padfusion_p": [[141, 1, 1, "c.hp_padfusion_p", "params"]], "hp_padfusion_s": [[141, 1, 1, "c.hp_padfusion_s", "core_mask"], [141, 1, 1, "c.hp_padfusion_s", "params"]], "hp_pow_fusion_p": [[142, 1, 1, "c.hp_pow_fusion_p", "Input"], [142, 1, 1, "c.hp_pow_fusion_p", "broadcast"], [142, 1, 1, "c.hp_pow_fusion_p", "exponent"], [142, 1, 1, "c.hp_pow_fusion_p", "length_in"], [142, 1, 1, "c.hp_pow_fusion_p", "output"], [142, 1, 1, "c.hp_pow_fusion_p", "scale"], [142, 1, 1, "c.hp_pow_fusion_p", "shift"]], "hp_pow_fusion_s": [[142, 1, 1, "c.hp_pow_fusion_s", "Input"], [142, 1, 1, "c.hp_pow_fusion_s", "broadcast"], [142, 1, 1, "c.hp_pow_fusion_s", "core_mask"], [142, 1, 1, "c.hp_pow_fusion_s", "exponent"], [142, 1, 1, "c.hp_pow_fusion_s", "length_in"], [142, 1, 1, "c.hp_pow_fusion_s", "output"], [142, 1, 1, "c.hp_pow_fusion_s", "scale"], [142, 1, 1, "c.hp_pow_fusion_s", "shift"]], "hp_power_grad_p": [[143, 1, 1, "c.hp_power_grad_p", "Input1"], [143, 1, 1, "c.hp_power_grad_p", "Input2"], [143, 1, 1, "c.hp_power_grad_p", "length"], [143, 1, 1, "c.hp_power_grad_p", "output"], [143, 1, 1, "c.hp_power_grad_p", "power"], [143, 1, 1, "c.hp_power_grad_p", "scale"], [143, 1, 1, "c.hp_power_grad_p", "shift"]], "hp_power_grad_s": [[143, 1, 1, "c.hp_power_grad_s", "Input1"], [143, 1, 1, "c.hp_power_grad_s", "Input2"], [143, 1, 1, "c.hp_power_grad_s", "core_mask"], [143, 1, 1, "c.hp_power_grad_s", "length"], [143, 1, 1, "c.hp_power_grad_s", "output"], [143, 1, 1, "c.hp_power_grad_s", "power"], [143, 1, 1, "c.hp_power_grad_s", "scale"], [143, 1, 1, "c.hp_power_grad_s", "shift"]], "hp_prelufusion_p": [[144, 1, 1, "c.hp_prelufusion_p", "dst_data"], [144, 1, 1, "c.hp_prelufusion_p", "end"], [144, 1, 1, "c.hp_prelufusion_p", "slope"], [144, 1, 1, "c.hp_prelufusion_p", "src_data"], [144, 1, 1, "c.hp_prelufusion_p", "start"]], "hp_prelufusion_s": [[144, 1, 1, "c.hp_prelufusion_s", "core_mask"], [144, 1, 1, "c.hp_prelufusion_s", "dst_data"], [144, 1, 1, "c.hp_prelufusion_s", "end"], [144, 1, 1, "c.hp_prelufusion_s", "slope"], [144, 1, 1, "c.hp_prelufusion_s", "src_data"], [144, 1, 1, "c.hp_prelufusion_s", "start"]], "hp_priorbox_p": [[145, 1, 1, "c.hp_priorbox_p", "different_aspect_ratios"], [145, 1, 1, "c.hp_priorbox_p", "different_aspect_ratios_size"], [145, 1, 1, "c.hp_priorbox_p", "fmap_h"], [145, 1, 1, "c.hp_priorbox_p", "fmap_w"], [145, 1, 1, "c.hp_priorbox_p", "max_sizes"], [145, 1, 1, "c.hp_priorbox_p", "max_sizes_size"], [145, 1, 1, "c.hp_priorbox_p", "min_sizes"], [145, 1, 1, "c.hp_priorbox_p", "min_sizes_size"], [145, 1, 1, "c.hp_priorbox_p", "offset"], [145, 1, 1, "c.hp_priorbox_p", "output"], [145, 1, 1, "c.hp_priorbox_p", "output_size"], [145, 1, 1, "c.hp_priorbox_p", "step_h"], [145, 1, 1, "c.hp_priorbox_p", "step_w"]], "hp_priorbox_s": [[145, 1, 1, "c.hp_priorbox_s", "core_mask"], [145, 1, 1, "c.hp_priorbox_s", "different_aspect_ratios"], [145, 1, 1, "c.hp_priorbox_s", "different_aspect_ratios_size"], [145, 1, 1, "c.hp_priorbox_s", "fmap_h"], [145, 1, 1, "c.hp_priorbox_s", "fmap_w"], [145, 1, 1, "c.hp_priorbox_s", "max_sizes"], [145, 1, 1, "c.hp_priorbox_s", "max_sizes_size"], [145, 1, 1, "c.hp_priorbox_s", "min_sizes"], [145, 1, 1, "c.hp_priorbox_s", "min_sizes_size"], [145, 1, 1, "c.hp_priorbox_s", "offset"], [145, 1, 1, "c.hp_priorbox_s", "output"], [145, 1, 1, "c.hp_priorbox_s", "output_size"], [145, 1, 1, "c.hp_priorbox_s", "step_h"], [145, 1, 1, "c.hp_priorbox_s", "step_w"]], "hp_random_normal_p": [[148, 1, 1, "c.hp_random_normal_p", "length"], [148, 1, 1, "c.hp_random_normal_p", "mean"], [148, 1, 1, "c.hp_random_normal_p", "output"], [148, 1, 1, "c.hp_random_normal_p", "scale"], [148, 1, 1, "c.hp_random_normal_p", "seed"]], "hp_random_normal_s": [[148, 1, 1, "c.hp_random_normal_s", "core_mask"], [148, 1, 1, "c.hp_random_normal_s", "length"], [148, 1, 1, "c.hp_random_normal_s", "mean"], [148, 1, 1, "c.hp_random_normal_s", "output"], [148, 1, 1, "c.hp_random_normal_s", "scale"], [148, 1, 1, "c.hp_random_normal_s", "seed"]], "hp_random_standard_normal_p": [[149, 1, 1, "c.hp_random_standard_normal_p", "length"], [149, 1, 1, "c.hp_random_standard_normal_p", "output"], [149, 1, 1, "c.hp_random_standard_normal_p", "seed"]], "hp_random_standard_normal_s": [[149, 1, 1, "c.hp_random_standard_normal_s", "core_mask"], [149, 1, 1, "c.hp_random_standard_normal_s", "length"], [149, 1, 1, "c.hp_random_standard_normal_s", "output"], [149, 1, 1, "c.hp_random_standard_normal_s", "seed"]], "hp_real_div_p": [[152, 1, 1, "c.hp_real_div_p", "input0"], [152, 1, 1, "c.hp_real_div_p", "input1"], [152, 1, 1, "c.hp_real_div_p", "length"], [152, 1, 1, "c.hp_real_div_p", "output"]], "hp_real_div_s": [[152, 1, 1, "c.hp_real_div_s", "core_mask"], [152, 1, 1, "c.hp_real_div_s", "input0"], [152, 1, 1, "c.hp_real_div_s", "input1"], [152, 1, 1, "c.hp_real_div_s", "length"], [152, 1, 1, "c.hp_real_div_s", "output"]], "hp_reciprocal_p": [[153, 1, 1, "c.hp_reciprocal_p", "Input"], [153, 1, 1, "c.hp_reciprocal_p", "length"], [153, 1, 1, "c.hp_reciprocal_p", "output"]], "hp_reciprocal_s": [[153, 1, 1, "c.hp_reciprocal_s", "Input"], [153, 1, 1, "c.hp_reciprocal_s", "core_mask"], [153, 1, 1, "c.hp_reciprocal_s", "length"], [153, 1, 1, "c.hp_reciprocal_s", "output"]], "hp_reduce_p": [[154, 1, 1, "c.hp_reduce_p", "core_mask"], [154, 1, 1, "c.hp_reduce_p", "dst_data"], [154, 1, 1, "c.hp_reduce_p", "param"], [154, 1, 1, "c.hp_reduce_p", "src_data"], [154, 1, 1, "c.hp_reduce_p", "tmp_dst_data"], [154, 1, 1, "c.hp_reduce_p", "tmp_src_data"]], "hp_reduce_s": [[154, 1, 1, "c.hp_reduce_s", "core_mask"], [154, 1, 1, "c.hp_reduce_s", "dst_data"], [154, 1, 1, "c.hp_reduce_s", "param"], [154, 1, 1, "c.hp_reduce_s", "src_data"]], "hp_reduceall_p": [[21, 1, 1, "c.hp_reduceall_p", "axis_size"], [21, 1, 1, "c.hp_reduceall_p", "dst_data"], [21, 1, 1, "c.hp_reduceall_p", "inner_size"], [21, 1, 1, "c.hp_reduceall_p", "outer_size"], [21, 1, 1, "c.hp_reduceall_p", "src_data"]], "hp_reduceall_s": [[21, 1, 1, "c.hp_reduceall_s", "axis_size"], [21, 1, 1, "c.hp_reduceall_s", "core_mask"], [21, 1, 1, "c.hp_reduceall_s", "dst_data"], [21, 1, 1, "c.hp_reduceall_s", "inner_size"], [21, 1, 1, "c.hp_reduceall_s", "outer_size"], [21, 1, 1, "c.hp_reduceall_s", "src_data"]], "hp_reducescatter_p": [[155, 1, 1, "c.hp_reducescatter_p", "data_size"], [155, 1, 1, "c.hp_reducescatter_p", "input_data"], [155, 1, 1, "c.hp_reducescatter_p", "output_data"], [155, 1, 1, "c.hp_reducescatter_p", "reduce_type"]], "hp_reducescatter_s": [[155, 1, 1, "c.hp_reducescatter_s", "core_mask"], [155, 1, 1, "c.hp_reducescatter_s", "data_size"], [155, 1, 1, "c.hp_reducescatter_s", "input_data"], [155, 1, 1, "c.hp_reducescatter_s", "output_data"], [155, 1, 1, "c.hp_reducescatter_s", "reduce_type"]], "hp_relu6_p": [[12, 1, 1, "c.hp_relu6_p", "Input0"], [12, 1, 1, "c.hp_relu6_p", "length"], [12, 1, 1, "c.hp_relu6_p", "output"]], "hp_relu6_s": [[12, 1, 1, "c.hp_relu6_s", "Input0"], [12, 1, 1, "c.hp_relu6_s", "core_mask"], [12, 1, 1, "c.hp_relu6_s", "length"], [12, 1, 1, "c.hp_relu6_s", "output"]], "hp_relu_grad_p": [[13, 1, 1, "c.hp_relu_grad_p", "dst"], [13, 1, 1, "c.hp_relu_grad_p", "length"], [13, 1, 1, "c.hp_relu_grad_p", "src0"], [13, 1, 1, "c.hp_relu_grad_p", "src1"]], "hp_relu_grad_s": [[13, 1, 1, "c.hp_relu_grad_s", "core_mask"], [13, 1, 1, "c.hp_relu_grad_s", "dst"], [13, 1, 1, "c.hp_relu_grad_s", "length"], [13, 1, 1, "c.hp_relu_grad_s", "src0"], [13, 1, 1, "c.hp_relu_grad_s", "src1"]], "hp_relu_p": [[12, 1, 1, "c.hp_relu_p", "Input0"], [12, 1, 1, "c.hp_relu_p", "length"], [12, 1, 1, "c.hp_relu_p", "output"]], "hp_relu_s": [[12, 1, 1, "c.hp_relu_s", "Input0"], [12, 1, 1, "c.hp_relu_s", "core_mask"], [12, 1, 1, "c.hp_relu_s", "length"], [12, 1, 1, "c.hp_relu_s", "output"]], "hp_reshape_p": [[156, 1, 1, "c.hp_reshape_p", "input"], [156, 1, 1, "c.hp_reshape_p", "length"], [156, 1, 1, "c.hp_reshape_p", "output"]], "hp_reshape_s": [[156, 1, 1, "c.hp_reshape_s", "core_mask"], [156, 1, 1, "c.hp_reshape_s", "input"], [156, 1, 1, "c.hp_reshape_s", "length"], [156, 1, 1, "c.hp_reshape_s", "output"]], "hp_resize_anycore": [[157, 1, 1, "c.hp_resize_anycore", "core_mask"], [157, 1, 1, "c.hp_resize_anycore", "input"], [157, 1, 1, "c.hp_resize_anycore", "output"], [157, 1, 1, "c.hp_resize_anycore", "param"]], "hp_resizebilineargrad_p": [[158, 1, 1, "c.hp_resizebilineargrad_p", "align_corners"], [158, 1, 1, "c.hp_resizebilineargrad_p", "batch_size"], [158, 1, 1, "c.hp_resizebilineargrad_p", "channel"], [158, 1, 1, "c.hp_resizebilineargrad_p", "format"], [158, 1, 1, "c.hp_resizebilineargrad_p", "height_scale"], [158, 1, 1, "c.hp_resizebilineargrad_p", "in_addr"], [158, 1, 1, "c.hp_resizebilineargrad_p", "in_height"], [158, 1, 1, "c.hp_resizebilineargrad_p", "in_width"], [158, 1, 1, "c.hp_resizebilineargrad_p", "out_addr"], [158, 1, 1, "c.hp_resizebilineargrad_p", "out_height"], [158, 1, 1, "c.hp_resizebilineargrad_p", "out_width"], [158, 1, 1, "c.hp_resizebilineargrad_p", "width_scale"]], "hp_resizebilineargrad_s": [[158, 1, 1, "c.hp_resizebilineargrad_s", "align_corners"], [158, 1, 1, "c.hp_resizebilineargrad_s", "batch_size"], [158, 1, 1, "c.hp_resizebilineargrad_s", "channel"], [158, 1, 1, "c.hp_resizebilineargrad_s", "core_mask"], [158, 1, 1, "c.hp_resizebilineargrad_s", "format"], [158, 1, 1, "c.hp_resizebilineargrad_s", "height_scale"], [158, 1, 1, "c.hp_resizebilineargrad_s", "in_addr"], [158, 1, 1, "c.hp_resizebilineargrad_s", "in_height"], [158, 1, 1, "c.hp_resizebilineargrad_s", "in_width"], [158, 1, 1, "c.hp_resizebilineargrad_s", "out_addr"], [158, 1, 1, "c.hp_resizebilineargrad_s", "out_height"], [158, 1, 1, "c.hp_resizebilineargrad_s", "out_width"], [158, 1, 1, "c.hp_resizebilineargrad_s", "width_scale"]], "hp_resizenearestneighborgrad_p": [[158, 1, 1, "c.hp_resizenearestneighborgrad_p", "align_corners"], [158, 1, 1, "c.hp_resizenearestneighborgrad_p", "batch_size"], [158, 1, 1, "c.hp_resizenearestneighborgrad_p", "channel"], [158, 1, 1, "c.hp_resizenearestneighborgrad_p", "format"], [158, 1, 1, "c.hp_resizenearestneighborgrad_p", "height_scale"], [158, 1, 1, "c.hp_resizenearestneighborgrad_p", "in_addr"], [158, 1, 1, "c.hp_resizenearestneighborgrad_p", "in_height"], [158, 1, 1, "c.hp_resizenearestneighborgrad_p", "in_width"], [158, 1, 1, "c.hp_resizenearestneighborgrad_p", "out_addr"], [158, 1, 1, "c.hp_resizenearestneighborgrad_p", "out_height"], [158, 1, 1, "c.hp_resizenearestneighborgrad_p", "out_width"], [158, 1, 1, "c.hp_resizenearestneighborgrad_p", "width_scale"]], "hp_resizenearestneighborgrad_s": [[158, 1, 1, "c.hp_resizenearestneighborgrad_s", "align_corners"], [158, 1, 1, "c.hp_resizenearestneighborgrad_s", "batch_size"], [158, 1, 1, "c.hp_resizenearestneighborgrad_s", "channel"], [158, 1, 1, "c.hp_resizenearestneighborgrad_s", "core_mask"], [158, 1, 1, "c.hp_resizenearestneighborgrad_s", "format"], [158, 1, 1, "c.hp_resizenearestneighborgrad_s", "height_scale"], [158, 1, 1, "c.hp_resizenearestneighborgrad_s", "in_addr"], [158, 1, 1, "c.hp_resizenearestneighborgrad_s", "in_height"], [158, 1, 1, "c.hp_resizenearestneighborgrad_s", "in_width"], [158, 1, 1, "c.hp_resizenearestneighborgrad_s", "out_addr"], [158, 1, 1, "c.hp_resizenearestneighborgrad_s", "out_height"], [158, 1, 1, "c.hp_resizenearestneighborgrad_s", "out_width"], [158, 1, 1, "c.hp_resizenearestneighborgrad_s", "width_scale"]], "hp_roipooling_p": [[162, 1, 1, "c.hp_roipooling_p", "in_ptr"], [162, 1, 1, "c.hp_roipooling_p", "input_c"], [162, 1, 1, "c.hp_roipooling_p", "input_h"], [162, 1, 1, "c.hp_roipooling_p", "input_n"], [162, 1, 1, "c.hp_roipooling_p", "input_w"], [162, 1, 1, "c.hp_roipooling_p", "max_c"], [162, 1, 1, "c.hp_roipooling_p", "num_rois"], [162, 1, 1, "c.hp_roipooling_p", "out_ptr"], [162, 1, 1, "c.hp_roipooling_p", "pooled_height"], [162, 1, 1, "c.hp_roipooling_p", "pooled_width"], [162, 1, 1, "c.hp_roipooling_p", "roi"], [162, 1, 1, "c.hp_roipooling_p", "scale"]], "hp_roipooling_s": [[162, 1, 1, "c.hp_roipooling_s", "core_mask"], [162, 1, 1, "c.hp_roipooling_s", "in_ptr"], [162, 1, 1, "c.hp_roipooling_s", "input_c"], [162, 1, 1, "c.hp_roipooling_s", "input_h"], [162, 1, 1, "c.hp_roipooling_s", "input_n"], [162, 1, 1, "c.hp_roipooling_s", "input_w"], [162, 1, 1, "c.hp_roipooling_s", "max_c"], [162, 1, 1, "c.hp_roipooling_s", "num_rois"], [162, 1, 1, "c.hp_roipooling_s", "out_ptr"], [162, 1, 1, "c.hp_roipooling_s", "pooled_height"], [162, 1, 1, "c.hp_roipooling_s", "pooled_width"], [162, 1, 1, "c.hp_roipooling_s", "roi"], [162, 1, 1, "c.hp_roipooling_s", "scale"]], "hp_round_p": [[163, 1, 1, "c.hp_round_p", "input"], [163, 1, 1, "c.hp_round_p", "length"], [163, 1, 1, "c.hp_round_p", "output"]], "hp_round_s": [[163, 1, 1, "c.hp_round_s", "core_mask"], [163, 1, 1, "c.hp_round_s", "input"], [163, 1, 1, "c.hp_round_s", "length"], [163, 1, 1, "c.hp_round_s", "output"]], "hp_rsqrt_p": [[164, 1, 1, "c.hp_rsqrt_p", "dst"], [164, 1, 1, "c.hp_rsqrt_p", "length"], [164, 1, 1, "c.hp_rsqrt_p", "src"]], "hp_rsqrt_s": [[164, 1, 1, "c.hp_rsqrt_s", "core_mask"], [164, 1, 1, "c.hp_rsqrt_s", "dst"], [164, 1, 1, "c.hp_rsqrt_s", "length"], [164, 1, 1, "c.hp_rsqrt_s", "src"]], "hp_rsqrtgrad_p": [[165, 1, 1, "c.hp_rsqrtgrad_p", "input1"], [165, 1, 1, "c.hp_rsqrtgrad_p", "input2"], [165, 1, 1, "c.hp_rsqrtgrad_p", "output"], [165, 1, 1, "c.hp_rsqrtgrad_p", "size"]], "hp_rsqrtgrad_s": [[165, 1, 1, "c.hp_rsqrtgrad_s", "core_mask"], [165, 1, 1, "c.hp_rsqrtgrad_s", "input1"], [165, 1, 1, "c.hp_rsqrtgrad_s", "input2"], [165, 1, 1, "c.hp_rsqrtgrad_s", "output"], [165, 1, 1, "c.hp_rsqrtgrad_s", "size"]], "hp_scalefusion_p": [[166, 1, 1, "c.hp_scalefusion_p", "bias"], [166, 1, 1, "c.hp_scalefusion_p", "dst_data"], [166, 1, 1, "c.hp_scalefusion_p", "length"], [166, 1, 1, "c.hp_scalefusion_p", "scale"], [166, 1, 1, "c.hp_scalefusion_p", "src_data"]], "hp_scalefusion_s": [[166, 1, 1, "c.hp_scalefusion_s", "bias"], [166, 1, 1, "c.hp_scalefusion_s", "core_mask"], [166, 1, 1, "c.hp_scalefusion_s", "dst_data"], [166, 1, 1, "c.hp_scalefusion_s", "length"], [166, 1, 1, "c.hp_scalefusion_s", "scale"], [166, 1, 1, "c.hp_scalefusion_s", "src_data"]], "hp_scatter_elements_p": [[167, 1, 1, "c.hp_scatter_elements_p", "core_mask"], [167, 1, 1, "c.hp_scatter_elements_p", "indices"], [167, 1, 1, "c.hp_scatter_elements_p", "input"], [167, 1, 1, "c.hp_scatter_elements_p", "output"], [167, 1, 1, "c.hp_scatter_elements_p", "param"], [167, 1, 1, "c.hp_scatter_elements_p", "updates"]], "hp_scatter_elements_s": [[167, 1, 1, "c.hp_scatter_elements_s", "core_mask"], [167, 1, 1, "c.hp_scatter_elements_s", "indices"], [167, 1, 1, "c.hp_scatter_elements_s", "input"], [167, 1, 1, "c.hp_scatter_elements_s", "output"], [167, 1, 1, "c.hp_scatter_elements_s", "param"], [167, 1, 1, "c.hp_scatter_elements_s", "updates"]], "hp_scatter_nd_p": [[168, 1, 1, "c.hp_scatter_nd_p", "indices"], [168, 1, 1, "c.hp_scatter_nd_p", "indices_ndim"], [168, 1, 1, "c.hp_scatter_nd_p", "indices_shape"], [168, 1, 1, "c.hp_scatter_nd_p", "output"], [168, 1, 1, "c.hp_scatter_nd_p", "output_ndim"], [168, 1, 1, "c.hp_scatter_nd_p", "output_shape"], [168, 1, 1, "c.hp_scatter_nd_p", "updates"]], "hp_scatter_nd_s": [[168, 1, 1, "c.hp_scatter_nd_s", "core_mask"], [168, 1, 1, "c.hp_scatter_nd_s", "indices"], [168, 1, 1, "c.hp_scatter_nd_s", "indices_ndim"], [168, 1, 1, "c.hp_scatter_nd_s", "indices_shape"], [168, 1, 1, "c.hp_scatter_nd_s", "output"], [168, 1, 1, "c.hp_scatter_nd_s", "output_ndim"], [168, 1, 1, "c.hp_scatter_nd_s", "output_shape"], [168, 1, 1, "c.hp_scatter_nd_s", "updates"]], "hp_scatter_nd_update_p": [[169, 1, 1, "c.hp_scatter_nd_update_p", "indices"], [169, 1, 1, "c.hp_scatter_nd_update_p", "indices_ndim"], [169, 1, 1, "c.hp_scatter_nd_update_p", "indices_shape"], [169, 1, 1, "c.hp_scatter_nd_update_p", "output"], [169, 1, 1, "c.hp_scatter_nd_update_p", "output_ndim"], [169, 1, 1, "c.hp_scatter_nd_update_p", "output_shape"], [169, 1, 1, "c.hp_scatter_nd_update_p", "updates"]], "hp_scatter_nd_update_s": [[169, 1, 1, "c.hp_scatter_nd_update_s", "core_mask"], [169, 1, 1, "c.hp_scatter_nd_update_s", "indices"], [169, 1, 1, "c.hp_scatter_nd_update_s", "indices_ndim"], [169, 1, 1, "c.hp_scatter_nd_update_s", "indices_shape"], [169, 1, 1, "c.hp_scatter_nd_update_s", "output"], [169, 1, 1, "c.hp_scatter_nd_update_s", "output_ndim"], [169, 1, 1, "c.hp_scatter_nd_update_s", "output_shape"], [169, 1, 1, "c.hp_scatter_nd_update_s", "updates"]], "hp_select_p": [[170, 1, 1, "c.hp_select_p", "condition"], [170, 1, 1, "c.hp_select_p", "index_list1"], [170, 1, 1, "c.hp_select_p", "index_list2"], [170, 1, 1, "c.hp_select_p", "index_list3"], [170, 1, 1, "c.hp_select_p", "input0"], [170, 1, 1, "c.hp_select_p", "input1"], [170, 1, 1, "c.hp_select_p", "is_broadcast"], [170, 1, 1, "c.hp_select_p", "output"], [170, 1, 1, "c.hp_select_p", "output_dims"], [170, 1, 1, "c.hp_select_p", "output_dims_num"]], "hp_select_s": [[170, 1, 1, "c.hp_select_s", "condition"], [170, 1, 1, "c.hp_select_s", "core_mask"], [170, 1, 1, "c.hp_select_s", "index_list1"], [170, 1, 1, "c.hp_select_s", "index_list2"], [170, 1, 1, "c.hp_select_s", "index_list3"], [170, 1, 1, "c.hp_select_s", "input0"], [170, 1, 1, "c.hp_select_s", "input1"], [170, 1, 1, "c.hp_select_s", "is_broadcast"], [170, 1, 1, "c.hp_select_s", "output"], [170, 1, 1, "c.hp_select_s", "output_dims"], [170, 1, 1, "c.hp_select_s", "output_dims_num"]], "hp_sgd_p": [[171, 1, 1, "c.hp_sgd_p", "accumulate"], [171, 1, 1, "c.hp_sgd_p", "dampening"], [171, 1, 1, "c.hp_sgd_p", "gradient"], [171, 1, 1, "c.hp_sgd_p", "learning_rate"], [171, 1, 1, "c.hp_sgd_p", "length"], [171, 1, 1, "c.hp_sgd_p", "moment"], [171, 1, 1, "c.hp_sgd_p", "nesterov"], [171, 1, 1, "c.hp_sgd_p", "weight"], [171, 1, 1, "c.hp_sgd_p", "weight_decay"]], "hp_sgd_s": [[171, 1, 1, "c.hp_sgd_s", "accumulate"], [171, 1, 1, "c.hp_sgd_s", "core_mask"], [171, 1, 1, "c.hp_sgd_s", "dampening"], [171, 1, 1, "c.hp_sgd_s", "end"], [171, 1, 1, "c.hp_sgd_s", "gradient"], [171, 1, 1, "c.hp_sgd_s", "learning_rate"], [171, 1, 1, "c.hp_sgd_s", "moment"], [171, 1, 1, "c.hp_sgd_s", "nesterov"], [171, 1, 1, "c.hp_sgd_s", "start"], [171, 1, 1, "c.hp_sgd_s", "weight"], [171, 1, 1, "c.hp_sgd_s", "weight_decay"]], "hp_sigmoid_p": [[12, 1, 1, "c.hp_sigmoid_p", "Input0"], [12, 1, 1, "c.hp_sigmoid_p", "length"], [12, 1, 1, "c.hp_sigmoid_p", "output"]], "hp_sigmoid_s": [[12, 1, 1, "c.hp_sigmoid_s", "Input0"], [12, 1, 1, "c.hp_sigmoid_s", "core_mask"], [12, 1, 1, "c.hp_sigmoid_s", "length"], [12, 1, 1, "c.hp_sigmoid_s", "output"]], "hp_sigmoidcrossentropywithlogits_p": [[174, 1, 1, "c.hp_sigmoidcrossentropywithlogits_p", "input0"], [174, 1, 1, "c.hp_sigmoidcrossentropywithlogits_p", "input1"], [174, 1, 1, "c.hp_sigmoidcrossentropywithlogits_p", "length"], [174, 1, 1, "c.hp_sigmoidcrossentropywithlogits_p", "output"]], "hp_sigmoidcrossentropywithlogits_s": [[174, 1, 1, "c.hp_sigmoidcrossentropywithlogits_s", "core_mask"], [174, 1, 1, "c.hp_sigmoidcrossentropywithlogits_s", "input0"], [174, 1, 1, "c.hp_sigmoidcrossentropywithlogits_s", "input1"], [174, 1, 1, "c.hp_sigmoidcrossentropywithlogits_s", "length"], [174, 1, 1, "c.hp_sigmoidcrossentropywithlogits_s", "output"]], "hp_sigmoidcrossentropywithlogitsgrad_p": [[173, 1, 1, "c.hp_sigmoidcrossentropywithlogitsgrad_p", "Input0"], [173, 1, 1, "c.hp_sigmoidcrossentropywithlogitsgrad_p", "Input1"], [173, 1, 1, "c.hp_sigmoidcrossentropywithlogitsgrad_p", "length"], [173, 1, 1, "c.hp_sigmoidcrossentropywithlogitsgrad_p", "output"]], "hp_sigmoidcrossentropywithlogitsgrad_s": [[173, 1, 1, "c.hp_sigmoidcrossentropywithlogitsgrad_s", "Input0"], [173, 1, 1, "c.hp_sigmoidcrossentropywithlogitsgrad_s", "Input1"], [173, 1, 1, "c.hp_sigmoidcrossentropywithlogitsgrad_s", "core_mask"], [173, 1, 1, "c.hp_sigmoidcrossentropywithlogitsgrad_s", "length"], [173, 1, 1, "c.hp_sigmoidcrossentropywithlogitsgrad_s", "output"]], "hp_sin_p": [[175, 1, 1, "c.hp_sin_p", "dst_data"], [175, 1, 1, "c.hp_sin_p", "length"], [175, 1, 1, "c.hp_sin_p", "src_data"]], "hp_sin_s": [[175, 1, 1, "c.hp_sin_s", "core_mask"], [175, 1, 1, "c.hp_sin_s", "dst_data"], [175, 1, 1, "c.hp_sin_s", "length"], [175, 1, 1, "c.hp_sin_s", "src_data"]], "hp_slice_p": [[178, 1, 1, "c.hp_slice_p", "begin"], [178, 1, 1, "c.hp_slice_p", "input"], [178, 1, 1, "c.hp_slice_p", "input_shape"], [178, 1, 1, "c.hp_slice_p", "ndim"], [178, 1, 1, "c.hp_slice_p", "output"], [178, 1, 1, "c.hp_slice_p", "size"]], "hp_slice_s": [[178, 1, 1, "c.hp_slice_s", "begin"], [178, 1, 1, "c.hp_slice_s", "core_mask"], [178, 1, 1, "c.hp_slice_s", "input"], [178, 1, 1, "c.hp_slice_s", "input_shape"], [178, 1, 1, "c.hp_slice_s", "ndim"], [178, 1, 1, "c.hp_slice_s", "output"], [178, 1, 1, "c.hp_slice_s", "size"]], "hp_smoothl1loss_p": [[179, 1, 1, "c.hp_smoothl1loss_p", "beta"], [179, 1, 1, "c.hp_smoothl1loss_p", "length"], [179, 1, 1, "c.hp_smoothl1loss_p", "out"], [179, 1, 1, "c.hp_smoothl1loss_p", "predict"], [179, 1, 1, "c.hp_smoothl1loss_p", "target"]], "hp_smoothl1loss_s": [[179, 1, 1, "c.hp_smoothl1loss_s", "beta"], [179, 1, 1, "c.hp_smoothl1loss_s", "core_mask"], [179, 1, 1, "c.hp_smoothl1loss_s", "length"], [179, 1, 1, "c.hp_smoothl1loss_s", "out"], [179, 1, 1, "c.hp_smoothl1loss_s", "predict"], [179, 1, 1, "c.hp_smoothl1loss_s", "target"]], "hp_smoothl1lossgrad_p": [[180, 1, 1, "c.hp_smoothl1lossgrad_p", "beta"], [180, 1, 1, "c.hp_smoothl1lossgrad_p", "dx1"], [180, 1, 1, "c.hp_smoothl1lossgrad_p", "dy"], [180, 1, 1, "c.hp_smoothl1lossgrad_p", "length"], [180, 1, 1, "c.hp_smoothl1lossgrad_p", "x1"], [180, 1, 1, "c.hp_smoothl1lossgrad_p", "x2"]], "hp_smoothl1lossgrad_s": [[180, 1, 1, "c.hp_smoothl1lossgrad_s", "beta"], [180, 1, 1, "c.hp_smoothl1lossgrad_s", "core_mask"], [180, 1, 1, "c.hp_smoothl1lossgrad_s", "dx1"], [180, 1, 1, "c.hp_smoothl1lossgrad_s", "dy"], [180, 1, 1, "c.hp_smoothl1lossgrad_s", "length"], [180, 1, 1, "c.hp_smoothl1lossgrad_s", "x1"], [180, 1, 1, "c.hp_smoothl1lossgrad_s", "x2"]], "hp_softmax_cross_entropy_with_logits_p": [[182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_p", "batch_size"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_p", "grads"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_p", "labels"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_p", "logits"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_p", "need_grads"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_p", "num_of_classes"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_p", "output"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_p", "probs"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_p", "sum_data"]], "hp_softmax_cross_entropy_with_logits_s": [[182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_s", "batch_size"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_s", "core_mask"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_s", "grads"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_s", "labels"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_s", "logits"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_s", "need_grads"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_s", "num_of_classes"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_s", "output"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_s", "probs"], [182, 1, 1, "c.hp_softmax_cross_entropy_with_logits_s", "sum_data"]], "hp_softmax_p": [[181, 1, 1, "c.hp_softmax_p", "axis"], [181, 1, 1, "c.hp_softmax_p", "axis_size"], [181, 1, 1, "c.hp_softmax_p", "inner_size"], [181, 1, 1, "c.hp_softmax_p", "input_ptr"], [181, 1, 1, "c.hp_softmax_p", "n_dim"], [181, 1, 1, "c.hp_softmax_p", "output_ptr"], [181, 1, 1, "c.hp_softmax_p", "outter_size"], [181, 1, 1, "c.hp_softmax_p", "sum_data"]], "hp_softmax_s": [[181, 1, 1, "c.hp_softmax_s", "axis"], [181, 1, 1, "c.hp_softmax_s", "axis_size"], [181, 1, 1, "c.hp_softmax_s", "core_mask"], [181, 1, 1, "c.hp_softmax_s", "inner_size"], [181, 1, 1, "c.hp_softmax_s", "input_ptr"], [181, 1, 1, "c.hp_softmax_s", "n_dim"], [181, 1, 1, "c.hp_softmax_s", "output_ptr"], [181, 1, 1, "c.hp_softmax_s", "outter_size"], [181, 1, 1, "c.hp_softmax_s", "sum_data"]], "hp_softplus_p": [[12, 1, 1, "c.hp_softplus_p", "Input0"], [12, 1, 1, "c.hp_softplus_p", "length"], [12, 1, 1, "c.hp_softplus_p", "output"]], "hp_softplus_s": [[12, 1, 1, "c.hp_softplus_s", "Input0"], [12, 1, 1, "c.hp_softplus_s", "core_mask"], [12, 1, 1, "c.hp_softplus_s", "length"], [12, 1, 1, "c.hp_softplus_s", "output"]], "hp_softshrink_p": [[12, 1, 1, "c.hp_softshrink_p", "Input0"], [12, 1, 1, "c.hp_softshrink_p", "lambd"], [12, 1, 1, "c.hp_softshrink_p", "length"], [12, 1, 1, "c.hp_softshrink_p", "output"]], "hp_softshrink_s": [[12, 1, 1, "c.hp_softshrink_s", "Input0"], [12, 1, 1, "c.hp_softshrink_s", "core_mask"], [12, 1, 1, "c.hp_softshrink_s", "lambd"], [12, 1, 1, "c.hp_softshrink_s", "length"], [12, 1, 1, "c.hp_softshrink_s", "output"]], "hp_softsignopt_p": [[12, 1, 1, "c.hp_softsignopt_p", "Input0"], [12, 1, 1, "c.hp_softsignopt_p", "length"], [12, 1, 1, "c.hp_softsignopt_p", "output"]], "hp_softsignopt_s": [[12, 1, 1, "c.hp_softsignopt_s", "Input0"], [12, 1, 1, "c.hp_softsignopt_s", "core_mask"], [12, 1, 1, "c.hp_softsignopt_s", "length"], [12, 1, 1, "c.hp_softsignopt_s", "output"]], "hp_spacetobatch_p": [[183, 1, 1, "c.hp_spacetobatch_p", "block_size"], [183, 1, 1, "c.hp_spacetobatch_p", "data_size"], [183, 1, 1, "c.hp_spacetobatch_p", "input"], [183, 1, 1, "c.hp_spacetobatch_p", "input_shape"], [183, 1, 1, "c.hp_spacetobatch_p", "output"], [183, 1, 1, "c.hp_spacetobatch_p", "paddings"]], "hp_spacetobatch_s": [[183, 1, 1, "c.hp_spacetobatch_s", "block_size"], [183, 1, 1, "c.hp_spacetobatch_s", "core_mask"], [183, 1, 1, "c.hp_spacetobatch_s", "data_size"], [183, 1, 1, "c.hp_spacetobatch_s", "input"], [183, 1, 1, "c.hp_spacetobatch_s", "input_shape"], [183, 1, 1, "c.hp_spacetobatch_s", "output"], [183, 1, 1, "c.hp_spacetobatch_s", "paddings"]], "hp_spacetobatchnd_p": [[184, 1, 1, "c.hp_spacetobatchnd_p", "block_size"], [184, 1, 1, "c.hp_spacetobatchnd_p", "data_size"], [184, 1, 1, "c.hp_spacetobatchnd_p", "input"], [184, 1, 1, "c.hp_spacetobatchnd_p", "input_shape"], [184, 1, 1, "c.hp_spacetobatchnd_p", "output"], [184, 1, 1, "c.hp_spacetobatchnd_p", "paddings"]], "hp_spacetobatchnd_s": [[184, 1, 1, "c.hp_spacetobatchnd_s", "block_size"], [184, 1, 1, "c.hp_spacetobatchnd_s", "core_mask"], [184, 1, 1, "c.hp_spacetobatchnd_s", "data_size"], [184, 1, 1, "c.hp_spacetobatchnd_s", "input"], [184, 1, 1, "c.hp_spacetobatchnd_s", "input_shape"], [184, 1, 1, "c.hp_spacetobatchnd_s", "output"], [184, 1, 1, "c.hp_spacetobatchnd_s", "paddings"]], "hp_spacetodepth_p": [[185, 1, 1, "c.hp_spacetodepth_p", "block"], [185, 1, 1, "c.hp_spacetodepth_p", "data_size"], [185, 1, 1, "c.hp_spacetodepth_p", "in_shape"], [185, 1, 1, "c.hp_spacetodepth_p", "input"], [185, 1, 1, "c.hp_spacetodepth_p", "output"]], "hp_spacetodepth_s": [[185, 1, 1, "c.hp_spacetodepth_s", "block"], [185, 1, 1, "c.hp_spacetodepth_s", "core_mask"], [185, 1, 1, "c.hp_spacetodepth_s", "data_size"], [185, 1, 1, "c.hp_spacetodepth_s", "in_shape"], [185, 1, 1, "c.hp_spacetodepth_s", "input"], [185, 1, 1, "c.hp_spacetodepth_s", "output"]], "hp_sparse_softmax_cross_entropy_with_logits_p": [[186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "axis_size"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "batch_size"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "inner_size"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "input"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "is_grad"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "labels"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "losses"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "number_of_classes"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "output"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "outter_size"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "partial_losses"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_p", "sum_data"]], "hp_sparse_softmax_cross_entropy_with_logits_s": [[186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "axis_size"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "batch_size"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "core_mask"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "inner_size"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "input"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "is_grad"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "labels"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "losses"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "number_of_classes"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "output"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "outter_size"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "partial_losses"], [186, 1, 1, "c.hp_sparse_softmax_cross_entropy_with_logits_s", "sum_data"]], "hp_sparsefillemptyrows_p": [[187, 1, 1, "c.hp_sparsefillemptyrows_p", "N"], [187, 1, 1, "c.hp_sparsefillemptyrows_p", "default_value"], [187, 1, 1, "c.hp_sparsefillemptyrows_p", "dense_rows"], [187, 1, 1, "c.hp_sparsefillemptyrows_p", "filled_count"], [187, 1, 1, "c.hp_sparsefillemptyrows_p", "indices_ptr"], [187, 1, 1, "c.hp_sparsefillemptyrows_p", "output_reverse_index_map_ptr"], [187, 1, 1, "c.hp_sparsefillemptyrows_p", "output_y_indices_ptr"], [187, 1, 1, "c.hp_sparsefillemptyrows_p", "output_y_values_ptr"], [187, 1, 1, "c.hp_sparsefillemptyrows_p", "rank"], [187, 1, 1, "c.hp_sparsefillemptyrows_p", "scratch_ptr"], [187, 1, 1, "c.hp_sparsefillemptyrows_p", "values_ptr"]], "hp_sparsefillemptyrows_s": [[187, 1, 1, "c.hp_sparsefillemptyrows_s", "N"], [187, 1, 1, "c.hp_sparsefillemptyrows_s", "core_mask"], [187, 1, 1, "c.hp_sparsefillemptyrows_s", "default_value"], [187, 1, 1, "c.hp_sparsefillemptyrows_s", "dense_rows"], [187, 1, 1, "c.hp_sparsefillemptyrows_s", "filled_count"], [187, 1, 1, "c.hp_sparsefillemptyrows_s", "indices_ptr"], [187, 1, 1, "c.hp_sparsefillemptyrows_s", "output_reverse_index_map_ptr"], [187, 1, 1, "c.hp_sparsefillemptyrows_s", "output_y_indices_ptr"], [187, 1, 1, "c.hp_sparsefillemptyrows_s", "output_y_values_ptr"], [187, 1, 1, "c.hp_sparsefillemptyrows_s", "rank"], [187, 1, 1, "c.hp_sparsefillemptyrows_s", "scratch_ptr"], [187, 1, 1, "c.hp_sparsefillemptyrows_s", "values_ptr"]], "hp_sparsesegmentsum_p": [[189, 1, 1, "c.hp_sparsesegmentsum_p", "in_data"], [189, 1, 1, "c.hp_sparsesegmentsum_p", "in_data_shape"], [189, 1, 1, "c.hp_sparsesegmentsum_p", "in_data_shape_size"], [189, 1, 1, "c.hp_sparsesegmentsum_p", "in_indices"], [189, 1, 1, "c.hp_sparsesegmentsum_p", "in_indices_size"], [189, 1, 1, "c.hp_sparsesegmentsum_p", "in_segment_ids"], [189, 1, 1, "c.hp_sparsesegmentsum_p", "out_data"], [189, 1, 1, "c.hp_sparsesegmentsum_p", "out_data_shape"]], "hp_sparsesegmentsum_s": [[189, 1, 1, "c.hp_sparsesegmentsum_s", "core_mask"], [189, 1, 1, "c.hp_sparsesegmentsum_s", "in_data"], [189, 1, 1, "c.hp_sparsesegmentsum_s", "in_data_shape"], [189, 1, 1, "c.hp_sparsesegmentsum_s", "in_data_shape_size"], [189, 1, 1, "c.hp_sparsesegmentsum_s", "in_indices"], [189, 1, 1, "c.hp_sparsesegmentsum_s", "in_indices_size"], [189, 1, 1, "c.hp_sparsesegmentsum_s", "in_segment_ids"], [189, 1, 1, "c.hp_sparsesegmentsum_s", "out_data"], [189, 1, 1, "c.hp_sparsesegmentsum_s", "out_data_shape"]], "hp_sparsetodense_p": [[190, 1, 1, "c.hp_sparsetodense_p", "indices_vec"], [190, 1, 1, "c.hp_sparsetodense_p", "is_scalar"], [190, 1, 1, "c.hp_sparsetodense_p", "output"], [190, 1, 1, "c.hp_sparsetodense_p", "output_strides"], [190, 1, 1, "c.hp_sparsetodense_p", "sparse_length"], [190, 1, 1, "c.hp_sparsetodense_p", "sparse_values"]], "hp_sparsetodense_s": [[190, 1, 1, "c.hp_sparsetodense_s", "core_mask"], [190, 1, 1, "c.hp_sparsetodense_s", "indices_vec"], [190, 1, 1, "c.hp_sparsetodense_s", "is_scalar"], [190, 1, 1, "c.hp_sparsetodense_s", "output"], [190, 1, 1, "c.hp_sparsetodense_s", "output_strides"], [190, 1, 1, "c.hp_sparsetodense_s", "sparse_length"], [190, 1, 1, "c.hp_sparsetodense_s", "sparse_values"]], "hp_splice_p": [[191, 1, 1, "c.hp_splice_p", "context_dim"], [191, 1, 1, "c.hp_splice_p", "dst_col"], [191, 1, 1, "c.hp_splice_p", "dst_data"], [191, 1, 1, "c.hp_splice_p", "dst_row"], [191, 1, 1, "c.hp_splice_p", "forward_indexes"], [191, 1, 1, "c.hp_splice_p", "forward_indexes_dims"], [191, 1, 1, "c.hp_splice_p", "src_col"], [191, 1, 1, "c.hp_splice_p", "src_data"], [191, 1, 1, "c.hp_splice_p", "src_row"]], "hp_splice_s": [[191, 1, 1, "c.hp_splice_s", "context_dim"], [191, 1, 1, "c.hp_splice_s", "core_mask"], [191, 1, 1, "c.hp_splice_s", "dst_col"], [191, 1, 1, "c.hp_splice_s", "dst_data"], [191, 1, 1, "c.hp_splice_s", "dst_row"], [191, 1, 1, "c.hp_splice_s", "forward_indexes"], [191, 1, 1, "c.hp_splice_s", "forward_indexes_dims"], [191, 1, 1, "c.hp_splice_s", "src_col"], [191, 1, 1, "c.hp_splice_s", "src_data"], [191, 1, 1, "c.hp_splice_s", "src_row"]], "hp_split_p": [[192, 1, 1, "c.hp_split_p", "axis"], [192, 1, 1, "c.hp_split_p", "input"], [192, 1, 1, "c.hp_split_p", "input_ndim"], [192, 1, 1, "c.hp_split_p", "input_shape"], [192, 1, 1, "c.hp_split_p", "num_split"], [192, 1, 1, "c.hp_split_p", "outputs"], [192, 1, 1, "c.hp_split_p", "split_sizes"]], "hp_split_s": [[192, 1, 1, "c.hp_split_s", "axis"], [192, 1, 1, "c.hp_split_s", "core_mask"], [192, 1, 1, "c.hp_split_s", "input"], [192, 1, 1, "c.hp_split_s", "input_ndim"], [192, 1, 1, "c.hp_split_s", "input_shape"], [192, 1, 1, "c.hp_split_s", "num_split"], [192, 1, 1, "c.hp_split_s", "outputs"], [192, 1, 1, "c.hp_split_s", "split_sizes"]], "hp_split_with_overlap_p": [[193, 1, 1, "c.hp_split_with_overlap_p", "axis"], [193, 1, 1, "c.hp_split_with_overlap_p", "end_indices"], [193, 1, 1, "c.hp_split_with_overlap_p", "input"], [193, 1, 1, "c.hp_split_with_overlap_p", "input_ndim"], [193, 1, 1, "c.hp_split_with_overlap_p", "input_shape"], [193, 1, 1, "c.hp_split_with_overlap_p", "num_split"], [193, 1, 1, "c.hp_split_with_overlap_p", "outputs"], [193, 1, 1, "c.hp_split_with_overlap_p", "start_indices"]], "hp_split_with_overlap_s": [[193, 1, 1, "c.hp_split_with_overlap_s", "axis"], [193, 1, 1, "c.hp_split_with_overlap_s", "core_mask"], [193, 1, 1, "c.hp_split_with_overlap_s", "end_indices"], [193, 1, 1, "c.hp_split_with_overlap_s", "input"], [193, 1, 1, "c.hp_split_with_overlap_s", "input_ndim"], [193, 1, 1, "c.hp_split_with_overlap_s", "input_shape"], [193, 1, 1, "c.hp_split_with_overlap_s", "num_split"], [193, 1, 1, "c.hp_split_with_overlap_s", "outputs"], [193, 1, 1, "c.hp_split_with_overlap_s", "start_indices"]], "hp_sqrt_p": [[194, 1, 1, "c.hp_sqrt_p", "dst_data"], [194, 1, 1, "c.hp_sqrt_p", "length"], [194, 1, 1, "c.hp_sqrt_p", "src_data"]], "hp_sqrt_s": [[194, 1, 1, "c.hp_sqrt_s", "core_mask"], [194, 1, 1, "c.hp_sqrt_s", "dst_data"], [194, 1, 1, "c.hp_sqrt_s", "length"], [194, 1, 1, "c.hp_sqrt_s", "src_data"]], "hp_sqrtgrad_p": [[195, 1, 1, "c.hp_sqrtgrad_p", "input1"], [195, 1, 1, "c.hp_sqrtgrad_p", "input2"], [195, 1, 1, "c.hp_sqrtgrad_p", "output"], [195, 1, 1, "c.hp_sqrtgrad_p", "size"]], "hp_sqrtgrad_s": [[195, 1, 1, "c.hp_sqrtgrad_s", "core_mask"], [195, 1, 1, "c.hp_sqrtgrad_s", "input1"], [195, 1, 1, "c.hp_sqrtgrad_s", "input2"], [195, 1, 1, "c.hp_sqrtgrad_s", "output"], [195, 1, 1, "c.hp_sqrtgrad_s", "size"]], "hp_square_p": [[196, 1, 1, "c.hp_square_p", "dst"], [196, 1, 1, "c.hp_square_p", "length"], [196, 1, 1, "c.hp_square_p", "src"]], "hp_square_s": [[196, 1, 1, "c.hp_square_s", "core_mask"], [196, 1, 1, "c.hp_square_s", "dst"], [196, 1, 1, "c.hp_square_s", "length"], [196, 1, 1, "c.hp_square_s", "src"]], "hp_squaredifference_p": [[197, 1, 1, "c.hp_squaredifference_p", "input0"], [197, 1, 1, "c.hp_squaredifference_p", "input1"], [197, 1, 1, "c.hp_squaredifference_p", "length"], [197, 1, 1, "c.hp_squaredifference_p", "output"]], "hp_squaredifference_s": [[197, 1, 1, "c.hp_squaredifference_s", "core_mask"], [197, 1, 1, "c.hp_squaredifference_s", "input0"], [197, 1, 1, "c.hp_squaredifference_s", "input1"], [197, 1, 1, "c.hp_squaredifference_s", "length"], [197, 1, 1, "c.hp_squaredifference_s", "output"]], "hp_stack_p": [[199, 1, 1, "c.hp_stack_p", "axis"], [199, 1, 1, "c.hp_stack_p", "input_ndim"], [199, 1, 1, "c.hp_stack_p", "input_shape"], [199, 1, 1, "c.hp_stack_p", "inputs"], [199, 1, 1, "c.hp_stack_p", "num_inputs"], [199, 1, 1, "c.hp_stack_p", "output"]], "hp_stack_s": [[199, 1, 1, "c.hp_stack_s", "axis"], [199, 1, 1, "c.hp_stack_s", "core_mask"], [199, 1, 1, "c.hp_stack_s", "input_ndim"], [199, 1, 1, "c.hp_stack_s", "input_shape"], [199, 1, 1, "c.hp_stack_s", "inputs"], [199, 1, 1, "c.hp_stack_s", "num_inputs"], [199, 1, 1, "c.hp_stack_s", "output"]], "hp_stridedslicegrad_p": [[201, 1, 1, "c.hp_stridedslicegrad_p", "begins"], [201, 1, 1, "c.hp_stridedslicegrad_p", "dx_shape"], [201, 1, 1, "c.hp_stridedslicegrad_p", "in_shape"], [201, 1, 1, "c.hp_stridedslicegrad_p", "inputs"], [201, 1, 1, "c.hp_stridedslicegrad_p", "output"], [201, 1, 1, "c.hp_stridedslicegrad_p", "strides"]], "hp_stridedslicegrad_s": [[201, 1, 1, "c.hp_stridedslicegrad_s", "begins"], [201, 1, 1, "c.hp_stridedslicegrad_s", "core_mask"], [201, 1, 1, "c.hp_stridedslicegrad_s", "dx_shape"], [201, 1, 1, "c.hp_stridedslicegrad_s", "in_shape"], [201, 1, 1, "c.hp_stridedslicegrad_s", "inputs"], [201, 1, 1, "c.hp_stridedslicegrad_s", "output"], [201, 1, 1, "c.hp_stridedslicegrad_s", "strides"]], "hp_subext_p": [[202, 1, 1, "c.hp_subext_p", "alpha"], [202, 1, 1, "c.hp_subext_p", "input0"], [202, 1, 1, "c.hp_subext_p", "input1"], [202, 1, 1, "c.hp_subext_p", "output"], [202, 1, 1, "c.hp_subext_p", "size"]], "hp_subext_s": [[202, 1, 1, "c.hp_subext_s", "alpha"], [202, 1, 1, "c.hp_subext_s", "core_mask"], [202, 1, 1, "c.hp_subext_s", "input0"], [202, 1, 1, "c.hp_subext_s", "input1"], [202, 1, 1, "c.hp_subext_s", "output"], [202, 1, 1, "c.hp_subext_s", "size"]], "hp_subgrad_p": [[203, 1, 1, "c.hp_subgrad_p", "dx1"], [203, 1, 1, "c.hp_subgrad_p", "dx2"], [203, 1, 1, "c.hp_subgrad_p", "dy"], [203, 1, 1, "c.hp_subgrad_p", "dy_dims"], [203, 1, 1, "c.hp_subgrad_p", "num_dims"], [203, 1, 1, "c.hp_subgrad_p", "x1_dims"], [203, 1, 1, "c.hp_subgrad_p", "x2_dims"]], "hp_subgrad_s": [[203, 1, 1, "c.hp_subgrad_s", "core_mask"], [203, 1, 1, "c.hp_subgrad_s", "dx1"], [203, 1, 1, "c.hp_subgrad_s", "dx2"], [203, 1, 1, "c.hp_subgrad_s", "dy"], [203, 1, 1, "c.hp_subgrad_s", "dy_dims"], [203, 1, 1, "c.hp_subgrad_s", "num_dims"], [203, 1, 1, "c.hp_subgrad_s", "x1_dims"], [203, 1, 1, "c.hp_subgrad_s", "x2_dims"]], "hp_subrelu6_p": [[202, 1, 1, "c.hp_subrelu6_p", "input0"], [202, 1, 1, "c.hp_subrelu6_p", "input1"], [202, 1, 1, "c.hp_subrelu6_p", "output"], [202, 1, 1, "c.hp_subrelu6_p", "size"]], "hp_subrelu6_s": [[202, 1, 1, "c.hp_subrelu6_s", "core_mask"], [202, 1, 1, "c.hp_subrelu6_s", "input0"], [202, 1, 1, "c.hp_subrelu6_s", "input1"], [202, 1, 1, "c.hp_subrelu6_s", "output"], [202, 1, 1, "c.hp_subrelu6_s", "size"]], "hp_subrelu_p": [[202, 1, 1, "c.hp_subrelu_p", "input0"], [202, 1, 1, "c.hp_subrelu_p", "input1"], [202, 1, 1, "c.hp_subrelu_p", "output"], [202, 1, 1, "c.hp_subrelu_p", "size"]], "hp_subrelu_s": [[202, 1, 1, "c.hp_subrelu_s", "core_mask"], [202, 1, 1, "c.hp_subrelu_s", "input0"], [202, 1, 1, "c.hp_subrelu_s", "input1"], [202, 1, 1, "c.hp_subrelu_s", "output"], [202, 1, 1, "c.hp_subrelu_s", "size"]], "hp_swish_p": [[12, 1, 1, "c.hp_swish_p", "Input0"], [12, 1, 1, "c.hp_swish_p", "length"], [12, 1, 1, "c.hp_swish_p", "output"]], "hp_swish_s": [[12, 1, 1, "c.hp_swish_s", "Input0"], [12, 1, 1, "c.hp_swish_s", "core_mask"], [12, 1, 1, "c.hp_swish_s", "length"], [12, 1, 1, "c.hp_swish_s", "output"]], "hp_tanh_p": [[12, 1, 1, "c.hp_tanh_p", "Input0"], [12, 1, 1, "c.hp_tanh_p", "length"], [12, 1, 1, "c.hp_tanh_p", "output"]], "hp_tanh_s": [[12, 1, 1, "c.hp_tanh_s", "Input0"], [12, 1, 1, "c.hp_tanh_s", "core_mask"], [12, 1, 1, "c.hp_tanh_s", "length"], [12, 1, 1, "c.hp_tanh_s", "output"]], "hp_tensor_scatter_add_p": [[206, 1, 1, "c.hp_tensor_scatter_add_p", "index_depth"], [206, 1, 1, "c.hp_tensor_scatter_add_p", "indices"], [206, 1, 1, "c.hp_tensor_scatter_add_p", "input"], [206, 1, 1, "c.hp_tensor_scatter_add_p", "input_rank"], [206, 1, 1, "c.hp_tensor_scatter_add_p", "input_shape"], [206, 1, 1, "c.hp_tensor_scatter_add_p", "num_unit"], [206, 1, 1, "c.hp_tensor_scatter_add_p", "output"], [206, 1, 1, "c.hp_tensor_scatter_add_p", "output_unit_offsets"], [206, 1, 1, "c.hp_tensor_scatter_add_p", "strides"], [206, 1, 1, "c.hp_tensor_scatter_add_p", "updates"]], "hp_tensor_scatter_add_s": [[206, 1, 1, "c.hp_tensor_scatter_add_s", "core_mask"], [206, 1, 1, "c.hp_tensor_scatter_add_s", "index_depth"], [206, 1, 1, "c.hp_tensor_scatter_add_s", "indices"], [206, 1, 1, "c.hp_tensor_scatter_add_s", "input"], [206, 1, 1, "c.hp_tensor_scatter_add_s", "input_rank"], [206, 1, 1, "c.hp_tensor_scatter_add_s", "input_shape"], [206, 1, 1, "c.hp_tensor_scatter_add_s", "num_unit"], [206, 1, 1, "c.hp_tensor_scatter_add_s", "output"], [206, 1, 1, "c.hp_tensor_scatter_add_s", "updates"]], "hp_tensorarrayread_p": [[208, 1, 1, "c.hp_tensorarrayread_p", "handle_data"], [208, 1, 1, "c.hp_tensorarrayread_p", "handle_size"], [208, 1, 1, "c.hp_tensorarrayread_p", "index"], [208, 1, 1, "c.hp_tensorarrayread_p", "output_data"], [208, 1, 1, "c.hp_tensorarrayread_p", "output_size"]], "hp_tensorarrayread_s": [[208, 1, 1, "c.hp_tensorarrayread_s", "core_mask"], [208, 1, 1, "c.hp_tensorarrayread_s", "handle_data"], [208, 1, 1, "c.hp_tensorarrayread_s", "handle_size"], [208, 1, 1, "c.hp_tensorarrayread_s", "index"], [208, 1, 1, "c.hp_tensorarrayread_s", "output_data"], [208, 1, 1, "c.hp_tensorarrayread_s", "output_size"]], "hp_tensorlistfromtensor_p": [[210, 1, 1, "c.hp_tensorlistfromtensor_p", "input_tensor_shape"], [210, 1, 1, "c.hp_tensorlistfromtensor_p", "input_tensor_total_elements"], [210, 1, 1, "c.hp_tensorlistfromtensor_p", "input_tensor_values"], [210, 1, 1, "c.hp_tensorlistfromtensor_p", "output_tensors"]], "hp_tensorlistfromtensor_s": [[210, 1, 1, "c.hp_tensorlistfromtensor_s", "core_mask"], [210, 1, 1, "c.hp_tensorlistfromtensor_s", "input_tensor_shape"], [210, 1, 1, "c.hp_tensorlistfromtensor_s", "input_tensor_total_elements"], [210, 1, 1, "c.hp_tensorlistfromtensor_s", "input_tensor_values"], [210, 1, 1, "c.hp_tensorlistfromtensor_s", "output_tensors"]], "hp_tile_p": [[215, 1, 1, "c.hp_tile_p", "input"], [215, 1, 1, "c.hp_tile_p", "input_shape"], [215, 1, 1, "c.hp_tile_p", "output"], [215, 1, 1, "c.hp_tile_p", "stride"], [215, 1, 1, "c.hp_tile_p", "tile_dim"], [215, 1, 1, "c.hp_tile_p", "tile_num"]], "hp_tile_s": [[215, 1, 1, "c.hp_tile_s", "core_mask"], [215, 1, 1, "c.hp_tile_s", "input"], [215, 1, 1, "c.hp_tile_s", "input_shape"], [215, 1, 1, "c.hp_tile_s", "output"], [215, 1, 1, "c.hp_tile_s", "stride"], [215, 1, 1, "c.hp_tile_s", "tile_dim"], [215, 1, 1, "c.hp_tile_s", "tile_num"]], "hp_to_i8_quant_p": [[146, 1, 1, "c.hp_to_i8_quant_p", "input"], [146, 1, 1, "c.hp_to_i8_quant_p", "length"], [146, 1, 1, "c.hp_to_i8_quant_p", "output"], [146, 1, 1, "c.hp_to_i8_quant_p", "scale"], [146, 1, 1, "c.hp_to_i8_quant_p", "zp"]], "hp_to_i8_quant_s": [[146, 1, 1, "c.hp_to_i8_quant_s", "core_mask"], [146, 1, 1, "c.hp_to_i8_quant_s", "input"], [146, 1, 1, "c.hp_to_i8_quant_s", "length"], [146, 1, 1, "c.hp_to_i8_quant_s", "output"], [146, 1, 1, "c.hp_to_i8_quant_s", "scale"], [146, 1, 1, "c.hp_to_i8_quant_s", "zp"]], "hp_topk_fusion_p": [[216, 1, 1, "c.hp_topk_fusion_p", "input"], [216, 1, 1, "c.hp_topk_fusion_p", "output"], [216, 1, 1, "c.hp_topk_fusion_p", "output_index"], [216, 1, 1, "c.hp_topk_fusion_p", "parameter"]], "hp_topk_fusion_s": [[216, 1, 1, "c.hp_topk_fusion_s", "core_mask"], [216, 1, 1, "c.hp_topk_fusion_s", "input"], [216, 1, 1, "c.hp_topk_fusion_s", "output"], [216, 1, 1, "c.hp_topk_fusion_s", "output_index"], [216, 1, 1, "c.hp_topk_fusion_s", "parameter"]], "hp_transpose_p": [[217, 1, 1, "c.hp_transpose_p", "in_data"], [217, 1, 1, "c.hp_transpose_p", "num_axes"], [217, 1, 1, "c.hp_transpose_p", "out_data"], [217, 1, 1, "c.hp_transpose_p", "out_strides"], [217, 1, 1, "c.hp_transpose_p", "output_shape"], [217, 1, 1, "c.hp_transpose_p", "perm"], [217, 1, 1, "c.hp_transpose_p", "strides"]], "hp_transpose_s": [[217, 1, 1, "c.hp_transpose_s", "core_mask"], [217, 1, 1, "c.hp_transpose_s", "in_data"], [217, 1, 1, "c.hp_transpose_s", "num_axes"], [217, 1, 1, "c.hp_transpose_s", "out_data"], [217, 1, 1, "c.hp_transpose_s", "out_strides"], [217, 1, 1, "c.hp_transpose_s", "output_shape"], [217, 1, 1, "c.hp_transpose_s", "perm"], [217, 1, 1, "c.hp_transpose_s", "strides"]], "hp_tril_p": [[218, 1, 1, "c.hp_tril_p", "dst"], [218, 1, 1, "c.hp_tril_p", "height"], [218, 1, 1, "c.hp_tril_p", "k"], [218, 1, 1, "c.hp_tril_p", "out_elems"], [218, 1, 1, "c.hp_tril_p", "src"], [218, 1, 1, "c.hp_tril_p", "width"]], "hp_tril_s": [[218, 1, 1, "c.hp_tril_s", "core_mask"], [218, 1, 1, "c.hp_tril_s", "dst"], [218, 1, 1, "c.hp_tril_s", "height"], [218, 1, 1, "c.hp_tril_s", "k"], [218, 1, 1, "c.hp_tril_s", "out_elems"], [218, 1, 1, "c.hp_tril_s", "src"], [218, 1, 1, "c.hp_tril_s", "width"]], "hp_triu_p": [[219, 1, 1, "c.hp_triu_p", "dst"], [219, 1, 1, "c.hp_triu_p", "height"], [219, 1, 1, "c.hp_triu_p", "k"], [219, 1, 1, "c.hp_triu_p", "out_elems"], [219, 1, 1, "c.hp_triu_p", "src"], [219, 1, 1, "c.hp_triu_p", "width"]], "hp_triu_s": [[219, 1, 1, "c.hp_triu_s", "core_mask"], [219, 1, 1, "c.hp_triu_s", "dst"], [219, 1, 1, "c.hp_triu_s", "height"], [219, 1, 1, "c.hp_triu_s", "k"], [219, 1, 1, "c.hp_triu_s", "out_elems"], [219, 1, 1, "c.hp_triu_s", "src"], [219, 1, 1, "c.hp_triu_s", "width"]], "hp_uniform_real_p": [[220, 1, 1, "c.hp_uniform_real_p", "length"], [220, 1, 1, "c.hp_uniform_real_p", "output"], [220, 1, 1, "c.hp_uniform_real_p", "seed"], [220, 1, 1, "c.hp_uniform_real_p", "seed2"]], "hp_uniform_real_s": [[220, 1, 1, "c.hp_uniform_real_s", "core_mask"], [220, 1, 1, "c.hp_uniform_real_s", "length"], [220, 1, 1, "c.hp_uniform_real_s", "output"], [220, 1, 1, "c.hp_uniform_real_s", "seed"], [220, 1, 1, "c.hp_uniform_real_s", "seed2"]], "hp_where_p": [[225, 1, 1, "c.hp_where_p", "condition"], [225, 1, 1, "c.hp_where_p", "input0"], [225, 1, 1, "c.hp_where_p", "input1"], [225, 1, 1, "c.hp_where_p", "length"], [225, 1, 1, "c.hp_where_p", "output"]], "hp_where_s": [[225, 1, 1, "c.hp_where_s", "condition"], [225, 1, 1, "c.hp_where_s", "core_mask"], [225, 1, 1, "c.hp_where_s", "input0"], [225, 1, 1, "c.hp_where_s", "input1"], [225, 1, 1, "c.hp_where_s", "length"], [225, 1, 1, "c.hp_where_s", "output"]], "hp_zerolike_p": [[226, 1, 1, "c.hp_zerolike_p", "length"], [226, 1, 1, "c.hp_zerolike_p", "output"]], "hp_zerolike_s": [[226, 1, 1, "c.hp_zerolike_s", "core_mask"], [226, 1, 1, "c.hp_zerolike_s", "length"], [226, 1, 1, "c.hp_zerolike_s", "output"]], "i16_Unique_p": [[221, 1, 1, "c.i16_Unique_p", "input"], [221, 1, 1, "c.i16_Unique_p", "input_len"], [221, 1, 1, "c.i16_Unique_p", "output0"], [221, 1, 1, "c.i16_Unique_p", "output0_len"]], "i16_Unique_s": [[221, 1, 1, "c.i16_Unique_s", "core_mask"], [221, 1, 1, "c.i16_Unique_s", "input"], [221, 1, 1, "c.i16_Unique_s", "input_len"], [221, 1, 1, "c.i16_Unique_s", "output0"], [221, 1, 1, "c.i16_Unique_s", "output0_len"]], "i16_abs_p": [[10, 1, 1, "c.i16_abs_p", "dst_data"], [10, 1, 1, "c.i16_abs_p", "length"], [10, 1, 1, "c.i16_abs_p", "src_data"]], "i16_abs_s": [[10, 1, 1, "c.i16_abs_s", "core_mask"], [10, 1, 1, "c.i16_abs_s", "dst_data"], [10, 1, 1, "c.i16_abs_s", "length"], [10, 1, 1, "c.i16_abs_s", "src_data"]], "i16_addext_p": [[17, 1, 1, "c.i16_addext_p", "alpha"], [17, 1, 1, "c.i16_addext_p", "in0"], [17, 1, 1, "c.i16_addext_p", "in1"], [17, 1, 1, "c.i16_addext_p", "out"], [17, 1, 1, "c.i16_addext_p", "size"]], "i16_addext_s": [[17, 1, 1, "c.i16_addext_s", "alpha"], [17, 1, 1, "c.i16_addext_s", "core_mask"], [17, 1, 1, "c.i16_addext_s", "in0"], [17, 1, 1, "c.i16_addext_s", "in1"], [17, 1, 1, "c.i16_addext_s", "out"], [17, 1, 1, "c.i16_addext_s", "size"]], "i16_addn_p": [[19, 1, 1, "c.i16_addn_p", "input0"], [19, 1, 1, "c.i16_addn_p", "input1"], [19, 1, 1, "c.i16_addn_p", "length"], [19, 1, 1, "c.i16_addn_p", "output"]], "i16_addn_s": [[19, 1, 1, "c.i16_addn_s", "core_mask"], [19, 1, 1, "c.i16_addn_s", "input0"], [19, 1, 1, "c.i16_addn_s", "input1"], [19, 1, 1, "c.i16_addn_s", "length"], [19, 1, 1, "c.i16_addn_s", "output"]], "i16_addrelu6_p": [[17, 1, 1, "c.i16_addrelu6_p", "in0"], [17, 1, 1, "c.i16_addrelu6_p", "in1"], [17, 1, 1, "c.i16_addrelu6_p", "out"], [17, 1, 1, "c.i16_addrelu6_p", "size"]], "i16_addrelu6_s": [[17, 1, 1, "c.i16_addrelu6_s", "core_mask"], [17, 1, 1, "c.i16_addrelu6_s", "in0"], [17, 1, 1, "c.i16_addrelu6_s", "in1"], [17, 1, 1, "c.i16_addrelu6_s", "out"], [17, 1, 1, "c.i16_addrelu6_s", "size"]], "i16_addrelu_p": [[17, 1, 1, "c.i16_addrelu_p", "in0"], [17, 1, 1, "c.i16_addrelu_p", "in1"], [17, 1, 1, "c.i16_addrelu_p", "out"], [17, 1, 1, "c.i16_addrelu_p", "size"]], "i16_addrelu_s": [[17, 1, 1, "c.i16_addrelu_s", "core_mask"], [17, 1, 1, "c.i16_addrelu_s", "in0"], [17, 1, 1, "c.i16_addrelu_s", "in1"], [17, 1, 1, "c.i16_addrelu_s", "out"], [17, 1, 1, "c.i16_addrelu_s", "size"]], "i16_allgather_p": [[22, 1, 1, "c.i16_allgather_p", "data_size"], [22, 1, 1, "c.i16_allgather_p", "input"], [22, 1, 1, "c.i16_allgather_p", "input_rank"], [22, 1, 1, "c.i16_allgather_p", "output"], [22, 1, 1, "c.i16_allgather_p", "output_rank"]], "i16_allgather_s": [[22, 1, 1, "c.i16_allgather_s", "core_mask"], [22, 1, 1, "c.i16_allgather_s", "data_size"], [22, 1, 1, "c.i16_allgather_s", "input"], [22, 1, 1, "c.i16_allgather_s", "input_rank"], [22, 1, 1, "c.i16_allgather_s", "output"], [22, 1, 1, "c.i16_allgather_s", "output_rank"]], "i16_and_p": [[112, 1, 1, "c.i16_and_p", "input0"], [112, 1, 1, "c.i16_and_p", "input1"], [112, 1, 1, "c.i16_and_p", "length"], [112, 1, 1, "c.i16_and_p", "output"]], "i16_and_s": [[112, 1, 1, "c.i16_and_s", "core_mask"], [112, 1, 1, "c.i16_and_s", "input0"], [112, 1, 1, "c.i16_and_s", "input1"], [112, 1, 1, "c.i16_and_s", "length"], [112, 1, 1, "c.i16_and_s", "output"]], "i16_assign_p": [[27, 1, 1, "c.i16_assign_p", "dst"], [27, 1, 1, "c.i16_assign_p", "length"], [27, 1, 1, "c.i16_assign_p", "src"]], "i16_assign_s": [[27, 1, 1, "c.i16_assign_s", "core_mask"], [27, 1, 1, "c.i16_assign_s", "dst"], [27, 1, 1, "c.i16_assign_s", "length"], [27, 1, 1, "c.i16_assign_s", "src"]], "i16_assignadd_p": [[28, 1, 1, "c.i16_assignadd_p", "input"], [28, 1, 1, "c.i16_assignadd_p", "length"], [28, 1, 1, "c.i16_assignadd_p", "output"]], "i16_assignadd_s": [[28, 1, 1, "c.i16_assignadd_s", "core_mask"], [28, 1, 1, "c.i16_assignadd_s", "input"], [28, 1, 1, "c.i16_assignadd_s", "length"], [28, 1, 1, "c.i16_assignadd_s", "output"]], "i16_batchtospace_p": [[35, 1, 1, "c.i16_batchtospace_p", "block_size"], [35, 1, 1, "c.i16_batchtospace_p", "crops"], [35, 1, 1, "c.i16_batchtospace_p", "data_size"], [35, 1, 1, "c.i16_batchtospace_p", "input"], [35, 1, 1, "c.i16_batchtospace_p", "input_shape"], [35, 1, 1, "c.i16_batchtospace_p", "output"]], "i16_batchtospace_s": [[35, 1, 1, "c.i16_batchtospace_s", "block_size"], [35, 1, 1, "c.i16_batchtospace_s", "core_mask"], [35, 1, 1, "c.i16_batchtospace_s", "crops"], [35, 1, 1, "c.i16_batchtospace_s", "data_size"], [35, 1, 1, "c.i16_batchtospace_s", "input"], [35, 1, 1, "c.i16_batchtospace_s", "input_shape"], [35, 1, 1, "c.i16_batchtospace_s", "output"]], "i16_batchtospacend_p": [[36, 1, 1, "c.i16_batchtospacend_p", "block_size"], [36, 1, 1, "c.i16_batchtospacend_p", "crops"], [36, 1, 1, "c.i16_batchtospacend_p", "data_size"], [36, 1, 1, "c.i16_batchtospacend_p", "input"], [36, 1, 1, "c.i16_batchtospacend_p", "input_shape"], [36, 1, 1, "c.i16_batchtospacend_p", "output"]], "i16_batchtospacend_s": [[36, 1, 1, "c.i16_batchtospacend_s", "block_size"], [36, 1, 1, "c.i16_batchtospacend_s", "core_mask"], [36, 1, 1, "c.i16_batchtospacend_s", "crops"], [36, 1, 1, "c.i16_batchtospacend_s", "data_size"], [36, 1, 1, "c.i16_batchtospacend_s", "input"], [36, 1, 1, "c.i16_batchtospacend_s", "input_shape"], [36, 1, 1, "c.i16_batchtospacend_s", "output"]], "i16_biasadd_p": [[37, 1, 1, "c.i16_biasadd_p", "data_format"], [37, 1, 1, "c.i16_biasadd_p", "dims"], [37, 1, 1, "c.i16_biasadd_p", "input_bias"], [37, 1, 1, "c.i16_biasadd_p", "input_x"], [37, 1, 1, "c.i16_biasadd_p", "length"], [37, 1, 1, "c.i16_biasadd_p", "output"], [37, 1, 1, "c.i16_biasadd_p", "shape_size"]], "i16_biasadd_s": [[37, 1, 1, "c.i16_biasadd_s", "core_mask"], [37, 1, 1, "c.i16_biasadd_s", "data_format"], [37, 1, 1, "c.i16_biasadd_s", "dims"], [37, 1, 1, "c.i16_biasadd_s", "input_bias"], [37, 1, 1, "c.i16_biasadd_s", "input_x"], [37, 1, 1, "c.i16_biasadd_s", "length"], [37, 1, 1, "c.i16_biasadd_s", "output"], [37, 1, 1, "c.i16_biasadd_s", "shape_size"]], "i16_broadcastto_p": [[41, 1, 1, "c.i16_broadcastto_p", "data_size"], [41, 1, 1, "c.i16_broadcastto_p", "input"], [41, 1, 1, "c.i16_broadcastto_p", "input_shape"], [41, 1, 1, "c.i16_broadcastto_p", "input_shape_size"], [41, 1, 1, "c.i16_broadcastto_p", "output"], [41, 1, 1, "c.i16_broadcastto_p", "output_shape"], [41, 1, 1, "c.i16_broadcastto_p", "output_shape_size"]], "i16_broadcastto_s": [[41, 1, 1, "c.i16_broadcastto_s", "core_mask"], [41, 1, 1, "c.i16_broadcastto_s", "data_size"], [41, 1, 1, "c.i16_broadcastto_s", "input"], [41, 1, 1, "c.i16_broadcastto_s", "input_shape"], [41, 1, 1, "c.i16_broadcastto_s", "input_shape_size"], [41, 1, 1, "c.i16_broadcastto_s", "output"], [41, 1, 1, "c.i16_broadcastto_s", "output_shape"], [41, 1, 1, "c.i16_broadcastto_s", "output_shape_size"]], "i16_clip_p": [[44, 1, 1, "c.i16_clip_p", "dst"], [44, 1, 1, "c.i16_clip_p", "length"], [44, 1, 1, "c.i16_clip_p", "max"], [44, 1, 1, "c.i16_clip_p", "min"], [44, 1, 1, "c.i16_clip_p", "src"]], "i16_clip_s": [[44, 1, 1, "c.i16_clip_s", "core_mask"], [44, 1, 1, "c.i16_clip_s", "dst"], [44, 1, 1, "c.i16_clip_s", "length"], [44, 1, 1, "c.i16_clip_s", "max"], [44, 1, 1, "c.i16_clip_s", "min"], [44, 1, 1, "c.i16_clip_s", "src"]], "i16_concat_p": [[45, 1, 1, "c.i16_concat_p", "axis"], [45, 1, 1, "c.i16_concat_p", "input_ndim"], [45, 1, 1, "c.i16_concat_p", "input_shapes"], [45, 1, 1, "c.i16_concat_p", "inputs"], [45, 1, 1, "c.i16_concat_p", "num_inputs"], [45, 1, 1, "c.i16_concat_p", "output"]], "i16_concat_s": [[45, 1, 1, "c.i16_concat_s", "axis"], [45, 1, 1, "c.i16_concat_s", "core_mask"], [45, 1, 1, "c.i16_concat_s", "input_ndim"], [45, 1, 1, "c.i16_concat_s", "input_shapes"], [45, 1, 1, "c.i16_concat_s", "inputs"], [45, 1, 1, "c.i16_concat_s", "num_inputs"], [45, 1, 1, "c.i16_concat_s", "output"]], "i16_constant_of_shape_p": [[46, 1, 1, "c.i16_constant_of_shape_p", "end"], [46, 1, 1, "c.i16_constant_of_shape_p", "output"], [46, 1, 1, "c.i16_constant_of_shape_p", "start"], [46, 1, 1, "c.i16_constant_of_shape_p", "value"]], "i16_constant_of_shape_s": [[46, 1, 1, "c.i16_constant_of_shape_s", "core_mask"], [46, 1, 1, "c.i16_constant_of_shape_s", "end"], [46, 1, 1, "c.i16_constant_of_shape_s", "output"], [46, 1, 1, "c.i16_constant_of_shape_s", "start"], [46, 1, 1, "c.i16_constant_of_shape_s", "value"]], "i16_cos_p": [[51, 1, 1, "c.i16_cos_p", "dst_data"], [51, 1, 1, "c.i16_cos_p", "length"], [51, 1, 1, "c.i16_cos_p", "src_data"]], "i16_cos_s": [[51, 1, 1, "c.i16_cos_s", "core_mask"], [51, 1, 1, "c.i16_cos_s", "dst_data"], [51, 1, 1, "c.i16_cos_s", "length"], [51, 1, 1, "c.i16_cos_s", "src_data"]], "i16_cumsum_p": [[54, 1, 1, "c.i16_cumsum_p", "axis_dim"], [54, 1, 1, "c.i16_cumsum_p", "exclusive"], [54, 1, 1, "c.i16_cumsum_p", "inner_dim"], [54, 1, 1, "c.i16_cumsum_p", "input"], [54, 1, 1, "c.i16_cumsum_p", "out_dim"], [54, 1, 1, "c.i16_cumsum_p", "output"]], "i16_cumsum_s": [[54, 1, 1, "c.i16_cumsum_s", "axis_dim"], [54, 1, 1, "c.i16_cumsum_s", "core_mask"], [54, 1, 1, "c.i16_cumsum_s", "exclusive"], [54, 1, 1, "c.i16_cumsum_s", "inner_dim"], [54, 1, 1, "c.i16_cumsum_s", "input"], [54, 1, 1, "c.i16_cumsum_s", "out_dim"], [54, 1, 1, "c.i16_cumsum_s", "output"]], "i16_depthtospace_p": [[59, 1, 1, "c.i16_depthtospace_p", "block_size"], [59, 1, 1, "c.i16_depthtospace_p", "data_size"], [59, 1, 1, "c.i16_depthtospace_p", "in_shape"], [59, 1, 1, "c.i16_depthtospace_p", "input"], [59, 1, 1, "c.i16_depthtospace_p", "output"]], "i16_depthtospace_s": [[59, 1, 1, "c.i16_depthtospace_s", "block_size"], [59, 1, 1, "c.i16_depthtospace_s", "core_mask"], [59, 1, 1, "c.i16_depthtospace_s", "data_size"], [59, 1, 1, "c.i16_depthtospace_s", "in_shape"], [59, 1, 1, "c.i16_depthtospace_s", "input"], [59, 1, 1, "c.i16_depthtospace_s", "output"]], "i16_div_fusion_p": [[61, 1, 1, "c.i16_div_fusion_p", "input0"], [61, 1, 1, "c.i16_div_fusion_p", "input1"], [61, 1, 1, "c.i16_div_fusion_p", "length"], [61, 1, 1, "c.i16_div_fusion_p", "output"]], "i16_div_fusion_s": [[61, 1, 1, "c.i16_div_fusion_s", "core_mask"], [61, 1, 1, "c.i16_div_fusion_s", "input0"], [61, 1, 1, "c.i16_div_fusion_s", "input1"], [61, 1, 1, "c.i16_div_fusion_s", "length"], [61, 1, 1, "c.i16_div_fusion_s", "output"]], "i16_eltwise_p": [[67, 1, 1, "c.i16_eltwise_p", "Input0"], [67, 1, 1, "c.i16_eltwise_p", "Input1"], [67, 1, 1, "c.i16_eltwise_p", "eltwise_mode_"], [67, 1, 1, "c.i16_eltwise_p", "length"], [67, 1, 1, "c.i16_eltwise_p", "output"]], "i16_eltwise_s": [[67, 1, 1, "c.i16_eltwise_s", "Input0"], [67, 1, 1, "c.i16_eltwise_s", "Input1"], [67, 1, 1, "c.i16_eltwise_s", "core_mask"], [67, 1, 1, "c.i16_eltwise_s", "eltwise_mode_"], [67, 1, 1, "c.i16_eltwise_s", "length"], [67, 1, 1, "c.i16_eltwise_s", "output"]], "i16_equal_p": [[70, 1, 1, "c.i16_equal_p", "Input0"], [70, 1, 1, "c.i16_equal_p", "Input1"], [70, 1, 1, "c.i16_equal_p", "length"], [70, 1, 1, "c.i16_equal_p", "output"]], "i16_equal_s": [[70, 1, 1, "c.i16_equal_s", "Input0"], [70, 1, 1, "c.i16_equal_s", "Input1"], [70, 1, 1, "c.i16_equal_s", "core_mask"], [70, 1, 1, "c.i16_equal_s", "length"], [70, 1, 1, "c.i16_equal_s", "output"]], "i16_expfusion_p": [[73, 1, 1, "c.i16_expfusion_p", "dst_data"], [73, 1, 1, "c.i16_expfusion_p", "in_scale"], [73, 1, 1, "c.i16_expfusion_p", "length"], [73, 1, 1, "c.i16_expfusion_p", "out_scale"], [73, 1, 1, "c.i16_expfusion_p", "scale"], [73, 1, 1, "c.i16_expfusion_p", "src_data"]], "i16_expfusion_s": [[73, 1, 1, "c.i16_expfusion_s", "core_mask"], [73, 1, 1, "c.i16_expfusion_s", "dst_data"], [73, 1, 1, "c.i16_expfusion_s", "in_scale"], [73, 1, 1, "c.i16_expfusion_s", "length"], [73, 1, 1, "c.i16_expfusion_s", "out_scale"], [73, 1, 1, "c.i16_expfusion_s", "scale"], [73, 1, 1, "c.i16_expfusion_s", "src_data"]], "i16_extract_features_p": [[55, 1, 1, "c.i16_extract_features_p", "num_strings"], [55, 1, 1, "c.i16_extract_features_p", "output_labels"], [55, 1, 1, "c.i16_extract_features_p", "output_weights"], [55, 1, 1, "c.i16_extract_features_p", "string_lengths"], [55, 1, 1, "c.i16_extract_features_p", "string_pointers"]], "i16_extract_features_s": [[55, 1, 1, "c.i16_extract_features_s", "core_mask"], [55, 1, 1, "c.i16_extract_features_s", "num_strings"], [55, 1, 1, "c.i16_extract_features_s", "output_labels"], [55, 1, 1, "c.i16_extract_features_s", "output_weights"], [55, 1, 1, "c.i16_extract_features_s", "string_lengths"], [55, 1, 1, "c.i16_extract_features_s", "string_pointers"]], "i16_fill_p": [[78, 1, 1, "c.i16_fill_p", "output"], [78, 1, 1, "c.i16_fill_p", "param"], [78, 1, 1, "c.i16_fill_p", "value"]], "i16_fill_s": [[78, 1, 1, "c.i16_fill_s", "core_mask"], [78, 1, 1, "c.i16_fill_s", "output"], [78, 1, 1, "c.i16_fill_s", "param"], [78, 1, 1, "c.i16_fill_s", "value"]], "i16_formattranspose_p": [[85, 1, 1, "c.i16_formattranspose_p", "batch"], [85, 1, 1, "c.i16_formattranspose_p", "channel"], [85, 1, 1, "c.i16_formattranspose_p", "dst_data"], [85, 1, 1, "c.i16_formattranspose_p", "dst_format"], [85, 1, 1, "c.i16_formattranspose_p", "plane"], [85, 1, 1, "c.i16_formattranspose_p", "src_data"], [85, 1, 1, "c.i16_formattranspose_p", "src_format"]], "i16_formattranspose_s": [[85, 1, 1, "c.i16_formattranspose_s", "batch"], [85, 1, 1, "c.i16_formattranspose_s", "channel"], [85, 1, 1, "c.i16_formattranspose_s", "core_mask"], [85, 1, 1, "c.i16_formattranspose_s", "dst_data"], [85, 1, 1, "c.i16_formattranspose_s", "dst_format"], [85, 1, 1, "c.i16_formattranspose_s", "plane"], [85, 1, 1, "c.i16_formattranspose_s", "src_data"], [85, 1, 1, "c.i16_formattranspose_s", "src_format"]], "i16_gather_nd_p": [[89, 1, 1, "c.i16_gather_nd_p", "indices"], [89, 1, 1, "c.i16_gather_nd_p", "indices_ndim"], [89, 1, 1, "c.i16_gather_nd_p", "indices_shape"], [89, 1, 1, "c.i16_gather_nd_p", "input"], [89, 1, 1, "c.i16_gather_nd_p", "input_ndim"], [89, 1, 1, "c.i16_gather_nd_p", "input_shape"], [89, 1, 1, "c.i16_gather_nd_p", "output"]], "i16_gather_nd_s": [[89, 1, 1, "c.i16_gather_nd_s", "core_mask"], [89, 1, 1, "c.i16_gather_nd_s", "indices"], [89, 1, 1, "c.i16_gather_nd_s", "indices_ndim"], [89, 1, 1, "c.i16_gather_nd_s", "indices_shape"], [89, 1, 1, "c.i16_gather_nd_s", "input"], [89, 1, 1, "c.i16_gather_nd_s", "input_ndim"], [89, 1, 1, "c.i16_gather_nd_s", "input_shape"], [89, 1, 1, "c.i16_gather_nd_s", "output"]], "i16_gather_p": [[88, 1, 1, "c.i16_gather_p", "axis"], [88, 1, 1, "c.i16_gather_p", "batch_dims"], [88, 1, 1, "c.i16_gather_p", "indices"], [88, 1, 1, "c.i16_gather_p", "indices_ndim"], [88, 1, 1, "c.i16_gather_p", "indices_shape"], [88, 1, 1, "c.i16_gather_p", "input"], [88, 1, 1, "c.i16_gather_p", "input_ndim"], [88, 1, 1, "c.i16_gather_p", "input_shape"], [88, 1, 1, "c.i16_gather_p", "output"]], "i16_gather_s": [[88, 1, 1, "c.i16_gather_s", "axis"], [88, 1, 1, "c.i16_gather_s", "batch_dims"], [88, 1, 1, "c.i16_gather_s", "core_mask"], [88, 1, 1, "c.i16_gather_s", "indices"], [88, 1, 1, "c.i16_gather_s", "indices_ndim"], [88, 1, 1, "c.i16_gather_s", "indices_shape"], [88, 1, 1, "c.i16_gather_s", "input"], [88, 1, 1, "c.i16_gather_s", "input_ndim"], [88, 1, 1, "c.i16_gather_s", "input_shape"], [88, 1, 1, "c.i16_gather_s", "output"]], "i16_gatherd_p": [[90, 1, 1, "c.i16_gatherd_p", "dim"], [90, 1, 1, "c.i16_gatherd_p", "index"], [90, 1, 1, "c.i16_gatherd_p", "index_shape"], [90, 1, 1, "c.i16_gatherd_p", "input_shape"], [90, 1, 1, "c.i16_gatherd_p", "input_shape_size"], [90, 1, 1, "c.i16_gatherd_p", "input_x"], [90, 1, 1, "c.i16_gatherd_p", "output"]], "i16_gatherd_s": [[90, 1, 1, "c.i16_gatherd_s", "core_mask"], [90, 1, 1, "c.i16_gatherd_s", "dim"], [90, 1, 1, "c.i16_gatherd_s", "index"], [90, 1, 1, "c.i16_gatherd_s", "index_shape"], [90, 1, 1, "c.i16_gatherd_s", "input_shape"], [90, 1, 1, "c.i16_gatherd_s", "input_shape_size"], [90, 1, 1, "c.i16_gatherd_s", "input_x"], [90, 1, 1, "c.i16_gatherd_s", "output"]], "i16_greater_p": [[92, 1, 1, "c.i16_greater_p", "element_num"], [92, 1, 1, "c.i16_greater_p", "in_elements_num0"], [92, 1, 1, "c.i16_greater_p", "input1"], [92, 1, 1, "c.i16_greater_p", "input2"], [92, 1, 1, "c.i16_greater_p", "optimize"], [92, 1, 1, "c.i16_greater_p", "output"]], "i16_greater_s": [[92, 1, 1, "c.i16_greater_s", "core_mask"], [92, 1, 1, "c.i16_greater_s", "element_num"], [92, 1, 1, "c.i16_greater_s", "in_elements_num0"], [92, 1, 1, "c.i16_greater_s", "input1"], [92, 1, 1, "c.i16_greater_s", "input2"], [92, 1, 1, "c.i16_greater_s", "optimize"], [92, 1, 1, "c.i16_greater_s", "output"]], "i16_greaterequal_p": [[93, 1, 1, "c.i16_greaterequal_p", "element_num"], [93, 1, 1, "c.i16_greaterequal_p", "in_elements_num0"], [93, 1, 1, "c.i16_greaterequal_p", "input1"], [93, 1, 1, "c.i16_greaterequal_p", "input2"], [93, 1, 1, "c.i16_greaterequal_p", "optimize"], [93, 1, 1, "c.i16_greaterequal_p", "output"]], "i16_greaterequal_s": [[93, 1, 1, "c.i16_greaterequal_s", "core_mask"], [93, 1, 1, "c.i16_greaterequal_s", "element_num"], [93, 1, 1, "c.i16_greaterequal_s", "in_elements_num0"], [93, 1, 1, "c.i16_greaterequal_s", "input1"], [93, 1, 1, "c.i16_greaterequal_s", "input2"], [93, 1, 1, "c.i16_greaterequal_s", "optimize"], [93, 1, 1, "c.i16_greaterequal_s", "output"]], "i16_invertpermutation_p": [[98, 1, 1, "c.i16_invertpermutation_p", "input"], [98, 1, 1, "c.i16_invertpermutation_p", "num"], [98, 1, 1, "c.i16_invertpermutation_p", "output"]], "i16_invertpermutation_s": [[98, 1, 1, "c.i16_invertpermutation_s", "core_mask"], [98, 1, 1, "c.i16_invertpermutation_s", "input"], [98, 1, 1, "c.i16_invertpermutation_s", "num"], [98, 1, 1, "c.i16_invertpermutation_s", "output"]], "i16_isfinite_p": [[99, 1, 1, "c.i16_isfinite_p", "Input"], [99, 1, 1, "c.i16_isfinite_p", "length"], [99, 1, 1, "c.i16_isfinite_p", "output"]], "i16_isfinite_s": [[99, 1, 1, "c.i16_isfinite_s", "Input"], [99, 1, 1, "c.i16_isfinite_s", "core_mask"], [99, 1, 1, "c.i16_isfinite_s", "length"], [99, 1, 1, "c.i16_isfinite_s", "output"]], "i16_less_p": [[104, 1, 1, "c.i16_less_p", "Input0"], [104, 1, 1, "c.i16_less_p", "Input1"], [104, 1, 1, "c.i16_less_p", "in_elements_num0"], [104, 1, 1, "c.i16_less_p", "length"], [104, 1, 1, "c.i16_less_p", "optimize"], [104, 1, 1, "c.i16_less_p", "output"]], "i16_less_s": [[104, 1, 1, "c.i16_less_s", "Input0"], [104, 1, 1, "c.i16_less_s", "Input1"], [104, 1, 1, "c.i16_less_s", "core_mask"], [104, 1, 1, "c.i16_less_s", "in_elements_num0"], [104, 1, 1, "c.i16_less_s", "length"], [104, 1, 1, "c.i16_less_s", "optimize"], [104, 1, 1, "c.i16_less_s", "output"]], "i16_lessequal_p": [[105, 1, 1, "c.i16_lessequal_p", "Input0"], [105, 1, 1, "c.i16_lessequal_p", "Input1"], [105, 1, 1, "c.i16_lessequal_p", "in_elements_num0"], [105, 1, 1, "c.i16_lessequal_p", "length"], [105, 1, 1, "c.i16_lessequal_p", "optimize"], [105, 1, 1, "c.i16_lessequal_p", "output"]], "i16_lessequal_s": [[105, 1, 1, "c.i16_lessequal_s", "Input0"], [105, 1, 1, "c.i16_lessequal_s", "Input1"], [105, 1, 1, "c.i16_lessequal_s", "core_mask"], [105, 1, 1, "c.i16_lessequal_s", "in_elements_num0"], [105, 1, 1, "c.i16_lessequal_s", "length"], [105, 1, 1, "c.i16_lessequal_s", "optimize"], [105, 1, 1, "c.i16_lessequal_s", "output"]], "i16_log1p_p": [[108, 1, 1, "c.i16_log1p_p", "Input"], [108, 1, 1, "c.i16_log1p_p", "length"], [108, 1, 1, "c.i16_log1p_p", "output"]], "i16_log1p_s": [[108, 1, 1, "c.i16_log1p_s", "Input"], [108, 1, 1, "c.i16_log1p_s", "core_mask"], [108, 1, 1, "c.i16_log1p_s", "length"], [108, 1, 1, "c.i16_log1p_s", "output"]], "i16_log_p": [[107, 1, 1, "c.i16_log_p", "input"], [107, 1, 1, "c.i16_log_p", "length"], [107, 1, 1, "c.i16_log_p", "output"]], "i16_log_s": [[107, 1, 1, "c.i16_log_s", "core_mask"], [107, 1, 1, "c.i16_log_s", "input"], [107, 1, 1, "c.i16_log_s", "length"], [107, 1, 1, "c.i16_log_s", "output"]], "i16_logical_not_p": [[110, 1, 1, "c.i16_logical_not_p", "input"], [110, 1, 1, "c.i16_logical_not_p", "length"], [110, 1, 1, "c.i16_logical_not_p", "output"]], "i16_logical_not_s": [[110, 1, 1, "c.i16_logical_not_s", "core_mask"], [110, 1, 1, "c.i16_logical_not_s", "input"], [110, 1, 1, "c.i16_logical_not_s", "length"], [110, 1, 1, "c.i16_logical_not_s", "output"]], "i16_logical_or_p": [[111, 1, 1, "c.i16_logical_or_p", "input0"], [111, 1, 1, "c.i16_logical_or_p", "input1"], [111, 1, 1, "c.i16_logical_or_p", "length"], [111, 1, 1, "c.i16_logical_or_p", "output"]], "i16_logical_or_s": [[111, 1, 1, "c.i16_logical_or_s", "core_mask"], [111, 1, 1, "c.i16_logical_or_s", "input0"], [111, 1, 1, "c.i16_logical_or_s", "input1"], [111, 1, 1, "c.i16_logical_or_s", "length"], [111, 1, 1, "c.i16_logical_or_s", "output"]], "i16_lsh_projection_p": [[116, 1, 1, "c.i16_lsh_projection_p", "bits_per_hash"], [116, 1, 1, "c.i16_lsh_projection_p", "feature"], [116, 1, 1, "c.i16_lsh_projection_p", "feature_num"], [116, 1, 1, "c.i16_lsh_projection_p", "hash_group_num"], [116, 1, 1, "c.i16_lsh_projection_p", "hash_seed"], [116, 1, 1, "c.i16_lsh_projection_p", "output"], [116, 1, 1, "c.i16_lsh_projection_p", "weight"]], "i16_lsh_projection_s": [[116, 1, 1, "c.i16_lsh_projection_s", "bits_per_hash"], [116, 1, 1, "c.i16_lsh_projection_s", "core_mask"], [116, 1, 1, "c.i16_lsh_projection_s", "feature"], [116, 1, 1, "c.i16_lsh_projection_s", "feature_num"], [116, 1, 1, "c.i16_lsh_projection_s", "hash_group_num"], [116, 1, 1, "c.i16_lsh_projection_s", "hash_seed"], [116, 1, 1, "c.i16_lsh_projection_s", "output"], [116, 1, 1, "c.i16_lsh_projection_s", "weight"]], "i16_matmulfusion_p": [[121, 1, 1, "c.i16_matmulfusion_p", "A"], [121, 1, 1, "c.i16_matmulfusion_p", "B"], [121, 1, 1, "c.i16_matmulfusion_p", "C"], [121, 1, 1, "c.i16_matmulfusion_p", "K"], [121, 1, 1, "c.i16_matmulfusion_p", "M"], [121, 1, 1, "c.i16_matmulfusion_p", "N"], [121, 1, 1, "c.i16_matmulfusion_p", "activation_type"], [121, 1, 1, "c.i16_matmulfusion_p", "bias"]], "i16_matmulfusion_s": [[121, 1, 1, "c.i16_matmulfusion_s", "A"], [121, 1, 1, "c.i16_matmulfusion_s", "B"], [121, 1, 1, "c.i16_matmulfusion_s", "C"], [121, 1, 1, "c.i16_matmulfusion_s", "K"], [121, 1, 1, "c.i16_matmulfusion_s", "M"], [121, 1, 1, "c.i16_matmulfusion_s", "N"], [121, 1, 1, "c.i16_matmulfusion_s", "activation_type"], [121, 1, 1, "c.i16_matmulfusion_s", "bias"], [121, 1, 1, "c.i16_matmulfusion_s", "core_mask"]], "i16_maximum_p": [[122, 1, 1, "c.i16_maximum_p", "input0"], [122, 1, 1, "c.i16_maximum_p", "input1"], [122, 1, 1, "c.i16_maximum_p", "length"], [122, 1, 1, "c.i16_maximum_p", "output"]], "i16_maximum_s": [[122, 1, 1, "c.i16_maximum_s", "core_mask"], [122, 1, 1, "c.i16_maximum_s", "input0"], [122, 1, 1, "c.i16_maximum_s", "input1"], [122, 1, 1, "c.i16_maximum_s", "length"], [122, 1, 1, "c.i16_maximum_s", "output"]], "i16_minimum_p": [[127, 1, 1, "c.i16_minimum_p", "input0"], [127, 1, 1, "c.i16_minimum_p", "input1"], [127, 1, 1, "c.i16_minimum_p", "length"], [127, 1, 1, "c.i16_minimum_p", "output"]], "i16_minimum_s": [[127, 1, 1, "c.i16_minimum_s", "core_mask"], [127, 1, 1, "c.i16_minimum_s", "input0"], [127, 1, 1, "c.i16_minimum_s", "input1"], [127, 1, 1, "c.i16_minimum_s", "length"], [127, 1, 1, "c.i16_minimum_s", "output"]], "i16_mod_p": [[129, 1, 1, "c.i16_mod_p", "input0"], [129, 1, 1, "c.i16_mod_p", "input1"], [129, 1, 1, "c.i16_mod_p", "length"], [129, 1, 1, "c.i16_mod_p", "output"]], "i16_mod_s": [[129, 1, 1, "c.i16_mod_s", "core_mask"], [129, 1, 1, "c.i16_mod_s", "input0"], [129, 1, 1, "c.i16_mod_s", "input1"], [129, 1, 1, "c.i16_mod_s", "length"], [129, 1, 1, "c.i16_mod_s", "output"]], "i16_mul_p": [[130, 1, 1, "c.i16_mul_p", "input0"], [130, 1, 1, "c.i16_mul_p", "input1"], [130, 1, 1, "c.i16_mul_p", "length"], [130, 1, 1, "c.i16_mul_p", "output"]], "i16_mul_s": [[130, 1, 1, "c.i16_mul_s", "core_mask"], [130, 1, 1, "c.i16_mul_s", "input0"], [130, 1, 1, "c.i16_mul_s", "input1"], [130, 1, 1, "c.i16_mul_s", "length"], [130, 1, 1, "c.i16_mul_s", "output"]], "i16_neg_grad_p": [[133, 1, 1, "c.i16_neg_grad_p", "Input"], [133, 1, 1, "c.i16_neg_grad_p", "length"], [133, 1, 1, "c.i16_neg_grad_p", "output"]], "i16_neg_grad_s": [[133, 1, 1, "c.i16_neg_grad_s", "Input"], [133, 1, 1, "c.i16_neg_grad_s", "core_mask"], [133, 1, 1, "c.i16_neg_grad_s", "length"], [133, 1, 1, "c.i16_neg_grad_s", "output"]], "i16_neg_p": [[132, 1, 1, "c.i16_neg_p", "Input"], [132, 1, 1, "c.i16_neg_p", "length"], [132, 1, 1, "c.i16_neg_p", "output"]], "i16_neg_s": [[132, 1, 1, "c.i16_neg_s", "Input"], [132, 1, 1, "c.i16_neg_s", "core_mask"], [132, 1, 1, "c.i16_neg_s", "length"], [132, 1, 1, "c.i16_neg_s", "output"]], "i16_nonzero_p": [[137, 1, 1, "c.i16_nonzero_p", "dim_strides"], [137, 1, 1, "c.i16_nonzero_p", "input"], [137, 1, 1, "c.i16_nonzero_p", "input_rank"], [137, 1, 1, "c.i16_nonzero_p", "length"], [137, 1, 1, "c.i16_nonzero_p", "non_zero_num"], [137, 1, 1, "c.i16_nonzero_p", "output"], [137, 1, 1, "c.i16_nonzero_p", "shape"]], "i16_nonzero_s": [[137, 1, 1, "c.i16_nonzero_s", "core_mask"], [137, 1, 1, "c.i16_nonzero_s", "dim_strides"], [137, 1, 1, "c.i16_nonzero_s", "input"], [137, 1, 1, "c.i16_nonzero_s", "input_rank"], [137, 1, 1, "c.i16_nonzero_s", "length"], [137, 1, 1, "c.i16_nonzero_s", "non_zero_num"], [137, 1, 1, "c.i16_nonzero_s", "output"], [137, 1, 1, "c.i16_nonzero_s", "shape"]], "i16_not_equal_p": [[138, 1, 1, "c.i16_not_equal_p", "Input0"], [138, 1, 1, "c.i16_not_equal_p", "Input1"], [138, 1, 1, "c.i16_not_equal_p", "length"], [138, 1, 1, "c.i16_not_equal_p", "output"]], "i16_not_equal_s": [[138, 1, 1, "c.i16_not_equal_s", "Input0"], [138, 1, 1, "c.i16_not_equal_s", "Input1"], [138, 1, 1, "c.i16_not_equal_s", "core_mask"], [138, 1, 1, "c.i16_not_equal_s", "length"], [138, 1, 1, "c.i16_not_equal_s", "output"]], "i16_onehot_p": [[139, 1, 1, "c.i16_onehot_p", "axis"], [139, 1, 1, "c.i16_onehot_p", "depth"], [139, 1, 1, "c.i16_onehot_p", "indices"], [139, 1, 1, "c.i16_onehot_p", "indices_shape"], [139, 1, 1, "c.i16_onehot_p", "indices_shape_size"], [139, 1, 1, "c.i16_onehot_p", "on_off"], [139, 1, 1, "c.i16_onehot_p", "output"], [139, 1, 1, "c.i16_onehot_p", "support_neg_index"]], "i16_onehot_s": [[139, 1, 1, "c.i16_onehot_s", "axis"], [139, 1, 1, "c.i16_onehot_s", "core_mask"], [139, 1, 1, "c.i16_onehot_s", "depth"], [139, 1, 1, "c.i16_onehot_s", "indices"], [139, 1, 1, "c.i16_onehot_s", "indices_shape"], [139, 1, 1, "c.i16_onehot_s", "indices_shape_size"], [139, 1, 1, "c.i16_onehot_s", "on_off"], [139, 1, 1, "c.i16_onehot_s", "output"], [139, 1, 1, "c.i16_onehot_s", "support_neg_index"]], "i16_ones_like_p": [[140, 1, 1, "c.i16_ones_like_p", "length"], [140, 1, 1, "c.i16_ones_like_p", "output"]], "i16_ones_like_s": [[140, 1, 1, "c.i16_ones_like_s", "core_mask"], [140, 1, 1, "c.i16_ones_like_s", "length"], [140, 1, 1, "c.i16_ones_like_s", "output"]], "i16_padfusion_p": [[141, 1, 1, "c.i16_padfusion_p", "params"]], "i16_padfusion_s": [[141, 1, 1, "c.i16_padfusion_s", "core_mask"], [141, 1, 1, "c.i16_padfusion_s", "params"]], "i16_pow_fusion_p": [[142, 1, 1, "c.i16_pow_fusion_p", "Input"], [142, 1, 1, "c.i16_pow_fusion_p", "broadcast"], [142, 1, 1, "c.i16_pow_fusion_p", "exponent"], [142, 1, 1, "c.i16_pow_fusion_p", "length_in"], [142, 1, 1, "c.i16_pow_fusion_p", "output"], [142, 1, 1, "c.i16_pow_fusion_p", "scale"], [142, 1, 1, "c.i16_pow_fusion_p", "shift"]], "i16_pow_fusion_s": [[142, 1, 1, "c.i16_pow_fusion_s", "Input"], [142, 1, 1, "c.i16_pow_fusion_s", "broadcast"], [142, 1, 1, "c.i16_pow_fusion_s", "core_mask"], [142, 1, 1, "c.i16_pow_fusion_s", "exponent"], [142, 1, 1, "c.i16_pow_fusion_s", "length_in"], [142, 1, 1, "c.i16_pow_fusion_s", "output"], [142, 1, 1, "c.i16_pow_fusion_s", "scale"], [142, 1, 1, "c.i16_pow_fusion_s", "shift"]], "i16_raggedrange_p": [[147, 1, 1, "c.i16_raggedrange_p", "deltas"], [147, 1, 1, "c.i16_raggedrange_p", "limits"], [147, 1, 1, "c.i16_raggedrange_p", "range_count"], [147, 1, 1, "c.i16_raggedrange_p", "splits"], [147, 1, 1, "c.i16_raggedrange_p", "starts"], [147, 1, 1, "c.i16_raggedrange_p", "values"]], "i16_raggedrange_s": [[147, 1, 1, "c.i16_raggedrange_s", "core_mask"], [147, 1, 1, "c.i16_raggedrange_s", "deltas"], [147, 1, 1, "c.i16_raggedrange_s", "limits"], [147, 1, 1, "c.i16_raggedrange_s", "range_count"], [147, 1, 1, "c.i16_raggedrange_s", "splits"], [147, 1, 1, "c.i16_raggedrange_s", "starts"], [147, 1, 1, "c.i16_raggedrange_s", "values"]], "i16_range_p": [[150, 1, 1, "c.i16_range_p", "delta"], [150, 1, 1, "c.i16_range_p", "length"], [150, 1, 1, "c.i16_range_p", "output"], [150, 1, 1, "c.i16_range_p", "start"]], "i16_range_s": [[150, 1, 1, "c.i16_range_s", "core_mask"], [150, 1, 1, "c.i16_range_s", "delta"], [150, 1, 1, "c.i16_range_s", "length"], [150, 1, 1, "c.i16_range_s", "output"], [150, 1, 1, "c.i16_range_s", "start"]], "i16_real_div_p": [[152, 1, 1, "c.i16_real_div_p", "input0"], [152, 1, 1, "c.i16_real_div_p", "input1"], [152, 1, 1, "c.i16_real_div_p", "length"], [152, 1, 1, "c.i16_real_div_p", "output"]], "i16_real_div_s": [[152, 1, 1, "c.i16_real_div_s", "core_mask"], [152, 1, 1, "c.i16_real_div_s", "input0"], [152, 1, 1, "c.i16_real_div_s", "input1"], [152, 1, 1, "c.i16_real_div_s", "length"], [152, 1, 1, "c.i16_real_div_s", "output"]], "i16_reciprocal_p": [[153, 1, 1, "c.i16_reciprocal_p", "Input"], [153, 1, 1, "c.i16_reciprocal_p", "length"], [153, 1, 1, "c.i16_reciprocal_p", "output"]], "i16_reciprocal_s": [[153, 1, 1, "c.i16_reciprocal_s", "Input"], [153, 1, 1, "c.i16_reciprocal_s", "core_mask"], [153, 1, 1, "c.i16_reciprocal_s", "length"], [153, 1, 1, "c.i16_reciprocal_s", "output"]], "i16_reduce_p": [[154, 1, 1, "c.i16_reduce_p", "core_mask"], [154, 1, 1, "c.i16_reduce_p", "dst_data"], [154, 1, 1, "c.i16_reduce_p", "param"], [154, 1, 1, "c.i16_reduce_p", "src_data"], [154, 1, 1, "c.i16_reduce_p", "tmp_dst_data"], [154, 1, 1, "c.i16_reduce_p", "tmp_src_data"]], "i16_reduce_s": [[154, 1, 1, "c.i16_reduce_s", "core_mask"], [154, 1, 1, "c.i16_reduce_s", "dst_data"], [154, 1, 1, "c.i16_reduce_s", "param"], [154, 1, 1, "c.i16_reduce_s", "src_data"]], "i16_reduceall_p": [[21, 1, 1, "c.i16_reduceall_p", "axis_size"], [21, 1, 1, "c.i16_reduceall_p", "dst_data"], [21, 1, 1, "c.i16_reduceall_p", "inner_size"], [21, 1, 1, "c.i16_reduceall_p", "outer_size"], [21, 1, 1, "c.i16_reduceall_p", "src_data"]], "i16_reduceall_s": [[21, 1, 1, "c.i16_reduceall_s", "axis_size"], [21, 1, 1, "c.i16_reduceall_s", "core_mask"], [21, 1, 1, "c.i16_reduceall_s", "dst_data"], [21, 1, 1, "c.i16_reduceall_s", "inner_size"], [21, 1, 1, "c.i16_reduceall_s", "outer_size"], [21, 1, 1, "c.i16_reduceall_s", "src_data"]], "i16_reducescatter_p": [[155, 1, 1, "c.i16_reducescatter_p", "data_size"], [155, 1, 1, "c.i16_reducescatter_p", "input_data"], [155, 1, 1, "c.i16_reducescatter_p", "output_data"], [155, 1, 1, "c.i16_reducescatter_p", "reduce_type"]], "i16_reducescatter_s": [[155, 1, 1, "c.i16_reducescatter_s", "core_mask"], [155, 1, 1, "c.i16_reducescatter_s", "data_size"], [155, 1, 1, "c.i16_reducescatter_s", "input_data"], [155, 1, 1, "c.i16_reducescatter_s", "output_data"], [155, 1, 1, "c.i16_reducescatter_s", "reduce_type"]], "i16_reshape_p": [[156, 1, 1, "c.i16_reshape_p", "input"], [156, 1, 1, "c.i16_reshape_p", "length"], [156, 1, 1, "c.i16_reshape_p", "output"]], "i16_reshape_s": [[156, 1, 1, "c.i16_reshape_s", "core_mask"], [156, 1, 1, "c.i16_reshape_s", "input"], [156, 1, 1, "c.i16_reshape_s", "length"], [156, 1, 1, "c.i16_reshape_s", "output"]], "i16_rsqrt_p": [[164, 1, 1, "c.i16_rsqrt_p", "dst"], [164, 1, 1, "c.i16_rsqrt_p", "length"], [164, 1, 1, "c.i16_rsqrt_p", "src"]], "i16_rsqrt_s": [[164, 1, 1, "c.i16_rsqrt_s", "core_mask"], [164, 1, 1, "c.i16_rsqrt_s", "dst"], [164, 1, 1, "c.i16_rsqrt_s", "length"], [164, 1, 1, "c.i16_rsqrt_s", "src"]], "i16_scalefusion_p": [[166, 1, 1, "c.i16_scalefusion_p", "bias"], [166, 1, 1, "c.i16_scalefusion_p", "dst_data"], [166, 1, 1, "c.i16_scalefusion_p", "length"], [166, 1, 1, "c.i16_scalefusion_p", "scale"], [166, 1, 1, "c.i16_scalefusion_p", "src_data"]], "i16_scalefusion_s": [[166, 1, 1, "c.i16_scalefusion_s", "bias"], [166, 1, 1, "c.i16_scalefusion_s", "core_mask"], [166, 1, 1, "c.i16_scalefusion_s", "dst_data"], [166, 1, 1, "c.i16_scalefusion_s", "length"], [166, 1, 1, "c.i16_scalefusion_s", "scale"], [166, 1, 1, "c.i16_scalefusion_s", "src_data"]], "i16_scatter_elements_p": [[167, 1, 1, "c.i16_scatter_elements_p", "core_mask"], [167, 1, 1, "c.i16_scatter_elements_p", "indices"], [167, 1, 1, "c.i16_scatter_elements_p", "input"], [167, 1, 1, "c.i16_scatter_elements_p", "output"], [167, 1, 1, "c.i16_scatter_elements_p", "param"], [167, 1, 1, "c.i16_scatter_elements_p", "updates"]], "i16_scatter_elements_s": [[167, 1, 1, "c.i16_scatter_elements_s", "core_mask"], [167, 1, 1, "c.i16_scatter_elements_s", "indices"], [167, 1, 1, "c.i16_scatter_elements_s", "input"], [167, 1, 1, "c.i16_scatter_elements_s", "output"], [167, 1, 1, "c.i16_scatter_elements_s", "param"], [167, 1, 1, "c.i16_scatter_elements_s", "updates"]], "i16_scatter_nd_p": [[168, 1, 1, "c.i16_scatter_nd_p", "indices"], [168, 1, 1, "c.i16_scatter_nd_p", "indices_ndim"], [168, 1, 1, "c.i16_scatter_nd_p", "indices_shape"], [168, 1, 1, "c.i16_scatter_nd_p", "output"], [168, 1, 1, "c.i16_scatter_nd_p", "output_ndim"], [168, 1, 1, "c.i16_scatter_nd_p", "output_shape"], [168, 1, 1, "c.i16_scatter_nd_p", "updates"]], "i16_scatter_nd_s": [[168, 1, 1, "c.i16_scatter_nd_s", "core_mask"], [168, 1, 1, "c.i16_scatter_nd_s", "indices"], [168, 1, 1, "c.i16_scatter_nd_s", "indices_ndim"], [168, 1, 1, "c.i16_scatter_nd_s", "indices_shape"], [168, 1, 1, "c.i16_scatter_nd_s", "output"], [168, 1, 1, "c.i16_scatter_nd_s", "output_ndim"], [168, 1, 1, "c.i16_scatter_nd_s", "output_shape"], [168, 1, 1, "c.i16_scatter_nd_s", "updates"]], "i16_scatter_nd_update_p": [[169, 1, 1, "c.i16_scatter_nd_update_p", "indices"], [169, 1, 1, "c.i16_scatter_nd_update_p", "indices_ndim"], [169, 1, 1, "c.i16_scatter_nd_update_p", "indices_shape"], [169, 1, 1, "c.i16_scatter_nd_update_p", "output"], [169, 1, 1, "c.i16_scatter_nd_update_p", "output_ndim"], [169, 1, 1, "c.i16_scatter_nd_update_p", "output_shape"], [169, 1, 1, "c.i16_scatter_nd_update_p", "updates"]], "i16_scatter_nd_update_s": [[169, 1, 1, "c.i16_scatter_nd_update_s", "core_mask"], [169, 1, 1, "c.i16_scatter_nd_update_s", "indices"], [169, 1, 1, "c.i16_scatter_nd_update_s", "indices_ndim"], [169, 1, 1, "c.i16_scatter_nd_update_s", "indices_shape"], [169, 1, 1, "c.i16_scatter_nd_update_s", "output"], [169, 1, 1, "c.i16_scatter_nd_update_s", "output_ndim"], [169, 1, 1, "c.i16_scatter_nd_update_s", "output_shape"], [169, 1, 1, "c.i16_scatter_nd_update_s", "updates"]], "i16_select_p": [[170, 1, 1, "c.i16_select_p", "condition"], [170, 1, 1, "c.i16_select_p", "index_list1"], [170, 1, 1, "c.i16_select_p", "index_list2"], [170, 1, 1, "c.i16_select_p", "index_list3"], [170, 1, 1, "c.i16_select_p", "input0"], [170, 1, 1, "c.i16_select_p", "input1"], [170, 1, 1, "c.i16_select_p", "is_broadcast"], [170, 1, 1, "c.i16_select_p", "output"], [170, 1, 1, "c.i16_select_p", "output_dims"], [170, 1, 1, "c.i16_select_p", "output_dims_num"]], "i16_select_s": [[170, 1, 1, "c.i16_select_s", "condition"], [170, 1, 1, "c.i16_select_s", "core_mask"], [170, 1, 1, "c.i16_select_s", "index_list1"], [170, 1, 1, "c.i16_select_s", "index_list2"], [170, 1, 1, "c.i16_select_s", "index_list3"], [170, 1, 1, "c.i16_select_s", "input0"], [170, 1, 1, "c.i16_select_s", "input1"], [170, 1, 1, "c.i16_select_s", "is_broadcast"], [170, 1, 1, "c.i16_select_s", "output"], [170, 1, 1, "c.i16_select_s", "output_dims"], [170, 1, 1, "c.i16_select_s", "output_dims_num"]], "i16_sin_p": [[175, 1, 1, "c.i16_sin_p", "dst_data"], [175, 1, 1, "c.i16_sin_p", "length"], [175, 1, 1, "c.i16_sin_p", "src_data"]], "i16_sin_s": [[175, 1, 1, "c.i16_sin_s", "core_mask"], [175, 1, 1, "c.i16_sin_s", "dst_data"], [175, 1, 1, "c.i16_sin_s", "length"], [175, 1, 1, "c.i16_sin_s", "src_data"]], "i16_slice_p": [[178, 1, 1, "c.i16_slice_p", "begin"], [178, 1, 1, "c.i16_slice_p", "input"], [178, 1, 1, "c.i16_slice_p", "input_shape"], [178, 1, 1, "c.i16_slice_p", "ndim"], [178, 1, 1, "c.i16_slice_p", "output"], [178, 1, 1, "c.i16_slice_p", "size"]], "i16_slice_s": [[178, 1, 1, "c.i16_slice_s", "begin"], [178, 1, 1, "c.i16_slice_s", "core_mask"], [178, 1, 1, "c.i16_slice_s", "input"], [178, 1, 1, "c.i16_slice_s", "input_shape"], [178, 1, 1, "c.i16_slice_s", "ndim"], [178, 1, 1, "c.i16_slice_s", "output"], [178, 1, 1, "c.i16_slice_s", "size"]], "i16_spacetobatch_p": [[183, 1, 1, "c.i16_spacetobatch_p", "block_size"], [183, 1, 1, "c.i16_spacetobatch_p", "data_size"], [183, 1, 1, "c.i16_spacetobatch_p", "input"], [183, 1, 1, "c.i16_spacetobatch_p", "input_shape"], [183, 1, 1, "c.i16_spacetobatch_p", "output"], [183, 1, 1, "c.i16_spacetobatch_p", "paddings"]], "i16_spacetobatch_s": [[183, 1, 1, "c.i16_spacetobatch_s", "block_size"], [183, 1, 1, "c.i16_spacetobatch_s", "core_mask"], [183, 1, 1, "c.i16_spacetobatch_s", "data_size"], [183, 1, 1, "c.i16_spacetobatch_s", "input"], [183, 1, 1, "c.i16_spacetobatch_s", "input_shape"], [183, 1, 1, "c.i16_spacetobatch_s", "output"], [183, 1, 1, "c.i16_spacetobatch_s", "paddings"]], "i16_spacetobatchnd_p": [[184, 1, 1, "c.i16_spacetobatchnd_p", "block_size"], [184, 1, 1, "c.i16_spacetobatchnd_p", "data_size"], [184, 1, 1, "c.i16_spacetobatchnd_p", "input"], [184, 1, 1, "c.i16_spacetobatchnd_p", "input_shape"], [184, 1, 1, "c.i16_spacetobatchnd_p", "output"], [184, 1, 1, "c.i16_spacetobatchnd_p", "paddings"]], "i16_spacetobatchnd_s": [[184, 1, 1, "c.i16_spacetobatchnd_s", "block_size"], [184, 1, 1, "c.i16_spacetobatchnd_s", "core_mask"], [184, 1, 1, "c.i16_spacetobatchnd_s", "data_size"], [184, 1, 1, "c.i16_spacetobatchnd_s", "input"], [184, 1, 1, "c.i16_spacetobatchnd_s", "input_shape"], [184, 1, 1, "c.i16_spacetobatchnd_s", "output"], [184, 1, 1, "c.i16_spacetobatchnd_s", "paddings"]], "i16_spacetodepth_p": [[185, 1, 1, "c.i16_spacetodepth_p", "block"], [185, 1, 1, "c.i16_spacetodepth_p", "data_size"], [185, 1, 1, "c.i16_spacetodepth_p", "in_shape"], [185, 1, 1, "c.i16_spacetodepth_p", "input"], [185, 1, 1, "c.i16_spacetodepth_p", "output"]], "i16_spacetodepth_s": [[185, 1, 1, "c.i16_spacetodepth_s", "block"], [185, 1, 1, "c.i16_spacetodepth_s", "core_mask"], [185, 1, 1, "c.i16_spacetodepth_s", "data_size"], [185, 1, 1, "c.i16_spacetodepth_s", "in_shape"], [185, 1, 1, "c.i16_spacetodepth_s", "input"], [185, 1, 1, "c.i16_spacetodepth_s", "output"]], "i16_sparsefillemptyrows_p": [[187, 1, 1, "c.i16_sparsefillemptyrows_p", "N"], [187, 1, 1, "c.i16_sparsefillemptyrows_p", "default_value"], [187, 1, 1, "c.i16_sparsefillemptyrows_p", "dense_rows"], [187, 1, 1, "c.i16_sparsefillemptyrows_p", "filled_count"], [187, 1, 1, "c.i16_sparsefillemptyrows_p", "indices_ptr"], [187, 1, 1, "c.i16_sparsefillemptyrows_p", "output_reverse_index_map_ptr"], [187, 1, 1, "c.i16_sparsefillemptyrows_p", "output_y_indices_ptr"], [187, 1, 1, "c.i16_sparsefillemptyrows_p", "output_y_values_ptr"], [187, 1, 1, "c.i16_sparsefillemptyrows_p", "rank"], [187, 1, 1, "c.i16_sparsefillemptyrows_p", "scratch_ptr"], [187, 1, 1, "c.i16_sparsefillemptyrows_p", "values_ptr"]], "i16_sparsefillemptyrows_s": [[187, 1, 1, "c.i16_sparsefillemptyrows_s", "N"], [187, 1, 1, "c.i16_sparsefillemptyrows_s", "core_mask"], [187, 1, 1, "c.i16_sparsefillemptyrows_s", "default_value"], [187, 1, 1, "c.i16_sparsefillemptyrows_s", "dense_rows"], [187, 1, 1, "c.i16_sparsefillemptyrows_s", "filled_count"], [187, 1, 1, "c.i16_sparsefillemptyrows_s", "indices_ptr"], [187, 1, 1, "c.i16_sparsefillemptyrows_s", "output_reverse_index_map_ptr"], [187, 1, 1, "c.i16_sparsefillemptyrows_s", "output_y_indices_ptr"], [187, 1, 1, "c.i16_sparsefillemptyrows_s", "output_y_values_ptr"], [187, 1, 1, "c.i16_sparsefillemptyrows_s", "rank"], [187, 1, 1, "c.i16_sparsefillemptyrows_s", "scratch_ptr"], [187, 1, 1, "c.i16_sparsefillemptyrows_s", "values_ptr"]], "i16_sparsesegmentsum_p": [[189, 1, 1, "c.i16_sparsesegmentsum_p", "in_data"], [189, 1, 1, "c.i16_sparsesegmentsum_p", "in_data_shape"], [189, 1, 1, "c.i16_sparsesegmentsum_p", "in_data_shape_size"], [189, 1, 1, "c.i16_sparsesegmentsum_p", "in_indices"], [189, 1, 1, "c.i16_sparsesegmentsum_p", "in_indices_size"], [189, 1, 1, "c.i16_sparsesegmentsum_p", "in_segment_ids"], [189, 1, 1, "c.i16_sparsesegmentsum_p", "out_data"], [189, 1, 1, "c.i16_sparsesegmentsum_p", "out_data_shape"]], "i16_sparsesegmentsum_s": [[189, 1, 1, "c.i16_sparsesegmentsum_s", "core_mask"], [189, 1, 1, "c.i16_sparsesegmentsum_s", "in_data"], [189, 1, 1, "c.i16_sparsesegmentsum_s", "in_data_shape"], [189, 1, 1, "c.i16_sparsesegmentsum_s", "in_data_shape_size"], [189, 1, 1, "c.i16_sparsesegmentsum_s", "in_indices"], [189, 1, 1, "c.i16_sparsesegmentsum_s", "in_indices_size"], [189, 1, 1, "c.i16_sparsesegmentsum_s", "in_segment_ids"], [189, 1, 1, "c.i16_sparsesegmentsum_s", "out_data"], [189, 1, 1, "c.i16_sparsesegmentsum_s", "out_data_shape"]], "i16_sparsetodense_p": [[190, 1, 1, "c.i16_sparsetodense_p", "indices_vec"], [190, 1, 1, "c.i16_sparsetodense_p", "is_scalar"], [190, 1, 1, "c.i16_sparsetodense_p", "output"], [190, 1, 1, "c.i16_sparsetodense_p", "output_strides"], [190, 1, 1, "c.i16_sparsetodense_p", "sparse_length"], [190, 1, 1, "c.i16_sparsetodense_p", "sparse_values"]], "i16_sparsetodense_s": [[190, 1, 1, "c.i16_sparsetodense_s", "core_mask"], [190, 1, 1, "c.i16_sparsetodense_s", "indices_vec"], [190, 1, 1, "c.i16_sparsetodense_s", "is_scalar"], [190, 1, 1, "c.i16_sparsetodense_s", "output"], [190, 1, 1, "c.i16_sparsetodense_s", "output_strides"], [190, 1, 1, "c.i16_sparsetodense_s", "sparse_length"], [190, 1, 1, "c.i16_sparsetodense_s", "sparse_values"]], "i16_splice_p": [[191, 1, 1, "c.i16_splice_p", "context_dim"], [191, 1, 1, "c.i16_splice_p", "dst_col"], [191, 1, 1, "c.i16_splice_p", "dst_data"], [191, 1, 1, "c.i16_splice_p", "dst_row"], [191, 1, 1, "c.i16_splice_p", "forward_indexes"], [191, 1, 1, "c.i16_splice_p", "forward_indexes_dims"], [191, 1, 1, "c.i16_splice_p", "src_col"], [191, 1, 1, "c.i16_splice_p", "src_data"], [191, 1, 1, "c.i16_splice_p", "src_row"]], "i16_splice_s": [[191, 1, 1, "c.i16_splice_s", "context_dim"], [191, 1, 1, "c.i16_splice_s", "core_mask"], [191, 1, 1, "c.i16_splice_s", "dst_col"], [191, 1, 1, "c.i16_splice_s", "dst_data"], [191, 1, 1, "c.i16_splice_s", "dst_row"], [191, 1, 1, "c.i16_splice_s", "forward_indexes"], [191, 1, 1, "c.i16_splice_s", "forward_indexes_dims"], [191, 1, 1, "c.i16_splice_s", "src_col"], [191, 1, 1, "c.i16_splice_s", "src_data"], [191, 1, 1, "c.i16_splice_s", "src_row"]], "i16_split_p": [[192, 1, 1, "c.i16_split_p", "axis"], [192, 1, 1, "c.i16_split_p", "input"], [192, 1, 1, "c.i16_split_p", "input_ndim"], [192, 1, 1, "c.i16_split_p", "input_shape"], [192, 1, 1, "c.i16_split_p", "num_split"], [192, 1, 1, "c.i16_split_p", "outputs"], [192, 1, 1, "c.i16_split_p", "split_sizes"]], "i16_split_s": [[192, 1, 1, "c.i16_split_s", "axis"], [192, 1, 1, "c.i16_split_s", "core_mask"], [192, 1, 1, "c.i16_split_s", "input"], [192, 1, 1, "c.i16_split_s", "input_ndim"], [192, 1, 1, "c.i16_split_s", "input_shape"], [192, 1, 1, "c.i16_split_s", "num_split"], [192, 1, 1, "c.i16_split_s", "outputs"], [192, 1, 1, "c.i16_split_s", "split_sizes"]], "i16_split_with_overlap_p": [[193, 1, 1, "c.i16_split_with_overlap_p", "axis"], [193, 1, 1, "c.i16_split_with_overlap_p", "end_indices"], [193, 1, 1, "c.i16_split_with_overlap_p", "input"], [193, 1, 1, "c.i16_split_with_overlap_p", "input_ndim"], [193, 1, 1, "c.i16_split_with_overlap_p", "input_shape"], [193, 1, 1, "c.i16_split_with_overlap_p", "num_split"], [193, 1, 1, "c.i16_split_with_overlap_p", "outputs"], [193, 1, 1, "c.i16_split_with_overlap_p", "start_indices"]], "i16_split_with_overlap_s": [[193, 1, 1, "c.i16_split_with_overlap_s", "axis"], [193, 1, 1, "c.i16_split_with_overlap_s", "core_mask"], [193, 1, 1, "c.i16_split_with_overlap_s", "end_indices"], [193, 1, 1, "c.i16_split_with_overlap_s", "input"], [193, 1, 1, "c.i16_split_with_overlap_s", "input_ndim"], [193, 1, 1, "c.i16_split_with_overlap_s", "input_shape"], [193, 1, 1, "c.i16_split_with_overlap_s", "num_split"], [193, 1, 1, "c.i16_split_with_overlap_s", "outputs"], [193, 1, 1, "c.i16_split_with_overlap_s", "start_indices"]], "i16_sqrt_p": [[194, 1, 1, "c.i16_sqrt_p", "dst_data"], [194, 1, 1, "c.i16_sqrt_p", "length"], [194, 1, 1, "c.i16_sqrt_p", "src_data"]], "i16_sqrt_s": [[194, 1, 1, "c.i16_sqrt_s", "core_mask"], [194, 1, 1, "c.i16_sqrt_s", "dst_data"], [194, 1, 1, "c.i16_sqrt_s", "length"], [194, 1, 1, "c.i16_sqrt_s", "src_data"]], "i16_sqrtgrad_p": [[195, 1, 1, "c.i16_sqrtgrad_p", "input1"], [195, 1, 1, "c.i16_sqrtgrad_p", "input2"], [195, 1, 1, "c.i16_sqrtgrad_p", "output"], [195, 1, 1, "c.i16_sqrtgrad_p", "size"]], "i16_sqrtgrad_s": [[195, 1, 1, "c.i16_sqrtgrad_s", "core_mask"], [195, 1, 1, "c.i16_sqrtgrad_s", "input1"], [195, 1, 1, "c.i16_sqrtgrad_s", "input2"], [195, 1, 1, "c.i16_sqrtgrad_s", "output"], [195, 1, 1, "c.i16_sqrtgrad_s", "size"]], "i16_square_p": [[196, 1, 1, "c.i16_square_p", "dst"], [196, 1, 1, "c.i16_square_p", "length"], [196, 1, 1, "c.i16_square_p", "src"]], "i16_square_s": [[196, 1, 1, "c.i16_square_s", "core_mask"], [196, 1, 1, "c.i16_square_s", "dst"], [196, 1, 1, "c.i16_square_s", "length"], [196, 1, 1, "c.i16_square_s", "src"]], "i16_squaredifference_p": [[197, 1, 1, "c.i16_squaredifference_p", "input0"], [197, 1, 1, "c.i16_squaredifference_p", "input1"], [197, 1, 1, "c.i16_squaredifference_p", "length"], [197, 1, 1, "c.i16_squaredifference_p", "output"]], "i16_squaredifference_s": [[197, 1, 1, "c.i16_squaredifference_s", "core_mask"], [197, 1, 1, "c.i16_squaredifference_s", "input0"], [197, 1, 1, "c.i16_squaredifference_s", "input1"], [197, 1, 1, "c.i16_squaredifference_s", "length"], [197, 1, 1, "c.i16_squaredifference_s", "output"]], "i16_stack_p": [[199, 1, 1, "c.i16_stack_p", "axis"], [199, 1, 1, "c.i16_stack_p", "input_ndim"], [199, 1, 1, "c.i16_stack_p", "input_shape"], [199, 1, 1, "c.i16_stack_p", "inputs"], [199, 1, 1, "c.i16_stack_p", "num_inputs"], [199, 1, 1, "c.i16_stack_p", "output"]], "i16_stack_s": [[199, 1, 1, "c.i16_stack_s", "axis"], [199, 1, 1, "c.i16_stack_s", "core_mask"], [199, 1, 1, "c.i16_stack_s", "input_ndim"], [199, 1, 1, "c.i16_stack_s", "input_shape"], [199, 1, 1, "c.i16_stack_s", "inputs"], [199, 1, 1, "c.i16_stack_s", "num_inputs"], [199, 1, 1, "c.i16_stack_s", "output"]], "i16_subrelu6_p": [[202, 1, 1, "c.i16_subrelu6_p", "input0"], [202, 1, 1, "c.i16_subrelu6_p", "input1"], [202, 1, 1, "c.i16_subrelu6_p", "output"], [202, 1, 1, "c.i16_subrelu6_p", "size"]], "i16_subrelu6_s": [[202, 1, 1, "c.i16_subrelu6_s", "core_mask"], [202, 1, 1, "c.i16_subrelu6_s", "input0"], [202, 1, 1, "c.i16_subrelu6_s", "input1"], [202, 1, 1, "c.i16_subrelu6_s", "output"], [202, 1, 1, "c.i16_subrelu6_s", "size"]], "i16_subrelu_p": [[202, 1, 1, "c.i16_subrelu_p", "input0"], [202, 1, 1, "c.i16_subrelu_p", "input1"], [202, 1, 1, "c.i16_subrelu_p", "output"], [202, 1, 1, "c.i16_subrelu_p", "size"]], "i16_subrelu_s": [[202, 1, 1, "c.i16_subrelu_s", "core_mask"], [202, 1, 1, "c.i16_subrelu_s", "input0"], [202, 1, 1, "c.i16_subrelu_s", "input1"], [202, 1, 1, "c.i16_subrelu_s", "output"], [202, 1, 1, "c.i16_subrelu_s", "size"]], "i16_tensor_scatter_add_p": [[206, 1, 1, "c.i16_tensor_scatter_add_p", "index_depth"], [206, 1, 1, "c.i16_tensor_scatter_add_p", "indices"], [206, 1, 1, "c.i16_tensor_scatter_add_p", "input"], [206, 1, 1, "c.i16_tensor_scatter_add_p", "input_rank"], [206, 1, 1, "c.i16_tensor_scatter_add_p", "input_shape"], [206, 1, 1, "c.i16_tensor_scatter_add_p", "num_unit"], [206, 1, 1, "c.i16_tensor_scatter_add_p", "output"], [206, 1, 1, "c.i16_tensor_scatter_add_p", "output_unit_offsets"], [206, 1, 1, "c.i16_tensor_scatter_add_p", "strides"], [206, 1, 1, "c.i16_tensor_scatter_add_p", "updates"]], "i16_tensor_scatter_add_s": [[206, 1, 1, "c.i16_tensor_scatter_add_s", "core_mask"], [206, 1, 1, "c.i16_tensor_scatter_add_s", "index_depth"], [206, 1, 1, "c.i16_tensor_scatter_add_s", "indices"], [206, 1, 1, "c.i16_tensor_scatter_add_s", "input"], [206, 1, 1, "c.i16_tensor_scatter_add_s", "input_rank"], [206, 1, 1, "c.i16_tensor_scatter_add_s", "input_shape"], [206, 1, 1, "c.i16_tensor_scatter_add_s", "num_unit"], [206, 1, 1, "c.i16_tensor_scatter_add_s", "output"], [206, 1, 1, "c.i16_tensor_scatter_add_s", "updates"]], "i16_tensorarrayread_p": [[208, 1, 1, "c.i16_tensorarrayread_p", "handle_data"], [208, 1, 1, "c.i16_tensorarrayread_p", "handle_size"], [208, 1, 1, "c.i16_tensorarrayread_p", "index"], [208, 1, 1, "c.i16_tensorarrayread_p", "output_data"], [208, 1, 1, "c.i16_tensorarrayread_p", "output_size"]], "i16_tensorarrayread_s": [[208, 1, 1, "c.i16_tensorarrayread_s", "core_mask"], [208, 1, 1, "c.i16_tensorarrayread_s", "handle_data"], [208, 1, 1, "c.i16_tensorarrayread_s", "handle_size"], [208, 1, 1, "c.i16_tensorarrayread_s", "index"], [208, 1, 1, "c.i16_tensorarrayread_s", "output_data"], [208, 1, 1, "c.i16_tensorarrayread_s", "output_size"]], "i16_tensorlistfromtensor_p": [[210, 1, 1, "c.i16_tensorlistfromtensor_p", "input_tensor_shape"], [210, 1, 1, "c.i16_tensorlistfromtensor_p", "input_tensor_total_elements"], [210, 1, 1, "c.i16_tensorlistfromtensor_p", "input_tensor_values"], [210, 1, 1, "c.i16_tensorlistfromtensor_p", "output_tensors"]], "i16_tensorlistfromtensor_s": [[210, 1, 1, "c.i16_tensorlistfromtensor_s", "core_mask"], [210, 1, 1, "c.i16_tensorlistfromtensor_s", "input_tensor_shape"], [210, 1, 1, "c.i16_tensorlistfromtensor_s", "input_tensor_total_elements"], [210, 1, 1, "c.i16_tensorlistfromtensor_s", "input_tensor_values"], [210, 1, 1, "c.i16_tensorlistfromtensor_s", "output_tensors"]], "i16_tile_p": [[215, 1, 1, "c.i16_tile_p", "input"], [215, 1, 1, "c.i16_tile_p", "input_shape"], [215, 1, 1, "c.i16_tile_p", "output"], [215, 1, 1, "c.i16_tile_p", "stride"], [215, 1, 1, "c.i16_tile_p", "tile_dim"], [215, 1, 1, "c.i16_tile_p", "tile_num"]], "i16_tile_s": [[215, 1, 1, "c.i16_tile_s", "core_mask"], [215, 1, 1, "c.i16_tile_s", "input"], [215, 1, 1, "c.i16_tile_s", "input_shape"], [215, 1, 1, "c.i16_tile_s", "output"], [215, 1, 1, "c.i16_tile_s", "stride"], [215, 1, 1, "c.i16_tile_s", "tile_dim"], [215, 1, 1, "c.i16_tile_s", "tile_num"]], "i16_topk_fusion_p": [[216, 1, 1, "c.i16_topk_fusion_p", "input"], [216, 1, 1, "c.i16_topk_fusion_p", "output"], [216, 1, 1, "c.i16_topk_fusion_p", "output_index"], [216, 1, 1, "c.i16_topk_fusion_p", "parameter"]], "i16_topk_fusion_s": [[216, 1, 1, "c.i16_topk_fusion_s", "core_mask"], [216, 1, 1, "c.i16_topk_fusion_s", "input"], [216, 1, 1, "c.i16_topk_fusion_s", "output"], [216, 1, 1, "c.i16_topk_fusion_s", "output_index"], [216, 1, 1, "c.i16_topk_fusion_s", "parameter"]], "i16_transpose_p": [[217, 1, 1, "c.i16_transpose_p", "in_data"], [217, 1, 1, "c.i16_transpose_p", "num_axes"], [217, 1, 1, "c.i16_transpose_p", "out_data"], [217, 1, 1, "c.i16_transpose_p", "out_strides"], [217, 1, 1, "c.i16_transpose_p", "output_shape"], [217, 1, 1, "c.i16_transpose_p", "perm"], [217, 1, 1, "c.i16_transpose_p", "strides"]], "i16_transpose_s": [[217, 1, 1, "c.i16_transpose_s", "core_mask"], [217, 1, 1, "c.i16_transpose_s", "in_data"], [217, 1, 1, "c.i16_transpose_s", "num_axes"], [217, 1, 1, "c.i16_transpose_s", "out_data"], [217, 1, 1, "c.i16_transpose_s", "out_strides"], [217, 1, 1, "c.i16_transpose_s", "output_shape"], [217, 1, 1, "c.i16_transpose_s", "perm"], [217, 1, 1, "c.i16_transpose_s", "strides"]], "i16_tril_p": [[218, 1, 1, "c.i16_tril_p", "dst"], [218, 1, 1, "c.i16_tril_p", "height"], [218, 1, 1, "c.i16_tril_p", "k"], [218, 1, 1, "c.i16_tril_p", "out_elems"], [218, 1, 1, "c.i16_tril_p", "src"], [218, 1, 1, "c.i16_tril_p", "width"]], "i16_tril_s": [[218, 1, 1, "c.i16_tril_s", "core_mask"], [218, 1, 1, "c.i16_tril_s", "dst"], [218, 1, 1, "c.i16_tril_s", "height"], [218, 1, 1, "c.i16_tril_s", "k"], [218, 1, 1, "c.i16_tril_s", "out_elems"], [218, 1, 1, "c.i16_tril_s", "src"], [218, 1, 1, "c.i16_tril_s", "width"]], "i16_triu_p": [[219, 1, 1, "c.i16_triu_p", "dst"], [219, 1, 1, "c.i16_triu_p", "height"], [219, 1, 1, "c.i16_triu_p", "k"], [219, 1, 1, "c.i16_triu_p", "out_elems"], [219, 1, 1, "c.i16_triu_p", "src"], [219, 1, 1, "c.i16_triu_p", "width"]], "i16_triu_s": [[219, 1, 1, "c.i16_triu_s", "core_mask"], [219, 1, 1, "c.i16_triu_s", "dst"], [219, 1, 1, "c.i16_triu_s", "height"], [219, 1, 1, "c.i16_triu_s", "k"], [219, 1, 1, "c.i16_triu_s", "out_elems"], [219, 1, 1, "c.i16_triu_s", "src"], [219, 1, 1, "c.i16_triu_s", "width"]], "i16_unsorted_segment_sum_p": [[222, 1, 1, "c.i16_unsorted_segment_sum_p", "dim0"], [222, 1, 1, "c.i16_unsorted_segment_sum_p", "dim1"], [222, 1, 1, "c.i16_unsorted_segment_sum_p", "id_max"], [222, 1, 1, "c.i16_unsorted_segment_sum_p", "index"], [222, 1, 1, "c.i16_unsorted_segment_sum_p", "input"], [222, 1, 1, "c.i16_unsorted_segment_sum_p", "output"]], "i16_unsorted_segment_sum_s": [[222, 1, 1, "c.i16_unsorted_segment_sum_s", "core_mask"], [222, 1, 1, "c.i16_unsorted_segment_sum_s", "dim0"], [222, 1, 1, "c.i16_unsorted_segment_sum_s", "dim1"], [222, 1, 1, "c.i16_unsorted_segment_sum_s", "id_max"], [222, 1, 1, "c.i16_unsorted_segment_sum_s", "index"], [222, 1, 1, "c.i16_unsorted_segment_sum_s", "input"], [222, 1, 1, "c.i16_unsorted_segment_sum_s", "output"]], "i16_where_p": [[225, 1, 1, "c.i16_where_p", "condition"], [225, 1, 1, "c.i16_where_p", "input0"], [225, 1, 1, "c.i16_where_p", "input1"], [225, 1, 1, "c.i16_where_p", "length"], [225, 1, 1, "c.i16_where_p", "output"]], "i16_where_s": [[225, 1, 1, "c.i16_where_s", "condition"], [225, 1, 1, "c.i16_where_s", "core_mask"], [225, 1, 1, "c.i16_where_s", "input0"], [225, 1, 1, "c.i16_where_s", "input1"], [225, 1, 1, "c.i16_where_s", "length"], [225, 1, 1, "c.i16_where_s", "output"]], "i16_zerolike_p": [[226, 1, 1, "c.i16_zerolike_p", "length"], [226, 1, 1, "c.i16_zerolike_p", "output"]], "i16_zerolike_s": [[226, 1, 1, "c.i16_zerolike_s", "core_mask"], [226, 1, 1, "c.i16_zerolike_s", "length"], [226, 1, 1, "c.i16_zerolike_s", "output"]], "i32_Unique_p": [[221, 1, 1, "c.i32_Unique_p", "input"], [221, 1, 1, "c.i32_Unique_p", "input_len"], [221, 1, 1, "c.i32_Unique_p", "output0"], [221, 1, 1, "c.i32_Unique_p", "output0_len"]], "i32_Unique_s": [[221, 1, 1, "c.i32_Unique_s", "core_mask"], [221, 1, 1, "c.i32_Unique_s", "input"], [221, 1, 1, "c.i32_Unique_s", "input_len"], [221, 1, 1, "c.i32_Unique_s", "output0"], [221, 1, 1, "c.i32_Unique_s", "output0_len"]], "i32_abs_p": [[10, 1, 1, "c.i32_abs_p", "dst_data"], [10, 1, 1, "c.i32_abs_p", "length"], [10, 1, 1, "c.i32_abs_p", "src_data"]], "i32_abs_s": [[10, 1, 1, "c.i32_abs_s", "core_mask"], [10, 1, 1, "c.i32_abs_s", "dst_data"], [10, 1, 1, "c.i32_abs_s", "length"], [10, 1, 1, "c.i32_abs_s", "src_data"]], "i32_addext_p": [[17, 1, 1, "c.i32_addext_p", "alpha"], [17, 1, 1, "c.i32_addext_p", "in0"], [17, 1, 1, "c.i32_addext_p", "in1"], [17, 1, 1, "c.i32_addext_p", "out"], [17, 1, 1, "c.i32_addext_p", "size"]], "i32_addext_s": [[17, 1, 1, "c.i32_addext_s", "alpha"], [17, 1, 1, "c.i32_addext_s", "core_mask"], [17, 1, 1, "c.i32_addext_s", "in0"], [17, 1, 1, "c.i32_addext_s", "in1"], [17, 1, 1, "c.i32_addext_s", "out"], [17, 1, 1, "c.i32_addext_s", "size"]], "i32_addn_p": [[19, 1, 1, "c.i32_addn_p", "input0"], [19, 1, 1, "c.i32_addn_p", "input1"], [19, 1, 1, "c.i32_addn_p", "length"], [19, 1, 1, "c.i32_addn_p", "output"]], "i32_addn_s": [[19, 1, 1, "c.i32_addn_s", "core_mask"], [19, 1, 1, "c.i32_addn_s", "input0"], [19, 1, 1, "c.i32_addn_s", "input1"], [19, 1, 1, "c.i32_addn_s", "length"], [19, 1, 1, "c.i32_addn_s", "output"]], "i32_addrelu6_p": [[17, 1, 1, "c.i32_addrelu6_p", "in0"], [17, 1, 1, "c.i32_addrelu6_p", "in1"], [17, 1, 1, "c.i32_addrelu6_p", "out"], [17, 1, 1, "c.i32_addrelu6_p", "size"]], "i32_addrelu6_s": [[17, 1, 1, "c.i32_addrelu6_s", "core_mask"], [17, 1, 1, "c.i32_addrelu6_s", "in0"], [17, 1, 1, "c.i32_addrelu6_s", "in1"], [17, 1, 1, "c.i32_addrelu6_s", "out"], [17, 1, 1, "c.i32_addrelu6_s", "size"]], "i32_addrelu_p": [[17, 1, 1, "c.i32_addrelu_p", "in0"], [17, 1, 1, "c.i32_addrelu_p", "in1"], [17, 1, 1, "c.i32_addrelu_p", "out"], [17, 1, 1, "c.i32_addrelu_p", "size"]], "i32_addrelu_s": [[17, 1, 1, "c.i32_addrelu_s", "core_mask"], [17, 1, 1, "c.i32_addrelu_s", "in0"], [17, 1, 1, "c.i32_addrelu_s", "in1"], [17, 1, 1, "c.i32_addrelu_s", "out"], [17, 1, 1, "c.i32_addrelu_s", "size"]], "i32_allgather_p": [[22, 1, 1, "c.i32_allgather_p", "data_size"], [22, 1, 1, "c.i32_allgather_p", "input"], [22, 1, 1, "c.i32_allgather_p", "input_rank"], [22, 1, 1, "c.i32_allgather_p", "output"], [22, 1, 1, "c.i32_allgather_p", "output_rank"]], "i32_allgather_s": [[22, 1, 1, "c.i32_allgather_s", "core_mask"], [22, 1, 1, "c.i32_allgather_s", "data_size"], [22, 1, 1, "c.i32_allgather_s", "input"], [22, 1, 1, "c.i32_allgather_s", "input_rank"], [22, 1, 1, "c.i32_allgather_s", "output"], [22, 1, 1, "c.i32_allgather_s", "output_rank"]], "i32_and_p": [[112, 1, 1, "c.i32_and_p", "input0"], [112, 1, 1, "c.i32_and_p", "input1"], [112, 1, 1, "c.i32_and_p", "length"], [112, 1, 1, "c.i32_and_p", "output"]], "i32_and_s": [[112, 1, 1, "c.i32_and_s", "core_mask"], [112, 1, 1, "c.i32_and_s", "input0"], [112, 1, 1, "c.i32_and_s", "input1"], [112, 1, 1, "c.i32_and_s", "length"], [112, 1, 1, "c.i32_and_s", "output"]], "i32_assign_p": [[27, 1, 1, "c.i32_assign_p", "dst"], [27, 1, 1, "c.i32_assign_p", "length"], [27, 1, 1, "c.i32_assign_p", "src"]], "i32_assign_s": [[27, 1, 1, "c.i32_assign_s", "core_mask"], [27, 1, 1, "c.i32_assign_s", "dst"], [27, 1, 1, "c.i32_assign_s", "length"], [27, 1, 1, "c.i32_assign_s", "src"]], "i32_assignadd_p": [[28, 1, 1, "c.i32_assignadd_p", "input"], [28, 1, 1, "c.i32_assignadd_p", "length"], [28, 1, 1, "c.i32_assignadd_p", "output"]], "i32_assignadd_s": [[28, 1, 1, "c.i32_assignadd_s", "core_mask"], [28, 1, 1, "c.i32_assignadd_s", "input"], [28, 1, 1, "c.i32_assignadd_s", "length"], [28, 1, 1, "c.i32_assignadd_s", "output"]], "i32_batchtospace_p": [[35, 1, 1, "c.i32_batchtospace_p", "block_size"], [35, 1, 1, "c.i32_batchtospace_p", "crops"], [35, 1, 1, "c.i32_batchtospace_p", "data_size"], [35, 1, 1, "c.i32_batchtospace_p", "input"], [35, 1, 1, "c.i32_batchtospace_p", "input_shape"], [35, 1, 1, "c.i32_batchtospace_p", "output"]], "i32_batchtospace_s": [[35, 1, 1, "c.i32_batchtospace_s", "block_size"], [35, 1, 1, "c.i32_batchtospace_s", "core_mask"], [35, 1, 1, "c.i32_batchtospace_s", "crops"], [35, 1, 1, "c.i32_batchtospace_s", "data_size"], [35, 1, 1, "c.i32_batchtospace_s", "input"], [35, 1, 1, "c.i32_batchtospace_s", "input_shape"], [35, 1, 1, "c.i32_batchtospace_s", "output"]], "i32_batchtospacend_p": [[36, 1, 1, "c.i32_batchtospacend_p", "block_size"], [36, 1, 1, "c.i32_batchtospacend_p", "crops"], [36, 1, 1, "c.i32_batchtospacend_p", "data_size"], [36, 1, 1, "c.i32_batchtospacend_p", "input"], [36, 1, 1, "c.i32_batchtospacend_p", "input_shape"], [36, 1, 1, "c.i32_batchtospacend_p", "output"]], "i32_batchtospacend_s": [[36, 1, 1, "c.i32_batchtospacend_s", "block_size"], [36, 1, 1, "c.i32_batchtospacend_s", "core_mask"], [36, 1, 1, "c.i32_batchtospacend_s", "crops"], [36, 1, 1, "c.i32_batchtospacend_s", "data_size"], [36, 1, 1, "c.i32_batchtospacend_s", "input"], [36, 1, 1, "c.i32_batchtospacend_s", "input_shape"], [36, 1, 1, "c.i32_batchtospacend_s", "output"]], "i32_biasadd_p": [[37, 1, 1, "c.i32_biasadd_p", "data_format"], [37, 1, 1, "c.i32_biasadd_p", "dims"], [37, 1, 1, "c.i32_biasadd_p", "input_bias"], [37, 1, 1, "c.i32_biasadd_p", "input_x"], [37, 1, 1, "c.i32_biasadd_p", "length"], [37, 1, 1, "c.i32_biasadd_p", "output"], [37, 1, 1, "c.i32_biasadd_p", "shape_size"]], "i32_biasadd_s": [[37, 1, 1, "c.i32_biasadd_s", "core_mask"], [37, 1, 1, "c.i32_biasadd_s", "data_format"], [37, 1, 1, "c.i32_biasadd_s", "dims"], [37, 1, 1, "c.i32_biasadd_s", "input_bias"], [37, 1, 1, "c.i32_biasadd_s", "input_x"], [37, 1, 1, "c.i32_biasadd_s", "length"], [37, 1, 1, "c.i32_biasadd_s", "output"], [37, 1, 1, "c.i32_biasadd_s", "shape_size"]], "i32_broadcastto_p": [[41, 1, 1, "c.i32_broadcastto_p", "data_size"], [41, 1, 1, "c.i32_broadcastto_p", "input"], [41, 1, 1, "c.i32_broadcastto_p", "input_shape"], [41, 1, 1, "c.i32_broadcastto_p", "input_shape_size"], [41, 1, 1, "c.i32_broadcastto_p", "output"], [41, 1, 1, "c.i32_broadcastto_p", "output_shape"], [41, 1, 1, "c.i32_broadcastto_p", "output_shape_size"]], "i32_broadcastto_s": [[41, 1, 1, "c.i32_broadcastto_s", "core_mask"], [41, 1, 1, "c.i32_broadcastto_s", "data_size"], [41, 1, 1, "c.i32_broadcastto_s", "input"], [41, 1, 1, "c.i32_broadcastto_s", "input_shape"], [41, 1, 1, "c.i32_broadcastto_s", "input_shape_size"], [41, 1, 1, "c.i32_broadcastto_s", "output"], [41, 1, 1, "c.i32_broadcastto_s", "output_shape"], [41, 1, 1, "c.i32_broadcastto_s", "output_shape_size"]], "i32_clip_p": [[44, 1, 1, "c.i32_clip_p", "dst"], [44, 1, 1, "c.i32_clip_p", "length"], [44, 1, 1, "c.i32_clip_p", "max"], [44, 1, 1, "c.i32_clip_p", "min"], [44, 1, 1, "c.i32_clip_p", "src"]], "i32_clip_s": [[44, 1, 1, "c.i32_clip_s", "core_mask"], [44, 1, 1, "c.i32_clip_s", "dst"], [44, 1, 1, "c.i32_clip_s", "length"], [44, 1, 1, "c.i32_clip_s", "max"], [44, 1, 1, "c.i32_clip_s", "min"], [44, 1, 1, "c.i32_clip_s", "src"]], "i32_concat_p": [[45, 1, 1, "c.i32_concat_p", "axis"], [45, 1, 1, "c.i32_concat_p", "input_ndim"], [45, 1, 1, "c.i32_concat_p", "input_shapes"], [45, 1, 1, "c.i32_concat_p", "inputs"], [45, 1, 1, "c.i32_concat_p", "num_inputs"], [45, 1, 1, "c.i32_concat_p", "output"]], "i32_concat_s": [[45, 1, 1, "c.i32_concat_s", "axis"], [45, 1, 1, "c.i32_concat_s", "core_mask"], [45, 1, 1, "c.i32_concat_s", "input_ndim"], [45, 1, 1, "c.i32_concat_s", "input_shapes"], [45, 1, 1, "c.i32_concat_s", "inputs"], [45, 1, 1, "c.i32_concat_s", "num_inputs"], [45, 1, 1, "c.i32_concat_s", "output"]], "i32_constant_of_shape_p": [[46, 1, 1, "c.i32_constant_of_shape_p", "end"], [46, 1, 1, "c.i32_constant_of_shape_p", "output"], [46, 1, 1, "c.i32_constant_of_shape_p", "start"], [46, 1, 1, "c.i32_constant_of_shape_p", "value"]], "i32_constant_of_shape_s": [[46, 1, 1, "c.i32_constant_of_shape_s", "core_mask"], [46, 1, 1, "c.i32_constant_of_shape_s", "end"], [46, 1, 1, "c.i32_constant_of_shape_s", "output"], [46, 1, 1, "c.i32_constant_of_shape_s", "start"], [46, 1, 1, "c.i32_constant_of_shape_s", "value"]], "i32_cos_p": [[51, 1, 1, "c.i32_cos_p", "dst_data"], [51, 1, 1, "c.i32_cos_p", "length"], [51, 1, 1, "c.i32_cos_p", "src_data"]], "i32_cos_s": [[51, 1, 1, "c.i32_cos_s", "core_mask"], [51, 1, 1, "c.i32_cos_s", "dst_data"], [51, 1, 1, "c.i32_cos_s", "length"], [51, 1, 1, "c.i32_cos_s", "src_data"]], "i32_cumsum_p": [[54, 1, 1, "c.i32_cumsum_p", "axis_dim"], [54, 1, 1, "c.i32_cumsum_p", "exclusive"], [54, 1, 1, "c.i32_cumsum_p", "inner_dim"], [54, 1, 1, "c.i32_cumsum_p", "input"], [54, 1, 1, "c.i32_cumsum_p", "out_dim"], [54, 1, 1, "c.i32_cumsum_p", "output"]], "i32_cumsum_s": [[54, 1, 1, "c.i32_cumsum_s", "axis_dim"], [54, 1, 1, "c.i32_cumsum_s", "core_mask"], [54, 1, 1, "c.i32_cumsum_s", "exclusive"], [54, 1, 1, "c.i32_cumsum_s", "inner_dim"], [54, 1, 1, "c.i32_cumsum_s", "input"], [54, 1, 1, "c.i32_cumsum_s", "out_dim"], [54, 1, 1, "c.i32_cumsum_s", "output"]], "i32_depthtospace_p": [[59, 1, 1, "c.i32_depthtospace_p", "block_size"], [59, 1, 1, "c.i32_depthtospace_p", "data_size"], [59, 1, 1, "c.i32_depthtospace_p", "in_shape"], [59, 1, 1, "c.i32_depthtospace_p", "input"], [59, 1, 1, "c.i32_depthtospace_p", "output"]], "i32_depthtospace_s": [[59, 1, 1, "c.i32_depthtospace_s", "block_size"], [59, 1, 1, "c.i32_depthtospace_s", "core_mask"], [59, 1, 1, "c.i32_depthtospace_s", "data_size"], [59, 1, 1, "c.i32_depthtospace_s", "in_shape"], [59, 1, 1, "c.i32_depthtospace_s", "input"], [59, 1, 1, "c.i32_depthtospace_s", "output"]], "i32_div_fusion_p": [[61, 1, 1, "c.i32_div_fusion_p", "input0"], [61, 1, 1, "c.i32_div_fusion_p", "input1"], [61, 1, 1, "c.i32_div_fusion_p", "length"], [61, 1, 1, "c.i32_div_fusion_p", "output"]], "i32_div_fusion_s": [[61, 1, 1, "c.i32_div_fusion_s", "core_mask"], [61, 1, 1, "c.i32_div_fusion_s", "input0"], [61, 1, 1, "c.i32_div_fusion_s", "input1"], [61, 1, 1, "c.i32_div_fusion_s", "length"], [61, 1, 1, "c.i32_div_fusion_s", "output"]], "i32_eltwise_p": [[67, 1, 1, "c.i32_eltwise_p", "Input0"], [67, 1, 1, "c.i32_eltwise_p", "Input1"], [67, 1, 1, "c.i32_eltwise_p", "eltwise_mode_"], [67, 1, 1, "c.i32_eltwise_p", "length"], [67, 1, 1, "c.i32_eltwise_p", "output"]], "i32_eltwise_s": [[67, 1, 1, "c.i32_eltwise_s", "Input0"], [67, 1, 1, "c.i32_eltwise_s", "Input1"], [67, 1, 1, "c.i32_eltwise_s", "core_mask"], [67, 1, 1, "c.i32_eltwise_s", "eltwise_mode_"], [67, 1, 1, "c.i32_eltwise_s", "length"], [67, 1, 1, "c.i32_eltwise_s", "output"]], "i32_equal_p": [[70, 1, 1, "c.i32_equal_p", "Input0"], [70, 1, 1, "c.i32_equal_p", "Input1"], [70, 1, 1, "c.i32_equal_p", "length"], [70, 1, 1, "c.i32_equal_p", "output"]], "i32_equal_s": [[70, 1, 1, "c.i32_equal_s", "Input0"], [70, 1, 1, "c.i32_equal_s", "Input1"], [70, 1, 1, "c.i32_equal_s", "core_mask"], [70, 1, 1, "c.i32_equal_s", "length"], [70, 1, 1, "c.i32_equal_s", "output"]], "i32_expfusion_p": [[73, 1, 1, "c.i32_expfusion_p", "dst_data"], [73, 1, 1, "c.i32_expfusion_p", "in_scale"], [73, 1, 1, "c.i32_expfusion_p", "length"], [73, 1, 1, "c.i32_expfusion_p", "out_scale"], [73, 1, 1, "c.i32_expfusion_p", "scale"], [73, 1, 1, "c.i32_expfusion_p", "src_data"]], "i32_expfusion_s": [[73, 1, 1, "c.i32_expfusion_s", "core_mask"], [73, 1, 1, "c.i32_expfusion_s", "dst_data"], [73, 1, 1, "c.i32_expfusion_s", "in_scale"], [73, 1, 1, "c.i32_expfusion_s", "length"], [73, 1, 1, "c.i32_expfusion_s", "out_scale"], [73, 1, 1, "c.i32_expfusion_s", "scale"], [73, 1, 1, "c.i32_expfusion_s", "src_data"]], "i32_extract_features_p": [[55, 1, 1, "c.i32_extract_features_p", "num_strings"], [55, 1, 1, "c.i32_extract_features_p", "output_labels"], [55, 1, 1, "c.i32_extract_features_p", "output_weights"], [55, 1, 1, "c.i32_extract_features_p", "string_lengths"], [55, 1, 1, "c.i32_extract_features_p", "string_pointers"]], "i32_extract_features_s": [[55, 1, 1, "c.i32_extract_features_s", "core_mask"], [55, 1, 1, "c.i32_extract_features_s", "num_strings"], [55, 1, 1, "c.i32_extract_features_s", "output_labels"], [55, 1, 1, "c.i32_extract_features_s", "output_weights"], [55, 1, 1, "c.i32_extract_features_s", "string_lengths"], [55, 1, 1, "c.i32_extract_features_s", "string_pointers"]], "i32_fill_p": [[78, 1, 1, "c.i32_fill_p", "output"], [78, 1, 1, "c.i32_fill_p", "param"], [78, 1, 1, "c.i32_fill_p", "value"]], "i32_fill_s": [[78, 1, 1, "c.i32_fill_s", "core_mask"], [78, 1, 1, "c.i32_fill_s", "output"], [78, 1, 1, "c.i32_fill_s", "param"], [78, 1, 1, "c.i32_fill_s", "value"]], "i32_formattranspose_p": [[85, 1, 1, "c.i32_formattranspose_p", "batch"], [85, 1, 1, "c.i32_formattranspose_p", "channel"], [85, 1, 1, "c.i32_formattranspose_p", "dst_data"], [85, 1, 1, "c.i32_formattranspose_p", "dst_format"], [85, 1, 1, "c.i32_formattranspose_p", "plane"], [85, 1, 1, "c.i32_formattranspose_p", "src_data"], [85, 1, 1, "c.i32_formattranspose_p", "src_format"]], "i32_formattranspose_s": [[85, 1, 1, "c.i32_formattranspose_s", "batch"], [85, 1, 1, "c.i32_formattranspose_s", "channel"], [85, 1, 1, "c.i32_formattranspose_s", "core_mask"], [85, 1, 1, "c.i32_formattranspose_s", "dst_data"], [85, 1, 1, "c.i32_formattranspose_s", "dst_format"], [85, 1, 1, "c.i32_formattranspose_s", "plane"], [85, 1, 1, "c.i32_formattranspose_s", "src_data"], [85, 1, 1, "c.i32_formattranspose_s", "src_format"]], "i32_gather_nd_p": [[89, 1, 1, "c.i32_gather_nd_p", "indices"], [89, 1, 1, "c.i32_gather_nd_p", "indices_ndim"], [89, 1, 1, "c.i32_gather_nd_p", "indices_shape"], [89, 1, 1, "c.i32_gather_nd_p", "input"], [89, 1, 1, "c.i32_gather_nd_p", "input_ndim"], [89, 1, 1, "c.i32_gather_nd_p", "input_shape"], [89, 1, 1, "c.i32_gather_nd_p", "output"]], "i32_gather_nd_s": [[89, 1, 1, "c.i32_gather_nd_s", "core_mask"], [89, 1, 1, "c.i32_gather_nd_s", "indices"], [89, 1, 1, "c.i32_gather_nd_s", "indices_ndim"], [89, 1, 1, "c.i32_gather_nd_s", "indices_shape"], [89, 1, 1, "c.i32_gather_nd_s", "input"], [89, 1, 1, "c.i32_gather_nd_s", "input_ndim"], [89, 1, 1, "c.i32_gather_nd_s", "input_shape"], [89, 1, 1, "c.i32_gather_nd_s", "output"]], "i32_gather_p": [[88, 1, 1, "c.i32_gather_p", "axis"], [88, 1, 1, "c.i32_gather_p", "batch_dims"], [88, 1, 1, "c.i32_gather_p", "indices"], [88, 1, 1, "c.i32_gather_p", "indices_ndim"], [88, 1, 1, "c.i32_gather_p", "indices_shape"], [88, 1, 1, "c.i32_gather_p", "input"], [88, 1, 1, "c.i32_gather_p", "input_ndim"], [88, 1, 1, "c.i32_gather_p", "input_shape"], [88, 1, 1, "c.i32_gather_p", "output"]], "i32_gather_s": [[88, 1, 1, "c.i32_gather_s", "axis"], [88, 1, 1, "c.i32_gather_s", "batch_dims"], [88, 1, 1, "c.i32_gather_s", "core_mask"], [88, 1, 1, "c.i32_gather_s", "indices"], [88, 1, 1, "c.i32_gather_s", "indices_ndim"], [88, 1, 1, "c.i32_gather_s", "indices_shape"], [88, 1, 1, "c.i32_gather_s", "input"], [88, 1, 1, "c.i32_gather_s", "input_ndim"], [88, 1, 1, "c.i32_gather_s", "input_shape"], [88, 1, 1, "c.i32_gather_s", "output"]], "i32_gatherd_p": [[90, 1, 1, "c.i32_gatherd_p", "dim"], [90, 1, 1, "c.i32_gatherd_p", "index"], [90, 1, 1, "c.i32_gatherd_p", "index_shape"], [90, 1, 1, "c.i32_gatherd_p", "input_shape"], [90, 1, 1, "c.i32_gatherd_p", "input_shape_size"], [90, 1, 1, "c.i32_gatherd_p", "input_x"], [90, 1, 1, "c.i32_gatherd_p", "output"]], "i32_gatherd_s": [[90, 1, 1, "c.i32_gatherd_s", "core_mask"], [90, 1, 1, "c.i32_gatherd_s", "dim"], [90, 1, 1, "c.i32_gatherd_s", "index"], [90, 1, 1, "c.i32_gatherd_s", "index_shape"], [90, 1, 1, "c.i32_gatherd_s", "input_shape"], [90, 1, 1, "c.i32_gatherd_s", "input_shape_size"], [90, 1, 1, "c.i32_gatherd_s", "input_x"], [90, 1, 1, "c.i32_gatherd_s", "output"]], "i32_greater_p": [[92, 1, 1, "c.i32_greater_p", "element_num"], [92, 1, 1, "c.i32_greater_p", "in_elements_num0"], [92, 1, 1, "c.i32_greater_p", "input1"], [92, 1, 1, "c.i32_greater_p", "input2"], [92, 1, 1, "c.i32_greater_p", "optimize"], [92, 1, 1, "c.i32_greater_p", "output"]], "i32_greater_s": [[92, 1, 1, "c.i32_greater_s", "core_mask"], [92, 1, 1, "c.i32_greater_s", "element_num"], [92, 1, 1, "c.i32_greater_s", "in_elements_num0"], [92, 1, 1, "c.i32_greater_s", "input1"], [92, 1, 1, "c.i32_greater_s", "input2"], [92, 1, 1, "c.i32_greater_s", "optimize"], [92, 1, 1, "c.i32_greater_s", "output"]], "i32_greaterequal_p": [[93, 1, 1, "c.i32_greaterequal_p", "element_num"], [93, 1, 1, "c.i32_greaterequal_p", "in_elements_num0"], [93, 1, 1, "c.i32_greaterequal_p", "input1"], [93, 1, 1, "c.i32_greaterequal_p", "input2"], [93, 1, 1, "c.i32_greaterequal_p", "optimize"], [93, 1, 1, "c.i32_greaterequal_p", "output"]], "i32_greaterequal_s": [[93, 1, 1, "c.i32_greaterequal_s", "core_mask"], [93, 1, 1, "c.i32_greaterequal_s", "element_num"], [93, 1, 1, "c.i32_greaterequal_s", "in_elements_num0"], [93, 1, 1, "c.i32_greaterequal_s", "input1"], [93, 1, 1, "c.i32_greaterequal_s", "input2"], [93, 1, 1, "c.i32_greaterequal_s", "optimize"], [93, 1, 1, "c.i32_greaterequal_s", "output"]], "i32_hashtablelookup_p": [[96, 1, 1, "c.i32_hashtablelookup_p", "hits_tensor"], [96, 1, 1, "c.i32_hashtablelookup_p", "input_size"], [96, 1, 1, "c.i32_hashtablelookup_p", "input_tensor"], [96, 1, 1, "c.i32_hashtablelookup_p", "keys_size"], [96, 1, 1, "c.i32_hashtablelookup_p", "keys_tensor"], [96, 1, 1, "c.i32_hashtablelookup_p", "output_tensor"], [96, 1, 1, "c.i32_hashtablelookup_p", "values_tensor"]], "i32_hashtablelookup_s": [[96, 1, 1, "c.i32_hashtablelookup_s", "core_mask"], [96, 1, 1, "c.i32_hashtablelookup_s", "hits_tensor"], [96, 1, 1, "c.i32_hashtablelookup_s", "input_size"], [96, 1, 1, "c.i32_hashtablelookup_s", "input_tensor"], [96, 1, 1, "c.i32_hashtablelookup_s", "keys_size"], [96, 1, 1, "c.i32_hashtablelookup_s", "keys_tensor"], [96, 1, 1, "c.i32_hashtablelookup_s", "output_tensor"], [96, 1, 1, "c.i32_hashtablelookup_s", "values_tensor"]], "i32_invertpermutation_p": [[98, 1, 1, "c.i32_invertpermutation_p", "input"], [98, 1, 1, "c.i32_invertpermutation_p", "num"], [98, 1, 1, "c.i32_invertpermutation_p", "output"]], "i32_invertpermutation_s": [[98, 1, 1, "c.i32_invertpermutation_s", "core_mask"], [98, 1, 1, "c.i32_invertpermutation_s", "input"], [98, 1, 1, "c.i32_invertpermutation_s", "num"], [98, 1, 1, "c.i32_invertpermutation_s", "output"]], "i32_isfinite_p": [[99, 1, 1, "c.i32_isfinite_p", "Input"], [99, 1, 1, "c.i32_isfinite_p", "length"], [99, 1, 1, "c.i32_isfinite_p", "output"]], "i32_isfinite_s": [[99, 1, 1, "c.i32_isfinite_s", "Input"], [99, 1, 1, "c.i32_isfinite_s", "core_mask"], [99, 1, 1, "c.i32_isfinite_s", "length"], [99, 1, 1, "c.i32_isfinite_s", "output"]], "i32_less_p": [[104, 1, 1, "c.i32_less_p", "Input0"], [104, 1, 1, "c.i32_less_p", "Input1"], [104, 1, 1, "c.i32_less_p", "in_elements_num0"], [104, 1, 1, "c.i32_less_p", "length"], [104, 1, 1, "c.i32_less_p", "optimize"], [104, 1, 1, "c.i32_less_p", "output"]], "i32_less_s": [[104, 1, 1, "c.i32_less_s", "Input0"], [104, 1, 1, "c.i32_less_s", "Input1"], [104, 1, 1, "c.i32_less_s", "core_mask"], [104, 1, 1, "c.i32_less_s", "in_elements_num0"], [104, 1, 1, "c.i32_less_s", "length"], [104, 1, 1, "c.i32_less_s", "optimize"], [104, 1, 1, "c.i32_less_s", "output"]], "i32_lessequal_p": [[105, 1, 1, "c.i32_lessequal_p", "Input0"], [105, 1, 1, "c.i32_lessequal_p", "Input1"], [105, 1, 1, "c.i32_lessequal_p", "in_elements_num0"], [105, 1, 1, "c.i32_lessequal_p", "length"], [105, 1, 1, "c.i32_lessequal_p", "optimize"], [105, 1, 1, "c.i32_lessequal_p", "output"]], "i32_lessequal_s": [[105, 1, 1, "c.i32_lessequal_s", "Input0"], [105, 1, 1, "c.i32_lessequal_s", "Input1"], [105, 1, 1, "c.i32_lessequal_s", "core_mask"], [105, 1, 1, "c.i32_lessequal_s", "in_elements_num0"], [105, 1, 1, "c.i32_lessequal_s", "length"], [105, 1, 1, "c.i32_lessequal_s", "optimize"], [105, 1, 1, "c.i32_lessequal_s", "output"]], "i32_log1p_p": [[108, 1, 1, "c.i32_log1p_p", "Input"], [108, 1, 1, "c.i32_log1p_p", "length"], [108, 1, 1, "c.i32_log1p_p", "output"]], "i32_log1p_s": [[108, 1, 1, "c.i32_log1p_s", "Input"], [108, 1, 1, "c.i32_log1p_s", "core_mask"], [108, 1, 1, "c.i32_log1p_s", "length"], [108, 1, 1, "c.i32_log1p_s", "output"]], "i32_log_p": [[107, 1, 1, "c.i32_log_p", "input"], [107, 1, 1, "c.i32_log_p", "length"], [107, 1, 1, "c.i32_log_p", "output"]], "i32_log_s": [[107, 1, 1, "c.i32_log_s", "core_mask"], [107, 1, 1, "c.i32_log_s", "input"], [107, 1, 1, "c.i32_log_s", "length"], [107, 1, 1, "c.i32_log_s", "output"]], "i32_logical_not_p": [[110, 1, 1, "c.i32_logical_not_p", "input"], [110, 1, 1, "c.i32_logical_not_p", "length"], [110, 1, 1, "c.i32_logical_not_p", "output"]], "i32_logical_not_s": [[110, 1, 1, "c.i32_logical_not_s", "core_mask"], [110, 1, 1, "c.i32_logical_not_s", "input"], [110, 1, 1, "c.i32_logical_not_s", "length"], [110, 1, 1, "c.i32_logical_not_s", "output"]], "i32_logical_or_p": [[111, 1, 1, "c.i32_logical_or_p", "input0"], [111, 1, 1, "c.i32_logical_or_p", "input1"], [111, 1, 1, "c.i32_logical_or_p", "length"], [111, 1, 1, "c.i32_logical_or_p", "output"]], "i32_logical_or_s": [[111, 1, 1, "c.i32_logical_or_s", "core_mask"], [111, 1, 1, "c.i32_logical_or_s", "input0"], [111, 1, 1, "c.i32_logical_or_s", "input1"], [111, 1, 1, "c.i32_logical_or_s", "length"], [111, 1, 1, "c.i32_logical_or_s", "output"]], "i32_lsh_projection_p": [[116, 1, 1, "c.i32_lsh_projection_p", "bits_per_hash"], [116, 1, 1, "c.i32_lsh_projection_p", "feature"], [116, 1, 1, "c.i32_lsh_projection_p", "feature_num"], [116, 1, 1, "c.i32_lsh_projection_p", "hash_group_num"], [116, 1, 1, "c.i32_lsh_projection_p", "hash_seed"], [116, 1, 1, "c.i32_lsh_projection_p", "output"], [116, 1, 1, "c.i32_lsh_projection_p", "weight"]], "i32_lsh_projection_s": [[116, 1, 1, "c.i32_lsh_projection_s", "bits_per_hash"], [116, 1, 1, "c.i32_lsh_projection_s", "core_mask"], [116, 1, 1, "c.i32_lsh_projection_s", "feature"], [116, 1, 1, "c.i32_lsh_projection_s", "feature_num"], [116, 1, 1, "c.i32_lsh_projection_s", "hash_group_num"], [116, 1, 1, "c.i32_lsh_projection_s", "hash_seed"], [116, 1, 1, "c.i32_lsh_projection_s", "output"], [116, 1, 1, "c.i32_lsh_projection_s", "weight"]], "i32_matmulfusion_p": [[121, 1, 1, "c.i32_matmulfusion_p", "A"], [121, 1, 1, "c.i32_matmulfusion_p", "B"], [121, 1, 1, "c.i32_matmulfusion_p", "C"], [121, 1, 1, "c.i32_matmulfusion_p", "K"], [121, 1, 1, "c.i32_matmulfusion_p", "M"], [121, 1, 1, "c.i32_matmulfusion_p", "N"], [121, 1, 1, "c.i32_matmulfusion_p", "activation_type"], [121, 1, 1, "c.i32_matmulfusion_p", "bias"]], "i32_matmulfusion_s": [[121, 1, 1, "c.i32_matmulfusion_s", "A"], [121, 1, 1, "c.i32_matmulfusion_s", "B"], [121, 1, 1, "c.i32_matmulfusion_s", "C"], [121, 1, 1, "c.i32_matmulfusion_s", "K"], [121, 1, 1, "c.i32_matmulfusion_s", "M"], [121, 1, 1, "c.i32_matmulfusion_s", "N"], [121, 1, 1, "c.i32_matmulfusion_s", "activation_type"], [121, 1, 1, "c.i32_matmulfusion_s", "bias"], [121, 1, 1, "c.i32_matmulfusion_s", "core_mask"]], "i32_maximum_p": [[122, 1, 1, "c.i32_maximum_p", "input0"], [122, 1, 1, "c.i32_maximum_p", "input1"], [122, 1, 1, "c.i32_maximum_p", "length"], [122, 1, 1, "c.i32_maximum_p", "output"]], "i32_maximum_s": [[122, 1, 1, "c.i32_maximum_s", "core_mask"], [122, 1, 1, "c.i32_maximum_s", "input0"], [122, 1, 1, "c.i32_maximum_s", "input1"], [122, 1, 1, "c.i32_maximum_s", "length"], [122, 1, 1, "c.i32_maximum_s", "output"]], "i32_minimum_p": [[127, 1, 1, "c.i32_minimum_p", "input0"], [127, 1, 1, "c.i32_minimum_p", "input1"], [127, 1, 1, "c.i32_minimum_p", "length"], [127, 1, 1, "c.i32_minimum_p", "output"]], "i32_minimum_s": [[127, 1, 1, "c.i32_minimum_s", "core_mask"], [127, 1, 1, "c.i32_minimum_s", "input0"], [127, 1, 1, "c.i32_minimum_s", "input1"], [127, 1, 1, "c.i32_minimum_s", "length"], [127, 1, 1, "c.i32_minimum_s", "output"]], "i32_mod_p": [[129, 1, 1, "c.i32_mod_p", "input0"], [129, 1, 1, "c.i32_mod_p", "input1"], [129, 1, 1, "c.i32_mod_p", "length"], [129, 1, 1, "c.i32_mod_p", "output"]], "i32_mod_s": [[129, 1, 1, "c.i32_mod_s", "core_mask"], [129, 1, 1, "c.i32_mod_s", "input0"], [129, 1, 1, "c.i32_mod_s", "input1"], [129, 1, 1, "c.i32_mod_s", "length"], [129, 1, 1, "c.i32_mod_s", "output"]], "i32_mul_p": [[130, 1, 1, "c.i32_mul_p", "input0"], [130, 1, 1, "c.i32_mul_p", "input1"], [130, 1, 1, "c.i32_mul_p", "length"], [130, 1, 1, "c.i32_mul_p", "output"]], "i32_mul_s": [[130, 1, 1, "c.i32_mul_s", "core_mask"], [130, 1, 1, "c.i32_mul_s", "input0"], [130, 1, 1, "c.i32_mul_s", "input1"], [130, 1, 1, "c.i32_mul_s", "length"], [130, 1, 1, "c.i32_mul_s", "output"]], "i32_neg_grad_p": [[133, 1, 1, "c.i32_neg_grad_p", "Input"], [133, 1, 1, "c.i32_neg_grad_p", "length"], [133, 1, 1, "c.i32_neg_grad_p", "output"]], "i32_neg_grad_s": [[133, 1, 1, "c.i32_neg_grad_s", "Input"], [133, 1, 1, "c.i32_neg_grad_s", "core_mask"], [133, 1, 1, "c.i32_neg_grad_s", "length"], [133, 1, 1, "c.i32_neg_grad_s", "output"]], "i32_neg_p": [[132, 1, 1, "c.i32_neg_p", "Input"], [132, 1, 1, "c.i32_neg_p", "length"], [132, 1, 1, "c.i32_neg_p", "output"]], "i32_neg_s": [[132, 1, 1, "c.i32_neg_s", "Input"], [132, 1, 1, "c.i32_neg_s", "core_mask"], [132, 1, 1, "c.i32_neg_s", "length"], [132, 1, 1, "c.i32_neg_s", "output"]], "i32_nonzero_p": [[137, 1, 1, "c.i32_nonzero_p", "dim_strides"], [137, 1, 1, "c.i32_nonzero_p", "input"], [137, 1, 1, "c.i32_nonzero_p", "input_rank"], [137, 1, 1, "c.i32_nonzero_p", "length"], [137, 1, 1, "c.i32_nonzero_p", "non_zero_num"], [137, 1, 1, "c.i32_nonzero_p", "output"], [137, 1, 1, "c.i32_nonzero_p", "shape"]], "i32_nonzero_s": [[137, 1, 1, "c.i32_nonzero_s", "core_mask"], [137, 1, 1, "c.i32_nonzero_s", "dim_strides"], [137, 1, 1, "c.i32_nonzero_s", "input"], [137, 1, 1, "c.i32_nonzero_s", "input_rank"], [137, 1, 1, "c.i32_nonzero_s", "length"], [137, 1, 1, "c.i32_nonzero_s", "non_zero_num"], [137, 1, 1, "c.i32_nonzero_s", "output"], [137, 1, 1, "c.i32_nonzero_s", "shape"]], "i32_not_equal_p": [[138, 1, 1, "c.i32_not_equal_p", "Input0"], [138, 1, 1, "c.i32_not_equal_p", "Input1"], [138, 1, 1, "c.i32_not_equal_p", "length"], [138, 1, 1, "c.i32_not_equal_p", "output"]], "i32_not_equal_s": [[138, 1, 1, "c.i32_not_equal_s", "Input0"], [138, 1, 1, "c.i32_not_equal_s", "Input1"], [138, 1, 1, "c.i32_not_equal_s", "core_mask"], [138, 1, 1, "c.i32_not_equal_s", "length"], [138, 1, 1, "c.i32_not_equal_s", "output"]], "i32_onehot_p": [[139, 1, 1, "c.i32_onehot_p", "axis"], [139, 1, 1, "c.i32_onehot_p", "depth"], [139, 1, 1, "c.i32_onehot_p", "indices"], [139, 1, 1, "c.i32_onehot_p", "indices_shape"], [139, 1, 1, "c.i32_onehot_p", "indices_shape_size"], [139, 1, 1, "c.i32_onehot_p", "on_off"], [139, 1, 1, "c.i32_onehot_p", "output"], [139, 1, 1, "c.i32_onehot_p", "support_neg_index"]], "i32_onehot_s": [[139, 1, 1, "c.i32_onehot_s", "axis"], [139, 1, 1, "c.i32_onehot_s", "core_mask"], [139, 1, 1, "c.i32_onehot_s", "depth"], [139, 1, 1, "c.i32_onehot_s", "indices"], [139, 1, 1, "c.i32_onehot_s", "indices_shape"], [139, 1, 1, "c.i32_onehot_s", "indices_shape_size"], [139, 1, 1, "c.i32_onehot_s", "on_off"], [139, 1, 1, "c.i32_onehot_s", "output"], [139, 1, 1, "c.i32_onehot_s", "support_neg_index"]], "i32_ones_like_p": [[140, 1, 1, "c.i32_ones_like_p", "length"], [140, 1, 1, "c.i32_ones_like_p", "output"]], "i32_ones_like_s": [[140, 1, 1, "c.i32_ones_like_s", "core_mask"], [140, 1, 1, "c.i32_ones_like_s", "length"], [140, 1, 1, "c.i32_ones_like_s", "output"]], "i32_padfusion_p": [[141, 1, 1, "c.i32_padfusion_p", "params"]], "i32_padfusion_s": [[141, 1, 1, "c.i32_padfusion_s", "core_mask"], [141, 1, 1, "c.i32_padfusion_s", "params"]], "i32_pow_fusion_p": [[142, 1, 1, "c.i32_pow_fusion_p", "Input"], [142, 1, 1, "c.i32_pow_fusion_p", "broadcast"], [142, 1, 1, "c.i32_pow_fusion_p", "exponent"], [142, 1, 1, "c.i32_pow_fusion_p", "length_in"], [142, 1, 1, "c.i32_pow_fusion_p", "output"], [142, 1, 1, "c.i32_pow_fusion_p", "scale"], [142, 1, 1, "c.i32_pow_fusion_p", "shift"]], "i32_pow_fusion_s": [[142, 1, 1, "c.i32_pow_fusion_s", "Input"], [142, 1, 1, "c.i32_pow_fusion_s", "broadcast"], [142, 1, 1, "c.i32_pow_fusion_s", "core_mask"], [142, 1, 1, "c.i32_pow_fusion_s", "exponent"], [142, 1, 1, "c.i32_pow_fusion_s", "length_in"], [142, 1, 1, "c.i32_pow_fusion_s", "output"], [142, 1, 1, "c.i32_pow_fusion_s", "scale"], [142, 1, 1, "c.i32_pow_fusion_s", "shift"]], "i32_raggedrange_p": [[147, 1, 1, "c.i32_raggedrange_p", "deltas"], [147, 1, 1, "c.i32_raggedrange_p", "limits"], [147, 1, 1, "c.i32_raggedrange_p", "range_count"], [147, 1, 1, "c.i32_raggedrange_p", "splits"], [147, 1, 1, "c.i32_raggedrange_p", "starts"], [147, 1, 1, "c.i32_raggedrange_p", "values"]], "i32_raggedrange_s": [[147, 1, 1, "c.i32_raggedrange_s", "core_mask"], [147, 1, 1, "c.i32_raggedrange_s", "deltas"], [147, 1, 1, "c.i32_raggedrange_s", "limits"], [147, 1, 1, "c.i32_raggedrange_s", "range_count"], [147, 1, 1, "c.i32_raggedrange_s", "splits"], [147, 1, 1, "c.i32_raggedrange_s", "starts"], [147, 1, 1, "c.i32_raggedrange_s", "values"]], "i32_range_p": [[150, 1, 1, "c.i32_range_p", "delta"], [150, 1, 1, "c.i32_range_p", "length"], [150, 1, 1, "c.i32_range_p", "output"], [150, 1, 1, "c.i32_range_p", "start"]], "i32_range_s": [[150, 1, 1, "c.i32_range_s", "core_mask"], [150, 1, 1, "c.i32_range_s", "delta"], [150, 1, 1, "c.i32_range_s", "length"], [150, 1, 1, "c.i32_range_s", "output"], [150, 1, 1, "c.i32_range_s", "start"]], "i32_real_div_p": [[152, 1, 1, "c.i32_real_div_p", "input0"], [152, 1, 1, "c.i32_real_div_p", "input1"], [152, 1, 1, "c.i32_real_div_p", "length"], [152, 1, 1, "c.i32_real_div_p", "output"]], "i32_real_div_s": [[152, 1, 1, "c.i32_real_div_s", "core_mask"], [152, 1, 1, "c.i32_real_div_s", "input0"], [152, 1, 1, "c.i32_real_div_s", "input1"], [152, 1, 1, "c.i32_real_div_s", "length"], [152, 1, 1, "c.i32_real_div_s", "output"]], "i32_reciprocal_p": [[153, 1, 1, "c.i32_reciprocal_p", "Input"], [153, 1, 1, "c.i32_reciprocal_p", "length"], [153, 1, 1, "c.i32_reciprocal_p", "output"]], "i32_reciprocal_s": [[153, 1, 1, "c.i32_reciprocal_s", "Input"], [153, 1, 1, "c.i32_reciprocal_s", "core_mask"], [153, 1, 1, "c.i32_reciprocal_s", "length"], [153, 1, 1, "c.i32_reciprocal_s", "output"]], "i32_reduce_p": [[154, 1, 1, "c.i32_reduce_p", "core_mask"], [154, 1, 1, "c.i32_reduce_p", "dst_data"], [154, 1, 1, "c.i32_reduce_p", "param"], [154, 1, 1, "c.i32_reduce_p", "src_data"], [154, 1, 1, "c.i32_reduce_p", "tmp_dst_data"], [154, 1, 1, "c.i32_reduce_p", "tmp_src_data"]], "i32_reduce_s": [[154, 1, 1, "c.i32_reduce_s", "core_mask"], [154, 1, 1, "c.i32_reduce_s", "dst_data"], [154, 1, 1, "c.i32_reduce_s", "param"], [154, 1, 1, "c.i32_reduce_s", "src_data"]], "i32_reduceall_p": [[21, 1, 1, "c.i32_reduceall_p", "axis_size"], [21, 1, 1, "c.i32_reduceall_p", "dst_data"], [21, 1, 1, "c.i32_reduceall_p", "inner_size"], [21, 1, 1, "c.i32_reduceall_p", "outer_size"], [21, 1, 1, "c.i32_reduceall_p", "src_data"]], "i32_reduceall_s": [[21, 1, 1, "c.i32_reduceall_s", "axis_size"], [21, 1, 1, "c.i32_reduceall_s", "core_mask"], [21, 1, 1, "c.i32_reduceall_s", "dst_data"], [21, 1, 1, "c.i32_reduceall_s", "inner_size"], [21, 1, 1, "c.i32_reduceall_s", "outer_size"], [21, 1, 1, "c.i32_reduceall_s", "src_data"]], "i32_reducescatter_p": [[155, 1, 1, "c.i32_reducescatter_p", "data_size"], [155, 1, 1, "c.i32_reducescatter_p", "input_data"], [155, 1, 1, "c.i32_reducescatter_p", "output_data"], [155, 1, 1, "c.i32_reducescatter_p", "reduce_type"]], "i32_reducescatter_s": [[155, 1, 1, "c.i32_reducescatter_s", "core_mask"], [155, 1, 1, "c.i32_reducescatter_s", "data_size"], [155, 1, 1, "c.i32_reducescatter_s", "input_data"], [155, 1, 1, "c.i32_reducescatter_s", "output_data"], [155, 1, 1, "c.i32_reducescatter_s", "reduce_type"]], "i32_reshape_p": [[156, 1, 1, "c.i32_reshape_p", "input"], [156, 1, 1, "c.i32_reshape_p", "length"], [156, 1, 1, "c.i32_reshape_p", "output"]], "i32_reshape_s": [[156, 1, 1, "c.i32_reshape_s", "core_mask"], [156, 1, 1, "c.i32_reshape_s", "input"], [156, 1, 1, "c.i32_reshape_s", "length"], [156, 1, 1, "c.i32_reshape_s", "output"]], "i32_rsqrt_p": [[164, 1, 1, "c.i32_rsqrt_p", "dst"], [164, 1, 1, "c.i32_rsqrt_p", "length"], [164, 1, 1, "c.i32_rsqrt_p", "src"]], "i32_rsqrt_s": [[164, 1, 1, "c.i32_rsqrt_s", "core_mask"], [164, 1, 1, "c.i32_rsqrt_s", "dst"], [164, 1, 1, "c.i32_rsqrt_s", "length"], [164, 1, 1, "c.i32_rsqrt_s", "src"]], "i32_scalefusion_p": [[166, 1, 1, "c.i32_scalefusion_p", "bias"], [166, 1, 1, "c.i32_scalefusion_p", "dst_data"], [166, 1, 1, "c.i32_scalefusion_p", "length"], [166, 1, 1, "c.i32_scalefusion_p", "scale"], [166, 1, 1, "c.i32_scalefusion_p", "src_data"]], "i32_scalefusion_s": [[166, 1, 1, "c.i32_scalefusion_s", "bias"], [166, 1, 1, "c.i32_scalefusion_s", "core_mask"], [166, 1, 1, "c.i32_scalefusion_s", "dst_data"], [166, 1, 1, "c.i32_scalefusion_s", "length"], [166, 1, 1, "c.i32_scalefusion_s", "scale"], [166, 1, 1, "c.i32_scalefusion_s", "src_data"]], "i32_scatter_elements_p": [[167, 1, 1, "c.i32_scatter_elements_p", "core_mask"], [167, 1, 1, "c.i32_scatter_elements_p", "indices"], [167, 1, 1, "c.i32_scatter_elements_p", "input"], [167, 1, 1, "c.i32_scatter_elements_p", "output"], [167, 1, 1, "c.i32_scatter_elements_p", "param"], [167, 1, 1, "c.i32_scatter_elements_p", "updates"]], "i32_scatter_elements_s": [[167, 1, 1, "c.i32_scatter_elements_s", "core_mask"], [167, 1, 1, "c.i32_scatter_elements_s", "indices"], [167, 1, 1, "c.i32_scatter_elements_s", "input"], [167, 1, 1, "c.i32_scatter_elements_s", "output"], [167, 1, 1, "c.i32_scatter_elements_s", "param"], [167, 1, 1, "c.i32_scatter_elements_s", "updates"]], "i32_scatter_nd_p": [[168, 1, 1, "c.i32_scatter_nd_p", "indices"], [168, 1, 1, "c.i32_scatter_nd_p", "indices_ndim"], [168, 1, 1, "c.i32_scatter_nd_p", "indices_shape"], [168, 1, 1, "c.i32_scatter_nd_p", "output"], [168, 1, 1, "c.i32_scatter_nd_p", "output_ndim"], [168, 1, 1, "c.i32_scatter_nd_p", "output_shape"], [168, 1, 1, "c.i32_scatter_nd_p", "updates"]], "i32_scatter_nd_s": [[168, 1, 1, "c.i32_scatter_nd_s", "core_mask"], [168, 1, 1, "c.i32_scatter_nd_s", "indices"], [168, 1, 1, "c.i32_scatter_nd_s", "indices_ndim"], [168, 1, 1, "c.i32_scatter_nd_s", "indices_shape"], [168, 1, 1, "c.i32_scatter_nd_s", "output"], [168, 1, 1, "c.i32_scatter_nd_s", "output_ndim"], [168, 1, 1, "c.i32_scatter_nd_s", "output_shape"], [168, 1, 1, "c.i32_scatter_nd_s", "updates"]], "i32_scatter_nd_update_p": [[169, 1, 1, "c.i32_scatter_nd_update_p", "indices"], [169, 1, 1, "c.i32_scatter_nd_update_p", "indices_ndim"], [169, 1, 1, "c.i32_scatter_nd_update_p", "indices_shape"], [169, 1, 1, "c.i32_scatter_nd_update_p", "output"], [169, 1, 1, "c.i32_scatter_nd_update_p", "output_ndim"], [169, 1, 1, "c.i32_scatter_nd_update_p", "output_shape"], [169, 1, 1, "c.i32_scatter_nd_update_p", "updates"]], "i32_scatter_nd_update_s": [[169, 1, 1, "c.i32_scatter_nd_update_s", "core_mask"], [169, 1, 1, "c.i32_scatter_nd_update_s", "indices"], [169, 1, 1, "c.i32_scatter_nd_update_s", "indices_ndim"], [169, 1, 1, "c.i32_scatter_nd_update_s", "indices_shape"], [169, 1, 1, "c.i32_scatter_nd_update_s", "output"], [169, 1, 1, "c.i32_scatter_nd_update_s", "output_ndim"], [169, 1, 1, "c.i32_scatter_nd_update_s", "output_shape"], [169, 1, 1, "c.i32_scatter_nd_update_s", "updates"]], "i32_select_p": [[170, 1, 1, "c.i32_select_p", "condition"], [170, 1, 1, "c.i32_select_p", "index_list1"], [170, 1, 1, "c.i32_select_p", "index_list2"], [170, 1, 1, "c.i32_select_p", "index_list3"], [170, 1, 1, "c.i32_select_p", "input0"], [170, 1, 1, "c.i32_select_p", "input1"], [170, 1, 1, "c.i32_select_p", "is_broadcast"], [170, 1, 1, "c.i32_select_p", "output"], [170, 1, 1, "c.i32_select_p", "output_dims"], [170, 1, 1, "c.i32_select_p", "output_dims_num"]], "i32_select_s": [[170, 1, 1, "c.i32_select_s", "condition"], [170, 1, 1, "c.i32_select_s", "core_mask"], [170, 1, 1, "c.i32_select_s", "index_list1"], [170, 1, 1, "c.i32_select_s", "index_list2"], [170, 1, 1, "c.i32_select_s", "index_list3"], [170, 1, 1, "c.i32_select_s", "input0"], [170, 1, 1, "c.i32_select_s", "input1"], [170, 1, 1, "c.i32_select_s", "is_broadcast"], [170, 1, 1, "c.i32_select_s", "output"], [170, 1, 1, "c.i32_select_s", "output_dims"], [170, 1, 1, "c.i32_select_s", "output_dims_num"]], "i32_sin_p": [[175, 1, 1, "c.i32_sin_p", "dst_data"], [175, 1, 1, "c.i32_sin_p", "length"], [175, 1, 1, "c.i32_sin_p", "src_data"]], "i32_sin_s": [[175, 1, 1, "c.i32_sin_s", "core_mask"], [175, 1, 1, "c.i32_sin_s", "dst_data"], [175, 1, 1, "c.i32_sin_s", "length"], [175, 1, 1, "c.i32_sin_s", "src_data"]], "i32_slice_p": [[178, 1, 1, "c.i32_slice_p", "begin"], [178, 1, 1, "c.i32_slice_p", "input"], [178, 1, 1, "c.i32_slice_p", "input_shape"], [178, 1, 1, "c.i32_slice_p", "ndim"], [178, 1, 1, "c.i32_slice_p", "output"], [178, 1, 1, "c.i32_slice_p", "size"]], "i32_slice_s": [[178, 1, 1, "c.i32_slice_s", "begin"], [178, 1, 1, "c.i32_slice_s", "core_mask"], [178, 1, 1, "c.i32_slice_s", "input"], [178, 1, 1, "c.i32_slice_s", "input_shape"], [178, 1, 1, "c.i32_slice_s", "ndim"], [178, 1, 1, "c.i32_slice_s", "output"], [178, 1, 1, "c.i32_slice_s", "size"]], "i32_spacetobatch_p": [[183, 1, 1, "c.i32_spacetobatch_p", "block_size"], [183, 1, 1, "c.i32_spacetobatch_p", "data_size"], [183, 1, 1, "c.i32_spacetobatch_p", "input"], [183, 1, 1, "c.i32_spacetobatch_p", "input_shape"], [183, 1, 1, "c.i32_spacetobatch_p", "output"], [183, 1, 1, "c.i32_spacetobatch_p", "paddings"]], "i32_spacetobatch_s": [[183, 1, 1, "c.i32_spacetobatch_s", "block_size"], [183, 1, 1, "c.i32_spacetobatch_s", "core_mask"], [183, 1, 1, "c.i32_spacetobatch_s", "data_size"], [183, 1, 1, "c.i32_spacetobatch_s", "input"], [183, 1, 1, "c.i32_spacetobatch_s", "input_shape"], [183, 1, 1, "c.i32_spacetobatch_s", "output"], [183, 1, 1, "c.i32_spacetobatch_s", "paddings"]], "i32_spacetobatchnd_p": [[184, 1, 1, "c.i32_spacetobatchnd_p", "block_size"], [184, 1, 1, "c.i32_spacetobatchnd_p", "data_size"], [184, 1, 1, "c.i32_spacetobatchnd_p", "input"], [184, 1, 1, "c.i32_spacetobatchnd_p", "input_shape"], [184, 1, 1, "c.i32_spacetobatchnd_p", "output"], [184, 1, 1, "c.i32_spacetobatchnd_p", "paddings"]], "i32_spacetobatchnd_s": [[184, 1, 1, "c.i32_spacetobatchnd_s", "block_size"], [184, 1, 1, "c.i32_spacetobatchnd_s", "core_mask"], [184, 1, 1, "c.i32_spacetobatchnd_s", "data_size"], [184, 1, 1, "c.i32_spacetobatchnd_s", "input"], [184, 1, 1, "c.i32_spacetobatchnd_s", "input_shape"], [184, 1, 1, "c.i32_spacetobatchnd_s", "output"], [184, 1, 1, "c.i32_spacetobatchnd_s", "paddings"]], "i32_spacetodepth_p": [[185, 1, 1, "c.i32_spacetodepth_p", "block"], [185, 1, 1, "c.i32_spacetodepth_p", "data_size"], [185, 1, 1, "c.i32_spacetodepth_p", "in_shape"], [185, 1, 1, "c.i32_spacetodepth_p", "input"], [185, 1, 1, "c.i32_spacetodepth_p", "output"]], "i32_spacetodepth_s": [[185, 1, 1, "c.i32_spacetodepth_s", "block"], [185, 1, 1, "c.i32_spacetodepth_s", "core_mask"], [185, 1, 1, "c.i32_spacetodepth_s", "data_size"], [185, 1, 1, "c.i32_spacetodepth_s", "in_shape"], [185, 1, 1, "c.i32_spacetodepth_s", "input"], [185, 1, 1, "c.i32_spacetodepth_s", "output"]], "i32_sparsefillemptyrows_p": [[187, 1, 1, "c.i32_sparsefillemptyrows_p", "N"], [187, 1, 1, "c.i32_sparsefillemptyrows_p", "default_value"], [187, 1, 1, "c.i32_sparsefillemptyrows_p", "dense_rows"], [187, 1, 1, "c.i32_sparsefillemptyrows_p", "filled_count"], [187, 1, 1, "c.i32_sparsefillemptyrows_p", "indices_ptr"], [187, 1, 1, "c.i32_sparsefillemptyrows_p", "output_reverse_index_map_ptr"], [187, 1, 1, "c.i32_sparsefillemptyrows_p", "output_y_indices_ptr"], [187, 1, 1, "c.i32_sparsefillemptyrows_p", "output_y_values_ptr"], [187, 1, 1, "c.i32_sparsefillemptyrows_p", "rank"], [187, 1, 1, "c.i32_sparsefillemptyrows_p", "scratch_ptr"], [187, 1, 1, "c.i32_sparsefillemptyrows_p", "values_ptr"]], "i32_sparsefillemptyrows_s": [[187, 1, 1, "c.i32_sparsefillemptyrows_s", "N"], [187, 1, 1, "c.i32_sparsefillemptyrows_s", "core_mask"], [187, 1, 1, "c.i32_sparsefillemptyrows_s", "default_value"], [187, 1, 1, "c.i32_sparsefillemptyrows_s", "dense_rows"], [187, 1, 1, "c.i32_sparsefillemptyrows_s", "filled_count"], [187, 1, 1, "c.i32_sparsefillemptyrows_s", "indices_ptr"], [187, 1, 1, "c.i32_sparsefillemptyrows_s", "output_reverse_index_map_ptr"], [187, 1, 1, "c.i32_sparsefillemptyrows_s", "output_y_indices_ptr"], [187, 1, 1, "c.i32_sparsefillemptyrows_s", "output_y_values_ptr"], [187, 1, 1, "c.i32_sparsefillemptyrows_s", "rank"], [187, 1, 1, "c.i32_sparsefillemptyrows_s", "scratch_ptr"], [187, 1, 1, "c.i32_sparsefillemptyrows_s", "values_ptr"]], "i32_sparsesegmentsum_p": [[189, 1, 1, "c.i32_sparsesegmentsum_p", "in_data"], [189, 1, 1, "c.i32_sparsesegmentsum_p", "in_data_shape"], [189, 1, 1, "c.i32_sparsesegmentsum_p", "in_data_shape_size"], [189, 1, 1, "c.i32_sparsesegmentsum_p", "in_indices"], [189, 1, 1, "c.i32_sparsesegmentsum_p", "in_indices_size"], [189, 1, 1, "c.i32_sparsesegmentsum_p", "in_segment_ids"], [189, 1, 1, "c.i32_sparsesegmentsum_p", "out_data"], [189, 1, 1, "c.i32_sparsesegmentsum_p", "out_data_shape"]], "i32_sparsesegmentsum_s": [[189, 1, 1, "c.i32_sparsesegmentsum_s", "core_mask"], [189, 1, 1, "c.i32_sparsesegmentsum_s", "in_data"], [189, 1, 1, "c.i32_sparsesegmentsum_s", "in_data_shape"], [189, 1, 1, "c.i32_sparsesegmentsum_s", "in_data_shape_size"], [189, 1, 1, "c.i32_sparsesegmentsum_s", "in_indices"], [189, 1, 1, "c.i32_sparsesegmentsum_s", "in_indices_size"], [189, 1, 1, "c.i32_sparsesegmentsum_s", "in_segment_ids"], [189, 1, 1, "c.i32_sparsesegmentsum_s", "out_data"], [189, 1, 1, "c.i32_sparsesegmentsum_s", "out_data_shape"]], "i32_sparsetodense_p": [[190, 1, 1, "c.i32_sparsetodense_p", "indices_vec"], [190, 1, 1, "c.i32_sparsetodense_p", "is_scalar"], [190, 1, 1, "c.i32_sparsetodense_p", "output"], [190, 1, 1, "c.i32_sparsetodense_p", "output_strides"], [190, 1, 1, "c.i32_sparsetodense_p", "sparse_length"], [190, 1, 1, "c.i32_sparsetodense_p", "sparse_values"]], "i32_sparsetodense_s": [[190, 1, 1, "c.i32_sparsetodense_s", "core_mask"], [190, 1, 1, "c.i32_sparsetodense_s", "indices_vec"], [190, 1, 1, "c.i32_sparsetodense_s", "is_scalar"], [190, 1, 1, "c.i32_sparsetodense_s", "output"], [190, 1, 1, "c.i32_sparsetodense_s", "output_strides"], [190, 1, 1, "c.i32_sparsetodense_s", "sparse_length"], [190, 1, 1, "c.i32_sparsetodense_s", "sparse_values"]], "i32_splice_p": [[191, 1, 1, "c.i32_splice_p", "context_dim"], [191, 1, 1, "c.i32_splice_p", "dst_col"], [191, 1, 1, "c.i32_splice_p", "dst_data"], [191, 1, 1, "c.i32_splice_p", "dst_row"], [191, 1, 1, "c.i32_splice_p", "forward_indexes"], [191, 1, 1, "c.i32_splice_p", "forward_indexes_dims"], [191, 1, 1, "c.i32_splice_p", "src_col"], [191, 1, 1, "c.i32_splice_p", "src_data"], [191, 1, 1, "c.i32_splice_p", "src_row"]], "i32_splice_s": [[191, 1, 1, "c.i32_splice_s", "context_dim"], [191, 1, 1, "c.i32_splice_s", "core_mask"], [191, 1, 1, "c.i32_splice_s", "dst_col"], [191, 1, 1, "c.i32_splice_s", "dst_data"], [191, 1, 1, "c.i32_splice_s", "dst_row"], [191, 1, 1, "c.i32_splice_s", "forward_indexes"], [191, 1, 1, "c.i32_splice_s", "forward_indexes_dims"], [191, 1, 1, "c.i32_splice_s", "src_col"], [191, 1, 1, "c.i32_splice_s", "src_data"], [191, 1, 1, "c.i32_splice_s", "src_row"]], "i32_split_p": [[192, 1, 1, "c.i32_split_p", "axis"], [192, 1, 1, "c.i32_split_p", "input"], [192, 1, 1, "c.i32_split_p", "input_ndim"], [192, 1, 1, "c.i32_split_p", "input_shape"], [192, 1, 1, "c.i32_split_p", "num_split"], [192, 1, 1, "c.i32_split_p", "outputs"], [192, 1, 1, "c.i32_split_p", "split_sizes"]], "i32_split_s": [[192, 1, 1, "c.i32_split_s", "axis"], [192, 1, 1, "c.i32_split_s", "core_mask"], [192, 1, 1, "c.i32_split_s", "input"], [192, 1, 1, "c.i32_split_s", "input_ndim"], [192, 1, 1, "c.i32_split_s", "input_shape"], [192, 1, 1, "c.i32_split_s", "num_split"], [192, 1, 1, "c.i32_split_s", "outputs"], [192, 1, 1, "c.i32_split_s", "split_sizes"]], "i32_split_with_overlap_p": [[193, 1, 1, "c.i32_split_with_overlap_p", "axis"], [193, 1, 1, "c.i32_split_with_overlap_p", "end_indices"], [193, 1, 1, "c.i32_split_with_overlap_p", "input"], [193, 1, 1, "c.i32_split_with_overlap_p", "input_ndim"], [193, 1, 1, "c.i32_split_with_overlap_p", "input_shape"], [193, 1, 1, "c.i32_split_with_overlap_p", "num_split"], [193, 1, 1, "c.i32_split_with_overlap_p", "outputs"], [193, 1, 1, "c.i32_split_with_overlap_p", "start_indices"]], "i32_split_with_overlap_s": [[193, 1, 1, "c.i32_split_with_overlap_s", "axis"], [193, 1, 1, "c.i32_split_with_overlap_s", "core_mask"], [193, 1, 1, "c.i32_split_with_overlap_s", "end_indices"], [193, 1, 1, "c.i32_split_with_overlap_s", "input"], [193, 1, 1, "c.i32_split_with_overlap_s", "input_ndim"], [193, 1, 1, "c.i32_split_with_overlap_s", "input_shape"], [193, 1, 1, "c.i32_split_with_overlap_s", "num_split"], [193, 1, 1, "c.i32_split_with_overlap_s", "outputs"], [193, 1, 1, "c.i32_split_with_overlap_s", "start_indices"]], "i32_sqrt_p": [[194, 1, 1, "c.i32_sqrt_p", "dst_data"], [194, 1, 1, "c.i32_sqrt_p", "length"], [194, 1, 1, "c.i32_sqrt_p", "src_data"]], "i32_sqrt_s": [[194, 1, 1, "c.i32_sqrt_s", "core_mask"], [194, 1, 1, "c.i32_sqrt_s", "dst_data"], [194, 1, 1, "c.i32_sqrt_s", "length"], [194, 1, 1, "c.i32_sqrt_s", "src_data"]], "i32_sqrtgrad_p": [[195, 1, 1, "c.i32_sqrtgrad_p", "input1"], [195, 1, 1, "c.i32_sqrtgrad_p", "input2"], [195, 1, 1, "c.i32_sqrtgrad_p", "output"], [195, 1, 1, "c.i32_sqrtgrad_p", "size"]], "i32_sqrtgrad_s": [[195, 1, 1, "c.i32_sqrtgrad_s", "core_mask"], [195, 1, 1, "c.i32_sqrtgrad_s", "input1"], [195, 1, 1, "c.i32_sqrtgrad_s", "input2"], [195, 1, 1, "c.i32_sqrtgrad_s", "output"], [195, 1, 1, "c.i32_sqrtgrad_s", "size"]], "i32_square_p": [[196, 1, 1, "c.i32_square_p", "dst"], [196, 1, 1, "c.i32_square_p", "length"], [196, 1, 1, "c.i32_square_p", "src"]], "i32_square_s": [[196, 1, 1, "c.i32_square_s", "core_mask"], [196, 1, 1, "c.i32_square_s", "dst"], [196, 1, 1, "c.i32_square_s", "length"], [196, 1, 1, "c.i32_square_s", "src"]], "i32_squaredifference_p": [[197, 1, 1, "c.i32_squaredifference_p", "input0"], [197, 1, 1, "c.i32_squaredifference_p", "input1"], [197, 1, 1, "c.i32_squaredifference_p", "length"], [197, 1, 1, "c.i32_squaredifference_p", "output"]], "i32_squaredifference_s": [[197, 1, 1, "c.i32_squaredifference_s", "core_mask"], [197, 1, 1, "c.i32_squaredifference_s", "input0"], [197, 1, 1, "c.i32_squaredifference_s", "input1"], [197, 1, 1, "c.i32_squaredifference_s", "length"], [197, 1, 1, "c.i32_squaredifference_s", "output"]], "i32_stack_p": [[199, 1, 1, "c.i32_stack_p", "axis"], [199, 1, 1, "c.i32_stack_p", "input_ndim"], [199, 1, 1, "c.i32_stack_p", "input_shape"], [199, 1, 1, "c.i32_stack_p", "inputs"], [199, 1, 1, "c.i32_stack_p", "num_inputs"], [199, 1, 1, "c.i32_stack_p", "output"]], "i32_stack_s": [[199, 1, 1, "c.i32_stack_s", "axis"], [199, 1, 1, "c.i32_stack_s", "core_mask"], [199, 1, 1, "c.i32_stack_s", "input_ndim"], [199, 1, 1, "c.i32_stack_s", "input_shape"], [199, 1, 1, "c.i32_stack_s", "inputs"], [199, 1, 1, "c.i32_stack_s", "num_inputs"], [199, 1, 1, "c.i32_stack_s", "output"]], "i32_subrelu6_p": [[202, 1, 1, "c.i32_subrelu6_p", "input0"], [202, 1, 1, "c.i32_subrelu6_p", "input1"], [202, 1, 1, "c.i32_subrelu6_p", "output"], [202, 1, 1, "c.i32_subrelu6_p", "size"]], "i32_subrelu6_s": [[202, 1, 1, "c.i32_subrelu6_s", "core_mask"], [202, 1, 1, "c.i32_subrelu6_s", "input0"], [202, 1, 1, "c.i32_subrelu6_s", "input1"], [202, 1, 1, "c.i32_subrelu6_s", "output"], [202, 1, 1, "c.i32_subrelu6_s", "size"]], "i32_subrelu_p": [[202, 1, 1, "c.i32_subrelu_p", "input0"], [202, 1, 1, "c.i32_subrelu_p", "input1"], [202, 1, 1, "c.i32_subrelu_p", "output"], [202, 1, 1, "c.i32_subrelu_p", "size"]], "i32_subrelu_s": [[202, 1, 1, "c.i32_subrelu_s", "core_mask"], [202, 1, 1, "c.i32_subrelu_s", "input0"], [202, 1, 1, "c.i32_subrelu_s", "input1"], [202, 1, 1, "c.i32_subrelu_s", "output"], [202, 1, 1, "c.i32_subrelu_s", "size"]], "i32_tensor_scatter_add_p": [[206, 1, 1, "c.i32_tensor_scatter_add_p", "index_depth"], [206, 1, 1, "c.i32_tensor_scatter_add_p", "indices"], [206, 1, 1, "c.i32_tensor_scatter_add_p", "input"], [206, 1, 1, "c.i32_tensor_scatter_add_p", "input_rank"], [206, 1, 1, "c.i32_tensor_scatter_add_p", "input_shape"], [206, 1, 1, "c.i32_tensor_scatter_add_p", "num_unit"], [206, 1, 1, "c.i32_tensor_scatter_add_p", "output"], [206, 1, 1, "c.i32_tensor_scatter_add_p", "output_unit_offsets"], [206, 1, 1, "c.i32_tensor_scatter_add_p", "strides"], [206, 1, 1, "c.i32_tensor_scatter_add_p", "updates"]], "i32_tensor_scatter_add_s": [[206, 1, 1, "c.i32_tensor_scatter_add_s", "core_mask"], [206, 1, 1, "c.i32_tensor_scatter_add_s", "index_depth"], [206, 1, 1, "c.i32_tensor_scatter_add_s", "indices"], [206, 1, 1, "c.i32_tensor_scatter_add_s", "input"], [206, 1, 1, "c.i32_tensor_scatter_add_s", "input_rank"], [206, 1, 1, "c.i32_tensor_scatter_add_s", "input_shape"], [206, 1, 1, "c.i32_tensor_scatter_add_s", "num_unit"], [206, 1, 1, "c.i32_tensor_scatter_add_s", "output"], [206, 1, 1, "c.i32_tensor_scatter_add_s", "updates"]], "i32_tensorarrayread_p": [[208, 1, 1, "c.i32_tensorarrayread_p", "handle_data"], [208, 1, 1, "c.i32_tensorarrayread_p", "handle_size"], [208, 1, 1, "c.i32_tensorarrayread_p", "index"], [208, 1, 1, "c.i32_tensorarrayread_p", "output_data"], [208, 1, 1, "c.i32_tensorarrayread_p", "output_size"]], "i32_tensorarrayread_s": [[208, 1, 1, "c.i32_tensorarrayread_s", "core_mask"], [208, 1, 1, "c.i32_tensorarrayread_s", "handle_data"], [208, 1, 1, "c.i32_tensorarrayread_s", "handle_size"], [208, 1, 1, "c.i32_tensorarrayread_s", "index"], [208, 1, 1, "c.i32_tensorarrayread_s", "output_data"], [208, 1, 1, "c.i32_tensorarrayread_s", "output_size"]], "i32_tensorlistfromtensor_p": [[210, 1, 1, "c.i32_tensorlistfromtensor_p", "input_tensor_shape"], [210, 1, 1, "c.i32_tensorlistfromtensor_p", "input_tensor_total_elements"], [210, 1, 1, "c.i32_tensorlistfromtensor_p", "input_tensor_values"], [210, 1, 1, "c.i32_tensorlistfromtensor_p", "output_tensors"]], "i32_tensorlistfromtensor_s": [[210, 1, 1, "c.i32_tensorlistfromtensor_s", "core_mask"], [210, 1, 1, "c.i32_tensorlistfromtensor_s", "input_tensor_shape"], [210, 1, 1, "c.i32_tensorlistfromtensor_s", "input_tensor_total_elements"], [210, 1, 1, "c.i32_tensorlistfromtensor_s", "input_tensor_values"], [210, 1, 1, "c.i32_tensorlistfromtensor_s", "output_tensors"]], "i32_tile_p": [[215, 1, 1, "c.i32_tile_p", "input"], [215, 1, 1, "c.i32_tile_p", "input_shape"], [215, 1, 1, "c.i32_tile_p", "output"], [215, 1, 1, "c.i32_tile_p", "stride"], [215, 1, 1, "c.i32_tile_p", "tile_dim"], [215, 1, 1, "c.i32_tile_p", "tile_num"]], "i32_tile_s": [[215, 1, 1, "c.i32_tile_s", "core_mask"], [215, 1, 1, "c.i32_tile_s", "input"], [215, 1, 1, "c.i32_tile_s", "input_shape"], [215, 1, 1, "c.i32_tile_s", "output"], [215, 1, 1, "c.i32_tile_s", "stride"], [215, 1, 1, "c.i32_tile_s", "tile_dim"], [215, 1, 1, "c.i32_tile_s", "tile_num"]], "i32_topk_fusion_p": [[216, 1, 1, "c.i32_topk_fusion_p", "input"], [216, 1, 1, "c.i32_topk_fusion_p", "output"], [216, 1, 1, "c.i32_topk_fusion_p", "output_index"], [216, 1, 1, "c.i32_topk_fusion_p", "parameter"]], "i32_topk_fusion_s": [[216, 1, 1, "c.i32_topk_fusion_s", "core_mask"], [216, 1, 1, "c.i32_topk_fusion_s", "input"], [216, 1, 1, "c.i32_topk_fusion_s", "output"], [216, 1, 1, "c.i32_topk_fusion_s", "output_index"], [216, 1, 1, "c.i32_topk_fusion_s", "parameter"]], "i32_transpose_p": [[217, 1, 1, "c.i32_transpose_p", "in_data"], [217, 1, 1, "c.i32_transpose_p", "num_axes"], [217, 1, 1, "c.i32_transpose_p", "out_data"], [217, 1, 1, "c.i32_transpose_p", "out_strides"], [217, 1, 1, "c.i32_transpose_p", "output_shape"], [217, 1, 1, "c.i32_transpose_p", "perm"], [217, 1, 1, "c.i32_transpose_p", "strides"]], "i32_transpose_s": [[217, 1, 1, "c.i32_transpose_s", "core_mask"], [217, 1, 1, "c.i32_transpose_s", "in_data"], [217, 1, 1, "c.i32_transpose_s", "num_axes"], [217, 1, 1, "c.i32_transpose_s", "out_data"], [217, 1, 1, "c.i32_transpose_s", "out_strides"], [217, 1, 1, "c.i32_transpose_s", "output_shape"], [217, 1, 1, "c.i32_transpose_s", "perm"], [217, 1, 1, "c.i32_transpose_s", "strides"]], "i32_tril_p": [[218, 1, 1, "c.i32_tril_p", "dst"], [218, 1, 1, "c.i32_tril_p", "height"], [218, 1, 1, "c.i32_tril_p", "k"], [218, 1, 1, "c.i32_tril_p", "out_elems"], [218, 1, 1, "c.i32_tril_p", "src"], [218, 1, 1, "c.i32_tril_p", "width"]], "i32_tril_s": [[218, 1, 1, "c.i32_tril_s", "core_mask"], [218, 1, 1, "c.i32_tril_s", "dst"], [218, 1, 1, "c.i32_tril_s", "height"], [218, 1, 1, "c.i32_tril_s", "k"], [218, 1, 1, "c.i32_tril_s", "out_elems"], [218, 1, 1, "c.i32_tril_s", "src"], [218, 1, 1, "c.i32_tril_s", "width"]], "i32_triu_p": [[219, 1, 1, "c.i32_triu_p", "dst"], [219, 1, 1, "c.i32_triu_p", "height"], [219, 1, 1, "c.i32_triu_p", "k"], [219, 1, 1, "c.i32_triu_p", "out_elems"], [219, 1, 1, "c.i32_triu_p", "src"], [219, 1, 1, "c.i32_triu_p", "width"]], "i32_triu_s": [[219, 1, 1, "c.i32_triu_s", "core_mask"], [219, 1, 1, "c.i32_triu_s", "dst"], [219, 1, 1, "c.i32_triu_s", "height"], [219, 1, 1, "c.i32_triu_s", "k"], [219, 1, 1, "c.i32_triu_s", "out_elems"], [219, 1, 1, "c.i32_triu_s", "src"], [219, 1, 1, "c.i32_triu_s", "width"]], "i32_unsorted_segment_sum_p": [[222, 1, 1, "c.i32_unsorted_segment_sum_p", "dim0"], [222, 1, 1, "c.i32_unsorted_segment_sum_p", "dim1"], [222, 1, 1, "c.i32_unsorted_segment_sum_p", "id_max"], [222, 1, 1, "c.i32_unsorted_segment_sum_p", "index"], [222, 1, 1, "c.i32_unsorted_segment_sum_p", "input"], [222, 1, 1, "c.i32_unsorted_segment_sum_p", "output"]], "i32_unsorted_segment_sum_s": [[222, 1, 1, "c.i32_unsorted_segment_sum_s", "core_mask"], [222, 1, 1, "c.i32_unsorted_segment_sum_s", "dim0"], [222, 1, 1, "c.i32_unsorted_segment_sum_s", "dim1"], [222, 1, 1, "c.i32_unsorted_segment_sum_s", "id_max"], [222, 1, 1, "c.i32_unsorted_segment_sum_s", "index"], [222, 1, 1, "c.i32_unsorted_segment_sum_s", "input"], [222, 1, 1, "c.i32_unsorted_segment_sum_s", "output"]], "i32_where_p": [[225, 1, 1, "c.i32_where_p", "condition"], [225, 1, 1, "c.i32_where_p", "input0"], [225, 1, 1, "c.i32_where_p", "input1"], [225, 1, 1, "c.i32_where_p", "length"], [225, 1, 1, "c.i32_where_p", "output"]], "i32_where_s": [[225, 1, 1, "c.i32_where_s", "condition"], [225, 1, 1, "c.i32_where_s", "core_mask"], [225, 1, 1, "c.i32_where_s", "input0"], [225, 1, 1, "c.i32_where_s", "input1"], [225, 1, 1, "c.i32_where_s", "length"], [225, 1, 1, "c.i32_where_s", "output"]], "i32_zerolike_p": [[226, 1, 1, "c.i32_zerolike_p", "length"], [226, 1, 1, "c.i32_zerolike_p", "output"]], "i32_zerolike_s": [[226, 1, 1, "c.i32_zerolike_s", "core_mask"], [226, 1, 1, "c.i32_zerolike_s", "length"], [226, 1, 1, "c.i32_zerolike_s", "output"]], "i8_Gru_p": [[95, 1, 1, "c.i8_Gru_p", "buffer"], [95, 1, 1, "c.i8_Gru_p", "core_mask"], [95, 1, 1, "c.i8_Gru_p", "gru_param"], [95, 1, 1, "c.i8_Gru_p", "hidden_state"], [95, 1, 1, "c.i8_Gru_p", "input"], [95, 1, 1, "c.i8_Gru_p", "input_bias"], [95, 1, 1, "c.i8_Gru_p", "output"], [95, 1, 1, "c.i8_Gru_p", "state_bias"], [95, 1, 1, "c.i8_Gru_p", "weight_g"], [95, 1, 1, "c.i8_Gru_p", "weight_r"]], "i8_Gru_s": [[95, 1, 1, "c.i8_Gru_s", "buffer"], [95, 1, 1, "c.i8_Gru_s", "core_mask"], [95, 1, 1, "c.i8_Gru_s", "gru_param"], [95, 1, 1, "c.i8_Gru_s", "hidden_state"], [95, 1, 1, "c.i8_Gru_s", "input"], [95, 1, 1, "c.i8_Gru_s", "input_bias"], [95, 1, 1, "c.i8_Gru_s", "output"], [95, 1, 1, "c.i8_Gru_s", "state_bias"], [95, 1, 1, "c.i8_Gru_s", "weight_g"], [95, 1, 1, "c.i8_Gru_s", "weight_r"]], "i8_Unique_p": [[221, 1, 1, "c.i8_Unique_p", "input"], [221, 1, 1, "c.i8_Unique_p", "input_len"], [221, 1, 1, "c.i8_Unique_p", "output0"], [221, 1, 1, "c.i8_Unique_p", "output0_len"]], "i8_Unique_s": [[221, 1, 1, "c.i8_Unique_s", "core_mask"], [221, 1, 1, "c.i8_Unique_s", "input"], [221, 1, 1, "c.i8_Unique_s", "input_len"], [221, 1, 1, "c.i8_Unique_s", "output0"], [221, 1, 1, "c.i8_Unique_s", "output0_len"]], "i8_abs_p": [[10, 1, 1, "c.i8_abs_p", "dst_data"], [10, 1, 1, "c.i8_abs_p", "length"], [10, 1, 1, "c.i8_abs_p", "src_data"]], "i8_abs_s": [[10, 1, 1, "c.i8_abs_s", "core_mask"], [10, 1, 1, "c.i8_abs_s", "dst_data"], [10, 1, 1, "c.i8_abs_s", "length"], [10, 1, 1, "c.i8_abs_s", "src_data"]], "i8_adder_p": [[16, 1, 1, "c.i8_adder_p", "bias"], [16, 1, 1, "c.i8_adder_p", "conv_param"], [16, 1, 1, "c.i8_adder_p", "core_mask"], [16, 1, 1, "c.i8_adder_p", "input_w"], [16, 1, 1, "c.i8_adder_p", "input_x"], [16, 1, 1, "c.i8_adder_p", "out_y"], [16, 1, 1, "c.i8_adder_p", "quant_param"]], "i8_adder_s": [[16, 1, 1, "c.i8_adder_s", "bias"], [16, 1, 1, "c.i8_adder_s", "core_mask"], [16, 1, 1, "c.i8_adder_s", "input_w"], [16, 1, 1, "c.i8_adder_s", "input_x"], [16, 1, 1, "c.i8_adder_s", "out_y"], [16, 1, 1, "c.i8_adder_s", "param"]], "i8_addext_p": [[17, 1, 1, "c.i8_addext_p", "alpha"], [17, 1, 1, "c.i8_addext_p", "in0"], [17, 1, 1, "c.i8_addext_p", "in1"], [17, 1, 1, "c.i8_addext_p", "out"], [17, 1, 1, "c.i8_addext_p", "size"]], "i8_addext_s": [[17, 1, 1, "c.i8_addext_s", "alpha"], [17, 1, 1, "c.i8_addext_s", "core_mask"], [17, 1, 1, "c.i8_addext_s", "in0"], [17, 1, 1, "c.i8_addext_s", "in1"], [17, 1, 1, "c.i8_addext_s", "out"], [17, 1, 1, "c.i8_addext_s", "size"]], "i8_addn_p": [[19, 1, 1, "c.i8_addn_p", "input0"], [19, 1, 1, "c.i8_addn_p", "input1"], [19, 1, 1, "c.i8_addn_p", "length"], [19, 1, 1, "c.i8_addn_p", "output"]], "i8_addn_s": [[19, 1, 1, "c.i8_addn_s", "core_mask"], [19, 1, 1, "c.i8_addn_s", "input0"], [19, 1, 1, "c.i8_addn_s", "input1"], [19, 1, 1, "c.i8_addn_s", "length"], [19, 1, 1, "c.i8_addn_s", "output"]], "i8_addrelu6_p": [[17, 1, 1, "c.i8_addrelu6_p", "in0"], [17, 1, 1, "c.i8_addrelu6_p", "in1"], [17, 1, 1, "c.i8_addrelu6_p", "out"], [17, 1, 1, "c.i8_addrelu6_p", "size"]], "i8_addrelu6_s": [[17, 1, 1, "c.i8_addrelu6_s", "core_mask"], [17, 1, 1, "c.i8_addrelu6_s", "in0"], [17, 1, 1, "c.i8_addrelu6_s", "in1"], [17, 1, 1, "c.i8_addrelu6_s", "out"], [17, 1, 1, "c.i8_addrelu6_s", "size"]], "i8_addrelu_p": [[17, 1, 1, "c.i8_addrelu_p", "in0"], [17, 1, 1, "c.i8_addrelu_p", "in1"], [17, 1, 1, "c.i8_addrelu_p", "out"], [17, 1, 1, "c.i8_addrelu_p", "size"]], "i8_addrelu_s": [[17, 1, 1, "c.i8_addrelu_s", "core_mask"], [17, 1, 1, "c.i8_addrelu_s", "in0"], [17, 1, 1, "c.i8_addrelu_s", "in1"], [17, 1, 1, "c.i8_addrelu_s", "out"], [17, 1, 1, "c.i8_addrelu_s", "size"]], "i8_affine_p": [[20, 1, 1, "c.i8_affine_p", "params"]], "i8_affine_s": [[20, 1, 1, "c.i8_affine_s", "core_mask"], [20, 1, 1, "c.i8_affine_s", "params"]], "i8_allgather_p": [[22, 1, 1, "c.i8_allgather_p", "data_size"], [22, 1, 1, "c.i8_allgather_p", "input"], [22, 1, 1, "c.i8_allgather_p", "input_rank"], [22, 1, 1, "c.i8_allgather_p", "output"], [22, 1, 1, "c.i8_allgather_p", "output_rank"]], "i8_allgather_s": [[22, 1, 1, "c.i8_allgather_s", "core_mask"], [22, 1, 1, "c.i8_allgather_s", "data_size"], [22, 1, 1, "c.i8_allgather_s", "input"], [22, 1, 1, "c.i8_allgather_s", "input_rank"], [22, 1, 1, "c.i8_allgather_s", "output"], [22, 1, 1, "c.i8_allgather_s", "output_rank"]], "i8_and_p": [[112, 1, 1, "c.i8_and_p", "input0"], [112, 1, 1, "c.i8_and_p", "input1"], [112, 1, 1, "c.i8_and_p", "length"], [112, 1, 1, "c.i8_and_p", "output"]], "i8_and_s": [[112, 1, 1, "c.i8_and_s", "core_mask"], [112, 1, 1, "c.i8_and_s", "input0"], [112, 1, 1, "c.i8_and_s", "input1"], [112, 1, 1, "c.i8_and_s", "length"], [112, 1, 1, "c.i8_and_s", "output"]], "i8_assign_p": [[27, 1, 1, "c.i8_assign_p", "dst"], [27, 1, 1, "c.i8_assign_p", "length"], [27, 1, 1, "c.i8_assign_p", "src"]], "i8_assign_s": [[27, 1, 1, "c.i8_assign_s", "core_mask"], [27, 1, 1, "c.i8_assign_s", "dst"], [27, 1, 1, "c.i8_assign_s", "length"], [27, 1, 1, "c.i8_assign_s", "src"]], "i8_assignadd_p": [[28, 1, 1, "c.i8_assignadd_p", "input"], [28, 1, 1, "c.i8_assignadd_p", "length"], [28, 1, 1, "c.i8_assignadd_p", "output"]], "i8_assignadd_s": [[28, 1, 1, "c.i8_assignadd_s", "core_mask"], [28, 1, 1, "c.i8_assignadd_s", "input"], [28, 1, 1, "c.i8_assignadd_s", "length"], [28, 1, 1, "c.i8_assignadd_s", "output"]], "i8_avgpool_fusion_p": [[31, 1, 1, "c.i8_avgpool_fusion_p", "batch"], [31, 1, 1, "c.i8_avgpool_fusion_p", "channel"], [31, 1, 1, "c.i8_avgpool_fusion_p", "in_h"], [31, 1, 1, "c.i8_avgpool_fusion_p", "in_w"], [31, 1, 1, "c.i8_avgpool_fusion_p", "input"], [31, 1, 1, "c.i8_avgpool_fusion_p", "max_val"], [31, 1, 1, "c.i8_avgpool_fusion_p", "min_val"], [31, 1, 1, "c.i8_avgpool_fusion_p", "output"], [31, 1, 1, "c.i8_avgpool_fusion_p", "pad_bottom"], [31, 1, 1, "c.i8_avgpool_fusion_p", "pad_left"], [31, 1, 1, "c.i8_avgpool_fusion_p", "pad_right"], [31, 1, 1, "c.i8_avgpool_fusion_p", "pad_top"], [31, 1, 1, "c.i8_avgpool_fusion_p", "stride_h"], [31, 1, 1, "c.i8_avgpool_fusion_p", "stride_w"], [31, 1, 1, "c.i8_avgpool_fusion_p", "win_h"], [31, 1, 1, "c.i8_avgpool_fusion_p", "win_w"]], "i8_avgpool_fusion_s": [[31, 1, 1, "c.i8_avgpool_fusion_s", "batch"], [31, 1, 1, "c.i8_avgpool_fusion_s", "channel"], [31, 1, 1, "c.i8_avgpool_fusion_s", "core_mask"], [31, 1, 1, "c.i8_avgpool_fusion_s", "in_h"], [31, 1, 1, "c.i8_avgpool_fusion_s", "in_w"], [31, 1, 1, "c.i8_avgpool_fusion_s", "input"], [31, 1, 1, "c.i8_avgpool_fusion_s", "max_val"], [31, 1, 1, "c.i8_avgpool_fusion_s", "min_val"], [31, 1, 1, "c.i8_avgpool_fusion_s", "output"], [31, 1, 1, "c.i8_avgpool_fusion_s", "pad_bottom"], [31, 1, 1, "c.i8_avgpool_fusion_s", "pad_left"], [31, 1, 1, "c.i8_avgpool_fusion_s", "pad_right"], [31, 1, 1, "c.i8_avgpool_fusion_s", "pad_top"], [31, 1, 1, "c.i8_avgpool_fusion_s", "stride_h"], [31, 1, 1, "c.i8_avgpool_fusion_s", "stride_w"], [31, 1, 1, "c.i8_avgpool_fusion_s", "win_h"], [31, 1, 1, "c.i8_avgpool_fusion_s", "win_w"]], "i8_batchnorm_p": [[33, 1, 1, "c.i8_batchnorm_p", "channel"], [33, 1, 1, "c.i8_batchnorm_p", "epsilon"], [33, 1, 1, "c.i8_batchnorm_p", "input"], [33, 1, 1, "c.i8_batchnorm_p", "mean"], [33, 1, 1, "c.i8_batchnorm_p", "output"], [33, 1, 1, "c.i8_batchnorm_p", "unit"], [33, 1, 1, "c.i8_batchnorm_p", "variance"]], "i8_batchnorm_s": [[33, 1, 1, "c.i8_batchnorm_s", "channel"], [33, 1, 1, "c.i8_batchnorm_s", "core_mask"], [33, 1, 1, "c.i8_batchnorm_s", "epsilon"], [33, 1, 1, "c.i8_batchnorm_s", "input"], [33, 1, 1, "c.i8_batchnorm_s", "mean"], [33, 1, 1, "c.i8_batchnorm_s", "output"], [33, 1, 1, "c.i8_batchnorm_s", "unit"], [33, 1, 1, "c.i8_batchnorm_s", "variance"]], "i8_batchtospace_p": [[35, 1, 1, "c.i8_batchtospace_p", "block_size"], [35, 1, 1, "c.i8_batchtospace_p", "crops"], [35, 1, 1, "c.i8_batchtospace_p", "data_size"], [35, 1, 1, "c.i8_batchtospace_p", "input"], [35, 1, 1, "c.i8_batchtospace_p", "input_shape"], [35, 1, 1, "c.i8_batchtospace_p", "output"]], "i8_batchtospace_s": [[35, 1, 1, "c.i8_batchtospace_s", "block_size"], [35, 1, 1, "c.i8_batchtospace_s", "core_mask"], [35, 1, 1, "c.i8_batchtospace_s", "crops"], [35, 1, 1, "c.i8_batchtospace_s", "data_size"], [35, 1, 1, "c.i8_batchtospace_s", "input"], [35, 1, 1, "c.i8_batchtospace_s", "input_shape"], [35, 1, 1, "c.i8_batchtospace_s", "output"]], "i8_batchtospacend_p": [[36, 1, 1, "c.i8_batchtospacend_p", "block_size"], [36, 1, 1, "c.i8_batchtospacend_p", "crops"], [36, 1, 1, "c.i8_batchtospacend_p", "data_size"], [36, 1, 1, "c.i8_batchtospacend_p", "input"], [36, 1, 1, "c.i8_batchtospacend_p", "input_shape"], [36, 1, 1, "c.i8_batchtospacend_p", "output"]], "i8_batchtospacend_s": [[36, 1, 1, "c.i8_batchtospacend_s", "block_size"], [36, 1, 1, "c.i8_batchtospacend_s", "core_mask"], [36, 1, 1, "c.i8_batchtospacend_s", "crops"], [36, 1, 1, "c.i8_batchtospacend_s", "data_size"], [36, 1, 1, "c.i8_batchtospacend_s", "input"], [36, 1, 1, "c.i8_batchtospacend_s", "input_shape"], [36, 1, 1, "c.i8_batchtospacend_s", "output"]], "i8_biasadd_p": [[37, 1, 1, "c.i8_biasadd_p", "data_format"], [37, 1, 1, "c.i8_biasadd_p", "dims"], [37, 1, 1, "c.i8_biasadd_p", "input_bias"], [37, 1, 1, "c.i8_biasadd_p", "input_x"], [37, 1, 1, "c.i8_biasadd_p", "length"], [37, 1, 1, "c.i8_biasadd_p", "output"], [37, 1, 1, "c.i8_biasadd_p", "shape_size"]], "i8_biasadd_s": [[37, 1, 1, "c.i8_biasadd_s", "core_mask"], [37, 1, 1, "c.i8_biasadd_s", "data_format"], [37, 1, 1, "c.i8_biasadd_s", "dims"], [37, 1, 1, "c.i8_biasadd_s", "input_bias"], [37, 1, 1, "c.i8_biasadd_s", "input_x"], [37, 1, 1, "c.i8_biasadd_s", "length"], [37, 1, 1, "c.i8_biasadd_s", "output"], [37, 1, 1, "c.i8_biasadd_s", "shape_size"]], "i8_binarycrossentropy_p": [[39, 1, 1, "c.i8_binarycrossentropy_p", "input_size"], [39, 1, 1, "c.i8_binarycrossentropy_p", "input_x"], [39, 1, 1, "c.i8_binarycrossentropy_p", "input_y"], [39, 1, 1, "c.i8_binarycrossentropy_p", "loss"], [39, 1, 1, "c.i8_binarycrossentropy_p", "reduction"], [39, 1, 1, "c.i8_binarycrossentropy_p", "tmp_loss"], [39, 1, 1, "c.i8_binarycrossentropy_p", "weight"], [39, 1, 1, "c.i8_binarycrossentropy_p", "weight_defined"]], "i8_binarycrossentropy_s": [[39, 1, 1, "c.i8_binarycrossentropy_s", "core_mask"], [39, 1, 1, "c.i8_binarycrossentropy_s", "input_size"], [39, 1, 1, "c.i8_binarycrossentropy_s", "input_x"], [39, 1, 1, "c.i8_binarycrossentropy_s", "input_y"], [39, 1, 1, "c.i8_binarycrossentropy_s", "loss"], [39, 1, 1, "c.i8_binarycrossentropy_s", "reduction"], [39, 1, 1, "c.i8_binarycrossentropy_s", "tmp_loss"], [39, 1, 1, "c.i8_binarycrossentropy_s", "weight"], [39, 1, 1, "c.i8_binarycrossentropy_s", "weight_defined"]], "i8_broadcastto_p": [[41, 1, 1, "c.i8_broadcastto_p", "data_size"], [41, 1, 1, "c.i8_broadcastto_p", "input"], [41, 1, 1, "c.i8_broadcastto_p", "input_shape"], [41, 1, 1, "c.i8_broadcastto_p", "input_shape_size"], [41, 1, 1, "c.i8_broadcastto_p", "output"], [41, 1, 1, "c.i8_broadcastto_p", "output_shape"], [41, 1, 1, "c.i8_broadcastto_p", "output_shape_size"]], "i8_broadcastto_s": [[41, 1, 1, "c.i8_broadcastto_s", "core_mask"], [41, 1, 1, "c.i8_broadcastto_s", "data_size"], [41, 1, 1, "c.i8_broadcastto_s", "input"], [41, 1, 1, "c.i8_broadcastto_s", "input_shape"], [41, 1, 1, "c.i8_broadcastto_s", "input_shape_size"], [41, 1, 1, "c.i8_broadcastto_s", "output"], [41, 1, 1, "c.i8_broadcastto_s", "output_shape"], [41, 1, 1, "c.i8_broadcastto_s", "output_shape_size"]], "i8_celu_p": [[12, 1, 1, "c.i8_celu_p", "Input0"], [12, 1, 1, "c.i8_celu_p", "alpha"], [12, 1, 1, "c.i8_celu_p", "length"], [12, 1, 1, "c.i8_celu_p", "output"]], "i8_celu_s": [[12, 1, 1, "c.i8_celu_s", "Input0"], [12, 1, 1, "c.i8_celu_s", "alpha"], [12, 1, 1, "c.i8_celu_s", "core_mask"], [12, 1, 1, "c.i8_celu_s", "length"], [12, 1, 1, "c.i8_celu_s", "output"]], "i8_clip_p": [[12, 1, 1, "c.i8_clip_p", "Input0"], [12, 1, 1, "c.i8_clip_p", "length"], [12, 1, 1, "c.i8_clip_p", "max_val"], [12, 1, 1, "c.i8_clip_p", "min_val"], [12, 1, 1, "c.i8_clip_p", "output"]], "i8_clip_s": [[12, 1, 1, "c.i8_clip_s", "Input0"], [12, 1, 1, "c.i8_clip_s", "core_mask"], [12, 1, 1, "c.i8_clip_s", "length"], [12, 1, 1, "c.i8_clip_s", "max_val"], [12, 1, 1, "c.i8_clip_s", "min_val"], [12, 1, 1, "c.i8_clip_s", "output"]], "i8_concat_p": [[45, 1, 1, "c.i8_concat_p", "axis"], [45, 1, 1, "c.i8_concat_p", "input_ndim"], [45, 1, 1, "c.i8_concat_p", "input_shapes"], [45, 1, 1, "c.i8_concat_p", "inputs"], [45, 1, 1, "c.i8_concat_p", "num_inputs"], [45, 1, 1, "c.i8_concat_p", "output"]], "i8_concat_s": [[45, 1, 1, "c.i8_concat_s", "axis"], [45, 1, 1, "c.i8_concat_s", "core_mask"], [45, 1, 1, "c.i8_concat_s", "input_ndim"], [45, 1, 1, "c.i8_concat_s", "input_shapes"], [45, 1, 1, "c.i8_concat_s", "inputs"], [45, 1, 1, "c.i8_concat_s", "num_inputs"], [45, 1, 1, "c.i8_concat_s", "output"]], "i8_constant_of_shape_p": [[46, 1, 1, "c.i8_constant_of_shape_p", "end"], [46, 1, 1, "c.i8_constant_of_shape_p", "output"], [46, 1, 1, "c.i8_constant_of_shape_p", "start"], [46, 1, 1, "c.i8_constant_of_shape_p", "value"]], "i8_constant_of_shape_s": [[46, 1, 1, "c.i8_constant_of_shape_s", "core_mask"], [46, 1, 1, "c.i8_constant_of_shape_s", "end"], [46, 1, 1, "c.i8_constant_of_shape_s", "output"], [46, 1, 1, "c.i8_constant_of_shape_s", "start"], [46, 1, 1, "c.i8_constant_of_shape_s", "value"]], "i8_conv2d_p": [[47, 1, 1, "c.i8_conv2d_p", "bias"], [47, 1, 1, "c.i8_conv2d_p", "conv_param"], [47, 1, 1, "c.i8_conv2d_p", "core_mask"], [47, 1, 1, "c.i8_conv2d_p", "input_w"], [47, 1, 1, "c.i8_conv2d_p", "input_x"], [47, 1, 1, "c.i8_conv2d_p", "out_y"], [47, 1, 1, "c.i8_conv2d_p", "quant_param"]], "i8_conv2d_s": [[47, 1, 1, "c.i8_conv2d_s", "bias"], [47, 1, 1, "c.i8_conv2d_s", "conv_param"], [47, 1, 1, "c.i8_conv2d_s", "core_mask"], [47, 1, 1, "c.i8_conv2d_s", "input_w"], [47, 1, 1, "c.i8_conv2d_s", "input_x"], [47, 1, 1, "c.i8_conv2d_s", "out_y"], [47, 1, 1, "c.i8_conv2d_s", "quant_param"]], "i8_convtranspose_p": [[48, 1, 1, "c.i8_convtranspose_p", "bias"], [48, 1, 1, "c.i8_convtranspose_p", "conv_param"], [48, 1, 1, "c.i8_convtranspose_p", "core_mask"], [48, 1, 1, "c.i8_convtranspose_p", "input_w"], [48, 1, 1, "c.i8_convtranspose_p", "input_x"], [48, 1, 1, "c.i8_convtranspose_p", "out_y"]], "i8_convtranspose_s": [[48, 1, 1, "c.i8_convtranspose_s", "bias"], [48, 1, 1, "c.i8_convtranspose_s", "conv_param"], [48, 1, 1, "c.i8_convtranspose_s", "core_mask"], [48, 1, 1, "c.i8_convtranspose_s", "input_w"], [48, 1, 1, "c.i8_convtranspose_s", "input_x"], [48, 1, 1, "c.i8_convtranspose_s", "out_y"]], "i8_cos_p": [[51, 1, 1, "c.i8_cos_p", "dst_data"], [51, 1, 1, "c.i8_cos_p", "length"], [51, 1, 1, "c.i8_cos_p", "src_data"]], "i8_cos_s": [[51, 1, 1, "c.i8_cos_s", "core_mask"], [51, 1, 1, "c.i8_cos_s", "dst_data"], [51, 1, 1, "c.i8_cos_s", "length"], [51, 1, 1, "c.i8_cos_s", "src_data"]], "i8_crop_and_resize_anycore": [[53, 1, 1, "c.i8_crop_and_resize_anycore", "box_idx"], [53, 1, 1, "c.i8_crop_and_resize_anycore", "boxes"], [53, 1, 1, "c.i8_crop_and_resize_anycore", "core_mask"], [53, 1, 1, "c.i8_crop_and_resize_anycore", "dst"], [53, 1, 1, "c.i8_crop_and_resize_anycore", "extrapolation_value"], [53, 1, 1, "c.i8_crop_and_resize_anycore", "param"], [53, 1, 1, "c.i8_crop_and_resize_anycore", "src"]], "i8_cumsum_p": [[54, 1, 1, "c.i8_cumsum_p", "axis_dim"], [54, 1, 1, "c.i8_cumsum_p", "exclusive"], [54, 1, 1, "c.i8_cumsum_p", "inner_dim"], [54, 1, 1, "c.i8_cumsum_p", "input"], [54, 1, 1, "c.i8_cumsum_p", "out_dim"], [54, 1, 1, "c.i8_cumsum_p", "output"]], "i8_cumsum_s": [[54, 1, 1, "c.i8_cumsum_s", "axis_dim"], [54, 1, 1, "c.i8_cumsum_s", "core_mask"], [54, 1, 1, "c.i8_cumsum_s", "exclusive"], [54, 1, 1, "c.i8_cumsum_s", "inner_dim"], [54, 1, 1, "c.i8_cumsum_s", "input"], [54, 1, 1, "c.i8_cumsum_s", "out_dim"], [54, 1, 1, "c.i8_cumsum_s", "output"]], "i8_depthtospace_p": [[59, 1, 1, "c.i8_depthtospace_p", "block_size"], [59, 1, 1, "c.i8_depthtospace_p", "data_size"], [59, 1, 1, "c.i8_depthtospace_p", "in_shape"], [59, 1, 1, "c.i8_depthtospace_p", "input"], [59, 1, 1, "c.i8_depthtospace_p", "output"]], "i8_depthtospace_s": [[59, 1, 1, "c.i8_depthtospace_s", "block_size"], [59, 1, 1, "c.i8_depthtospace_s", "core_mask"], [59, 1, 1, "c.i8_depthtospace_s", "data_size"], [59, 1, 1, "c.i8_depthtospace_s", "in_shape"], [59, 1, 1, "c.i8_depthtospace_s", "input"], [59, 1, 1, "c.i8_depthtospace_s", "output"]], "i8_detection_post_process_p": [[60, 1, 1, "c.i8_detection_post_process_p", "anchors"], [60, 1, 1, "c.i8_detection_post_process_p", "input_boxes"], [60, 1, 1, "c.i8_detection_post_process_p", "input_scores"], [60, 1, 1, "c.i8_detection_post_process_p", "output_boxes"], [60, 1, 1, "c.i8_detection_post_process_p", "output_classes"], [60, 1, 1, "c.i8_detection_post_process_p", "output_num"], [60, 1, 1, "c.i8_detection_post_process_p", "output_scores"], [60, 1, 1, "c.i8_detection_post_process_p", "param"]], "i8_detection_post_process_s": [[60, 1, 1, "c.i8_detection_post_process_s", "anchors"], [60, 1, 1, "c.i8_detection_post_process_s", "core_mask"], [60, 1, 1, "c.i8_detection_post_process_s", "input_boxes"], [60, 1, 1, "c.i8_detection_post_process_s", "input_scores"], [60, 1, 1, "c.i8_detection_post_process_s", "output_boxes"], [60, 1, 1, "c.i8_detection_post_process_s", "output_classes"], [60, 1, 1, "c.i8_detection_post_process_s", "output_num"], [60, 1, 1, "c.i8_detection_post_process_s", "output_scores"], [60, 1, 1, "c.i8_detection_post_process_s", "param"]], "i8_div_fusion_p": [[61, 1, 1, "c.i8_div_fusion_p", "input0"], [61, 1, 1, "c.i8_div_fusion_p", "input1"], [61, 1, 1, "c.i8_div_fusion_p", "length"], [61, 1, 1, "c.i8_div_fusion_p", "output"]], "i8_div_fusion_s": [[61, 1, 1, "c.i8_div_fusion_s", "core_mask"], [61, 1, 1, "c.i8_div_fusion_s", "input0"], [61, 1, 1, "c.i8_div_fusion_s", "input1"], [61, 1, 1, "c.i8_div_fusion_s", "length"], [61, 1, 1, "c.i8_div_fusion_s", "output"]], "i8_eltwise_p": [[67, 1, 1, "c.i8_eltwise_p", "Input0"], [67, 1, 1, "c.i8_eltwise_p", "Input1"], [67, 1, 1, "c.i8_eltwise_p", "eltwise_mode_"], [67, 1, 1, "c.i8_eltwise_p", "length"], [67, 1, 1, "c.i8_eltwise_p", "output"]], "i8_eltwise_s": [[67, 1, 1, "c.i8_eltwise_s", "Input0"], [67, 1, 1, "c.i8_eltwise_s", "Input1"], [67, 1, 1, "c.i8_eltwise_s", "core_mask"], [67, 1, 1, "c.i8_eltwise_s", "eltwise_mode_"], [67, 1, 1, "c.i8_eltwise_s", "length"], [67, 1, 1, "c.i8_eltwise_s", "output"]], "i8_elu_p": [[12, 1, 1, "c.i8_elu_p", "Input0"], [12, 1, 1, "c.i8_elu_p", "alpha"], [12, 1, 1, "c.i8_elu_p", "length"], [12, 1, 1, "c.i8_elu_p", "output"]], "i8_elu_s": [[12, 1, 1, "c.i8_elu_s", "Input0"], [12, 1, 1, "c.i8_elu_s", "alpha"], [12, 1, 1, "c.i8_elu_s", "core_mask"], [12, 1, 1, "c.i8_elu_s", "length"], [12, 1, 1, "c.i8_elu_s", "output"]], "i8_equal_p": [[70, 1, 1, "c.i8_equal_p", "Input0"], [70, 1, 1, "c.i8_equal_p", "Input1"], [70, 1, 1, "c.i8_equal_p", "length"], [70, 1, 1, "c.i8_equal_p", "output"]], "i8_equal_s": [[70, 1, 1, "c.i8_equal_s", "Input0"], [70, 1, 1, "c.i8_equal_s", "Input1"], [70, 1, 1, "c.i8_equal_s", "core_mask"], [70, 1, 1, "c.i8_equal_s", "length"], [70, 1, 1, "c.i8_equal_s", "output"]], "i8_expfusion_p": [[73, 1, 1, "c.i8_expfusion_p", "dst_data"], [73, 1, 1, "c.i8_expfusion_p", "in_scale"], [73, 1, 1, "c.i8_expfusion_p", "length"], [73, 1, 1, "c.i8_expfusion_p", "out_scale"], [73, 1, 1, "c.i8_expfusion_p", "scale"], [73, 1, 1, "c.i8_expfusion_p", "src_data"]], "i8_expfusion_s": [[73, 1, 1, "c.i8_expfusion_s", "core_mask"], [73, 1, 1, "c.i8_expfusion_s", "dst_data"], [73, 1, 1, "c.i8_expfusion_s", "in_scale"], [73, 1, 1, "c.i8_expfusion_s", "length"], [73, 1, 1, "c.i8_expfusion_s", "out_scale"], [73, 1, 1, "c.i8_expfusion_s", "scale"], [73, 1, 1, "c.i8_expfusion_s", "src_data"]], "i8_extract_features_p": [[55, 1, 1, "c.i8_extract_features_p", "num_strings"], [55, 1, 1, "c.i8_extract_features_p", "output_labels"], [55, 1, 1, "c.i8_extract_features_p", "output_weights"], [55, 1, 1, "c.i8_extract_features_p", "string_lengths"], [55, 1, 1, "c.i8_extract_features_p", "string_pointers"]], "i8_extract_features_s": [[55, 1, 1, "c.i8_extract_features_s", "core_mask"], [55, 1, 1, "c.i8_extract_features_s", "num_strings"], [55, 1, 1, "c.i8_extract_features_s", "output_labels"], [55, 1, 1, "c.i8_extract_features_s", "output_weights"], [55, 1, 1, "c.i8_extract_features_s", "string_lengths"], [55, 1, 1, "c.i8_extract_features_s", "string_pointers"]], "i8_fill_p": [[78, 1, 1, "c.i8_fill_p", "output"], [78, 1, 1, "c.i8_fill_p", "param"], [78, 1, 1, "c.i8_fill_p", "value"]], "i8_fill_s": [[78, 1, 1, "c.i8_fill_s", "core_mask"], [78, 1, 1, "c.i8_fill_s", "output"], [78, 1, 1, "c.i8_fill_s", "param"], [78, 1, 1, "c.i8_fill_s", "value"]], "i8_formattranspose_p": [[85, 1, 1, "c.i8_formattranspose_p", "batch"], [85, 1, 1, "c.i8_formattranspose_p", "channel"], [85, 1, 1, "c.i8_formattranspose_p", "dst_data"], [85, 1, 1, "c.i8_formattranspose_p", "dst_format"], [85, 1, 1, "c.i8_formattranspose_p", "plane"], [85, 1, 1, "c.i8_formattranspose_p", "src_data"], [85, 1, 1, "c.i8_formattranspose_p", "src_format"]], "i8_formattranspose_s": [[85, 1, 1, "c.i8_formattranspose_s", "batch"], [85, 1, 1, "c.i8_formattranspose_s", "channel"], [85, 1, 1, "c.i8_formattranspose_s", "core_mask"], [85, 1, 1, "c.i8_formattranspose_s", "dst_data"], [85, 1, 1, "c.i8_formattranspose_s", "dst_format"], [85, 1, 1, "c.i8_formattranspose_s", "plane"], [85, 1, 1, "c.i8_formattranspose_s", "src_data"], [85, 1, 1, "c.i8_formattranspose_s", "src_format"]], "i8_fullconnection_p": [[86, 1, 1, "c.i8_fullconnection_p", "A"], [86, 1, 1, "c.i8_fullconnection_p", "B"], [86, 1, 1, "c.i8_fullconnection_p", "C"], [86, 1, 1, "c.i8_fullconnection_p", "K"], [86, 1, 1, "c.i8_fullconnection_p", "M"], [86, 1, 1, "c.i8_fullconnection_p", "N"], [86, 1, 1, "c.i8_fullconnection_p", "activation_type"], [86, 1, 1, "c.i8_fullconnection_p", "bias"]], "i8_fullconnection_s": [[86, 1, 1, "c.i8_fullconnection_s", "A"], [86, 1, 1, "c.i8_fullconnection_s", "B"], [86, 1, 1, "c.i8_fullconnection_s", "C"], [86, 1, 1, "c.i8_fullconnection_s", "K"], [86, 1, 1, "c.i8_fullconnection_s", "M"], [86, 1, 1, "c.i8_fullconnection_s", "N"], [86, 1, 1, "c.i8_fullconnection_s", "activation_type"], [86, 1, 1, "c.i8_fullconnection_s", "bias"], [86, 1, 1, "c.i8_fullconnection_s", "core_mask"]], "i8_gather_nd_p": [[89, 1, 1, "c.i8_gather_nd_p", "indices"], [89, 1, 1, "c.i8_gather_nd_p", "indices_ndim"], [89, 1, 1, "c.i8_gather_nd_p", "indices_shape"], [89, 1, 1, "c.i8_gather_nd_p", "input"], [89, 1, 1, "c.i8_gather_nd_p", "input_ndim"], [89, 1, 1, "c.i8_gather_nd_p", "input_shape"], [89, 1, 1, "c.i8_gather_nd_p", "output"]], "i8_gather_nd_s": [[89, 1, 1, "c.i8_gather_nd_s", "core_mask"], [89, 1, 1, "c.i8_gather_nd_s", "indices"], [89, 1, 1, "c.i8_gather_nd_s", "indices_ndim"], [89, 1, 1, "c.i8_gather_nd_s", "indices_shape"], [89, 1, 1, "c.i8_gather_nd_s", "input"], [89, 1, 1, "c.i8_gather_nd_s", "input_ndim"], [89, 1, 1, "c.i8_gather_nd_s", "input_shape"], [89, 1, 1, "c.i8_gather_nd_s", "output"]], "i8_gather_p": [[88, 1, 1, "c.i8_gather_p", "axis"], [88, 1, 1, "c.i8_gather_p", "batch_dims"], [88, 1, 1, "c.i8_gather_p", "indices"], [88, 1, 1, "c.i8_gather_p", "indices_ndim"], [88, 1, 1, "c.i8_gather_p", "indices_shape"], [88, 1, 1, "c.i8_gather_p", "input"], [88, 1, 1, "c.i8_gather_p", "input_ndim"], [88, 1, 1, "c.i8_gather_p", "input_shape"], [88, 1, 1, "c.i8_gather_p", "output"]], "i8_gather_s": [[88, 1, 1, "c.i8_gather_s", "axis"], [88, 1, 1, "c.i8_gather_s", "batch_dims"], [88, 1, 1, "c.i8_gather_s", "core_mask"], [88, 1, 1, "c.i8_gather_s", "indices"], [88, 1, 1, "c.i8_gather_s", "indices_ndim"], [88, 1, 1, "c.i8_gather_s", "indices_shape"], [88, 1, 1, "c.i8_gather_s", "input"], [88, 1, 1, "c.i8_gather_s", "input_ndim"], [88, 1, 1, "c.i8_gather_s", "input_shape"], [88, 1, 1, "c.i8_gather_s", "output"]], "i8_gatherd_p": [[90, 1, 1, "c.i8_gatherd_p", "dim"], [90, 1, 1, "c.i8_gatherd_p", "index"], [90, 1, 1, "c.i8_gatherd_p", "index_shape"], [90, 1, 1, "c.i8_gatherd_p", "input_shape"], [90, 1, 1, "c.i8_gatherd_p", "input_shape_size"], [90, 1, 1, "c.i8_gatherd_p", "input_x"], [90, 1, 1, "c.i8_gatherd_p", "output"]], "i8_gatherd_s": [[90, 1, 1, "c.i8_gatherd_s", "core_mask"], [90, 1, 1, "c.i8_gatherd_s", "dim"], [90, 1, 1, "c.i8_gatherd_s", "index"], [90, 1, 1, "c.i8_gatherd_s", "index_shape"], [90, 1, 1, "c.i8_gatherd_s", "input_shape"], [90, 1, 1, "c.i8_gatherd_s", "input_shape_size"], [90, 1, 1, "c.i8_gatherd_s", "input_x"], [90, 1, 1, "c.i8_gatherd_s", "output"]], "i8_gelu_p": [[12, 1, 1, "c.i8_gelu_p", "Input0"], [12, 1, 1, "c.i8_gelu_p", "approximate"], [12, 1, 1, "c.i8_gelu_p", "length"], [12, 1, 1, "c.i8_gelu_p", "output"]], "i8_gelu_s": [[12, 1, 1, "c.i8_gelu_s", "Input0"], [12, 1, 1, "c.i8_gelu_s", "approximate"], [12, 1, 1, "c.i8_gelu_s", "core_mask"], [12, 1, 1, "c.i8_gelu_s", "length"], [12, 1, 1, "c.i8_gelu_s", "output"]], "i8_glu_p": [[91, 1, 1, "c.i8_glu_p", "in_data"], [91, 1, 1, "c.i8_glu_p", "input_shape"], [91, 1, 1, "c.i8_glu_p", "len"], [91, 1, 1, "c.i8_glu_p", "ndim"], [91, 1, 1, "c.i8_glu_p", "num_split"], [91, 1, 1, "c.i8_glu_p", "out_data"], [91, 1, 1, "c.i8_glu_p", "split_data"], [91, 1, 1, "c.i8_glu_p", "split_dim"], [91, 1, 1, "c.i8_glu_p", "split_sizes"], [91, 1, 1, "c.i8_glu_p", "strides"]], "i8_glu_s": [[91, 1, 1, "c.i8_glu_s", "core_mask"], [91, 1, 1, "c.i8_glu_s", "in_data"], [91, 1, 1, "c.i8_glu_s", "input_shape"], [91, 1, 1, "c.i8_glu_s", "len"], [91, 1, 1, "c.i8_glu_s", "ndim"], [91, 1, 1, "c.i8_glu_s", "num_split"], [91, 1, 1, "c.i8_glu_s", "out_data"], [91, 1, 1, "c.i8_glu_s", "split_data"], [91, 1, 1, "c.i8_glu_s", "split_dim"], [91, 1, 1, "c.i8_glu_s", "split_sizes"], [91, 1, 1, "c.i8_glu_s", "strides"]], "i8_greater_p": [[92, 1, 1, "c.i8_greater_p", "element_num"], [92, 1, 1, "c.i8_greater_p", "in_elements_num0"], [92, 1, 1, "c.i8_greater_p", "input1"], [92, 1, 1, "c.i8_greater_p", "input2"], [92, 1, 1, "c.i8_greater_p", "optimize"], [92, 1, 1, "c.i8_greater_p", "output"]], "i8_greater_s": [[92, 1, 1, "c.i8_greater_s", "core_mask"], [92, 1, 1, "c.i8_greater_s", "element_num"], [92, 1, 1, "c.i8_greater_s", "in_elements_num0"], [92, 1, 1, "c.i8_greater_s", "input1"], [92, 1, 1, "c.i8_greater_s", "input2"], [92, 1, 1, "c.i8_greater_s", "optimize"], [92, 1, 1, "c.i8_greater_s", "output"]], "i8_greaterequal_p": [[93, 1, 1, "c.i8_greaterequal_p", "element_num"], [93, 1, 1, "c.i8_greaterequal_p", "in_elements_num0"], [93, 1, 1, "c.i8_greaterequal_p", "input1"], [93, 1, 1, "c.i8_greaterequal_p", "input2"], [93, 1, 1, "c.i8_greaterequal_p", "optimize"], [93, 1, 1, "c.i8_greaterequal_p", "output"]], "i8_greaterequal_s": [[93, 1, 1, "c.i8_greaterequal_s", "core_mask"], [93, 1, 1, "c.i8_greaterequal_s", "element_num"], [93, 1, 1, "c.i8_greaterequal_s", "in_elements_num0"], [93, 1, 1, "c.i8_greaterequal_s", "input1"], [93, 1, 1, "c.i8_greaterequal_s", "input2"], [93, 1, 1, "c.i8_greaterequal_s", "optimize"], [93, 1, 1, "c.i8_greaterequal_s", "output"]], "i8_hardshrink_p": [[12, 1, 1, "c.i8_hardshrink_p", "Input0"], [12, 1, 1, "c.i8_hardshrink_p", "lambd"], [12, 1, 1, "c.i8_hardshrink_p", "length"], [12, 1, 1, "c.i8_hardshrink_p", "output"]], "i8_hardshrink_s": [[12, 1, 1, "c.i8_hardshrink_s", "Input0"], [12, 1, 1, "c.i8_hardshrink_s", "core_mask"], [12, 1, 1, "c.i8_hardshrink_s", "lambd"], [12, 1, 1, "c.i8_hardshrink_s", "length"], [12, 1, 1, "c.i8_hardshrink_s", "output"]], "i8_hardtanh_p": [[12, 1, 1, "c.i8_hardtanh_p", "Input0"], [12, 1, 1, "c.i8_hardtanh_p", "length"], [12, 1, 1, "c.i8_hardtanh_p", "max_val"], [12, 1, 1, "c.i8_hardtanh_p", "min_val"], [12, 1, 1, "c.i8_hardtanh_p", "output"]], "i8_hardtanh_s": [[12, 1, 1, "c.i8_hardtanh_s", "Input0"], [12, 1, 1, "c.i8_hardtanh_s", "core_mask"], [12, 1, 1, "c.i8_hardtanh_s", "length"], [12, 1, 1, "c.i8_hardtanh_s", "max_val"], [12, 1, 1, "c.i8_hardtanh_s", "min_val"], [12, 1, 1, "c.i8_hardtanh_s", "output"]], "i8_hsigmoid_p": [[12, 1, 1, "c.i8_hsigmoid_p", "Input0"], [12, 1, 1, "c.i8_hsigmoid_p", "length"], [12, 1, 1, "c.i8_hsigmoid_p", "output"]], "i8_hsigmoid_s": [[12, 1, 1, "c.i8_hsigmoid_s", "Input0"], [12, 1, 1, "c.i8_hsigmoid_s", "core_mask"], [12, 1, 1, "c.i8_hsigmoid_s", "length"], [12, 1, 1, "c.i8_hsigmoid_s", "output"]], "i8_hswish_p": [[12, 1, 1, "c.i8_hswish_p", "Input0"], [12, 1, 1, "c.i8_hswish_p", "length"], [12, 1, 1, "c.i8_hswish_p", "output"]], "i8_hswish_s": [[12, 1, 1, "c.i8_hswish_s", "Input0"], [12, 1, 1, "c.i8_hswish_s", "core_mask"], [12, 1, 1, "c.i8_hswish_s", "length"], [12, 1, 1, "c.i8_hswish_s", "output"]], "i8_invertpermutation_p": [[98, 1, 1, "c.i8_invertpermutation_p", "input"], [98, 1, 1, "c.i8_invertpermutation_p", "num"], [98, 1, 1, "c.i8_invertpermutation_p", "output"]], "i8_invertpermutation_s": [[98, 1, 1, "c.i8_invertpermutation_s", "core_mask"], [98, 1, 1, "c.i8_invertpermutation_s", "input"], [98, 1, 1, "c.i8_invertpermutation_s", "num"], [98, 1, 1, "c.i8_invertpermutation_s", "output"]], "i8_isfinite_p": [[99, 1, 1, "c.i8_isfinite_p", "Input"], [99, 1, 1, "c.i8_isfinite_p", "length"], [99, 1, 1, "c.i8_isfinite_p", "output"]], "i8_isfinite_s": [[99, 1, 1, "c.i8_isfinite_s", "Input"], [99, 1, 1, "c.i8_isfinite_s", "core_mask"], [99, 1, 1, "c.i8_isfinite_s", "length"], [99, 1, 1, "c.i8_isfinite_s", "output"]], "i8_layernormfusion_p": [[101, 1, 1, "c.i8_layernormfusion_p", "beta_data"], [101, 1, 1, "c.i8_layernormfusion_p", "dst_data"], [101, 1, 1, "c.i8_layernormfusion_p", "epsilon"], [101, 1, 1, "c.i8_layernormfusion_p", "gamma_data"], [101, 1, 1, "c.i8_layernormfusion_p", "norm_inner_size"], [101, 1, 1, "c.i8_layernormfusion_p", "norm_outer_size"], [101, 1, 1, "c.i8_layernormfusion_p", "out_mean"], [101, 1, 1, "c.i8_layernormfusion_p", "out_variance"], [101, 1, 1, "c.i8_layernormfusion_p", "param_inner_size"], [101, 1, 1, "c.i8_layernormfusion_p", "param_outer_size"], [101, 1, 1, "c.i8_layernormfusion_p", "src_data"]], "i8_layernormfusion_s": [[101, 1, 1, "c.i8_layernormfusion_s", "beta_data"], [101, 1, 1, "c.i8_layernormfusion_s", "core_mask"], [101, 1, 1, "c.i8_layernormfusion_s", "dst_data"], [101, 1, 1, "c.i8_layernormfusion_s", "epsilon"], [101, 1, 1, "c.i8_layernormfusion_s", "gamma_data"], [101, 1, 1, "c.i8_layernormfusion_s", "length"], [101, 1, 1, "c.i8_layernormfusion_s", "norm_inner_size"], [101, 1, 1, "c.i8_layernormfusion_s", "norm_outer_size"], [101, 1, 1, "c.i8_layernormfusion_s", "out_mean"], [101, 1, 1, "c.i8_layernormfusion_s", "out_variance"], [101, 1, 1, "c.i8_layernormfusion_s", "param_inner_size"], [101, 1, 1, "c.i8_layernormfusion_s", "param_outer_size"], [101, 1, 1, "c.i8_layernormfusion_s", "src_data"]], "i8_leaky_relu_p": [[103, 1, 1, "c.i8_leaky_relu_p", "alpha"], [103, 1, 1, "c.i8_leaky_relu_p", "core_mask"], [103, 1, 1, "c.i8_leaky_relu_p", "elem_cnt"], [103, 1, 1, "c.i8_leaky_relu_p", "input"], [103, 1, 1, "c.i8_leaky_relu_p", "output"]], "i8_leaky_relu_s": [[103, 1, 1, "c.i8_leaky_relu_s", "alpha"], [103, 1, 1, "c.i8_leaky_relu_s", "core_mask"], [103, 1, 1, "c.i8_leaky_relu_s", "elem_cnt"], [103, 1, 1, "c.i8_leaky_relu_s", "input"], [103, 1, 1, "c.i8_leaky_relu_s", "output"]], "i8_less_p": [[104, 1, 1, "c.i8_less_p", "Input0"], [104, 1, 1, "c.i8_less_p", "Input1"], [104, 1, 1, "c.i8_less_p", "in_elements_num0"], [104, 1, 1, "c.i8_less_p", "length"], [104, 1, 1, "c.i8_less_p", "optimize"], [104, 1, 1, "c.i8_less_p", "output"]], "i8_less_s": [[104, 1, 1, "c.i8_less_s", "Input0"], [104, 1, 1, "c.i8_less_s", "Input1"], [104, 1, 1, "c.i8_less_s", "core_mask"], [104, 1, 1, "c.i8_less_s", "in_elements_num0"], [104, 1, 1, "c.i8_less_s", "length"], [104, 1, 1, "c.i8_less_s", "optimize"], [104, 1, 1, "c.i8_less_s", "output"]], "i8_lessequal_p": [[105, 1, 1, "c.i8_lessequal_p", "Input0"], [105, 1, 1, "c.i8_lessequal_p", "Input1"], [105, 1, 1, "c.i8_lessequal_p", "in_elements_num0"], [105, 1, 1, "c.i8_lessequal_p", "length"], [105, 1, 1, "c.i8_lessequal_p", "optimize"], [105, 1, 1, "c.i8_lessequal_p", "output"]], "i8_lessequal_s": [[105, 1, 1, "c.i8_lessequal_s", "Input0"], [105, 1, 1, "c.i8_lessequal_s", "Input1"], [105, 1, 1, "c.i8_lessequal_s", "core_mask"], [105, 1, 1, "c.i8_lessequal_s", "in_elements_num0"], [105, 1, 1, "c.i8_lessequal_s", "length"], [105, 1, 1, "c.i8_lessequal_s", "optimize"], [105, 1, 1, "c.i8_lessequal_s", "output"]], "i8_log1p_p": [[108, 1, 1, "c.i8_log1p_p", "Input"], [108, 1, 1, "c.i8_log1p_p", "length"], [108, 1, 1, "c.i8_log1p_p", "output"]], "i8_log1p_s": [[108, 1, 1, "c.i8_log1p_s", "Input"], [108, 1, 1, "c.i8_log1p_s", "core_mask"], [108, 1, 1, "c.i8_log1p_s", "length"], [108, 1, 1, "c.i8_log1p_s", "output"]], "i8_logical_not_p": [[110, 1, 1, "c.i8_logical_not_p", "input"], [110, 1, 1, "c.i8_logical_not_p", "length"], [110, 1, 1, "c.i8_logical_not_p", "output"]], "i8_logical_not_s": [[110, 1, 1, "c.i8_logical_not_s", "core_mask"], [110, 1, 1, "c.i8_logical_not_s", "input"], [110, 1, 1, "c.i8_logical_not_s", "length"], [110, 1, 1, "c.i8_logical_not_s", "output"]], "i8_logical_or_p": [[111, 1, 1, "c.i8_logical_or_p", "input0"], [111, 1, 1, "c.i8_logical_or_p", "input1"], [111, 1, 1, "c.i8_logical_or_p", "length"], [111, 1, 1, "c.i8_logical_or_p", "output"]], "i8_logical_or_s": [[111, 1, 1, "c.i8_logical_or_s", "core_mask"], [111, 1, 1, "c.i8_logical_or_s", "input0"], [111, 1, 1, "c.i8_logical_or_s", "input1"], [111, 1, 1, "c.i8_logical_or_s", "length"], [111, 1, 1, "c.i8_logical_or_s", "output"]], "i8_logsoftmax_p": [[113, 1, 1, "c.i8_logsoftmax_p", "axis"], [113, 1, 1, "c.i8_logsoftmax_p", "axis_size"], [113, 1, 1, "c.i8_logsoftmax_p", "inner_size"], [113, 1, 1, "c.i8_logsoftmax_p", "input_ptr"], [113, 1, 1, "c.i8_logsoftmax_p", "n_dim"], [113, 1, 1, "c.i8_logsoftmax_p", "output_ptr"], [113, 1, 1, "c.i8_logsoftmax_p", "outter_size"], [113, 1, 1, "c.i8_logsoftmax_p", "sum_data"]], "i8_logsoftmax_s": [[113, 1, 1, "c.i8_logsoftmax_s", "axis"], [113, 1, 1, "c.i8_logsoftmax_s", "axis_size"], [113, 1, 1, "c.i8_logsoftmax_s", "core_mask"], [113, 1, 1, "c.i8_logsoftmax_s", "inner_size"], [113, 1, 1, "c.i8_logsoftmax_s", "input_ptr"], [113, 1, 1, "c.i8_logsoftmax_s", "n_dim"], [113, 1, 1, "c.i8_logsoftmax_s", "output_ptr"], [113, 1, 1, "c.i8_logsoftmax_s", "outter_size"], [113, 1, 1, "c.i8_logsoftmax_s", "sum_data"]], "i8_lrelu_p": [[12, 1, 1, "c.i8_lrelu_p", "Input0"], [12, 1, 1, "c.i8_lrelu_p", "alpha"], [12, 1, 1, "c.i8_lrelu_p", "length"], [12, 1, 1, "c.i8_lrelu_p", "output"]], "i8_lrelu_s": [[12, 1, 1, "c.i8_lrelu_s", "Input0"], [12, 1, 1, "c.i8_lrelu_s", "alpha"], [12, 1, 1, "c.i8_lrelu_s", "core_mask"], [12, 1, 1, "c.i8_lrelu_s", "length"], [12, 1, 1, "c.i8_lrelu_s", "output"]], "i8_lsh_projection_p": [[116, 1, 1, "c.i8_lsh_projection_p", "bits_per_hash"], [116, 1, 1, "c.i8_lsh_projection_p", "feature"], [116, 1, 1, "c.i8_lsh_projection_p", "feature_num"], [116, 1, 1, "c.i8_lsh_projection_p", "hash_group_num"], [116, 1, 1, "c.i8_lsh_projection_p", "hash_seed"], [116, 1, 1, "c.i8_lsh_projection_p", "output"], [116, 1, 1, "c.i8_lsh_projection_p", "weight"]], "i8_lsh_projection_s": [[116, 1, 1, "c.i8_lsh_projection_s", "bits_per_hash"], [116, 1, 1, "c.i8_lsh_projection_s", "core_mask"], [116, 1, 1, "c.i8_lsh_projection_s", "feature"], [116, 1, 1, "c.i8_lsh_projection_s", "feature_num"], [116, 1, 1, "c.i8_lsh_projection_s", "hash_group_num"], [116, 1, 1, "c.i8_lsh_projection_s", "hash_seed"], [116, 1, 1, "c.i8_lsh_projection_s", "output"], [116, 1, 1, "c.i8_lsh_projection_s", "weight"]], "i8_maximum_p": [[122, 1, 1, "c.i8_maximum_p", "input0"], [122, 1, 1, "c.i8_maximum_p", "input1"], [122, 1, 1, "c.i8_maximum_p", "length"], [122, 1, 1, "c.i8_maximum_p", "output"]], "i8_maximum_s": [[122, 1, 1, "c.i8_maximum_s", "core_mask"], [122, 1, 1, "c.i8_maximum_s", "input0"], [122, 1, 1, "c.i8_maximum_s", "input1"], [122, 1, 1, "c.i8_maximum_s", "length"], [122, 1, 1, "c.i8_maximum_s", "output"]], "i8_minimum_p": [[127, 1, 1, "c.i8_minimum_p", "input0"], [127, 1, 1, "c.i8_minimum_p", "input1"], [127, 1, 1, "c.i8_minimum_p", "length"], [127, 1, 1, "c.i8_minimum_p", "output"]], "i8_minimum_s": [[127, 1, 1, "c.i8_minimum_s", "core_mask"], [127, 1, 1, "c.i8_minimum_s", "input0"], [127, 1, 1, "c.i8_minimum_s", "input1"], [127, 1, 1, "c.i8_minimum_s", "length"], [127, 1, 1, "c.i8_minimum_s", "output"]], "i8_mod_p": [[129, 1, 1, "c.i8_mod_p", "input0"], [129, 1, 1, "c.i8_mod_p", "input1"], [129, 1, 1, "c.i8_mod_p", "length"], [129, 1, 1, "c.i8_mod_p", "output"]], "i8_mod_s": [[129, 1, 1, "c.i8_mod_s", "core_mask"], [129, 1, 1, "c.i8_mod_s", "input0"], [129, 1, 1, "c.i8_mod_s", "input1"], [129, 1, 1, "c.i8_mod_s", "length"], [129, 1, 1, "c.i8_mod_s", "output"]], "i8_mul_p": [[130, 1, 1, "c.i8_mul_p", "input0"], [130, 1, 1, "c.i8_mul_p", "input1"], [130, 1, 1, "c.i8_mul_p", "length"], [130, 1, 1, "c.i8_mul_p", "output"]], "i8_mul_s": [[130, 1, 1, "c.i8_mul_s", "core_mask"], [130, 1, 1, "c.i8_mul_s", "input0"], [130, 1, 1, "c.i8_mul_s", "input1"], [130, 1, 1, "c.i8_mul_s", "length"], [130, 1, 1, "c.i8_mul_s", "output"]], "i8_neg_grad_p": [[133, 1, 1, "c.i8_neg_grad_p", "Input"], [133, 1, 1, "c.i8_neg_grad_p", "length"], [133, 1, 1, "c.i8_neg_grad_p", "output"]], "i8_neg_grad_s": [[133, 1, 1, "c.i8_neg_grad_s", "Input"], [133, 1, 1, "c.i8_neg_grad_s", "core_mask"], [133, 1, 1, "c.i8_neg_grad_s", "length"], [133, 1, 1, "c.i8_neg_grad_s", "output"]], "i8_neg_p": [[132, 1, 1, "c.i8_neg_p", "Input"], [132, 1, 1, "c.i8_neg_p", "length"], [132, 1, 1, "c.i8_neg_p", "output"]], "i8_neg_s": [[132, 1, 1, "c.i8_neg_s", "Input"], [132, 1, 1, "c.i8_neg_s", "core_mask"], [132, 1, 1, "c.i8_neg_s", "length"], [132, 1, 1, "c.i8_neg_s", "output"]], "i8_nllloss_p": [[134, 1, 1, "c.i8_nllloss_p", "batch_size"], [134, 1, 1, "c.i8_nllloss_p", "class_num"], [134, 1, 1, "c.i8_nllloss_p", "labels"], [134, 1, 1, "c.i8_nllloss_p", "log_probs"], [134, 1, 1, "c.i8_nllloss_p", "loss"], [134, 1, 1, "c.i8_nllloss_p", "reduction_type"], [134, 1, 1, "c.i8_nllloss_p", "total_weight"], [134, 1, 1, "c.i8_nllloss_p", "weight"]], "i8_nllloss_s": [[134, 1, 1, "c.i8_nllloss_s", "batch_size"], [134, 1, 1, "c.i8_nllloss_s", "class_num"], [134, 1, 1, "c.i8_nllloss_s", "core_mask"], [134, 1, 1, "c.i8_nllloss_s", "labels"], [134, 1, 1, "c.i8_nllloss_s", "log_probs"], [134, 1, 1, "c.i8_nllloss_s", "loss"], [134, 1, 1, "c.i8_nllloss_s", "reduction_type"], [134, 1, 1, "c.i8_nllloss_s", "total_weight"], [134, 1, 1, "c.i8_nllloss_s", "weight"]], "i8_non_max_suppression_p": [[136, 1, 1, "c.i8_non_max_suppression_p", "param"]], "i8_non_max_suppression_s": [[136, 1, 1, "c.i8_non_max_suppression_s", "core_mask"], [136, 1, 1, "c.i8_non_max_suppression_s", "param"]], "i8_nonzero_p": [[137, 1, 1, "c.i8_nonzero_p", "dim_strides"], [137, 1, 1, "c.i8_nonzero_p", "input"], [137, 1, 1, "c.i8_nonzero_p", "input_rank"], [137, 1, 1, "c.i8_nonzero_p", "length"], [137, 1, 1, "c.i8_nonzero_p", "non_zero_num"], [137, 1, 1, "c.i8_nonzero_p", "output"], [137, 1, 1, "c.i8_nonzero_p", "shape"]], "i8_nonzero_s": [[137, 1, 1, "c.i8_nonzero_s", "core_mask"], [137, 1, 1, "c.i8_nonzero_s", "dim_strides"], [137, 1, 1, "c.i8_nonzero_s", "input"], [137, 1, 1, "c.i8_nonzero_s", "input_rank"], [137, 1, 1, "c.i8_nonzero_s", "length"], [137, 1, 1, "c.i8_nonzero_s", "non_zero_num"], [137, 1, 1, "c.i8_nonzero_s", "output"], [137, 1, 1, "c.i8_nonzero_s", "shape"]], "i8_not_equal_p": [[138, 1, 1, "c.i8_not_equal_p", "Input0"], [138, 1, 1, "c.i8_not_equal_p", "Input1"], [138, 1, 1, "c.i8_not_equal_p", "length"], [138, 1, 1, "c.i8_not_equal_p", "output"]], "i8_not_equal_s": [[138, 1, 1, "c.i8_not_equal_s", "Input0"], [138, 1, 1, "c.i8_not_equal_s", "Input1"], [138, 1, 1, "c.i8_not_equal_s", "core_mask"], [138, 1, 1, "c.i8_not_equal_s", "length"], [138, 1, 1, "c.i8_not_equal_s", "output"]], "i8_onehot_p": [[139, 1, 1, "c.i8_onehot_p", "axis"], [139, 1, 1, "c.i8_onehot_p", "depth"], [139, 1, 1, "c.i8_onehot_p", "indices"], [139, 1, 1, "c.i8_onehot_p", "indices_shape"], [139, 1, 1, "c.i8_onehot_p", "indices_shape_size"], [139, 1, 1, "c.i8_onehot_p", "on_off"], [139, 1, 1, "c.i8_onehot_p", "output"], [139, 1, 1, "c.i8_onehot_p", "support_neg_index"]], "i8_onehot_s": [[139, 1, 1, "c.i8_onehot_s", "axis"], [139, 1, 1, "c.i8_onehot_s", "core_mask"], [139, 1, 1, "c.i8_onehot_s", "depth"], [139, 1, 1, "c.i8_onehot_s", "indices"], [139, 1, 1, "c.i8_onehot_s", "indices_shape"], [139, 1, 1, "c.i8_onehot_s", "indices_shape_size"], [139, 1, 1, "c.i8_onehot_s", "on_off"], [139, 1, 1, "c.i8_onehot_s", "output"], [139, 1, 1, "c.i8_onehot_s", "support_neg_index"]], "i8_ones_like_p": [[140, 1, 1, "c.i8_ones_like_p", "length"], [140, 1, 1, "c.i8_ones_like_p", "output"]], "i8_ones_like_s": [[140, 1, 1, "c.i8_ones_like_s", "core_mask"], [140, 1, 1, "c.i8_ones_like_s", "length"], [140, 1, 1, "c.i8_ones_like_s", "output"]], "i8_padfusion_p": [[141, 1, 1, "c.i8_padfusion_p", "params"]], "i8_padfusion_s": [[141, 1, 1, "c.i8_padfusion_s", "core_mask"], [141, 1, 1, "c.i8_padfusion_s", "params"]], "i8_pow_fusion_p": [[142, 1, 1, "c.i8_pow_fusion_p", "Input"], [142, 1, 1, "c.i8_pow_fusion_p", "broadcast"], [142, 1, 1, "c.i8_pow_fusion_p", "exponent"], [142, 1, 1, "c.i8_pow_fusion_p", "length_in"], [142, 1, 1, "c.i8_pow_fusion_p", "output"], [142, 1, 1, "c.i8_pow_fusion_p", "scale"], [142, 1, 1, "c.i8_pow_fusion_p", "shift"]], "i8_pow_fusion_s": [[142, 1, 1, "c.i8_pow_fusion_s", "Input"], [142, 1, 1, "c.i8_pow_fusion_s", "broadcast"], [142, 1, 1, "c.i8_pow_fusion_s", "core_mask"], [142, 1, 1, "c.i8_pow_fusion_s", "exponent"], [142, 1, 1, "c.i8_pow_fusion_s", "length_in"], [142, 1, 1, "c.i8_pow_fusion_s", "output"], [142, 1, 1, "c.i8_pow_fusion_s", "scale"], [142, 1, 1, "c.i8_pow_fusion_s", "shift"]], "i8_prelufusion_p": [[144, 1, 1, "c.i8_prelufusion_p", "dst_data"], [144, 1, 1, "c.i8_prelufusion_p", "end"], [144, 1, 1, "c.i8_prelufusion_p", "slope"], [144, 1, 1, "c.i8_prelufusion_p", "src_data"], [144, 1, 1, "c.i8_prelufusion_p", "start"]], "i8_prelufusion_s": [[144, 1, 1, "c.i8_prelufusion_s", "core_mask"], [144, 1, 1, "c.i8_prelufusion_s", "dst_data"], [144, 1, 1, "c.i8_prelufusion_s", "end"], [144, 1, 1, "c.i8_prelufusion_s", "slope"], [144, 1, 1, "c.i8_prelufusion_s", "src_data"], [144, 1, 1, "c.i8_prelufusion_s", "start"]], "i8_raggedrange_p": [[147, 1, 1, "c.i8_raggedrange_p", "deltas"], [147, 1, 1, "c.i8_raggedrange_p", "limits"], [147, 1, 1, "c.i8_raggedrange_p", "range_count"], [147, 1, 1, "c.i8_raggedrange_p", "splits"], [147, 1, 1, "c.i8_raggedrange_p", "starts"], [147, 1, 1, "c.i8_raggedrange_p", "values"]], "i8_raggedrange_s": [[147, 1, 1, "c.i8_raggedrange_s", "core_mask"], [147, 1, 1, "c.i8_raggedrange_s", "deltas"], [147, 1, 1, "c.i8_raggedrange_s", "limits"], [147, 1, 1, "c.i8_raggedrange_s", "range_count"], [147, 1, 1, "c.i8_raggedrange_s", "splits"], [147, 1, 1, "c.i8_raggedrange_s", "starts"], [147, 1, 1, "c.i8_raggedrange_s", "values"]], "i8_range_p": [[150, 1, 1, "c.i8_range_p", "delta"], [150, 1, 1, "c.i8_range_p", "length"], [150, 1, 1, "c.i8_range_p", "output"], [150, 1, 1, "c.i8_range_p", "start"]], "i8_range_s": [[150, 1, 1, "c.i8_range_s", "core_mask"], [150, 1, 1, "c.i8_range_s", "delta"], [150, 1, 1, "c.i8_range_s", "length"], [150, 1, 1, "c.i8_range_s", "output"], [150, 1, 1, "c.i8_range_s", "start"]], "i8_real_div_p": [[152, 1, 1, "c.i8_real_div_p", "input0"], [152, 1, 1, "c.i8_real_div_p", "input1"], [152, 1, 1, "c.i8_real_div_p", "length"], [152, 1, 1, "c.i8_real_div_p", "output"]], "i8_real_div_s": [[152, 1, 1, "c.i8_real_div_s", "core_mask"], [152, 1, 1, "c.i8_real_div_s", "input0"], [152, 1, 1, "c.i8_real_div_s", "input1"], [152, 1, 1, "c.i8_real_div_s", "length"], [152, 1, 1, "c.i8_real_div_s", "output"]], "i8_reciprocal_p": [[153, 1, 1, "c.i8_reciprocal_p", "Input"], [153, 1, 1, "c.i8_reciprocal_p", "length"], [153, 1, 1, "c.i8_reciprocal_p", "output"]], "i8_reciprocal_s": [[153, 1, 1, "c.i8_reciprocal_s", "Input"], [153, 1, 1, "c.i8_reciprocal_s", "core_mask"], [153, 1, 1, "c.i8_reciprocal_s", "length"], [153, 1, 1, "c.i8_reciprocal_s", "output"]], "i8_reduce_p": [[154, 1, 1, "c.i8_reduce_p", "core_mask"], [154, 1, 1, "c.i8_reduce_p", "dst_data"], [154, 1, 1, "c.i8_reduce_p", "param"], [154, 1, 1, "c.i8_reduce_p", "src_data"], [154, 1, 1, "c.i8_reduce_p", "tmp_dst_data"], [154, 1, 1, "c.i8_reduce_p", "tmp_src_data"]], "i8_reduce_s": [[154, 1, 1, "c.i8_reduce_s", "core_mask"], [154, 1, 1, "c.i8_reduce_s", "dst_data"], [154, 1, 1, "c.i8_reduce_s", "param"], [154, 1, 1, "c.i8_reduce_s", "src_data"]], "i8_reduceall_p": [[21, 1, 1, "c.i8_reduceall_p", "axis_size"], [21, 1, 1, "c.i8_reduceall_p", "dst_data"], [21, 1, 1, "c.i8_reduceall_p", "inner_size"], [21, 1, 1, "c.i8_reduceall_p", "outer_size"], [21, 1, 1, "c.i8_reduceall_p", "src_data"]], "i8_reduceall_s": [[21, 1, 1, "c.i8_reduceall_s", "axis_size"], [21, 1, 1, "c.i8_reduceall_s", "core_mask"], [21, 1, 1, "c.i8_reduceall_s", "dst_data"], [21, 1, 1, "c.i8_reduceall_s", "inner_size"], [21, 1, 1, "c.i8_reduceall_s", "outer_size"], [21, 1, 1, "c.i8_reduceall_s", "src_data"]], "i8_reducescatter_p": [[155, 1, 1, "c.i8_reducescatter_p", "data_size"], [155, 1, 1, "c.i8_reducescatter_p", "input_data"], [155, 1, 1, "c.i8_reducescatter_p", "output_data"], [155, 1, 1, "c.i8_reducescatter_p", "reduce_type"]], "i8_reducescatter_s": [[155, 1, 1, "c.i8_reducescatter_s", "core_mask"], [155, 1, 1, "c.i8_reducescatter_s", "data_size"], [155, 1, 1, "c.i8_reducescatter_s", "input_data"], [155, 1, 1, "c.i8_reducescatter_s", "output_data"], [155, 1, 1, "c.i8_reducescatter_s", "reduce_type"]], "i8_relu6_p": [[12, 1, 1, "c.i8_relu6_p", "Input0"], [12, 1, 1, "c.i8_relu6_p", "length"], [12, 1, 1, "c.i8_relu6_p", "output"]], "i8_relu6_s": [[12, 1, 1, "c.i8_relu6_s", "Input0"], [12, 1, 1, "c.i8_relu6_s", "core_mask"], [12, 1, 1, "c.i8_relu6_s", "length"], [12, 1, 1, "c.i8_relu6_s", "output"]], "i8_relu_p": [[12, 1, 1, "c.i8_relu_p", "Input0"], [12, 1, 1, "c.i8_relu_p", "length"], [12, 1, 1, "c.i8_relu_p", "output"]], "i8_relu_s": [[12, 1, 1, "c.i8_relu_s", "Input0"], [12, 1, 1, "c.i8_relu_s", "core_mask"], [12, 1, 1, "c.i8_relu_s", "length"], [12, 1, 1, "c.i8_relu_s", "output"]], "i8_reshape_p": [[156, 1, 1, "c.i8_reshape_p", "input"], [156, 1, 1, "c.i8_reshape_p", "length"], [156, 1, 1, "c.i8_reshape_p", "output"]], "i8_reshape_s": [[156, 1, 1, "c.i8_reshape_s", "core_mask"], [156, 1, 1, "c.i8_reshape_s", "input"], [156, 1, 1, "c.i8_reshape_s", "length"], [156, 1, 1, "c.i8_reshape_s", "output"]], "i8_resize_anycore": [[157, 1, 1, "c.i8_resize_anycore", "core_mask"], [157, 1, 1, "c.i8_resize_anycore", "input"], [157, 1, 1, "c.i8_resize_anycore", "output"], [157, 1, 1, "c.i8_resize_anycore", "param"]], "i8_roipooling_p": [[162, 1, 1, "c.i8_roipooling_p", "in_ptr"], [162, 1, 1, "c.i8_roipooling_p", "input_c"], [162, 1, 1, "c.i8_roipooling_p", "input_h"], [162, 1, 1, "c.i8_roipooling_p", "input_n"], [162, 1, 1, "c.i8_roipooling_p", "input_w"], [162, 1, 1, "c.i8_roipooling_p", "max_c"], [162, 1, 1, "c.i8_roipooling_p", "num_rois"], [162, 1, 1, "c.i8_roipooling_p", "out_ptr"], [162, 1, 1, "c.i8_roipooling_p", "pooled_height"], [162, 1, 1, "c.i8_roipooling_p", "pooled_width"], [162, 1, 1, "c.i8_roipooling_p", "roi"], [162, 1, 1, "c.i8_roipooling_p", "scale"]], "i8_roipooling_s": [[162, 1, 1, "c.i8_roipooling_s", "core_mask"], [162, 1, 1, "c.i8_roipooling_s", "in_ptr"], [162, 1, 1, "c.i8_roipooling_s", "input_c"], [162, 1, 1, "c.i8_roipooling_s", "input_h"], [162, 1, 1, "c.i8_roipooling_s", "input_n"], [162, 1, 1, "c.i8_roipooling_s", "input_w"], [162, 1, 1, "c.i8_roipooling_s", "max_c"], [162, 1, 1, "c.i8_roipooling_s", "num_rois"], [162, 1, 1, "c.i8_roipooling_s", "out_ptr"], [162, 1, 1, "c.i8_roipooling_s", "pooled_height"], [162, 1, 1, "c.i8_roipooling_s", "pooled_width"], [162, 1, 1, "c.i8_roipooling_s", "roi"], [162, 1, 1, "c.i8_roipooling_s", "scale"]], "i8_rsqrt_p": [[164, 1, 1, "c.i8_rsqrt_p", "dst"], [164, 1, 1, "c.i8_rsqrt_p", "length"], [164, 1, 1, "c.i8_rsqrt_p", "src"]], "i8_rsqrt_s": [[164, 1, 1, "c.i8_rsqrt_s", "core_mask"], [164, 1, 1, "c.i8_rsqrt_s", "dst"], [164, 1, 1, "c.i8_rsqrt_s", "length"], [164, 1, 1, "c.i8_rsqrt_s", "src"]], "i8_scalefusion_p": [[166, 1, 1, "c.i8_scalefusion_p", "bias"], [166, 1, 1, "c.i8_scalefusion_p", "dst_data"], [166, 1, 1, "c.i8_scalefusion_p", "length"], [166, 1, 1, "c.i8_scalefusion_p", "scale"], [166, 1, 1, "c.i8_scalefusion_p", "src_data"]], "i8_scalefusion_s": [[166, 1, 1, "c.i8_scalefusion_s", "bias"], [166, 1, 1, "c.i8_scalefusion_s", "core_mask"], [166, 1, 1, "c.i8_scalefusion_s", "dst_data"], [166, 1, 1, "c.i8_scalefusion_s", "length"], [166, 1, 1, "c.i8_scalefusion_s", "scale"], [166, 1, 1, "c.i8_scalefusion_s", "src_data"]], "i8_scatter_elements_p": [[167, 1, 1, "c.i8_scatter_elements_p", "core_mask"], [167, 1, 1, "c.i8_scatter_elements_p", "indices"], [167, 1, 1, "c.i8_scatter_elements_p", "input"], [167, 1, 1, "c.i8_scatter_elements_p", "output"], [167, 1, 1, "c.i8_scatter_elements_p", "param"], [167, 1, 1, "c.i8_scatter_elements_p", "updates"]], "i8_scatter_elements_s": [[167, 1, 1, "c.i8_scatter_elements_s", "core_mask"], [167, 1, 1, "c.i8_scatter_elements_s", "indices"], [167, 1, 1, "c.i8_scatter_elements_s", "input"], [167, 1, 1, "c.i8_scatter_elements_s", "output"], [167, 1, 1, "c.i8_scatter_elements_s", "param"], [167, 1, 1, "c.i8_scatter_elements_s", "updates"]], "i8_scatter_nd_p": [[168, 1, 1, "c.i8_scatter_nd_p", "indices"], [168, 1, 1, "c.i8_scatter_nd_p", "indices_ndim"], [168, 1, 1, "c.i8_scatter_nd_p", "indices_shape"], [168, 1, 1, "c.i8_scatter_nd_p", "output"], [168, 1, 1, "c.i8_scatter_nd_p", "output_ndim"], [168, 1, 1, "c.i8_scatter_nd_p", "output_shape"], [168, 1, 1, "c.i8_scatter_nd_p", "updates"]], "i8_scatter_nd_s": [[168, 1, 1, "c.i8_scatter_nd_s", "core_mask"], [168, 1, 1, "c.i8_scatter_nd_s", "indices"], [168, 1, 1, "c.i8_scatter_nd_s", "indices_ndim"], [168, 1, 1, "c.i8_scatter_nd_s", "indices_shape"], [168, 1, 1, "c.i8_scatter_nd_s", "output"], [168, 1, 1, "c.i8_scatter_nd_s", "output_ndim"], [168, 1, 1, "c.i8_scatter_nd_s", "output_shape"], [168, 1, 1, "c.i8_scatter_nd_s", "updates"]], "i8_scatter_nd_update_p": [[169, 1, 1, "c.i8_scatter_nd_update_p", "indices"], [169, 1, 1, "c.i8_scatter_nd_update_p", "indices_ndim"], [169, 1, 1, "c.i8_scatter_nd_update_p", "indices_shape"], [169, 1, 1, "c.i8_scatter_nd_update_p", "output"], [169, 1, 1, "c.i8_scatter_nd_update_p", "output_ndim"], [169, 1, 1, "c.i8_scatter_nd_update_p", "output_shape"], [169, 1, 1, "c.i8_scatter_nd_update_p", "updates"]], "i8_scatter_nd_update_s": [[169, 1, 1, "c.i8_scatter_nd_update_s", "core_mask"], [169, 1, 1, "c.i8_scatter_nd_update_s", "indices"], [169, 1, 1, "c.i8_scatter_nd_update_s", "indices_ndim"], [169, 1, 1, "c.i8_scatter_nd_update_s", "indices_shape"], [169, 1, 1, "c.i8_scatter_nd_update_s", "output"], [169, 1, 1, "c.i8_scatter_nd_update_s", "output_ndim"], [169, 1, 1, "c.i8_scatter_nd_update_s", "output_shape"], [169, 1, 1, "c.i8_scatter_nd_update_s", "updates"]], "i8_select_p": [[170, 1, 1, "c.i8_select_p", "condition"], [170, 1, 1, "c.i8_select_p", "index_list1"], [170, 1, 1, "c.i8_select_p", "index_list2"], [170, 1, 1, "c.i8_select_p", "index_list3"], [170, 1, 1, "c.i8_select_p", "input0"], [170, 1, 1, "c.i8_select_p", "input1"], [170, 1, 1, "c.i8_select_p", "is_broadcast"], [170, 1, 1, "c.i8_select_p", "output"], [170, 1, 1, "c.i8_select_p", "output_dims"], [170, 1, 1, "c.i8_select_p", "output_dims_num"]], "i8_select_s": [[170, 1, 1, "c.i8_select_s", "condition"], [170, 1, 1, "c.i8_select_s", "core_mask"], [170, 1, 1, "c.i8_select_s", "index_list1"], [170, 1, 1, "c.i8_select_s", "index_list2"], [170, 1, 1, "c.i8_select_s", "index_list3"], [170, 1, 1, "c.i8_select_s", "input0"], [170, 1, 1, "c.i8_select_s", "input1"], [170, 1, 1, "c.i8_select_s", "is_broadcast"], [170, 1, 1, "c.i8_select_s", "output"], [170, 1, 1, "c.i8_select_s", "output_dims"], [170, 1, 1, "c.i8_select_s", "output_dims_num"]], "i8_sigmoid_p": [[12, 1, 1, "c.i8_sigmoid_p", "Input0"], [12, 1, 1, "c.i8_sigmoid_p", "length"], [12, 1, 1, "c.i8_sigmoid_p", "output"]], "i8_sigmoid_s": [[12, 1, 1, "c.i8_sigmoid_s", "Input0"], [12, 1, 1, "c.i8_sigmoid_s", "core_mask"], [12, 1, 1, "c.i8_sigmoid_s", "length"], [12, 1, 1, "c.i8_sigmoid_s", "output"]], "i8_sigmoidcrossentropywithlogits_p": [[174, 1, 1, "c.i8_sigmoidcrossentropywithlogits_p", "input0"], [174, 1, 1, "c.i8_sigmoidcrossentropywithlogits_p", "input1"], [174, 1, 1, "c.i8_sigmoidcrossentropywithlogits_p", "length"], [174, 1, 1, "c.i8_sigmoidcrossentropywithlogits_p", "output"]], "i8_sigmoidcrossentropywithlogits_s": [[174, 1, 1, "c.i8_sigmoidcrossentropywithlogits_s", "core_mask"], [174, 1, 1, "c.i8_sigmoidcrossentropywithlogits_s", "input0"], [174, 1, 1, "c.i8_sigmoidcrossentropywithlogits_s", "input1"], [174, 1, 1, "c.i8_sigmoidcrossentropywithlogits_s", "length"], [174, 1, 1, "c.i8_sigmoidcrossentropywithlogits_s", "output"]], "i8_sin_p": [[175, 1, 1, "c.i8_sin_p", "dst_data"], [175, 1, 1, "c.i8_sin_p", "length"], [175, 1, 1, "c.i8_sin_p", "src_data"]], "i8_sin_s": [[175, 1, 1, "c.i8_sin_s", "core_mask"], [175, 1, 1, "c.i8_sin_s", "dst_data"], [175, 1, 1, "c.i8_sin_s", "length"], [175, 1, 1, "c.i8_sin_s", "src_data"]], "i8_slice_p": [[178, 1, 1, "c.i8_slice_p", "begin"], [178, 1, 1, "c.i8_slice_p", "input"], [178, 1, 1, "c.i8_slice_p", "input_shape"], [178, 1, 1, "c.i8_slice_p", "ndim"], [178, 1, 1, "c.i8_slice_p", "output"], [178, 1, 1, "c.i8_slice_p", "size"]], "i8_slice_s": [[178, 1, 1, "c.i8_slice_s", "begin"], [178, 1, 1, "c.i8_slice_s", "core_mask"], [178, 1, 1, "c.i8_slice_s", "input"], [178, 1, 1, "c.i8_slice_s", "input_shape"], [178, 1, 1, "c.i8_slice_s", "ndim"], [178, 1, 1, "c.i8_slice_s", "output"], [178, 1, 1, "c.i8_slice_s", "size"]], "i8_smoothl1loss_p": [[179, 1, 1, "c.i8_smoothl1loss_p", "beta"], [179, 1, 1, "c.i8_smoothl1loss_p", "length"], [179, 1, 1, "c.i8_smoothl1loss_p", "out"], [179, 1, 1, "c.i8_smoothl1loss_p", "predict"], [179, 1, 1, "c.i8_smoothl1loss_p", "target"]], "i8_smoothl1loss_s": [[179, 1, 1, "c.i8_smoothl1loss_s", "beta"], [179, 1, 1, "c.i8_smoothl1loss_s", "core_mask"], [179, 1, 1, "c.i8_smoothl1loss_s", "length"], [179, 1, 1, "c.i8_smoothl1loss_s", "out"], [179, 1, 1, "c.i8_smoothl1loss_s", "predict"], [179, 1, 1, "c.i8_smoothl1loss_s", "target"]], "i8_softmax_cross_entropy_with_logits_p": [[182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_p", "batch_size"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_p", "grads"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_p", "labels"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_p", "logits"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_p", "need_grads"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_p", "num_of_classes"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_p", "output"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_p", "probs"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_p", "sum_data"]], "i8_softmax_cross_entropy_with_logits_s": [[182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_s", "batch_size"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_s", "core_mask"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_s", "grads"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_s", "labels"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_s", "logits"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_s", "need_grads"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_s", "num_of_classes"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_s", "output"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_s", "probs"], [182, 1, 1, "c.i8_softmax_cross_entropy_with_logits_s", "sum_data"]], "i8_softmax_p": [[181, 1, 1, "c.i8_softmax_p", "axis"], [181, 1, 1, "c.i8_softmax_p", "axis_size"], [181, 1, 1, "c.i8_softmax_p", "inner_size"], [181, 1, 1, "c.i8_softmax_p", "input_ptr"], [181, 1, 1, "c.i8_softmax_p", "n_dim"], [181, 1, 1, "c.i8_softmax_p", "output_ptr"], [181, 1, 1, "c.i8_softmax_p", "outter_size"], [181, 1, 1, "c.i8_softmax_p", "sum_data"]], "i8_softmax_s": [[181, 1, 1, "c.i8_softmax_s", "axis"], [181, 1, 1, "c.i8_softmax_s", "axis_size"], [181, 1, 1, "c.i8_softmax_s", "core_mask"], [181, 1, 1, "c.i8_softmax_s", "inner_size"], [181, 1, 1, "c.i8_softmax_s", "input_ptr"], [181, 1, 1, "c.i8_softmax_s", "n_dim"], [181, 1, 1, "c.i8_softmax_s", "output_ptr"], [181, 1, 1, "c.i8_softmax_s", "outter_size"], [181, 1, 1, "c.i8_softmax_s", "sum_data"]], "i8_softplus_p": [[12, 1, 1, "c.i8_softplus_p", "Input0"], [12, 1, 1, "c.i8_softplus_p", "length"], [12, 1, 1, "c.i8_softplus_p", "output"]], "i8_softplus_s": [[12, 1, 1, "c.i8_softplus_s", "Input0"], [12, 1, 1, "c.i8_softplus_s", "core_mask"], [12, 1, 1, "c.i8_softplus_s", "length"], [12, 1, 1, "c.i8_softplus_s", "output"]], "i8_softshrink_p": [[12, 1, 1, "c.i8_softshrink_p", "Input0"], [12, 1, 1, "c.i8_softshrink_p", "lambd"], [12, 1, 1, "c.i8_softshrink_p", "length"], [12, 1, 1, "c.i8_softshrink_p", "output"]], "i8_softshrink_s": [[12, 1, 1, "c.i8_softshrink_s", "Input0"], [12, 1, 1, "c.i8_softshrink_s", "core_mask"], [12, 1, 1, "c.i8_softshrink_s", "lambd"], [12, 1, 1, "c.i8_softshrink_s", "length"], [12, 1, 1, "c.i8_softshrink_s", "output"]], "i8_softsignopt_p": [[12, 1, 1, "c.i8_softsignopt_p", "Input0"], [12, 1, 1, "c.i8_softsignopt_p", "length"], [12, 1, 1, "c.i8_softsignopt_p", "output"]], "i8_softsignopt_s": [[12, 1, 1, "c.i8_softsignopt_s", "Input0"], [12, 1, 1, "c.i8_softsignopt_s", "core_mask"], [12, 1, 1, "c.i8_softsignopt_s", "length"], [12, 1, 1, "c.i8_softsignopt_s", "output"]], "i8_spacetobatch_p": [[183, 1, 1, "c.i8_spacetobatch_p", "block_size"], [183, 1, 1, "c.i8_spacetobatch_p", "data_size"], [183, 1, 1, "c.i8_spacetobatch_p", "input"], [183, 1, 1, "c.i8_spacetobatch_p", "input_shape"], [183, 1, 1, "c.i8_spacetobatch_p", "output"], [183, 1, 1, "c.i8_spacetobatch_p", "paddings"]], "i8_spacetobatch_s": [[183, 1, 1, "c.i8_spacetobatch_s", "block_size"], [183, 1, 1, "c.i8_spacetobatch_s", "core_mask"], [183, 1, 1, "c.i8_spacetobatch_s", "data_size"], [183, 1, 1, "c.i8_spacetobatch_s", "input"], [183, 1, 1, "c.i8_spacetobatch_s", "input_shape"], [183, 1, 1, "c.i8_spacetobatch_s", "output"], [183, 1, 1, "c.i8_spacetobatch_s", "paddings"]], "i8_spacetobatchnd_p": [[184, 1, 1, "c.i8_spacetobatchnd_p", "block_size"], [184, 1, 1, "c.i8_spacetobatchnd_p", "data_size"], [184, 1, 1, "c.i8_spacetobatchnd_p", "input"], [184, 1, 1, "c.i8_spacetobatchnd_p", "input_shape"], [184, 1, 1, "c.i8_spacetobatchnd_p", "output"], [184, 1, 1, "c.i8_spacetobatchnd_p", "paddings"]], "i8_spacetobatchnd_s": [[184, 1, 1, "c.i8_spacetobatchnd_s", "block_size"], [184, 1, 1, "c.i8_spacetobatchnd_s", "core_mask"], [184, 1, 1, "c.i8_spacetobatchnd_s", "data_size"], [184, 1, 1, "c.i8_spacetobatchnd_s", "input"], [184, 1, 1, "c.i8_spacetobatchnd_s", "input_shape"], [184, 1, 1, "c.i8_spacetobatchnd_s", "output"], [184, 1, 1, "c.i8_spacetobatchnd_s", "paddings"]], "i8_spacetodepth_p": [[185, 1, 1, "c.i8_spacetodepth_p", "block"], [185, 1, 1, "c.i8_spacetodepth_p", "data_size"], [185, 1, 1, "c.i8_spacetodepth_p", "in_shape"], [185, 1, 1, "c.i8_spacetodepth_p", "input"], [185, 1, 1, "c.i8_spacetodepth_p", "output"]], "i8_spacetodepth_s": [[185, 1, 1, "c.i8_spacetodepth_s", "block"], [185, 1, 1, "c.i8_spacetodepth_s", "core_mask"], [185, 1, 1, "c.i8_spacetodepth_s", "data_size"], [185, 1, 1, "c.i8_spacetodepth_s", "in_shape"], [185, 1, 1, "c.i8_spacetodepth_s", "input"], [185, 1, 1, "c.i8_spacetodepth_s", "output"]], "i8_sparsefillemptyrows_p": [[187, 1, 1, "c.i8_sparsefillemptyrows_p", "N"], [187, 1, 1, "c.i8_sparsefillemptyrows_p", "default_value"], [187, 1, 1, "c.i8_sparsefillemptyrows_p", "dense_rows"], [187, 1, 1, "c.i8_sparsefillemptyrows_p", "filled_count"], [187, 1, 1, "c.i8_sparsefillemptyrows_p", "indices_ptr"], [187, 1, 1, "c.i8_sparsefillemptyrows_p", "output_reverse_index_map_ptr"], [187, 1, 1, "c.i8_sparsefillemptyrows_p", "output_y_indices_ptr"], [187, 1, 1, "c.i8_sparsefillemptyrows_p", "output_y_values_ptr"], [187, 1, 1, "c.i8_sparsefillemptyrows_p", "rank"], [187, 1, 1, "c.i8_sparsefillemptyrows_p", "scratch_ptr"], [187, 1, 1, "c.i8_sparsefillemptyrows_p", "values_ptr"]], "i8_sparsefillemptyrows_s": [[187, 1, 1, "c.i8_sparsefillemptyrows_s", "N"], [187, 1, 1, "c.i8_sparsefillemptyrows_s", "core_mask"], [187, 1, 1, "c.i8_sparsefillemptyrows_s", "default_value"], [187, 1, 1, "c.i8_sparsefillemptyrows_s", "dense_rows"], [187, 1, 1, "c.i8_sparsefillemptyrows_s", "filled_count"], [187, 1, 1, "c.i8_sparsefillemptyrows_s", "indices_ptr"], [187, 1, 1, "c.i8_sparsefillemptyrows_s", "output_reverse_index_map_ptr"], [187, 1, 1, "c.i8_sparsefillemptyrows_s", "output_y_indices_ptr"], [187, 1, 1, "c.i8_sparsefillemptyrows_s", "output_y_values_ptr"], [187, 1, 1, "c.i8_sparsefillemptyrows_s", "rank"], [187, 1, 1, "c.i8_sparsefillemptyrows_s", "scratch_ptr"], [187, 1, 1, "c.i8_sparsefillemptyrows_s", "values_ptr"]], "i8_sparsetodense_p": [[190, 1, 1, "c.i8_sparsetodense_p", "indices_vec"], [190, 1, 1, "c.i8_sparsetodense_p", "is_scalar"], [190, 1, 1, "c.i8_sparsetodense_p", "output"], [190, 1, 1, "c.i8_sparsetodense_p", "output_strides"], [190, 1, 1, "c.i8_sparsetodense_p", "sparse_length"], [190, 1, 1, "c.i8_sparsetodense_p", "sparse_values"]], "i8_sparsetodense_s": [[190, 1, 1, "c.i8_sparsetodense_s", "core_mask"], [190, 1, 1, "c.i8_sparsetodense_s", "indices_vec"], [190, 1, 1, "c.i8_sparsetodense_s", "is_scalar"], [190, 1, 1, "c.i8_sparsetodense_s", "output"], [190, 1, 1, "c.i8_sparsetodense_s", "output_strides"], [190, 1, 1, "c.i8_sparsetodense_s", "sparse_length"], [190, 1, 1, "c.i8_sparsetodense_s", "sparse_values"]], "i8_splice_p": [[191, 1, 1, "c.i8_splice_p", "context_dim"], [191, 1, 1, "c.i8_splice_p", "dst_col"], [191, 1, 1, "c.i8_splice_p", "dst_data"], [191, 1, 1, "c.i8_splice_p", "dst_row"], [191, 1, 1, "c.i8_splice_p", "forward_indexes"], [191, 1, 1, "c.i8_splice_p", "forward_indexes_dims"], [191, 1, 1, "c.i8_splice_p", "src_col"], [191, 1, 1, "c.i8_splice_p", "src_data"], [191, 1, 1, "c.i8_splice_p", "src_row"]], "i8_splice_s": [[191, 1, 1, "c.i8_splice_s", "context_dim"], [191, 1, 1, "c.i8_splice_s", "core_mask"], [191, 1, 1, "c.i8_splice_s", "dst_col"], [191, 1, 1, "c.i8_splice_s", "dst_data"], [191, 1, 1, "c.i8_splice_s", "dst_row"], [191, 1, 1, "c.i8_splice_s", "forward_indexes"], [191, 1, 1, "c.i8_splice_s", "forward_indexes_dims"], [191, 1, 1, "c.i8_splice_s", "src_col"], [191, 1, 1, "c.i8_splice_s", "src_data"], [191, 1, 1, "c.i8_splice_s", "src_row"]], "i8_split_p": [[192, 1, 1, "c.i8_split_p", "axis"], [192, 1, 1, "c.i8_split_p", "input"], [192, 1, 1, "c.i8_split_p", "input_ndim"], [192, 1, 1, "c.i8_split_p", "input_shape"], [192, 1, 1, "c.i8_split_p", "num_split"], [192, 1, 1, "c.i8_split_p", "outputs"], [192, 1, 1, "c.i8_split_p", "split_sizes"]], "i8_split_s": [[192, 1, 1, "c.i8_split_s", "axis"], [192, 1, 1, "c.i8_split_s", "core_mask"], [192, 1, 1, "c.i8_split_s", "input"], [192, 1, 1, "c.i8_split_s", "input_ndim"], [192, 1, 1, "c.i8_split_s", "input_shape"], [192, 1, 1, "c.i8_split_s", "num_split"], [192, 1, 1, "c.i8_split_s", "outputs"], [192, 1, 1, "c.i8_split_s", "split_sizes"]], "i8_split_with_overlap_p": [[193, 1, 1, "c.i8_split_with_overlap_p", "axis"], [193, 1, 1, "c.i8_split_with_overlap_p", "end_indices"], [193, 1, 1, "c.i8_split_with_overlap_p", "input"], [193, 1, 1, "c.i8_split_with_overlap_p", "input_ndim"], [193, 1, 1, "c.i8_split_with_overlap_p", "input_shape"], [193, 1, 1, "c.i8_split_with_overlap_p", "num_split"], [193, 1, 1, "c.i8_split_with_overlap_p", "outputs"], [193, 1, 1, "c.i8_split_with_overlap_p", "start_indices"]], "i8_split_with_overlap_s": [[193, 1, 1, "c.i8_split_with_overlap_s", "axis"], [193, 1, 1, "c.i8_split_with_overlap_s", "core_mask"], [193, 1, 1, "c.i8_split_with_overlap_s", "end_indices"], [193, 1, 1, "c.i8_split_with_overlap_s", "input"], [193, 1, 1, "c.i8_split_with_overlap_s", "input_ndim"], [193, 1, 1, "c.i8_split_with_overlap_s", "input_shape"], [193, 1, 1, "c.i8_split_with_overlap_s", "num_split"], [193, 1, 1, "c.i8_split_with_overlap_s", "outputs"], [193, 1, 1, "c.i8_split_with_overlap_s", "start_indices"]], "i8_sqrt_p": [[194, 1, 1, "c.i8_sqrt_p", "dst_data"], [194, 1, 1, "c.i8_sqrt_p", "length"], [194, 1, 1, "c.i8_sqrt_p", "src_data"]], "i8_sqrt_s": [[194, 1, 1, "c.i8_sqrt_s", "core_mask"], [194, 1, 1, "c.i8_sqrt_s", "dst_data"], [194, 1, 1, "c.i8_sqrt_s", "length"], [194, 1, 1, "c.i8_sqrt_s", "src_data"]], "i8_sqrtgrad_p": [[195, 1, 1, "c.i8_sqrtgrad_p", "input1"], [195, 1, 1, "c.i8_sqrtgrad_p", "input2"], [195, 1, 1, "c.i8_sqrtgrad_p", "output"], [195, 1, 1, "c.i8_sqrtgrad_p", "size"]], "i8_sqrtgrad_s": [[195, 1, 1, "c.i8_sqrtgrad_s", "core_mask"], [195, 1, 1, "c.i8_sqrtgrad_s", "input1"], [195, 1, 1, "c.i8_sqrtgrad_s", "input2"], [195, 1, 1, "c.i8_sqrtgrad_s", "output"], [195, 1, 1, "c.i8_sqrtgrad_s", "size"]], "i8_square_p": [[196, 1, 1, "c.i8_square_p", "dst"], [196, 1, 1, "c.i8_square_p", "length"], [196, 1, 1, "c.i8_square_p", "src"]], "i8_square_s": [[196, 1, 1, "c.i8_square_s", "core_mask"], [196, 1, 1, "c.i8_square_s", "dst"], [196, 1, 1, "c.i8_square_s", "length"], [196, 1, 1, "c.i8_square_s", "src"]], "i8_squaredifference_p": [[197, 1, 1, "c.i8_squaredifference_p", "input0"], [197, 1, 1, "c.i8_squaredifference_p", "input1"], [197, 1, 1, "c.i8_squaredifference_p", "length"], [197, 1, 1, "c.i8_squaredifference_p", "output"]], "i8_squaredifference_s": [[197, 1, 1, "c.i8_squaredifference_s", "core_mask"], [197, 1, 1, "c.i8_squaredifference_s", "input0"], [197, 1, 1, "c.i8_squaredifference_s", "input1"], [197, 1, 1, "c.i8_squaredifference_s", "length"], [197, 1, 1, "c.i8_squaredifference_s", "output"]], "i8_stack_p": [[199, 1, 1, "c.i8_stack_p", "axis"], [199, 1, 1, "c.i8_stack_p", "input_ndim"], [199, 1, 1, "c.i8_stack_p", "input_shape"], [199, 1, 1, "c.i8_stack_p", "inputs"], [199, 1, 1, "c.i8_stack_p", "num_inputs"], [199, 1, 1, "c.i8_stack_p", "output"]], "i8_stack_s": [[199, 1, 1, "c.i8_stack_s", "axis"], [199, 1, 1, "c.i8_stack_s", "core_mask"], [199, 1, 1, "c.i8_stack_s", "input_ndim"], [199, 1, 1, "c.i8_stack_s", "input_shape"], [199, 1, 1, "c.i8_stack_s", "inputs"], [199, 1, 1, "c.i8_stack_s", "num_inputs"], [199, 1, 1, "c.i8_stack_s", "output"]], "i8_subrelu6_p": [[202, 1, 1, "c.i8_subrelu6_p", "input0"], [202, 1, 1, "c.i8_subrelu6_p", "input1"], [202, 1, 1, "c.i8_subrelu6_p", "output"], [202, 1, 1, "c.i8_subrelu6_p", "size"]], "i8_subrelu6_s": [[202, 1, 1, "c.i8_subrelu6_s", "core_mask"], [202, 1, 1, "c.i8_subrelu6_s", "input0"], [202, 1, 1, "c.i8_subrelu6_s", "input1"], [202, 1, 1, "c.i8_subrelu6_s", "output"], [202, 1, 1, "c.i8_subrelu6_s", "size"]], "i8_subrelu_p": [[202, 1, 1, "c.i8_subrelu_p", "input0"], [202, 1, 1, "c.i8_subrelu_p", "input1"], [202, 1, 1, "c.i8_subrelu_p", "output"], [202, 1, 1, "c.i8_subrelu_p", "size"]], "i8_subrelu_s": [[202, 1, 1, "c.i8_subrelu_s", "core_mask"], [202, 1, 1, "c.i8_subrelu_s", "input0"], [202, 1, 1, "c.i8_subrelu_s", "input1"], [202, 1, 1, "c.i8_subrelu_s", "output"], [202, 1, 1, "c.i8_subrelu_s", "size"]], "i8_swish_p": [[12, 1, 1, "c.i8_swish_p", "Input0"], [12, 1, 1, "c.i8_swish_p", "length"], [12, 1, 1, "c.i8_swish_p", "output"]], "i8_swish_s": [[12, 1, 1, "c.i8_swish_s", "Input0"], [12, 1, 1, "c.i8_swish_s", "core_mask"], [12, 1, 1, "c.i8_swish_s", "length"], [12, 1, 1, "c.i8_swish_s", "output"]], "i8_tanh_p": [[12, 1, 1, "c.i8_tanh_p", "Input0"], [12, 1, 1, "c.i8_tanh_p", "length"], [12, 1, 1, "c.i8_tanh_p", "output"]], "i8_tanh_s": [[12, 1, 1, "c.i8_tanh_s", "Input0"], [12, 1, 1, "c.i8_tanh_s", "core_mask"], [12, 1, 1, "c.i8_tanh_s", "length"], [12, 1, 1, "c.i8_tanh_s", "output"]], "i8_tensor_scatter_add_p": [[206, 1, 1, "c.i8_tensor_scatter_add_p", "index_depth"], [206, 1, 1, "c.i8_tensor_scatter_add_p", "indices"], [206, 1, 1, "c.i8_tensor_scatter_add_p", "input"], [206, 1, 1, "c.i8_tensor_scatter_add_p", "input_rank"], [206, 1, 1, "c.i8_tensor_scatter_add_p", "input_shape"], [206, 1, 1, "c.i8_tensor_scatter_add_p", "num_unit"], [206, 1, 1, "c.i8_tensor_scatter_add_p", "output"], [206, 1, 1, "c.i8_tensor_scatter_add_p", "output_unit_offsets"], [206, 1, 1, "c.i8_tensor_scatter_add_p", "strides"], [206, 1, 1, "c.i8_tensor_scatter_add_p", "updates"]], "i8_tensor_scatter_add_s": [[206, 1, 1, "c.i8_tensor_scatter_add_s", "core_mask"], [206, 1, 1, "c.i8_tensor_scatter_add_s", "index_depth"], [206, 1, 1, "c.i8_tensor_scatter_add_s", "indices"], [206, 1, 1, "c.i8_tensor_scatter_add_s", "input"], [206, 1, 1, "c.i8_tensor_scatter_add_s", "input_rank"], [206, 1, 1, "c.i8_tensor_scatter_add_s", "input_shape"], [206, 1, 1, "c.i8_tensor_scatter_add_s", "num_unit"], [206, 1, 1, "c.i8_tensor_scatter_add_s", "output"], [206, 1, 1, "c.i8_tensor_scatter_add_s", "updates"]], "i8_tensorarrayread_p": [[208, 1, 1, "c.i8_tensorarrayread_p", "handle_data"], [208, 1, 1, "c.i8_tensorarrayread_p", "handle_size"], [208, 1, 1, "c.i8_tensorarrayread_p", "index"], [208, 1, 1, "c.i8_tensorarrayread_p", "output_data"], [208, 1, 1, "c.i8_tensorarrayread_p", "output_size"]], "i8_tensorarrayread_s": [[208, 1, 1, "c.i8_tensorarrayread_s", "core_mask"], [208, 1, 1, "c.i8_tensorarrayread_s", "handle_data"], [208, 1, 1, "c.i8_tensorarrayread_s", "handle_size"], [208, 1, 1, "c.i8_tensorarrayread_s", "index"], [208, 1, 1, "c.i8_tensorarrayread_s", "output_data"], [208, 1, 1, "c.i8_tensorarrayread_s", "output_size"]], "i8_tensorlistfromtensor_p": [[210, 1, 1, "c.i8_tensorlistfromtensor_p", "input_tensor_shape"], [210, 1, 1, "c.i8_tensorlistfromtensor_p", "input_tensor_total_elements"], [210, 1, 1, "c.i8_tensorlistfromtensor_p", "input_tensor_values"], [210, 1, 1, "c.i8_tensorlistfromtensor_p", "output_tensors"]], "i8_tensorlistfromtensor_s": [[210, 1, 1, "c.i8_tensorlistfromtensor_s", "core_mask"], [210, 1, 1, "c.i8_tensorlistfromtensor_s", "input_tensor_shape"], [210, 1, 1, "c.i8_tensorlistfromtensor_s", "input_tensor_total_elements"], [210, 1, 1, "c.i8_tensorlistfromtensor_s", "input_tensor_values"], [210, 1, 1, "c.i8_tensorlistfromtensor_s", "output_tensors"]], "i8_tile_p": [[215, 1, 1, "c.i8_tile_p", "input"], [215, 1, 1, "c.i8_tile_p", "input_shape"], [215, 1, 1, "c.i8_tile_p", "output"], [215, 1, 1, "c.i8_tile_p", "stride"], [215, 1, 1, "c.i8_tile_p", "tile_dim"], [215, 1, 1, "c.i8_tile_p", "tile_num"]], "i8_tile_s": [[215, 1, 1, "c.i8_tile_s", "core_mask"], [215, 1, 1, "c.i8_tile_s", "input"], [215, 1, 1, "c.i8_tile_s", "input_shape"], [215, 1, 1, "c.i8_tile_s", "output"], [215, 1, 1, "c.i8_tile_s", "stride"], [215, 1, 1, "c.i8_tile_s", "tile_dim"], [215, 1, 1, "c.i8_tile_s", "tile_num"]], "i8_to_fp_dequant_p": [[146, 1, 1, "c.i8_to_fp_dequant_p", "input"], [146, 1, 1, "c.i8_to_fp_dequant_p", "length"], [146, 1, 1, "c.i8_to_fp_dequant_p", "output"], [146, 1, 1, "c.i8_to_fp_dequant_p", "scale"], [146, 1, 1, "c.i8_to_fp_dequant_p", "zp"]], "i8_to_fp_dequant_s": [[146, 1, 1, "c.i8_to_fp_dequant_s", "core_mask"], [146, 1, 1, "c.i8_to_fp_dequant_s", "input"], [146, 1, 1, "c.i8_to_fp_dequant_s", "length"], [146, 1, 1, "c.i8_to_fp_dequant_s", "output"], [146, 1, 1, "c.i8_to_fp_dequant_s", "scale"], [146, 1, 1, "c.i8_to_fp_dequant_s", "zp"]], "i8_to_hp_dequant_p": [[146, 1, 1, "c.i8_to_hp_dequant_p", "input"], [146, 1, 1, "c.i8_to_hp_dequant_p", "length"], [146, 1, 1, "c.i8_to_hp_dequant_p", "output"], [146, 1, 1, "c.i8_to_hp_dequant_p", "scale"], [146, 1, 1, "c.i8_to_hp_dequant_p", "zp"]], "i8_to_hp_dequant_s": [[146, 1, 1, "c.i8_to_hp_dequant_s", "core_mask"], [146, 1, 1, "c.i8_to_hp_dequant_s", "input"], [146, 1, 1, "c.i8_to_hp_dequant_s", "length"], [146, 1, 1, "c.i8_to_hp_dequant_s", "output"], [146, 1, 1, "c.i8_to_hp_dequant_s", "scale"], [146, 1, 1, "c.i8_to_hp_dequant_s", "zp"]], "i8_transpose_p": [[217, 1, 1, "c.i8_transpose_p", "in_data"], [217, 1, 1, "c.i8_transpose_p", "num_axes"], [217, 1, 1, "c.i8_transpose_p", "out_data"], [217, 1, 1, "c.i8_transpose_p", "out_strides"], [217, 1, 1, "c.i8_transpose_p", "output_shape"], [217, 1, 1, "c.i8_transpose_p", "perm"], [217, 1, 1, "c.i8_transpose_p", "strides"]], "i8_transpose_s": [[217, 1, 1, "c.i8_transpose_s", "core_mask"], [217, 1, 1, "c.i8_transpose_s", "in_data"], [217, 1, 1, "c.i8_transpose_s", "num_axes"], [217, 1, 1, "c.i8_transpose_s", "out_data"], [217, 1, 1, "c.i8_transpose_s", "out_strides"], [217, 1, 1, "c.i8_transpose_s", "output_shape"], [217, 1, 1, "c.i8_transpose_s", "perm"], [217, 1, 1, "c.i8_transpose_s", "strides"]], "i8_tril_p": [[218, 1, 1, "c.i8_tril_p", "dst"], [218, 1, 1, "c.i8_tril_p", "height"], [218, 1, 1, "c.i8_tril_p", "k"], [218, 1, 1, "c.i8_tril_p", "out_elems"], [218, 1, 1, "c.i8_tril_p", "src"], [218, 1, 1, "c.i8_tril_p", "width"]], "i8_tril_s": [[218, 1, 1, "c.i8_tril_s", "core_mask"], [218, 1, 1, "c.i8_tril_s", "dst"], [218, 1, 1, "c.i8_tril_s", "height"], [218, 1, 1, "c.i8_tril_s", "k"], [218, 1, 1, "c.i8_tril_s", "out_elems"], [218, 1, 1, "c.i8_tril_s", "src"], [218, 1, 1, "c.i8_tril_s", "width"]], "i8_triu_p": [[219, 1, 1, "c.i8_triu_p", "dst"], [219, 1, 1, "c.i8_triu_p", "height"], [219, 1, 1, "c.i8_triu_p", "k"], [219, 1, 1, "c.i8_triu_p", "out_elems"], [219, 1, 1, "c.i8_triu_p", "src"], [219, 1, 1, "c.i8_triu_p", "width"]], "i8_triu_s": [[219, 1, 1, "c.i8_triu_s", "core_mask"], [219, 1, 1, "c.i8_triu_s", "dst"], [219, 1, 1, "c.i8_triu_s", "height"], [219, 1, 1, "c.i8_triu_s", "k"], [219, 1, 1, "c.i8_triu_s", "out_elems"], [219, 1, 1, "c.i8_triu_s", "src"], [219, 1, 1, "c.i8_triu_s", "width"]], "i8_unsorted_segment_sum_p": [[222, 1, 1, "c.i8_unsorted_segment_sum_p", "dim0"], [222, 1, 1, "c.i8_unsorted_segment_sum_p", "dim1"], [222, 1, 1, "c.i8_unsorted_segment_sum_p", "id_max"], [222, 1, 1, "c.i8_unsorted_segment_sum_p", "index"], [222, 1, 1, "c.i8_unsorted_segment_sum_p", "input"], [222, 1, 1, "c.i8_unsorted_segment_sum_p", "output"]], "i8_unsorted_segment_sum_s": [[222, 1, 1, "c.i8_unsorted_segment_sum_s", "core_mask"], [222, 1, 1, "c.i8_unsorted_segment_sum_s", "dim0"], [222, 1, 1, "c.i8_unsorted_segment_sum_s", "dim1"], [222, 1, 1, "c.i8_unsorted_segment_sum_s", "id_max"], [222, 1, 1, "c.i8_unsorted_segment_sum_s", "index"], [222, 1, 1, "c.i8_unsorted_segment_sum_s", "input"], [222, 1, 1, "c.i8_unsorted_segment_sum_s", "output"]], "i8_where_p": [[225, 1, 1, "c.i8_where_p", "condition"], [225, 1, 1, "c.i8_where_p", "input0"], [225, 1, 1, "c.i8_where_p", "input1"], [225, 1, 1, "c.i8_where_p", "length"], [225, 1, 1, "c.i8_where_p", "output"]], "i8_where_s": [[225, 1, 1, "c.i8_where_s", "condition"], [225, 1, 1, "c.i8_where_s", "core_mask"], [225, 1, 1, "c.i8_where_s", "input0"], [225, 1, 1, "c.i8_where_s", "input1"], [225, 1, 1, "c.i8_where_s", "length"], [225, 1, 1, "c.i8_where_s", "output"]], "i8_zerolike_p": [[226, 1, 1, "c.i8_zerolike_p", "length"], [226, 1, 1, "c.i8_zerolike_p", "output"]], "i8_zerolike_s": [[226, 1, 1, "c.i8_zerolike_s", "core_mask"], [226, 1, 1, "c.i8_zerolike_s", "length"], [226, 1, 1, "c.i8_zerolike_s", "output"]], "mindradar": [[6, 2, 1, "", "ComplexAbs"], [7, 2, 1, "", "FFT"], [8, 2, 1, "", "IFFT"]], "rank_p": [[151, 1, 1, "c.rank_p", "n"], [151, 1, 1, "c.rank_p", "output"]], "rank_s": [[151, 1, 1, "c.rank_s", "core_mask"], [151, 1, 1, "c.rank_s", "n"], [151, 1, 1, "c.rank_s", "output"]], "shape": [[172, 1, 1, "c.shape", "inputs"], [172, 1, 1, "c.shape", "inputs_size"], [172, 1, 1, "c.shape", "outputs"], [172, 1, 1, "c.shape", "outputs_size"], [172, 1, 1, "c.shape", "param"]], "size_p": [[176, 1, 1, "c.size_p", "n"], [176, 1, 1, "c.size_p", "output"], [176, 1, 1, "c.size_p", "shape"]], "size_s": [[176, 1, 1, "c.size_s", "core_mask"], [176, 1, 1, "c.size_s", "n"], [176, 1, 1, "c.size_s", "output"], [176, 1, 1, "c.size_s", "shape"]], "skipgram_p": [[177, 1, 1, "c.skipgram_p", "blank"], [177, 1, 1, "c.skipgram_p", "grams"], [177, 1, 1, "c.skipgram_p", "grams_word_count"], [177, 1, 1, "c.skipgram_p", "include_all_ngrams"], [177, 1, 1, "c.skipgram_p", "len"], [177, 1, 1, "c.skipgram_p", "max_skip_size"], [177, 1, 1, "c.skipgram_p", "ngram_size"], [177, 1, 1, "c.skipgram_p", "offset"], [177, 1, 1, "c.skipgram_p", "output_tensor"], [177, 1, 1, "c.skipgram_p", "sentence"], [177, 1, 1, "c.skipgram_p", "shape"], [177, 1, 1, "c.skipgram_p", "stack"], [177, 1, 1, "c.skipgram_p", "words"]], "skipgram_s": [[177, 1, 1, "c.skipgram_s", "blank"], [177, 1, 1, "c.skipgram_s", "core_mask"], [177, 1, 1, "c.skipgram_s", "grams"], [177, 1, 1, "c.skipgram_s", "grams_word_count"], [177, 1, 1, "c.skipgram_s", "include_all_ngrams"], [177, 1, 1, "c.skipgram_s", "len"], [177, 1, 1, "c.skipgram_s", "max_skip_size"], [177, 1, 1, "c.skipgram_s", "ngram_size"], [177, 1, 1, "c.skipgram_s", "offset"], [177, 1, 1, "c.skipgram_s", "output_tensor"], [177, 1, 1, "c.skipgram_s", "sentence"], [177, 1, 1, "c.skipgram_s", "shape"], [177, 1, 1, "c.skipgram_s", "stack"], [177, 1, 1, "c.skipgram_s", "words"]], "sparsereshape_p": [[188, 1, 1, "c.sparsereshape_p", "N"], [188, 1, 1, "c.sparsereshape_p", "in_indices_ptr"], [188, 1, 1, "c.sparsereshape_p", "in_inshape_ptr"], [188, 1, 1, "c.sparsereshape_p", "in_outshape_ptr"], [188, 1, 1, "c.sparsereshape_p", "in_stride"], [188, 1, 1, "c.sparsereshape_p", "input_rank"], [188, 1, 1, "c.sparsereshape_p", "out_indices_ptr"], [188, 1, 1, "c.sparsereshape_p", "out_outshape_ptr"], [188, 1, 1, "c.sparsereshape_p", "out_stride"], [188, 1, 1, "c.sparsereshape_p", "output_rank"]], "sparsereshape_s": [[188, 1, 1, "c.sparsereshape_s", "N"], [188, 1, 1, "c.sparsereshape_s", "core_mask"], [188, 1, 1, "c.sparsereshape_s", "in_indices_ptr"], [188, 1, 1, "c.sparsereshape_s", "in_inshape_ptr"], [188, 1, 1, "c.sparsereshape_s", "in_outshape_ptr"], [188, 1, 1, "c.sparsereshape_s", "in_stride"], [188, 1, 1, "c.sparsereshape_s", "input_rank"], [188, 1, 1, "c.sparsereshape_s", "out_indices_ptr"], [188, 1, 1, "c.sparsereshape_s", "out_outshape_ptr"], [188, 1, 1, "c.sparsereshape_s", "out_stride"], [188, 1, 1, "c.sparsereshape_s", "output_rank"]], "stridedslice": [[200, 1, 1, "c.stridedslice", "begins"], [200, 1, 1, "c.stridedslice", "cal_num_per_thread"], [200, 1, 1, "c.stridedslice", "caled_num"], [200, 1, 1, "c.stridedslice", "core_mask"], [200, 1, 1, "c.stridedslice", "data_type_bytes"], [200, 1, 1, "c.stridedslice", "ends"], [200, 1, 1, "c.stridedslice", "fast_run"], [200, 1, 1, "c.stridedslice", "in_shape"], [200, 1, 1, "c.stridedslice", "in_shape_size"], [200, 1, 1, "c.stridedslice", "inner"], [200, 1, 1, "c.stridedslice", "inner_size"], [200, 1, 1, "c.stridedslice", "input"], [200, 1, 1, "c.stridedslice", "out_shape"], [200, 1, 1, "c.stridedslice", "out_shape_size"], [200, 1, 1, "c.stridedslice", "outer"], [200, 1, 1, "c.stridedslice", "output"], [200, 1, 1, "c.stridedslice", "parallel_on_outer"], [200, 1, 1, "c.stridedslice", "parallel_on_split_axis"], [200, 1, 1, "c.stridedslice", "soft_copy_mode"], [200, 1, 1, "c.stridedslice", "split_axis"], [200, 1, 1, "c.stridedslice", "strides"], [200, 1, 1, "c.stridedslice", "temp_space"]], "switch_p": [[204, 1, 1, "c.switch_p", "condition"], [204, 1, 1, "c.switch_p", "input_x"], [204, 1, 1, "c.switch_p", "input_y"], [204, 1, 1, "c.switch_p", "output"]], "switch_s": [[204, 1, 1, "c.switch_s", "condition"], [204, 1, 1, "c.switch_s", "input_x"], [204, 1, 1, "c.switch_s", "input_y"], [204, 1, 1, "c.switch_s", "output"]], "switchlayer_p": [[205, 1, 1, "c.switchlayer_p", "index"], [205, 1, 1, "c.switchlayer_p", "input_tensors"], [205, 1, 1, "c.switchlayer_p", "output"]], "switchlayer_s": [[205, 1, 1, "c.switchlayer_s", "core_mask"], [205, 1, 1, "c.switchlayer_s", "index"], [205, 1, 1, "c.switchlayer_s", "input_tensors"], [205, 1, 1, "c.switchlayer_s", "output"]], "tensorarrayread_p": [[207, 1, 1, "c.tensorarrayread_p", "index"], [207, 1, 1, "c.tensorarrayread_p", "output"], [207, 1, 1, "c.tensorarrayread_p", "tensors"]], "tensorarrayread_s": [[207, 1, 1, "c.tensorarrayread_s", "core_mask"], [207, 1, 1, "c.tensorarrayread_s", "index"], [207, 1, 1, "c.tensorarrayread_s", "output"], [207, 1, 1, "c.tensorarrayread_s", "tensors"]], "tensorarraywrite_p": [[207, 1, 1, "c.tensorarraywrite_p", "index"], [207, 1, 1, "c.tensorarraywrite_p", "input"], [207, 1, 1, "c.tensorarraywrite_p", "tensors"]], "tensorarraywrite_s": [[207, 1, 1, "c.tensorarraywrite_s", "core_mask"], [207, 1, 1, "c.tensorarraywrite_s", "index"], [207, 1, 1, "c.tensorarraywrite_s", "input"], [207, 1, 1, "c.tensorarraywrite_s", "tensors"]], "tensorlistgetitem_p": [[211, 1, 1, "c.tensorlistgetitem_p", "data_type"], [211, 1, 1, "c.tensorlistgetitem_p", "dst"], [211, 1, 1, "c.tensorlistgetitem_p", "length"], [211, 1, 1, "c.tensorlistgetitem_p", "src"]], "tensorlistgetitem_s": [[211, 1, 1, "c.tensorlistgetitem_s", "core_mask"], [211, 1, 1, "c.tensorlistgetitem_s", "data_type"], [211, 1, 1, "c.tensorlistgetitem_s", "dst"], [211, 1, 1, "c.tensorlistgetitem_s", "length"], [211, 1, 1, "c.tensorlistgetitem_s", "src"]], "tensorlistsetitem_p": [[213, 1, 1, "c.tensorlistsetitem_p", "copy_size"], [213, 1, 1, "c.tensorlistsetitem_p", "in_data"], [213, 1, 1, "c.tensorlistsetitem_p", "in_item"], [213, 1, 1, "c.tensorlistsetitem_p", "index"], [213, 1, 1, "c.tensorlistsetitem_p", "out_data"], [213, 1, 1, "c.tensorlistsetitem_p", "tensorlist_size"]], "tensorlistsetitem_s": [[213, 1, 1, "c.tensorlistsetitem_s", "copy_size"], [213, 1, 1, "c.tensorlistsetitem_s", "core_mask"], [213, 1, 1, "c.tensorlistsetitem_s", "in_data"], [213, 1, 1, "c.tensorlistsetitem_s", "in_item"], [213, 1, 1, "c.tensorlistsetitem_s", "index"], [213, 1, 1, "c.tensorlistsetitem_s", "out_data"], [213, 1, 1, "c.tensorlistsetitem_s", "tensorlist_size"]], "tensorliststack_p": [[214, 1, 1, "c.tensorliststack_p", "output_data"], [214, 1, 1, "c.tensorliststack_p", "tensor_data"], [214, 1, 1, "c.tensorliststack_p", "tensor_data_type"], [214, 1, 1, "c.tensorliststack_p", "tensor_element_nums"], [214, 1, 1, "c.tensorliststack_p", "tensor_num"], [214, 1, 1, "c.tensorliststack_p", "unknown_type_offset"]], "tensorliststack_s": [[214, 1, 1, "c.tensorliststack_s", "core_mask"], [214, 1, 1, "c.tensorliststack_s", "output_data"], [214, 1, 1, "c.tensorliststack_s", "tensor_data"], [214, 1, 1, "c.tensorliststack_s", "tensor_data_type"], [214, 1, 1, "c.tensorliststack_s", "tensor_element_nums"], [214, 1, 1, "c.tensorliststack_s", "tensor_num"], [214, 1, 1, "c.tensorliststack_s", "unknown_type_offset"]], "unstack_p": [[224, 1, 1, "c.unstack_p", "axis"], [224, 1, 1, "c.unstack_p", "data_size"], [224, 1, 1, "c.unstack_p", "input"], [224, 1, 1, "c.unstack_p", "ndim"], [224, 1, 1, "c.unstack_p", "output"], [224, 1, 1, "c.unstack_p", "shape"]], "unstack_s": [[224, 1, 1, "c.unstack_s", "axis"], [224, 1, 1, "c.unstack_s", "core_mask"], [224, 1, 1, "c.unstack_s", "data_size"], [224, 1, 1, "c.unstack_s", "input"], [224, 1, 1, "c.unstack_s", "ndim"], [224, 1, 1, "c.unstack_s", "output"], [224, 1, 1, "c.unstack_s", "shape"]]}, "objnames": {"0": ["c", "function", "C \u51fd\u6570"], "1": ["c", "functionParam", "C \u51fd\u6570\u53c2\u6570"], "2": ["py", "class", "Python \u7c7b"]}, "objtypes": {"0": "c:function", "1": "c:functionParam", "2": "py:class"}, "terms": {"0001f": 115, "001f": 14, "004": 4, "01": 0, "01f": 13, "044715": 12, "05f": 146, "09f": 66, "0b0001": [16, 47, 48, 52, 53, 72, 79, 95, 103, 154, 157, 159, 167, 198, 223], "0b1011": [45, 74, 75, 110, 111, 192, 199, 215], "0b1111": [16, 47, 48, 52, 53, 72, 79, 95, 103, 154, 157, 159, 160, 167, 198, 223], "0f": [30, 31, 44, 60, 63, 64, 68, 74, 78, 100, 104, 105, 106, 114, 115, 124, 125, 126, 141, 142, 143, 145, 148, 162, 171, 179, 180, 187, 190], "0i": 140, "0x0b": [140, 156, 168], "0x0f": [124, 125], "0x1": 80, "0x10000": [49, 50], "0x100000": 20, "0x1000000": [136, 154], "0x10000000": [11, 12, 13, 15, 16, 17, 18, 21, 23, 27, 28, 29, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 47, 48, 49, 50, 55, 56, 57, 59, 61, 62, 63, 64, 66, 68, 71, 74, 75, 79, 82, 84, 87, 88, 89, 90, 91, 92, 93, 94, 95, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 115, 116, 117, 121, 122, 123, 127, 128, 129, 130, 131, 132, 133, 138, 139, 141, 142, 143, 146, 147, 150, 152, 153, 154, 163, 164, 165, 167, 170, 171, 174, 176, 178, 180, 183, 184, 185, 188, 189, 190, 192, 195, 196, 197, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 213, 214, 215, 216, 221, 222, 225], "0x10000040": 176, "0x10000200": 117, "0x10000400": 117, "0x10000600": 117, "0x10000800": 117, "0x10000a00": 117, "0x10000c00": 117, "0x10000e00": 117, "0x10001000": [11, 13, 17, 18, 21, 24, 25, 48, 56, 57, 61, 71, 74, 91, 99, 104, 105, 108, 110, 111, 116, 117, 122, 127, 129, 130, 132, 133, 138, 139, 142, 143, 147, 152, 153, 164, 165, 167, 170, 177, 180, 188, 190, 195, 196, 197, 201, 202, 203, 204, 205, 207, 208, 213, 225], "0x10001200": 117, "0x10001400": 117, "0x10001600": 117, "0x10001800": 117, "0x10001a00": 117, "0x10001c00": 117, "0x10001f00": 117, "0x10002000": [13, 15, 18, 23, 24, 25, 48, 56, 57, 61, 100, 104, 105, 111, 112, 116, 117, 122, 127, 129, 130, 140, 142, 143, 147, 152, 165, 167, 170, 171, 177, 180, 188, 190, 195, 197, 202, 203, 205, 207, 208, 213, 225], "0x10002200": 117, "0x10003000": [24, 25, 48, 116, 147, 167, 170, 177, 180, 188, 205, 207, 208, 213, 225], "0x10004000": [12, 15, 23, 24, 25, 27, 28, 32, 48, 66, 87, 94, 95, 147, 167, 170, 171, 174, 177, 213], "0x10005000": [24, 25, 48, 167, 170, 177, 213], "0x10006000": [15, 48, 167, 170, 177, 213], "0x10007000": 177, "0x10008000": [75, 87, 94, 95, 174, 177], "0x10008100": 75, "0x10009000": [75, 177], "0x1000c000": [87, 94, 95], "0x1000ll": 160, "0x10010000": [16, 35, 36, 47, 79, 87, 88, 89, 90, 94, 95, 103, 109, 112, 115, 148, 149, 154, 158, 163, 172, 178, 182, 185, 186, 189, 192, 200, 206, 210, 211, 215, 216, 220, 222], "0x10011000": [172, 210], "0x10012000": 210, "0x10014000": [87, 94, 95], "0x10018000": 95, "0x1001c000": 95, "0x10020000": [16, 41, 47, 49, 50, 88, 89, 90, 95, 109, 121, 154, 158, 182, 186, 192, 200, 206, 216, 222], "0x10021000": 154, "0x10022000": 154, "0x10023000": 154, "0x10024000": [95, 154], "0x10030000": [16, 47, 95, 182, 186, 206], "0x10034000": 95, "0x10038000": 95, "0x1003c000": 95, "0x10040000": [16, 29, 47, 49, 50, 59, 121, 182, 183, 184, 186], "0x10050000": [182, 186], "0x10060000": [16, 47, 49, 50, 182, 186], "0x10070000": [16, 47, 49, 50], "0x10080000": 29, "0x100c0000": 29, "0x10100000": [29, 31, 34, 141, 214], "0x10200000": [29, 34, 141, 214], "0x10300000": [34, 141], "0x10400000": [34, 141], "0x10500000": [34, 141], "0x10600000": [34, 141], "0x10700000": [34, 141], "0x10800000": 224, "0x10810000": [10, 19, 20, 22, 30, 33, 42, 45, 46, 51, 54, 58, 67, 69, 70, 73, 80, 81, 83, 85, 86, 96, 97, 98, 101, 113, 114, 126, 134, 135, 137, 144, 151, 155, 156, 161, 162, 166, 168, 169, 173, 175, 179, 181, 187, 191, 193, 194, 199, 217, 218, 219, 224, 226], "0x10811000": 101, "0x10812000": [101, 199], "0x10814000": 19, "0x10820000": [10, 14, 19, 22, 30, 33, 42, 45, 51, 58, 67, 69, 70, 73, 78, 80, 81, 83, 85, 86, 96, 97, 98, 101, 113, 114, 126, 134, 135, 137, 144, 155, 156, 161, 162, 166, 168, 169, 173, 175, 181, 187, 191, 193, 194, 199, 217, 224], "0x10821000": 101, "0x10822000": 101, "0x10830000": [14, 30, 33, 45, 58, 67, 70, 83, 86, 96, 97, 113, 114, 134, 135, 137, 161, 166, 168, 169, 173, 181, 187], "0x10840000": [14, 30, 33, 58, 96, 97, 114, 134, 135, 137, 166, 187], "0x10850000": [14, 54, 96, 134, 135, 137, 179, 187, 218, 219], "0x10860000": [135, 187], "0x108a0000": 179, "0x11000000": [37, 38, 39, 40, 43, 44, 55, 63, 64, 68, 84, 92, 93, 102, 107, 123, 128, 146, 221], "0x12000000": [37, 39, 40, 62, 63, 64, 84, 92, 93, 102, 123, 128, 131], "0x13000000": [39, 40, 62, 102, 123, 128, 131], "0x14000000": [39, 40, 62, 102, 123, 128, 131], "0x15000000": [62, 102, 131], "0x16000000": [62, 102, 131], "0x17000000": [62, 102, 131], "0x18000000": 62, "0x1b000000": [62, 131], "0x1b100000": [62, 131], "0x1b200000": [62, 131], "0x1b300000": [62, 131], "0x1b400000": [62, 131], "0x1b500000": [62, 131], "0x1b600000": [62, 131], "0x1b700000": [62, 131], "0x1b800000": [62, 131], "0x20000": [49, 50], "0x200000": 20, "0x300000": 20, "0x400000": 20, "0x500000": 20, "0x600000": 20, "0x700000": 20, "0x81000000": [30, 126, 141], "0x82000000": [30, 103, 126, 141], "0x83100000": 126, "0x83200000": [30, 126], "0x83300000": 126, "0x83400000": [30, 126], "0x84000000": [141, 157, 160], "0x84003000": 160, "0x84004000": 160, "0x84005000": 160, "0x84006000": 160, "0x84007000": 160, "0x85000000": [141, 157], "0x86000000": [141, 157], "0x87000000": [141, 157], "0x87100000": 157, "0x88000000": [16, 47, 48, 52, 53, 72, 79, 95, 103, 141, 154, 157, 159, 160, 167, 198, 223], "0x88100000": 95, "0x88200000": 95, "0x88300000": 95, "0x88400000": 95, "0x88500000": 95, "0x88600000": 95, "0x88700000": 95, "0x88800000": 95, "0x88900000": 95, "0x88a00000": 95, "0x88b00000": 95, "0x88c00000": 95, "0x88d00000": 95, "0x89000000": [16, 47, 48, 53, 141, 157], "0x8a000000": [53, 157], "0x8b000000": [53, 157], "0x8c000000": [53, 157], "0x8d000000": [53, 157], "0x8e000000": [53, 157], "0x8f000000": 53, "0x90000000": [16, 47, 48, 53, 117], "0x91000000": [16, 47, 48, 53], "0x92000000": [16, 47, 48, 53], "0x93000000": 53, "0x94000000": [48, 53], "0x95000000": 53, "0x98000000": [52, 72, 154, 159, 167, 198, 223], "0xa0000000": [10, 11, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 63, 64, 67, 68, 69, 70, 71, 73, 74, 75, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 121, 122, 123, 124, 125, 127, 128, 129, 130, 132, 133, 134, 135, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 181, 183, 184, 185, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 224, 225, 226], "0xa0000100": 176, "0xa0001000": [134, 135, 145], "0xa0002000": [134, 135, 145], "0xa0003000": 135, "0xa0004000": 135, "0xa0010000": [19, 86, 112, 177, 187, 213], "0xa0020000": [177, 187, 213], "0xa0030000": [177, 213], "0xa0040000": 177, "0xa0100000": [109, 142, 147, 173, 214], "0xa0200000": 147, "0xa0300000": 147, "0xa0400000": [20, 147], "0xa0872c00": 69, "0xa1000000": [13, 29, 33, 34, 58, 60, 61, 62, 75, 90, 97, 101, 102, 111, 114, 116, 117, 121, 122, 123, 127, 128, 129, 130, 131, 136, 137, 143, 152, 161, 165, 170, 180, 190, 195, 197, 202, 205, 206, 207, 208, 222], "0xa1001000": 75, "0xa2000000": [29, 33, 45, 58, 60, 62, 97, 101, 102, 114, 116, 121, 123, 128, 131, 136, 137, 161, 170, 180, 199, 205, 207, 208], "0xa3000000": [29, 60, 62, 102, 117, 121, 131, 136, 137], "0xa4000000": [29, 45, 60, 62, 102, 131, 199], "0xa5000000": [29, 60, 62, 131], "0xa6000000": [60, 62, 131], "0xa7000000": [60, 62, 131], "0xa8000000": [52, 62, 159, 160, 167], "0xa8010000": 159, "0xa8020000": 159, "0xa8200000": 52, "0xa8410000": 52, "0xa8480000": 154, "0xa8483000": 154, "0xa8484000": 154, "0xa8485000": 154, "0xa8486000": 154, "0xa8490000": 154, "0xab000000": [62, 131], "0xab100000": [62, 131], "0xab200000": [62, 131], "0xab300000": [62, 131], "0xab400000": [62, 131], "0xab500000": [62, 131], "0xab600000": [62, 131], "0xab700000": [62, 131], "0xab800000": [62, 131], "0xb0000000": [11, 13, 15, 17, 18, 21, 23, 24, 25, 27, 28, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 49, 50, 54, 55, 56, 57, 59, 61, 63, 64, 67, 68, 70, 71, 74, 75, 83, 84, 87, 88, 89, 90, 92, 93, 94, 96, 102, 104, 105, 107, 109, 110, 111, 112, 116, 117, 122, 123, 124, 125, 127, 128, 129, 130, 132, 133, 138, 139, 140, 142, 143, 145, 146, 152, 153, 156, 163, 164, 165, 166, 168, 169, 170, 171, 174, 177, 178, 179, 180, 183, 184, 185, 188, 189, 190, 192, 193, 195, 196, 197, 199, 200, 201, 202, 203, 204, 205, 207, 208, 210, 211, 213, 214, 215, 216, 218, 219, 221, 222, 225], "0xb0001000": [49, 50, 87, 94], "0xb0002000": [49, 50, 87, 94], "0xb0003000": [87, 94], "0xb0010000": [177, 213], "0xb0020000": [177, 213], "0xb0030000": 177, "0xb0100000": [117, 207, 210], "0xb0200000": [117, 207, 210], "0xb0300000": 117, "0xb0400000": 117, "0xb0500000": 117, "0xb0600000": 117, "0xb0700000": 117, "0xb0800000": 117, "0xb0900000": 117, "0xb0b00000": 117, "0xb1000000": [34, 102, 123, 128, 166, 192, 193, 216], "0xb2000000": 102, "0xb8000000": [159, 167], "0xc0000000": [10, 11, 12, 14, 15, 17, 18, 19, 22, 23, 24, 25, 26, 33, 34, 37, 39, 40, 42, 49, 50, 51, 56, 57, 58, 63, 64, 67, 69, 70, 73, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 104, 105, 108, 113, 114, 115, 117, 124, 125, 134, 135, 137, 138, 144, 155, 161, 162, 166, 168, 169, 170, 171, 173, 174, 175, 179, 181, 182, 186, 187, 188, 191, 194, 200, 203, 217, 224, 225], "0xc0001000": 134, "0xc0010000": 187, "0xc0020000": 187, "0xc0030000": 187, "0xc0100000": [117, 170, 188, 224], "0xc0200000": [117, 170], "0xc1000000": [14, 34, 182, 186], "0xc2000000": [14, 182, 186], "0xc3000000": [14, 182, 186], "0xc4000000": [182, 186], "0xc5000000": [182, 186], "0xc8000000": [159, 160, 167], "0xc8020000": 167, "0xc8040000": 167, "0xd0000000": [15, 24, 25, 34, 39, 40, 96, 101, 113, 125, 181, 225], "0xd1000000": 101, "0xe0000000": [24, 25, 34, 39, 40, 96], "0xff": [10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 49, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 73, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 109, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 155, 158, 161, 162, 163, 164, 165, 166, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 193, 194, 195, 196, 197, 201, 202, 203, 205, 206, 207, 208, 210, 211, 213, 214, 216, 217, 218, 219, 220, 221, 222, 224, 225, 226], "10": [0, 7, 8, 16, 20, 41, 45, 47, 55, 56, 57, 59, 60, 72, 74, 75, 88, 89, 124, 125, 141, 159, 160, 162, 176, 183, 184, 190, 192, 193, 198, 199, 211, 213, 215, 218, 219, 221, 223, 233], "100": [57, 60, 75, 83, 88, 96, 98, 106, 136, 183, 184, 186, 191, 216], "1000": [11, 12, 17, 27, 28, 46, 67, 70, 73, 79, 82, 83, 99, 103, 104, 105, 106, 108, 132, 133, 134, 135, 138, 150, 153, 160, 164, 165, 166, 174, 179, 180, 182, 186, 195, 196, 197, 202, 205, 207, 208, 225], "10000": 129, "1001": 106, "1024": [10, 13, 19, 39, 40, 43, 44, 46, 48, 51, 61, 63, 64, 66, 68, 71, 74, 78, 84, 87, 92, 93, 100, 101, 107, 109, 110, 111, 112, 122, 127, 130, 137, 140, 142, 143, 146, 148, 149, 152, 155, 156, 161, 163, 173, 175, 194, 220, 226], "10pt": [69, 96], "11": [4, 20, 55, 124, 125, 141, 190, 218, 219, 233], "114": 0, "11f": 66, "12": [20, 24, 25, 45, 55, 62, 124, 125, 131, 141, 170, 178, 199, 201, 215, 218, 219, 233], "120": [176, 190, 201], "1234": [148, 149, 220], "127": [31, 66, 74, 146], "128": [0, 29, 32, 33, 66, 74, 81, 116, 121, 146, 178, 182, 222, 224, 235], "128x128": 0, "12f": 66, "12pt": 69, "13": [18, 20, 124, 125, 218, 219], "139": 13, "14": [20, 32, 62, 124, 125, 131, 206, 218, 219, 233], "14f": 46, "15": [20, 45, 124, 125, 218, 219], "150": 193, "150528": 217, "1536": 4, "16": [20, 30, 31, 32, 38, 54, 58, 59, 86, 88, 90, 94, 101, 116, 124, 125, 126, 145, 178, 215, 218, 219, 222, 235], "16000": 46, "17": [20, 58, 125], "1733": 4, "18": [4, 20], "183": 18, "19": [20, 145], "1917": 60, "1d": 37, "1e": [14, 15, 23, 33, 87, 94, 97, 101, 114, 142, 171], "1f": [60, 66], "1i": 4, "1j": 4, "1x1": [49, 50], "20": [4, 20, 41, 56, 117, 178, 190, 192, 210, 215], "200": 193, "2000": [14, 75, 117], "2016": 12, "2019": 233, "2023": 4, "2048": [4, 15, 16, 23, 42, 47, 171], "21": 20, "224": [31, 37, 80, 81, 85, 217], "23": [20, 141], "24": [170, 189, 215], "25": [63, 64, 144], "255": [0, 74, 75], "256": [22, 80, 97, 102, 114, 115, 123, 128], "28": 141, "29": [20, 141], "299": 0, "2_": [94, 97], "2d": 31, "2f": [15, 23, 63, 64, 171], "2i": 4, "2j": 4, "2x2": [18, 231], "30": [16, 47, 145, 167, 233], "300": [56, 191], "3072": 4, "31": [20, 141], "32": [0, 20, 29, 30, 31, 34, 81, 87, 94, 116, 118, 119, 120, 124, 126, 134, 135, 161, 162, 178, 182, 186, 214, 222, 233, 235], "32768": 0, "33": 177, "3328": 4, "3414": 4, "36": 94, "3f": [15, 23, 171], "3j": [6, 7, 8], "40": 213, "400": [35, 36, 88, 126, 176], "4000": [30, 126], "4096": [4, 15, 23, 43, 44, 63, 64, 68, 71, 84, 92, 93, 107, 109, 112, 146, 163, 171], "47": [4, 18], "480000": 130, "49": 94, "4f": [15, 87, 94], "4i": 4, "4j": 4, "4x4": [218, 219], "50": [0, 4, 41, 56, 60, 88, 96, 124, 125, 136], "50176": 217, "512": [87, 121, 129, 182], "5678": 220, "587": 0, "5e": [15, 23, 171], "5f": [33, 46, 57, 60, 63, 64, 87, 94, 97, 106, 143, 145, 150, 202], "60": [145, 190, 210], "64": [0, 29, 32, 33, 34, 87, 94, 97, 102, 114, 116, 162, 178, 186, 191, 214, 216, 222, 224, 233, 235], "6678": 145, "6678e": 229, "6900": 4, "6f": [15, 114], "6pt": [12, 67, 117], "7004": [91, 139, 145, 229], "7062": 4, "71": 206, "75": 157, "75f": 115, "789": 79, "78ne": [13, 45, 74, 75, 88, 89, 110, 111, 116, 122, 127, 129, 130, 140, 156, 168, 169, 178, 192, 193, 199, 215], "80": [88, 193], "800": [88, 126], "800000": 14, "88": 12, "8f": [14, 15], "96": 115, "960000": 75, "960001": [74, 110, 111, 122, 127, 140, 156], "999": 144, "999f": [14, 15], "99f": 23, "9f": [14, 15, 23, 171], "_1": 214, "_2": 214, "__init__": [0, 4, 231], "__main__": 0, "__name__": 0, "_addr": 158, "_area": 136, "_at": 210, "_class": 182, "_corner": 158, "_count": [55, 147], "_data": [189, 208, 209, 214], "_decay": 171, "_dim": [88, 215], "_dim0": 210, "_end": 162, "_h": [32, 124, 125, 162], "_height": [158, 162], "_i": [34, 43, 44, 55, 63, 64, 68, 71, 84, 92, 93, 100, 101, 102, 106, 107, 109, 112, 123, 128, 131, 134, 144, 163, 164, 165, 170, 180, 195, 196, 197, 202], "_id": 189, "_index": [188, 189], "_indic": [188, 193], "_input": [81, 199], "_j": [34, 101, 102, 113, 181], "_k": [69, 147], "_l": [124, 125], "_len": 117, "_lerp": 158, "_list": 211, "_max": [74, 75, 222], "_maximum": 67, "_min": [74, 75], "_min_c": 75, "_mode": 67, "_n": [40, 214], "_ndim": [76, 77, 88, 161], "_norm": 69, "_num": [75, 215], "_of": 182, "_offset": 158, "_output": [81, 162], "_p": 235, "_prod": 67, "_rank": 188, "_rate": [23, 171], "_regul": 69, "_relu": [100, 103], "_relu6": 100, "_s": 235, "_scalar": 190, "_scale": [73, 158], "_segment": 189, "_shape": [81, 185, 189, 199, 200], "_size": [47, 69, 75, 76, 77, 96, 117, 161, 182, 189, 192], "_start": 162, "_stride": 188, "_sum": 67, "_t": [15, 118, 119, 120, 171], "_tensor": [205, 210, 211], "_threshold": 136, "_u": [124, 125], "_val": [12, 31, 74], "_val_c": 75, "_valu": [139, 187, 190], "_w": [32, 124, 125, 162], "_width": [158, 162], "_x": [90, 158, 204], "_y": [158, 204], "a_": 86, "a_i": 6, "abs": [4, 65, 227, 228, 229], "absgrad": [65, 227, 228, 229], "ac": 130, "accu_": 23, "accu_t": 23, "accumul": [0, 23, 171], "accuraci": 0, "act": 121, "activ": [31, 65, 86, 227, 228, 229, 233], "activation_non": 86, "activation_relu": 86, "activation_relu6": 86, "activation_typ": [20, 86, 121], "activationgrad": [65, 227, 228, 229], "activationtype_hsigmoid": 20, "activationtype_hswish": 20, "activationtype_no_activ": 20, "activationtype_relu": 20, "activationtype_relu6": 20, "activationtype_sigmoid": 20, "activationtype_softplus": 20, "activationtype_swish": 20, "activationtype_tanh": 20, "ad": 130, "adam": [0, 15, 65, 227, 228, 229], "adamweightdecay": [65, 227, 228], "adapthisteq": 4, "add": [167, 233], "add_channel": 0, "adder": [65, 227, 228], "adderfus": 229, "adderparamet": 16, "addfus": [65, 227, 228, 229], "addgrad": [65, 227, 228, 229], "addn": [65, 227, 228, 229], "affin": [65, 227, 228, 229], "after": 0, "ai": [0, 5, 230], "align": [12, 15, 23, 35, 95, 117, 147, 158, 171, 174], "align_corn": [157, 158], "all": [4, 22, 65, 227, 228, 229], "all_class_index": 60, "all_class_scor": 60, "all_freq": 126, "allgath": [65, 227, 228, 229], "along": [113, 181, 224], "alpha": [4, 12, 13, 17, 68, 103, 115, 202], "am": [14, 16, 47, 48, 56, 95, 103, 154, 167, 182, 186], "amd64": 233, "amzipp": 229, "anaconda": 233, "anaconda3": 233, "anchor": 60, "and": [0, 21, 54, 92, 93, 112, 159], "ani": 233, "anytype_crop_anycor": 52, "anytype_expand_dims_anycor": 72, "anytype_fillv2_": 79, "anytype_fillv2_p": 79, "anytype_reverse_sequence_anycor": 159, "anytype_reversev2_anycor": 160, "anytype_squeeze_anycor": 198, "anytype_unsqueeze_anycor": 223, "api": [4, 227, 228, 230, 239], "app": 0, "append": 4, "applymomentum": [65, 227, 228, 229], "approxim": 12, "arang": [4, 6, 7, 8], "arcsin": 229, "arg": [12, 125], "arg_el": [24, 25], "argc": [10, 11, 12, 13, 14, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 51, 54, 55, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 73, 74, 75, 78, 80, 81, 82, 83, 84, 86, 90, 91, 92, 93, 96, 97, 99, 100, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, 117, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 146, 147, 148, 149, 150, 151, 152, 153, 156, 158, 161, 163, 164, 165, 166, 170, 172, 173, 174, 175, 176, 177, 179, 180, 182, 183, 184, 185, 186, 187, 188, 189, 190, 192, 194, 195, 196, 197, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 213, 214, 216, 218, 219, 220, 221, 222, 224, 225, 226], "argmax": [0, 25, 65, 227, 228], "argmax_indic": 0, "argmaxfus": 229, "argmin": [65, 227, 228], "argminfus": 229, "argv": [10, 11, 12, 13, 14, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 51, 54, 55, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 73, 74, 75, 78, 80, 81, 82, 83, 84, 86, 90, 91, 92, 93, 96, 97, 99, 100, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, 117, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 146, 147, 148, 149, 150, 151, 152, 153, 156, 158, 161, 163, 164, 165, 166, 170, 172, 173, 174, 175, 176, 177, 179, 180, 182, 183, 184, 185, 186, 187, 188, 189, 190, 192, 194, 195, 196, 197, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 213, 214, 216, 218, 219, 220, 221, 222, 224, 225, 226], "arithmetic_infershap": 172, "arithmeticparamet": 172, "arm": [231, 233], "arm_toolchain": 231, "array": [0, 4, 145, 160], "array_input": [104, 105], "as": [0, 4, 6, 7, 8, 231], "asnumpi": 0, "assert": [65, 227, 228, 229], "assert_": 26, "assign": [65, 227, 228, 229], "assignadd": [65, 227, 228], "astyp": [0, 6, 7, 8], "at": 159, "attent": [65, 227, 228], "audio": 30, "audiospectrogram": [65, 227, 228], "auto": 0, "averag": 31, "avgpool": [65, 227, 228], "avgpoolfus": 229, "avgpoolgrad": 229, "avgpoolinggrad": [65, 227, 228], "axe": 154, "axi": [0, 4, 24, 25, 45, 52, 66, 88, 113, 139, 154, 159, 160, 167, 181, 192, 193, 198, 199, 216, 224], "axis_": [167, 216], "axis_dim": 54, "axis_flag": 160, "axis_flag_": 160, "axis_ndim": 160, "axis_ndim_": 160, "axis_num": 66, "axis_s": [21, 113, 181, 186], "axis_sizes_": 154, "azimuthfftfftshift": 229, "azimuthifft": 229, "b_": [86, 95, 117], "b_f": 117, "b_g": 117, "b_h": 35, "b_i": [6, 117], "b_o": 117, "b_w": 35, "backprop": [49, 50], "backward": [7, 8, 76, 77, 131, 161, 165, 180, 195, 201, 203], "bat": 231, "batch": [0, 31, 32, 33, 34, 35, 36, 47, 48, 49, 50, 58, 59, 76, 77, 85, 87, 88, 94, 95, 97, 102, 114, 117, 124, 125, 134, 135, 136, 161, 182, 183, 184, 186], "batch_": [95, 117], "batch_dim": [88, 159], "batch_dim_": 159, "batch_index": 162, "batch_num": 136, "batch_siz": [0, 29, 95, 134, 158, 182, 186], "batchnorm": [65, 227, 228, 229], "batchnormgrad": [65, 227, 228, 229], "batchtospac": [65, 227, 228, 229], "batchtospacend": [65, 227, 228, 229], "bc": 130, "bd": 130, "be": [37, 38, 159], "been": 233, "befor": [0, 159], "begin": [0, 10, 11, 12, 15, 21, 23, 26, 35, 54, 55, 67, 68, 69, 70, 73, 95, 96, 99, 100, 103, 104, 105, 112, 117, 123, 125, 128, 135, 138, 139, 144, 147, 158, 170, 171, 173, 174, 178, 179, 180, 190, 200, 201, 204, 218, 219, 225], "begin_": 178, "begin_0": 178, "begin_1": 178, "beta": [34, 97, 101, 102, 114, 115, 179, 180], "beta1": [14, 15], "beta1_pow": 14, "beta1_power_v": 14, "beta2": [14, 15], "beta2_pow": 14, "beta2_power_v": 14, "beta_1": [14, 15], "beta_2": [14, 15], "beta_c": [97, 114], "beta_data": 101, "beta_i": 101, "between": 159, "bi": 130, "bias": [16, 33, 34, 37, 47, 48, 86, 115, 117, 121, 166], "bias_": 86, "bias_data": [16, 47, 48], "bias_i": 166, "biasadd": [65, 227, 228, 229], "biasaddgrad": [65, 227, 228, 229], "bidirect": 95, "bidirectional_": [95, 117], "big": 124, "bigg": 124, "bigl": [12, 146], "bigr": [12, 146], "bilinear": 157, "bin": 162, "binari": 233, "binarycrossentropi": [65, 227, 228, 229], "binarycrossentropygrad": [65, 227, 228, 229], "bit": 116, "bitrev": 229, "bits_per_hash": 116, "blacklist": 55, "blank": 177, "blank_char": 177, "block": [36, 59, 185], "block_h": [35, 36, 183, 184], "block_num": 102, "block_siz": [35, 36, 59, 102, 183, 184], "block_w": [35, 36, 183, 184], "bmod": 55, "bool": [11, 17, 23, 26, 30, 60, 67, 69, 70, 74, 75, 76, 77, 92, 93, 104, 105, 117, 126, 136, 138, 142, 161, 170, 171, 204, 216, 225, 229], "bordertyp": [30, 126], "bottom": [35, 36, 183, 184], "bottom_i": 158, "box": [53, 136, 145, 149], "box_i": 136, "box_idx": 53, "box_index": 53, "box_j": 136, "box_num": 136, "boxes_scal": 60, "boxes_zero_point": 60, "brdm_2": 0, "break": 154, "broadcast": [92, 93, 104, 105, 142], "broadcastto": [65, 227, 228, 229], "bsearch": 96, "btr_60": 0, "buffer": [95, 117], "buffer_size_": [16, 47, 48, 49, 50], "build": [0, 231], "by": 160, "c128": [130, 156, 235], "c128_abs_": 10, "c128_abs_p": 10, "c128_add_": 235, "c128_add_p": 235, "c128_addext_": 17, "c128_addext_p": 17, "c128_addn_": 19, "c128_addn_p": 19, "c128_addrelu6_": 17, "c128_addrelu6_p": 17, "c128_addrelu_": 17, "c128_addrelu_p": 17, "c128_allgather_": 22, "c128_allgather_p": 22, "c128_assign_": 27, "c128_assign_p": 27, "c128_assignadd_": 28, "c128_assignadd_p": 28, "c128_batchtospace_": 35, "c128_batchtospace_p": 35, "c128_batchtospacend_": 36, "c128_batchtospacend_p": 36, "c128_biasadd_": 37, "c128_biasadd_p": 37, "c128_broadcastto_": 41, "c128_broadcastto_p": 41, "c128_concat_": 45, "c128_concat_p": 45, "c128_constant_of_shape_": 46, "c128_constant_of_shape_p": 46, "c128_cumsum_": 54, "c128_cumsum_p": 54, "c128_depthtospace_": 59, "c128_depthtospace_p": 59, "c128_div_fusion_": 61, "c128_div_fusion_p": 61, "c128_eltwise_": 67, "c128_eltwise_p": 67, "c128_equal_": 70, "c128_equal_p": 70, "c128_expfusion_": 73, "c128_expfusion_p": 73, "c128_extract_features_": 55, "c128_extract_features_p": 55, "c128_fill_": 78, "c128_fill_p": 78, "c128_formattranspose_": 85, "c128_formattranspose_p": 85, "c128_gather_": 88, "c128_gather_nd_": 89, "c128_gather_nd_p": 89, "c128_gather_p": 88, "c128_gatherd_": 90, "c128_gatherd_p": 90, "c128_isfinite_": 99, "c128_isfinite_p": 99, "c128_matmulfusion_": 121, "c128_matmulfusion_p": 121, "c128_mul_": 130, "c128_mul_p": 130, "c128_neg_": 132, "c128_neg_grad_": 133, "c128_neg_grad_p": 133, "c128_neg_p": 132, "c128_nonzero_": 137, "c128_nonzero_p": 137, "c128_not_equal_": 138, "c128_not_equal_p": 138, "c128_onehot_": 139, "c128_onehot_p": 139, "c128_ones_like_": 140, "c128_ones_like_p": 140, "c128_padfusion_": 141, "c128_padfusion_p": 141, "c128_real_div_": 152, "c128_real_div_p": 152, "c128_reciprocal_": 153, "c128_reciprocal_p": 153, "c128_reduceall_": 21, "c128_reduceall_p": 21, "c128_reshape_": 156, "c128_reshape_p": 156, "c128_rfft_p": 161, "c128_rfft_s": 161, "c128_rsqrt_p": 164, "c128_rsqrt_s": 164, "c128_scatter_elements_": 167, "c128_scatter_elements_p": 167, "c128_scatter_nd_": 168, "c128_scatter_nd_p": 168, "c128_scatter_nd_update_": 169, "c128_scatter_nd_update_p": 169, "c128_select_": 170, "c128_select_p": 170, "c128_slice_": 178, "c128_slice_p": 178, "c128_spacetobatch_": 183, "c128_spacetobatch_p": 183, "c128_spacetobatchnd_": 184, "c128_spacetobatchnd_p": 184, "c128_spacetodepth_": 185, "c128_spacetodepth_p": 185, "c128_sparsefillemptyrows_": 187, "c128_sparsefillemptyrows_p": 187, "c128_sparsesegmentsum_": 189, "c128_sparsesegmentsum_p": 189, "c128_sparsetodense_": 190, "c128_sparsetodense_p": 190, "c128_splice_": 191, "c128_splice_p": 191, "c128_split_": 192, "c128_split_p": 192, "c128_split_with_overlap_": 193, "c128_split_with_overlap_p": 193, "c128_sqrt_p": 194, "c128_sqrt_s": 194, "c128_sqrtgrad_": 195, "c128_sqrtgrad_p": 195, "c128_square_": 196, "c128_square_p": 196, "c128_squaredifference_": 197, "c128_squaredifference_p": 197, "c128_stack_": 199, "c128_stack_p": 199, "c128_subext_": 202, "c128_subext_p": 202, "c128_subrelu6_": 202, "c128_subrelu6_p": 202, "c128_subrelu_": 202, "c128_subrelu_p": 202, "c128_tensor_scatter_add_": 206, "c128_tensor_scatter_add_p": 206, "c128_tensorarrayread_": 208, "c128_tensorarrayread_p": 208, "c128_tensorlistfromtensor_": 210, "c128_tensorlistfromtensor_p": 210, "c128_tile_": 215, "c128_tile_p": 215, "c128_transpose_": 217, "c128_transpose_p": 217, "c128_tril_": 218, "c128_tril_p": 218, "c128_triu_": 219, "c128_triu_p": 219, "c128_unique_": 221, "c128_unique_p": 221, "c128_unsorted_segment_sum_": 222, "c128_unsorted_segment_sum_p": 222, "c128_where_": 225, "c128_where_p": 225, "c128_zerolike_": 226, "c128_zerolike_p": 226, "c64": [46, 130, 156, 235], "c64_abs_": 10, "c64_abs_p": 10, "c64_add_": 235, "c64_add_p": 235, "c64_addext_": 17, "c64_addext_p": 17, "c64_addn_": 19, "c64_addn_p": 19, "c64_addrelu6_": 17, "c64_addrelu6_p": 17, "c64_addrelu_": 17, "c64_addrelu_p": 17, "c64_allgather_": 22, "c64_allgather_p": 22, "c64_assign_": 27, "c64_assign_p": 27, "c64_assignadd_": 28, "c64_assignadd_p": 28, "c64_batchtospace_": 35, "c64_batchtospace_p": 35, "c64_batchtospacend_": 36, "c64_batchtospacend_p": 36, "c64_biasadd_": 37, "c64_biasadd_p": 37, "c64_broadcastto_": 41, "c64_broadcastto_p": 41, "c64_concat_": 45, "c64_concat_p": 45, "c64_constant_of_shape_": 46, "c64_constant_of_shape_p": 46, "c64_cumsum_": 54, "c64_cumsum_p": 54, "c64_depthtospace_": 59, "c64_depthtospace_p": 59, "c64_div_fusion_": 61, "c64_div_fusion_p": 61, "c64_eltwise_": 67, "c64_eltwise_p": 67, "c64_equal_": 70, "c64_equal_p": 70, "c64_expfusion_": 73, "c64_expfusion_p": 73, "c64_extract_features_": 55, "c64_extract_features_p": 55, "c64_fill_": 78, "c64_fill_p": 78, "c64_formattranspose_": 85, "c64_formattranspose_p": 85, "c64_gather_": 88, "c64_gather_nd_": 89, "c64_gather_nd_p": 89, "c64_gather_p": 88, "c64_gatherd_": 90, "c64_gatherd_p": 90, "c64_isfinite_": 99, "c64_isfinite_p": 99, "c64_matmulfusion_": 121, "c64_matmulfusion_p": 121, "c64_mul_": 130, "c64_mul_p": 130, "c64_neg_": 132, "c64_neg_grad_": 133, "c64_neg_grad_p": 133, "c64_neg_p": 132, "c64_nonzero_": 137, "c64_nonzero_p": 137, "c64_not_equal_": 138, "c64_not_equal_p": 138, "c64_onehot_": 139, "c64_onehot_p": 139, "c64_ones_like_": 140, "c64_ones_like_p": 140, "c64_padfusion_": 141, "c64_padfusion_p": 141, "c64_real_div_": 152, "c64_real_div_p": 152, "c64_reciprocal_": 153, "c64_reciprocal_p": 153, "c64_reduceall_": 21, "c64_reduceall_p": 21, "c64_reshape_": 156, "c64_reshape_p": 156, "c64_rfft_p": 161, "c64_rfft_s": 161, "c64_rsqrt_p": 164, "c64_rsqrt_s": 164, "c64_scatter_elements_": 167, "c64_scatter_elements_p": 167, "c64_scatter_nd_": 168, "c64_scatter_nd_p": 168, "c64_scatter_nd_update_": 169, "c64_scatter_nd_update_p": 169, "c64_select_": 170, "c64_select_p": 170, "c64_slice_": 178, "c64_slice_p": 178, "c64_spacetobatch_": 183, "c64_spacetobatch_p": 183, "c64_spacetobatchnd_": 184, "c64_spacetobatchnd_p": 184, "c64_spacetodepth_": 185, "c64_spacetodepth_p": 185, "c64_sparsefillemptyrows_": 187, "c64_sparsefillemptyrows_p": 187, "c64_sparsesegmentsum_": 189, "c64_sparsesegmentsum_p": 189, "c64_sparsetodense_": 190, "c64_sparsetodense_p": 190, "c64_splice_": 191, "c64_splice_p": 191, "c64_split_": 192, "c64_split_p": 192, "c64_split_with_overlap_": 193, "c64_split_with_overlap_p": 193, "c64_sqrt_p": 194, "c64_sqrt_s": 194, "c64_sqrtgrad_": 195, "c64_sqrtgrad_p": 195, "c64_square_": 196, "c64_square_p": 196, "c64_squaredifference_": 197, "c64_squaredifference_p": 197, "c64_stack_": 199, "c64_stack_p": 199, "c64_subext_": 202, "c64_subext_p": 202, "c64_subrelu6_": 202, "c64_subrelu6_p": 202, "c64_subrelu_": 202, "c64_subrelu_p": 202, "c64_tensor_scatter_add_": 206, "c64_tensor_scatter_add_p": 206, "c64_tensorarrayread_": 208, "c64_tensorarrayread_p": 208, "c64_tensorlistfromtensor_": 210, "c64_tensorlistfromtensor_p": 210, "c64_tile_": 215, "c64_tile_p": 215, "c64_transpose_": 217, "c64_transpose_p": 217, "c64_tril_": 218, "c64_tril_p": 218, "c64_triu_": 219, "c64_triu_p": 219, "c64_unique_": 221, "c64_unique_p": 221, "c64_unsorted_segment_sum_": 222, "c64_unsorted_segment_sum_p": 222, "c64_where_": 225, "c64_where_p": 225, "c64_zerolike_": 226, "c64_zerolike_p": 226, "c6678": 71, "c_": [16, 35, 47, 48, 117], "c_0": 117, "c_str": 0, "c_t": [117, 118, 119, 120], "cal_num_per_thread": 200, "calcul": [159, 233], "caled_num": 200, "call": 229, "callback": 0, "cand": 136, "candid": 136, "case": [10, 11, 12, 21, 23, 26, 54, 55, 67, 68, 69, 70, 73, 96, 99, 100, 103, 104, 105, 112, 123, 125, 128, 135, 138, 139, 144, 158, 170, 171, 173, 179, 180, 190, 204, 218, 219, 225], "cast": [4, 65, 227, 228, 229], "castc128toc128_": 42, "castc128toc128_p": 42, "castc64toc64_": 42, "castc64toc64_p": 42, "castdptodp_": 42, "castdptodp_p": 42, "castdptofp_": 42, "castdptofp_p": 42, "castfptofp_": 42, "castfptofp_p": 42, "castfptoint16_": 42, "castfptoint16_p": 42, "castfptoint32_": 42, "castfptoint32_p": 42, "castfptoint8_": 42, "castfptoint8_p": 42, "casti16tofp_": 42, "casti16tofp_p": 42, "casti16tointi16_": 42, "casti16tointi16_p": 42, "casti16tointi32_": 42, "casti16tointi32_p": 42, "casti16tointi8_": 42, "casti16tointi8_p": 42, "casti32tofp_": 42, "casti32tofp_p": 42, "casti32tointi16_": 42, "casti32tointi16_p": 42, "casti32tointi32_": 42, "casti32tointi32_p": 42, "casti32tointi8_": 42, "casti32tointi8_p": 42, "casti8tofp_": 42, "casti8tofp_p": 42, "casti8tointi16_": 42, "casti8tointi16_p": 42, "casti8tointi32_": 42, "casti8tointi32_p": 42, "casti8tointi8_": 42, "casti8tointi8_p": 42, "category_": 204, "cc": 0, "ccor": 47, "cd_run_param": 4, "cddata1": 4, "cddata2": 4, "cdot": [12, 13, 14, 15, 20, 23, 31, 32, 34, 39, 40, 58, 62, 63, 64, 67, 68, 69, 73, 84, 86, 87, 94, 97, 101, 102, 103, 106, 107, 114, 117, 118, 119, 120, 124, 125, 134, 135, 144, 147, 158, 166, 171, 174], "ceil": [65, 227, 228, 229], "cell": [0, 4, 117, 231], "cell_buff": 117, "cell_stat": 117, "cell_state_": 117, "celu": 12, "center": [30, 126, 136], "center_point_box": 136, "cepstral": 126, "cfar": 229, "channel": [0, 31, 32, 33, 34, 35, 36, 59, 75, 85, 87, 94, 97, 114, 115, 124, 125, 158, 183, 184, 185], "channel_num": 75, "char": [10, 11, 12, 13, 14, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 51, 54, 55, 56, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 73, 74, 75, 78, 80, 81, 82, 83, 84, 86, 90, 91, 92, 93, 96, 97, 99, 100, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, 117, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 146, 147, 148, 149, 150, 151, 152, 153, 156, 158, 161, 163, 164, 165, 166, 170, 172, 173, 174, 175, 176, 177, 179, 180, 182, 183, 184, 185, 186, 187, 188, 189, 190, 192, 194, 195, 196, 197, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 213, 214, 216, 218, 219, 220, 221, 222, 224, 225, 226], "check": [48, 154, 157, 159, 160], "check_output_hidden_st": 95, "check_ptr": [124, 125], "check_seq_len": 95, "check_seq_len_": 95, "chmod": 231, "cin_channel": 0, "circshift": 4, "ckpt": 0, "clamp": 74, "class": [0, 4, 6, 7, 8, 136, 186, 231], "class_label": 0, "class_nam": 0, "class_num": [134, 135, 136], "clip": [0, 12, 31, 65, 66, 124, 146, 227, 228, 229], "clip_by_valu": 0, "cliplimit": 4, "close": 4, "clx64": [85, 191, 217], "cmake": 231, "cmakelist": [0, 231], "cmd": 233, "cnn": 0, "cnn_model": 0, "coeffici": 126, "col": 0, "color": 0, "color_imag": 0, "color_rgb2gray": 0, "common_infershap": 172, "complex": [4, 121], "complex128": [6, 7, 8, 76, 77, 161, 235], "complex64": [4, 6, 7, 8, 46, 76, 77, 161, 235], "complexab": [4, 9, 227, 229, 233], "compon": 233, "compos": 0, "computestrid": 159, "concat": [65, 227, 228, 229], "condit": [170, 204, 225], "condition_i": 225, "connect": 0, "const": [0, 14, 15, 23, 32, 35, 36, 37, 41, 49, 50, 59, 60, 80, 87, 94, 103, 116, 117, 126, 134, 162, 171, 183, 184, 185, 217, 231], "constant": [4, 141], "constant_valu": [4, 141], "constantofshap": [65, 227, 228, 229], "construct": [0, 4, 231], "constscalar": 172, "consttensor": 172, "context": [0, 20, 231], "context_dim": 191, "context_s": 20, "contigu": [24, 25], "continu": 12, "conv1": 0, "conv2": 0, "conv2d": [0, 48, 49, 50, 65, 227, 228], "conv2dbackpropfilterfus": [65, 227, 228, 229], "conv2dbackpropinputfus": [65, 227, 228, 229], "conv2dfus": 229, "conv2dgradfilt": 49, "conv2dtranspos": [65, 227, 228], "conv2dtransposefus": 229, "conv3": 0, "conv_param": [16, 47, 48, 49, 50], "conv_paramet": [49, 50], "convert": 231, "convert_gray": 0, "convertcolor": 0, "converter_lit": 0, "convertmod": 0, "convertto": 0, "convertto2d": 0, "convolut": 58, "convparamet": [16, 47, 49, 50], "convquantparamet": [16, 47], "convtransposeparamet": 48, "coordinate_transform_mode_": 157, "coordinatetransformmod": 157, "copi": 159, "copy_elem_num_": 159, "copy_s": 213, "core_id": [16, 20, 47, 48, 52, 53, 79, 95, 154, 157, 159, 160, 167], "core_mask": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 205, 206, 207, 208, 209, 210, 211, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226], "core_num": [16, 47, 48, 52, 53, 72, 79, 95, 154, 157, 159, 160, 167, 198, 223], "corner": 136, "correct": 233, "correl": 47, "cos": [65, 227, 228, 229], "cosin": 51, "count": 221, "countelementafterdim": 159, "countelementbeforedim": 159, "cout": 0, "cplx128": [10, 17, 19, 21, 22, 27, 28, 35, 36, 37, 41, 42, 45, 46, 54, 55, 59, 61, 67, 70, 72, 73, 76, 77, 78, 79, 80, 85, 88, 89, 99, 130, 132, 133, 137, 138, 139, 140, 141, 151, 152, 153, 159, 160, 161, 164, 167, 168, 169, 170, 176, 178, 183, 184, 185, 187, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 206, 210, 215, 217, 218, 219, 221, 223, 224, 225, 226, 229], "cplx64": [10, 17, 19, 21, 22, 27, 28, 35, 36, 37, 41, 42, 45, 46, 54, 55, 59, 61, 67, 70, 72, 73, 76, 77, 78, 79, 80, 85, 88, 89, 99, 130, 132, 133, 137, 138, 139, 140, 141, 151, 152, 153, 159, 160, 161, 164, 167, 168, 169, 170, 176, 178, 183, 184, 185, 187, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 206, 208, 209, 210, 215, 217, 218, 219, 221, 223, 224, 225, 226, 229], "cpu": [0, 6, 7, 8, 229, 231, 233], "cpu_info": 0, "cpudeviceinfo": 0, "creat": 233, "create_dict_iter": 0, "crop": [35, 36, 65, 227, 228, 229], "cropandres": [65, 227, 228, 229], "cropandresizeparamet": 53, "cross": [47, 173, 182, 186], "crossentropyloss": 0, "cs": 4, "cubic": 157, "cubic_coeff": 157, "cubic_coeff_": 157, "cumsum": [65, 227, 228, 229], "cur_coord": 160, "cur_coord_": 160, "current": 233, "custom": 233, "custom_extract_featur": 55, "customextractfeatur": [65, 227, 228, 229], "customnorm": [65, 227, 228, 229], "customnormalize_": 56, "customnormalize_p": 56, "custompredict": [65, 227, 228, 229], "custompredict_": 57, "custompredict_p": 57, "cv": 0, "cv2": 0, "cv_32f": 0, "cvmulcv": 229, "cvmulcvifft": 229, "d_": [192, 199], "d_0": [192, 199], "d_1": [192, 199], "d_k": 29, "da_t": [118, 119, 120], "da_tmp_": [118, 119, 120], "dampen": 171, "data": [0, 4, 55, 177, 205, 207], "data0": 208, "data1": 208, "data2": 208, "data_": 204, "data_buffers_": 154, "data_format": 37, "data_handl": [0, 231], "data_it": 0, "data_path": 0, "data_s": [22, 35, 36, 41, 59, 155, 183, 184, 185, 224, 231], "data_typ": 211, "data_type_": [172, 204], "data_type_byt": 200, "datas": 0, "dataset": 0, "dataset_dir": 0, "dataset_sink_mod": 0, "db": 102, "dbia": [34, 38], "dbias_c": 38, "dc_": [118, 119, 120], "dc_t": [118, 119, 120], "dct": 126, "dct_mat": 126, "dct_type": 126, "ddr": [10, 11, 12, 14, 15, 17, 18, 21, 23, 24, 25, 27, 28, 29, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 49, 50, 51, 54, 56, 57, 59, 61, 63, 64, 67, 68, 69, 70, 71, 73, 80, 81, 82, 83, 84, 85, 87, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 112, 113, 114, 115, 117, 121, 123, 128, 132, 133, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 152, 153, 154, 155, 156, 162, 163, 164, 165, 166, 168, 169, 170, 171, 173, 174, 175, 177, 179, 180, 181, 182, 183, 184, 185, 186, 188, 189, 190, 191, 195, 196, 197, 200, 201, 202, 203, 205, 207, 208, 210, 211, 213, 214, 215, 217, 218, 219, 220, 221, 222, 225, 226], "decay": 15, "decod": 0, "decoded_box": 60, "deconv2dgradfilt": 229, "deconvgradfilt": [65, 227, 228], "deconvolut": 58, "def": [0, 4, 231], "default": 187, "default_valu": 187, "defin": [0, 20, 67], "delegatemod": 0, "delta": [124, 125, 147, 150], "delta_k": 147, "dens": 0, "dense1": 0, "dense2": 0, "dense_row": 187, "depth": [59, 139], "depth_radius": 115, "depthtospac": [65, 227, 228, 229], "depthwis": [49, 50], "dequant": 146, "detectionpostprocess": [65, 227, 228, 229], "detectionpostprocessparamet": 60, "detections_per_class": 60, "device_list": 0, "device_target": [0, 233], "dfrac": [135, 173], "dg": 102, "dh_": [118, 119, 120], "dh_t": [118, 119, 120], "di": 130, "diff": 180, "different_aspect_ratio": 145, "different_aspect_ratios_s": 145, "differenti": 12, "dilat": [16, 47, 48, 49, 50], "dilation_h_": [16, 47, 48, 49, 50], "dilation_w_": [16, 47, 48, 49, 50], "dim": [4, 7, 8, 37, 90, 123, 128], "dim0": [190, 222], "dim1": [190, 222], "dim2": 190, "dim3": 190, "dim_size_": 216, "dim_strid": 137, "dir": [76, 77, 161], "directori": 0, "displaystyl": [69, 125], "distribut": 4, "divfus": [65, 227, 228, 229], "divgrad": [65, 131, 227, 228, 229], "divgrad1l": 62, "divgrad2l": 62, "dividor": [124, 125], "dividor2": [124, 125], "dl": 40, "dloss": 40, "dma": [22, 78, 117, 140, 169, 215], "dnum": 20, "doppler": 4, "doquantizefp32toint8": 66, "dot": [7, 8, 29, 45, 76, 77, 78, 90, 98, 106, 139, 147, 150, 161, 178, 187, 192, 193, 199], "doubl": [4, 10, 17, 19, 21, 22, 27, 28, 35, 36, 37, 41, 42, 43, 44, 45, 46, 51, 54, 55, 59, 61, 67, 70, 71, 73, 78, 82, 83, 84, 85, 88, 89, 90, 92, 93, 99, 104, 105, 108, 110, 111, 112, 116, 121, 122, 125, 127, 129, 130, 132, 133, 137, 138, 139, 140, 141, 142, 147, 150, 152, 153, 154, 155, 156, 163, 164, 166, 167, 168, 169, 170, 175, 178, 183, 184, 185, 187, 189, 190, 191, 192, 193, 194, 195, 196, 197, 199, 202, 206, 210, 214, 215, 217, 218, 219, 221, 222, 225, 226], "down_slop": 126, "download": 233, "dp": [10, 51, 78, 85, 110, 111, 116, 122, 127, 129, 130, 155, 175, 187, 191, 194, 217, 226, 235], "dp_abs_": 10, "dp_abs_p": 10, "dp_add_": 235, "dp_add_p": 235, "dp_addext_": 17, "dp_addext_p": 17, "dp_addn_": 19, "dp_addn_p": 19, "dp_addrelu6_": 17, "dp_addrelu6_p": 17, "dp_addrelu_": 17, "dp_addrelu_p": 17, "dp_allgather_": 22, "dp_allgather_p": 22, "dp_and_": 112, "dp_and_p": 112, "dp_assign_": 27, "dp_assign_p": 27, "dp_assignadd_": 28, "dp_assignadd_p": 28, "dp_batchtospace_": 35, "dp_batchtospace_p": 35, "dp_batchtospacend_": 36, "dp_batchtospacend_p": 36, "dp_biasadd_": 37, "dp_biasadd_p": 37, "dp_broadcastto_": 41, "dp_broadcastto_p": 41, "dp_ceil_": 43, "dp_ceil_p": 43, "dp_clip_": 44, "dp_clip_p": 44, "dp_concat_": 45, "dp_concat_p": 45, "dp_constant_of_shape_": 46, "dp_constant_of_shape_p": 46, "dp_cos_": 51, "dp_cos_p": 51, "dp_cumsum_": 54, "dp_cumsum_p": 54, "dp_depthtospace_": 59, "dp_depthtospace_p": 59, "dp_div_fusion_": 61, "dp_div_fusion_p": 61, "dp_eltwise_": 67, "dp_eltwise_p": 67, "dp_equal_": 70, "dp_equal_p": 70, "dp_erf_": 71, "dp_erf_p": 71, "dp_expfusion_": 73, "dp_expfusion_p": 73, "dp_extract_features_": 55, "dp_extract_features_p": 55, "dp_fill_": 78, "dp_fill_p": 78, "dp_floor_": 82, "dp_floor_p": 82, "dp_floordiv_": 83, "dp_floordiv_p": 83, "dp_floormod_": 84, "dp_floormod_p": 84, "dp_formattranspose_": 85, "dp_formattranspose_p": 85, "dp_gather_": 88, "dp_gather_nd_": 89, "dp_gather_nd_p": 89, "dp_gather_p": 88, "dp_gatherd_": 90, "dp_gatherd_p": 90, "dp_greater_": 92, "dp_greaterequal_": 93, "dp_isfinite_": 99, "dp_isfinite_p": 99, "dp_less_": 104, "dp_less_p": 104, "dp_lessequal_": 105, "dp_lessequal_p": 105, "dp_log1p_": 108, "dp_log1p_p": 108, "dp_logical_not_": 110, "dp_logical_not_p": 110, "dp_logical_or_": 111, "dp_logical_or_p": 111, "dp_lsh_projection_": 116, "dp_lsh_projection_p": 116, "dp_matmulfusion_": 121, "dp_matmulfusion_p": 121, "dp_maximum_": 122, "dp_maximum_p": 122, "dp_maxpool_fusion_": 124, "dp_maxpool_fusion_p": 124, "dp_maxpool_grad_": 125, "dp_maxpool_grad_p": 125, "dp_minimum_": 127, "dp_minimum_p": 127, "dp_mod_": 129, "dp_mod_p": 129, "dp_mul_": 130, "dp_mul_p": 130, "dp_neg_": 132, "dp_neg_grad_": 133, "dp_neg_grad_p": 133, "dp_neg_p": 132, "dp_nonzero_": 137, "dp_nonzero_p": 137, "dp_not_equal_": 138, "dp_not_equal_p": 138, "dp_onehot_": 139, "dp_onehot_p": 139, "dp_ones_like_": 140, "dp_ones_like_p": 140, "dp_padfusion_": 141, "dp_padfusion_p": 141, "dp_pow_fusion_": 142, "dp_pow_fusion_p": 142, "dp_raggedrange_": 147, "dp_raggedrange_p": 147, "dp_range_": 150, "dp_range_p": 150, "dp_real_div_": 152, "dp_real_div_p": 152, "dp_reciprocal_": 153, "dp_reciprocal_p": 153, "dp_reduce_": 154, "dp_reduce_p": 154, "dp_reduceall_": 21, "dp_reduceall_p": 21, "dp_reducescatter_": 155, "dp_reducescatter_p": 155, "dp_reshape_": 156, "dp_reshape_p": 156, "dp_round_": 163, "dp_round_p": 163, "dp_rsqrt_p": 164, "dp_rsqrt_s": 164, "dp_scalefusion_": 166, "dp_scalefusion_p": 166, "dp_scatter_elements_": 167, "dp_scatter_elements_p": 167, "dp_scatter_nd_": 168, "dp_scatter_nd_p": 168, "dp_scatter_nd_update_": 169, "dp_scatter_nd_update_p": 169, "dp_select_": 170, "dp_select_p": 170, "dp_sin_": 175, "dp_sin_p": 175, "dp_slice_": 178, "dp_slice_p": 178, "dp_spacetobatch_": 183, "dp_spacetobatch_p": 183, "dp_spacetobatchnd_": 184, "dp_spacetobatchnd_p": 184, "dp_spacetodepth_": 185, "dp_spacetodepth_p": 185, "dp_sparsefillemptyrows_": 187, "dp_sparsefillemptyrows_p": 187, "dp_sparsesegmentsum_": 189, "dp_sparsesegmentsum_p": 189, "dp_sparsetodense_": 190, "dp_sparsetodense_p": 190, "dp_splice_": 191, "dp_splice_p": 191, "dp_split_": 192, "dp_split_p": 192, "dp_split_with_overlap_": 193, "dp_split_with_overlap_p": 193, "dp_sqrt_p": 194, "dp_sqrt_s": 194, "dp_sqrtgrad_": 195, "dp_sqrtgrad_p": 195, "dp_square_": 196, "dp_square_p": 196, "dp_squaredifference_": 197, "dp_squaredifference_p": 197, "dp_stack_": 199, "dp_stack_p": 199, "dp_subext_": 202, "dp_subext_p": 202, "dp_subrelu6_": 202, "dp_subrelu6_p": 202, "dp_subrelu_": 202, "dp_subrelu_p": 202, "dp_tensor_scatter_add_": 206, "dp_tensor_scatter_add_p": 206, "dp_tensorarrayread_": 208, "dp_tensorarrayread_p": 208, "dp_tensorlistfromtensor_": 210, "dp_tensorlistfromtensor_p": 210, "dp_tile_": 215, "dp_tile_p": 215, "dp_transpose_": 217, "dp_transpose_p": 217, "dp_tril_": 218, "dp_tril_p": 218, "dp_triu_": 219, "dp_triu_p": 219, "dp_unique_": 221, "dp_unique_p": 221, "dp_unsorted_segment_sum_": 222, "dp_unsorted_segment_sum_p": 222, "dp_where_": 225, "dp_where_p": 225, "dp_xxx_xxx": 235, "dp_zerolike_": 226, "dp_zerolike_p": 226, "dropout": [64, 65, 172, 227, 228, 229], "dropout_infershap": 172, "dropoutgrad": [65, 227, 228, 229], "ds": 0, "dscale": 34, "dsp": [0, 5, 72, 198, 223, 227, 228, 229, 230, 236, 239], "dsp_info": 0, "dst": [13, 27, 42, 44, 53, 72, 101, 144, 159, 160, 164, 196, 198, 211, 218, 219, 223], "dst_": [33, 86], "dst_col": 191, "dst_data": [10, 21, 51, 73, 82, 83, 85, 101, 144, 154, 166, 175, 191, 194], "dst_format": 85, "dst_i": [10, 13, 19, 27, 42, 51, 73, 78, 82, 83, 166, 173, 175, 194, 226], "dst_ptr": 0, "dst_row": 191, "dt": 71, "dtype": [0, 4, 231], "du": [118, 119, 120], "dw": [49, 58, 118, 119, 120], "dw_data": 58, "dx": [34, 40, 50, 64, 102, 165, 195, 201], "dx0": [123, 128, 131], "dx1": [18, 62, 123, 128, 131, 180, 203], "dx1_dim": 18, "dx2": [18, 62, 131, 203], "dx2_dim": 18, "dx_": [118, 119, 120], "dx_1": 62, "dx_2": 62, "dx_i": [34, 64], "dx_n": 40, "dx_shape": 201, "dx_t": [118, 119, 120], "dxx": 18, "dy": [18, 34, 38, 49, 50, 58, 62, 64, 102, 109, 123, 125, 128, 131, 165, 180, 195, 201, 203], "dy_b": 58, "dy_data": 58, "dy_dim": [18, 38, 203], "dy_i": [34, 64], "dy_j": 34, "dy_ptr": 125, "dy_siz": [62, 131], "dy_t": [118, 119, 120], "dynam": 66, "dynamic_param": [118, 119, 120], "dynamicqu": [65, 227, 228, 229], "dynamicquant_infershap": 172, "each": 224, "echo": 4, "echo1": 4, "echo2": 4, "echo_d1_mf": 4, "echo_d3_mf": 4, "echo_r": 4, "echo_s1": 4, "echo_s2": 4, "echo_s3": 4, "echo_s4": 4, "echo_s5": 4, "echo_shap": 4, "elem_cnt": 103, "elem_cnt_": [78, 80], "element": [0, 113, 159, 181, 221], "element_count": 0, "element_num": [66, 92, 93], "element_shap": 212, "elementnum": 0, "els": [0, 96, 142, 157], "eltwis": [65, 227, 228, 229], "eltwise_maximum": 67, "eltwise_mode_": 67, "eltwise_prod": 67, "eltwise_sum": 67, "elu": [12, 13, 65, 227, 228, 229], "elugrad": 13, "embeddinglookup": [65, 227, 228], "embeddinglookupfus": 229, "empti": [0, 187], "enabl": [92, 93], "encod": 139, "end": [0, 10, 11, 12, 14, 15, 21, 23, 26, 35, 46, 54, 55, 67, 68, 69, 70, 73, 95, 96, 99, 100, 103, 104, 105, 106, 112, 117, 123, 125, 128, 135, 138, 139, 144, 147, 158, 170, 171, 173, 174, 179, 180, 190, 193, 200, 204, 218, 219, 225], "end_idx": [32, 193], "end_indic": 193, "endl": 0, "entropi": [173, 182, 186], "eps": 14, "epsilon": [14, 15, 33, 34, 40, 87, 94, 97, 101, 102, 114, 137], "equal": [65, 227, 228, 229], "erf": [12, 65, 227, 228, 229], "error": [12, 71], "exampl": 55, "exclus": 54, "exe": 233, "exist": 96, "exp": [0, 4, 6, 7, 8, 73, 113, 142, 181], "exp_complex": [30, 126], "exp_x": 0, "expand_dim": 0, "expanddim": [65, 227, 228, 229], "expfus": [65, 227, 228, 229], "expon": 142, "exponent_0": 142, "exponent_i": 142, "exponenti": [4, 68], "export": [0, 4, 231], "export_cnn": 0, "export_connect": 0, "export_gray": 0, "ext": 35, "extens": 0, "extrapolation_valu": 53, "f0": 4, "f32_typecast": 0, "f_": [118, 119, 120], "f_diff": 126, "f_max": 126, "f_min": 126, "f_nc": 4, "f_pts": 126, "f_t": [117, 118, 119, 120], "fa": 4, "fa_axi": 4, "fab": 142, "factor": [76, 77, 161], "fail": 0, "fakequ": 75, "fakequantwithminmaxvar": [65, 227, 228], "fakequantwithminmaxvarsperchannel": [65, 227, 228], "fals": [0, 4, 12, 23, 26, 30, 39, 40, 54, 70, 74, 75, 76, 77, 92, 93, 104, 105, 110, 111, 112, 117, 126, 136, 138, 142, 161, 170, 171, 204, 216, 225], "fast": 60, "fast_run": 200, "fb": 126, "featur": 116, "feature_num": 116, "fft": [4, 8, 9, 30, 76, 77, 126, 161, 172, 227, 229], "fft1": 4, "fft_forward": [76, 77, 161], "fft_infershap": 172, "fft_invers": [76, 77, 161], "fft_nobitrev": 229, "fft_size": [76, 77, 161], "fft_size1": [76, 77, 161], "fft_size2": [76, 77, 161], "fft_time": 229, "fft_window": [30, 126], "fft_window_lat": [30, 126], "fftimag": [65, 227, 228], "fftreal": [65, 227, 228], "fftshift": [4, 229], "fftw_complex": 161, "figur": 4, "file_format": [0, 4, 231], "file_nam": [0, 4, 231], "fill": [65, 227, 228, 229], "filled_count": 187, "fillparamet": 78, "fillv2": [65, 227, 228], "filter": [16, 49], "filter_zp_ptr_": 47, "finish": 233, "flag": 12, "flatten": [0, 65, 81, 172, 227, 228, 229], "flatten_infershap": 172, "flattengrad": [65, 227, 228, 229], "flattenparamet": 80, "flip": 4, "flipud": 4, "float": [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 206, 208, 210, 211, 213, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226], "float16": [136, 182, 186, 205, 235], "float32": [0, 4, 6, 46, 76, 77, 106, 161, 200, 205, 207, 231, 235], "float64": [6, 76, 77, 161, 235], "float_ep": 137, "floatarraytovector": 0, "floor": [65, 84, 227, 228, 229], "floordiv": [65, 227, 228, 229], "floorf": [82, 83], "floormod": [65, 227, 228, 229], "fmap_h": 145, "fmap_w": 145, "fmk": 0, "fmod": 129, "fnv1a": 116, "for": [0, 20, 24, 25, 31, 78, 98, 100, 113, 141, 154, 159, 160, 167, 170, 181, 189, 224, 233], "foral": [69, 96], "forg": 233, "forget": 117, "format": [37, 38, 158], "format_": [172, 204], "format_nchw": [172, 204], "formated_input_shap": 141, "formated_output_shap": 141, "formated_pad": 141, "formattranspos": [65, 227, 228], "forward": [7, 8, 34, 40, 64, 76, 77, 161], "forward_index": 191, "forward_indexes_dim": 191, "fourpointinterpolatori": 229, "fp": [10, 51, 58, 74, 75, 78, 85, 86, 101, 110, 111, 113, 116, 118, 119, 120, 122, 127, 129, 130, 134, 135, 144, 155, 162, 175, 181, 187, 191, 194, 217, 226, 235], "fp16": [11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 59, 60, 61, 62, 63, 64, 67, 68, 69, 70, 71, 72, 73, 74, 75, 79, 80, 81, 82, 83, 84, 87, 88, 89, 91, 92, 93, 94, 95, 97, 99, 100, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 153, 154, 156, 157, 158, 159, 160, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 178, 179, 180, 182, 183, 184, 185, 186, 189, 190, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 203, 206, 208, 209, 210, 215, 216, 218, 219, 220, 221, 223, 224, 225, 229], "fp32": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 79, 80, 81, 82, 83, 84, 87, 88, 89, 91, 92, 93, 94, 95, 97, 99, 100, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 156, 157, 158, 159, 160, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 176, 178, 179, 180, 182, 183, 184, 185, 186, 188, 189, 190, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 203, 206, 208, 209, 210, 215, 216, 218, 219, 220, 221, 223, 224, 225, 229], "fp32fp16": 66, "fp64": [17, 19, 21, 22, 27, 28, 35, 36, 37, 41, 42, 44, 45, 46, 54, 55, 59, 61, 67, 70, 71, 72, 73, 79, 80, 82, 83, 88, 89, 92, 93, 99, 104, 105, 108, 110, 111, 112, 116, 122, 124, 125, 127, 129, 130, 132, 133, 137, 138, 139, 140, 141, 142, 147, 150, 151, 152, 153, 154, 156, 159, 160, 163, 164, 166, 167, 168, 169, 170, 176, 178, 183, 184, 185, 189, 190, 192, 193, 195, 196, 197, 198, 199, 200, 202, 206, 210, 215, 216, 218, 219, 221, 223, 224, 225, 229], "fp_": [151, 176, 216], "fp_abs_": 10, "fp_abs_p": 10, "fp_absgrad_": 11, "fp_absgrad_p": 11, "fp_adam_": 14, "fp_adam_p": 14, "fp_adamweightdecay_": 15, "fp_adamweightdecay_p": 15, "fp_add_": 235, "fp_add_p": 235, "fp_adder_": 16, "fp_adder_p": 16, "fp_addext_": 17, "fp_addext_p": 17, "fp_addgrad_": 18, "fp_addgrad_p": 18, "fp_addn_": 19, "fp_addn_p": 19, "fp_addrelu6_": 17, "fp_addrelu6_p": 17, "fp_addrelu_": 17, "fp_addrelu_p": 17, "fp_affine_": 20, "fp_affine_p": 20, "fp_allgather_": 22, "fp_allgather_p": 22, "fp_and_": 112, "fp_and_p": 112, "fp_applymomentum_": 23, "fp_applymomentum_p": 23, "fp_argmax_": 24, "fp_argmax_p": 24, "fp_argmin_": 25, "fp_argmin_p": 25, "fp_assign_": 27, "fp_assign_p": 27, "fp_assignadd_": 28, "fp_assignadd_p": 28, "fp_attention_": 29, "fp_attention_p": 29, "fp_audio_spectrogram_": 30, "fp_audio_spectrogram_p": 30, "fp_avgpool_fusion_": 31, "fp_avgpool_fusion_p": 31, "fp_avgpoolinggrad_": 32, "fp_avgpoolinggrad_p": 32, "fp_batchnorm_": 33, "fp_batchnorm_p": 33, "fp_batchnormgrad_": 34, "fp_batchnormgrad_p": 34, "fp_batchtospace_": 35, "fp_batchtospace_p": 35, "fp_batchtospacend_": 36, "fp_batchtospacend_p": 36, "fp_biasadd_": 37, "fp_biasadd_p": 37, "fp_biasaddgrad_": 38, "fp_biasaddgrad_p": 38, "fp_binarycrossentropy_": 39, "fp_binarycrossentropy_p": 39, "fp_binarycrossentropygrad_": 40, "fp_binarycrossentropygrad_p": 40, "fp_broadcastto_": 41, "fp_broadcastto_p": 41, "fp_ceil_": 43, "fp_ceil_p": 43, "fp_celu_": 12, "fp_celu_p": 12, "fp_clip_": [12, 44], "fp_clip_p": [12, 44], "fp_concat_": 45, "fp_concat_p": 45, "fp_constant_of_shape_": 46, "fp_constant_of_shape_p": 46, "fp_conv2d_": 47, "fp_conv2d_p": 47, "fp_conv2dbackpropfilterfusion_": 49, "fp_conv2dbackpropfilterfusion_p": 49, "fp_conv2dbackpropinputfusion_": 50, "fp_conv2dbackpropinputfusion_p": 50, "fp_convtranspose_": 48, "fp_convtranspose_p": 48, "fp_cos_": 51, "fp_cos_p": 51, "fp_crop_and_resize_anycor": 53, "fp_cumsum_": 54, "fp_cumsum_p": 54, "fp_deconvgradfilter_": 58, "fp_deconvgradfilter_p": 58, "fp_depthtospace_": 59, "fp_depthtospace_p": 59, "fp_detection_post_process_": 60, "fp_detection_post_process_p": 60, "fp_div_fusion_": 61, "fp_div_fusion_p": 61, "fp_dropout_": 63, "fp_dropout_p": 63, "fp_dropoutgrad_": 64, "fp_dropoutgrad_p": 64, "fp_eltwise_": 67, "fp_eltwise_p": 67, "fp_elu_": [12, 68], "fp_elu_grad_": 13, "fp_elu_grad_p": 13, "fp_elu_p": [12, 68], "fp_embeddinglookup_": 69, "fp_embeddinglookup_p": 69, "fp_equal_": 70, "fp_equal_p": 70, "fp_erf_": 71, "fp_erf_p": 71, "fp_expfusion_": 73, "fp_expfusion_p": 73, "fp_extract_features_": 55, "fp_extract_features_p": 55, "fp_fake_quant_with_min_max_vars_": 74, "fp_fake_quant_with_min_max_vars_p": 74, "fp_fake_quant_with_min_max_vars_per_channel_": 75, "fp_fake_quant_with_min_max_vars_per_channel_p": 75, "fp_fill_": 78, "fp_fill_p": 78, "fp_flattengrad_": 81, "fp_flattengrad_p": 81, "fp_floor_": 82, "fp_floor_p": 82, "fp_floordiv_": 83, "fp_floordiv_p": 83, "fp_floormod_": 84, "fp_floormod_p": 84, "fp_formattranspose_": 85, "fp_formattranspose_p": 85, "fp_fullconnection_": 86, "fp_fullconnection_p": 86, "fp_fusedbatchnorm_": 87, "fp_fusedbatchnorm_p": 87, "fp_gather_": 88, "fp_gather_nd_": 89, "fp_gather_nd_p": 89, "fp_gather_p": 88, "fp_gatherd_": 90, "fp_gatherd_p": 90, "fp_gelu_": 12, "fp_gelu_grad_": 13, "fp_gelu_grad_p": 13, "fp_gelu_p": 12, "fp_glu_": 91, "fp_glu_p": 91, "fp_graddiv1l_": 62, "fp_graddiv1l_p": 62, "fp_graddiv2l_": 62, "fp_graddiv2l_p": 62, "fp_graddiv_": 62, "fp_graddiv_p": 62, "fp_gradmul1l_": 131, "fp_gradmul1l_p": 131, "fp_gradmul2l_": 131, "fp_gradmul2l_p": 131, "fp_gradmul_": 131, "fp_gradmul_p": 131, "fp_greater_": 92, "fp_greater_p": 92, "fp_greaterequal_": 93, "fp_greaterequal_p": 93, "fp_groupnormfusion_": 94, "fp_groupnormfusion_p": 94, "fp_gru_": 95, "fp_gru_p": 95, "fp_h_sigmoid_grad_": 13, "fp_h_sigmoid_grad_p": 13, "fp_h_swish_grad_": 13, "fp_h_swish_grad_p": 13, "fp_hard_shrink_grad_": 13, "fp_hard_shrink_grad_p": 13, "fp_hardshrink_": 12, "fp_hardshrink_p": 12, "fp_hardtanh_": 12, "fp_hardtanh_p": 12, "fp_hsigmoid_": 12, "fp_hsigmoid_p": 12, "fp_hswish_": 12, "fp_hswish_p": 12, "fp_instancenorm_": 97, "fp_instancenorm_p": 97, "fp_isfinite_": 99, "fp_isfinite_p": 99, "fp_l2norm_": 100, "fp_l2norm_p": 100, "fp_l_relu_grad_": 13, "fp_l_relu_grad_p": 13, "fp_layernormfusion_": 101, "fp_layernormfusion_p": 101, "fp_layernormgrad_": 102, "fp_layernormgrad_p": 102, "fp_leaky_relu_": 103, "fp_leaky_relu_p": 103, "fp_less_": 104, "fp_less_p": 104, "fp_lessequal_": 105, "fp_lessequal_p": 105, "fp_linspace_": 106, "fp_linspace_p": 106, "fp_log1p_": 108, "fp_log1p_p": 108, "fp_log_": 107, "fp_log_grad_": 109, "fp_log_grad_p": 109, "fp_log_p": 107, "fp_logical_not_": 110, "fp_logical_not_p": 110, "fp_logical_or_": 111, "fp_logical_or_p": 111, "fp_logsoftmax_": 113, "fp_logsoftmax_p": 113, "fp_lpnorm_": 114, "fp_lpnorm_p": 114, "fp_lrelu_": 12, "fp_lrelu_p": 12, "fp_lrn_p": 115, "fp_lrn_s": 115, "fp_lsh_projection_": 116, "fp_lsh_projection_p": 116, "fp_lstm_p": 117, "fp_lstm_s": 117, "fp_lstmgrad_": 118, "fp_lstmgrad_p": 118, "fp_lstmgraddata_": 119, "fp_lstmgraddata_p": 119, "fp_lstmgradweight_": 120, "fp_lstmgradweight_p": 120, "fp_matmulfusion_": 121, "fp_matmulfusion_p": 121, "fp_maximum_": 122, "fp_maximum_p": 122, "fp_maximumgrad_": 123, "fp_maximumgrad_p": 123, "fp_maxpool_fusion_": 124, "fp_maxpool_fusion_p": 124, "fp_maxpool_grad_": 125, "fp_maxpool_grad_p": 125, "fp_mfcc_p": 126, "fp_mfcc_s": 126, "fp_minimum_": 127, "fp_minimum_p": 127, "fp_minimumgrad_": 128, "fp_minimumgrad_p": 128, "fp_mod_": 129, "fp_mod_p": 129, "fp_mul_": 130, "fp_mul_p": 130, "fp_neg_": 132, "fp_neg_grad_": 133, "fp_neg_grad_p": 133, "fp_neg_p": 132, "fp_nllloss_": 134, "fp_nllloss_p": 134, "fp_nlllossgrad_": 135, "fp_nlllossgrad_p": 135, "fp_non_max_suppression_": 136, "fp_non_max_suppression_p": 136, "fp_nonzero_": 137, "fp_nonzero_p": 137, "fp_not_equal_": 138, "fp_not_equal_p": 138, "fp_onehot_": 139, "fp_onehot_p": 139, "fp_ones_like_": 140, "fp_ones_like_p": 140, "fp_padfusion_": 141, "fp_padfusion_p": 141, "fp_pow_fusion_": 142, "fp_pow_fusion_p": 142, "fp_power_grad_": 143, "fp_power_grad_p": 143, "fp_prelufusion_": 144, "fp_prelufusion_p": 144, "fp_priorbox_": 145, "fp_priorbox_p": 145, "fp_quantdata_": 66, "fp_quantdata_p": 66, "fp_raggedrange_": 147, "fp_raggedrange_p": 147, "fp_random_normal_": 148, "fp_random_normal_p": 148, "fp_random_standard_normal_": 149, "fp_random_standard_normal_p": 149, "fp_range_": 150, "fp_range_p": 150, "fp_real_div_": 152, "fp_real_div_p": 152, "fp_reciprocal_": 153, "fp_reciprocal_p": 153, "fp_reduce_": 154, "fp_reduce_p": 154, "fp_reduceall_": 21, "fp_reduceall_p": 21, "fp_reducescatter_": 155, "fp_reducescatter_p": 155, "fp_relu6_": 12, "fp_relu6_grad_": 13, "fp_relu6_grad_p": 13, "fp_relu6_p": 12, "fp_relu_": 12, "fp_relu_grad_": 13, "fp_relu_grad_p": 13, "fp_relu_p": 12, "fp_reshape_": 156, "fp_reshape_p": 156, "fp_resize_anycor": 157, "fp_resizebilineargrad_": 158, "fp_resizebilineargrad_p": 158, "fp_resizenearestneighborgrad_": 158, "fp_resizenearestneighborgrad_p": 158, "fp_roipooling_": 162, "fp_roipooling_p": 162, "fp_round_": 163, "fp_round_p": 163, "fp_rsqrt_p": 164, "fp_rsqrt_s": 164, "fp_rsqrtgrad_": 165, "fp_rsqrtgrad_p": 165, "fp_scalefusion_": 166, "fp_scalefusion_p": 166, "fp_scatter_elements_": 167, "fp_scatter_elements_p": 167, "fp_scatter_nd_": 168, "fp_scatter_nd_p": 168, "fp_scatter_nd_update_": 169, "fp_scatter_nd_update_p": 169, "fp_select_": 170, "fp_select_p": 170, "fp_sgd_p": 171, "fp_sgd_s": 171, "fp_sigmoid_": 12, "fp_sigmoid_grad_": 13, "fp_sigmoid_grad_p": 13, "fp_sigmoid_p": 12, "fp_sigmoidcrossentropywithlogits_": 174, "fp_sigmoidcrossentropywithlogits_p": 174, "fp_sigmoidcrossentropywithlogitsgrad_": 173, "fp_sigmoidcrossentropywithlogitsgrad_p": 173, "fp_sin_": 175, "fp_sin_p": 175, "fp_slice_": 178, "fp_slice_p": 178, "fp_smoothl1loss_": 179, "fp_smoothl1loss_p": 179, "fp_smoothl1lossgrad_": 180, "fp_smoothl1lossgrad_p": 180, "fp_softmax_": 181, "fp_softmax_cross_entropy_with_logits_": 182, "fp_softmax_cross_entropy_with_logits_p": 182, "fp_softmax_p": 181, "fp_softplus_": 12, "fp_softplus_grad_": 13, "fp_softplus_grad_p": 13, "fp_softplus_p": 12, "fp_softshrink_": 12, "fp_softshrink_grad_": 13, "fp_softshrink_grad_p": 13, "fp_softshrink_p": 12, "fp_softsignopt_": 12, "fp_softsignopt_p": 12, "fp_spacetobatch_": 183, "fp_spacetobatch_p": 183, "fp_spacetobatchnd_": 184, "fp_spacetobatchnd_p": 184, "fp_spacetodepth_": 185, "fp_spacetodepth_p": 185, "fp_sparse_softmax_cross_entropy_with_logits_": 186, "fp_sparse_softmax_cross_entropy_with_logits_p": 186, "fp_sparsefillemptyrows_": 187, "fp_sparsefillemptyrows_p": 187, "fp_sparsesegmentsum_": 189, "fp_sparsesegmentsum_p": 189, "fp_sparsetodense_": 190, "fp_sparsetodense_p": 190, "fp_splice_": 191, "fp_splice_p": 191, "fp_split_": 192, "fp_split_p": 192, "fp_split_with_overlap_": 193, "fp_split_with_overlap_p": 193, "fp_sqrt_p": 194, "fp_sqrt_s": 194, "fp_sqrtgrad_": 195, "fp_sqrtgrad_p": 195, "fp_square_": 196, "fp_square_p": 196, "fp_squaredifference_": 197, "fp_squaredifference_p": 197, "fp_stack_": 199, "fp_stack_p": 199, "fp_stridedslicegrad_": 201, "fp_stridedslicegrad_p": 201, "fp_subext_": 202, "fp_subext_p": 202, "fp_subgrad_": 203, "fp_subgrad_p": 203, "fp_subrelu6_": 202, "fp_subrelu6_p": 202, "fp_subrelu_": 202, "fp_subrelu_p": 202, "fp_swish_": 12, "fp_swish_p": 12, "fp_tanh_": 12, "fp_tanh_grad_": 13, "fp_tanh_grad_p": 13, "fp_tanh_p": 12, "fp_tensor_scatter_add_": 206, "fp_tensor_scatter_add_p": 206, "fp_tensorarrayread_": 208, "fp_tensorarrayread_p": 208, "fp_tensorlistfromtensor_": 210, "fp_tensorlistfromtensor_p": 210, "fp_tile_": 215, "fp_tile_p": 215, "fp_to_i8_quant_": 146, "fp_to_i8_quant_p": 146, "fp_topk_fusion_": 216, "fp_topk_fusion_p": 216, "fp_transpose_": 217, "fp_transpose_p": 217, "fp_tril_": 218, "fp_tril_p": 218, "fp_triu_": 219, "fp_triu_p": 219, "fp_uniform_real_": 220, "fp_uniform_real_p": 220, "fp_unique_": 221, "fp_unique_p": 221, "fp_unsorted_segment_sum_": 222, "fp_unsorted_segment_sum_p": 222, "fp_where_": 225, "fp_where_p": 225, "fp_xxx_xxx": 235, "fp_zerolike_": 226, "fp_zerolike_p": 226, "fprintf": 0, "fr": 4, "fr_axi": 4, "fr_gap": 4, "frac": [7, 8, 12, 14, 15, 18, 20, 29, 31, 32, 33, 34, 35, 40, 58, 61, 62, 66, 69, 71, 74, 75, 76, 77, 83, 84, 87, 94, 97, 100, 101, 102, 106, 109, 113, 114, 135, 136, 146, 147, 152, 153, 161, 162, 164, 165, 173, 174, 179, 180, 181, 182, 186, 189, 195, 200, 203], "frequenc": 126, "from": [0, 4, 64, 231, 233], "ft78ne": [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 231], "ft78nedeviceinfo": 0, "ftp": 233, "full": 4, "full_input": 20, "full_input_shap": 20, "full_run": 20, "fullconnect": [65, 227, 228, 229], "function": [71, 172], "fuse": 87, "fusedbatchnorm": [65, 227, 228, 229], "fusion": [31, 49, 50, 94], "g_i": 135, "g_t": [14, 15, 23, 117, 118, 119, 120, 171], "gamma": [34, 97, 101, 102, 114], "gamma_c": [97, 114], "gamma_data": 101, "gamma_i": 101, "gate": [12, 91, 117], "gather": [4, 22, 65, 90, 227, 228, 229], "gatherd": [65, 227, 228, 229], "gathernd": [65, 227, 228, 229], "gaussian": 12, "gbatch": 125, "gcc": 233, "ge": [12, 68, 93, 123], "gelu": [12, 13], "gelugrad": 13, "gemm": 58, "generat": 63, "geq": [11, 103, 219], "get": [0, 136], "get_core_id": [16, 47, 48, 52, 53, 79, 95, 154, 157, 159, 160, 167], "getcorenum": [16, 20, 47, 48, 52, 53, 72, 79, 95, 154, 157, 159, 160, 167, 198, 223], "getinput": 231, "getinputdata": 231, "getlogiccoreid": [16, 20, 47, 48, 52, 53, 79, 95, 154, 157, 159, 160, 167], "getoutput": 231, "getoutputdata": [0, 231], "gimpel": 12, "gin_h": 125, "gin_w": 125, "given": [113, 181], "glu": [65, 227, 228, 229], "gnueabihf": 233, "googl": 12, "grad": [81, 182], "grad_flat": 81, "grad_out": 81, "gradient": [13, 14, 15, 23, 34, 40, 64, 171, 182, 186], "gradmul1l": 131, "gradmul2l": 131, "gram": 177, "grams_word_count": 177, "graph_mod": 0, "graphcel": 0, "gray": 0, "gray_cnn": 1, "graycnn": 0, "greater": [65, 159, 227, 228, 229], "greater_dim": 159, "greaterequ": [65, 227, 228, 229], "group": [16, 47, 48, 49, 50, 58, 94, 116], "group_": [16, 47, 48, 49, 50], "groupnormfus": [65, 227, 228, 229], "gru": [65, 227, 228, 229], "gru_param": 95, "gruparamet": 95, "gsm": [121, 147], "h_": [35, 47, 48, 95, 117, 118, 119, 120, 124, 185], "h_0": 117, "h_i": [124, 125], "h_o": [124, 125], "h_scale": 60, "h_t": [95, 117], "hadamard": 95, "half": [10, 11, 12, 13, 15, 16, 17, 18, 21, 23, 24, 25, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 47, 48, 49, 50, 51, 53, 54, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 73, 74, 75, 78, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 95, 97, 99, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 122, 123, 127, 128, 129, 130, 131, 132, 133, 134, 135, 138, 139, 140, 142, 143, 144, 145, 146, 148, 149, 152, 153, 154, 155, 156, 157, 158, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 178, 179, 180, 181, 183, 184, 185, 187, 189, 190, 191, 192, 193, 194, 195, 196, 197, 199, 201, 202, 203, 206, 210, 215, 216, 217, 218, 219, 220, 221, 224, 225, 226], "handl": [208, 209], "handle_data": [208, 209], "handle_s": [208, 209], "hard": [12, 13, 20], "hardshrink": 12, "hardshrinkgrad": 13, "hardtanh": 12, "has": 233, "has_bia": 0, "has_bias_": 117, "hash": [55, 116], "hash_group_num": 116, "hash_se": 116, "hashtablelookup": [65, 227, 228, 229], "hat": [14, 15, 34, 87, 94], "head_dim": 29, "head_num": 29, "height": [0, 35, 36, 59, 158, 183, 184, 218, 219], "height_scal": 158, "hello": [55, 56], "hellodsp": [4, 230, 232], "hendryck": 12, "heterogen": [0, 231], "hf": 117, "hg": 117, "hi": 117, "hidden": 117, "hidden_buff": 117, "hidden_s": [95, 117], "hidden_size_": [95, 117], "hidden_st": [95, 117], "hidden_state_": 117, "hidden_state_batch": 95, "hit": 96, "hits_tensor": 96, "hn": 95, "ho": 117, "hop_length": [30, 126], "hot": [139, 186], "hp": [10, 51, 58, 74, 75, 78, 85, 86, 101, 110, 111, 113, 116, 118, 119, 120, 122, 127, 129, 130, 134, 135, 144, 155, 162, 175, 181, 187, 191, 194, 217, 226, 235], "hp_": 216, "hp_abs_": 10, "hp_abs_p": 10, "hp_absgrad_": 11, "hp_absgrad_p": 11, "hp_adamweightdecay_": 15, "hp_adamweightdecay_p": 15, "hp_add_": 235, "hp_add_p": 235, "hp_adder_": 16, "hp_adder_p": 16, "hp_addext_": 17, "hp_addext_p": 17, "hp_addgrad_": 18, "hp_addgrad_p": 18, "hp_addrelu6_": 17, "hp_addrelu6_p": 17, "hp_addrelu_": 17, "hp_addrelu_p": 17, "hp_affine_": 20, "hp_affine_p": 20, "hp_and_": 112, "hp_and_p": 112, "hp_applymomentum_": 23, "hp_applymomentum_p": 23, "hp_argmax_": 24, "hp_argmax_p": 24, "hp_argmin_": 25, "hp_argmin_p": 25, "hp_assign_": 27, "hp_assign_p": 27, "hp_assignadd_": 28, "hp_assignadd_p": 28, "hp_avgpool_fusion_": 31, "hp_avgpool_fusion_p": 31, "hp_avgpoolinggrad_": 32, "hp_avgpoolinggrad_p": 32, "hp_batchnorm_": 33, "hp_batchnorm_p": 33, "hp_batchnormgrad_": 34, "hp_batchnormgrad_p": 34, "hp_batchtospace_": 35, "hp_batchtospace_p": 35, "hp_batchtospacend_": 36, "hp_batchtospacend_p": 36, "hp_biasadd_": 37, "hp_biasadd_p": 37, "hp_biasaddgrad_": 38, "hp_biasaddgrad_p": 38, "hp_binarycrossentropy_": 39, "hp_binarycrossentropy_p": 39, "hp_binarycrossentropygrad_": 40, "hp_binarycrossentropygrad_p": 40, "hp_broadcastto_": 41, "hp_broadcastto_p": 41, "hp_ceil_": 43, "hp_ceil_p": 43, "hp_celu_": 12, "hp_celu_p": 12, "hp_clip_": [12, 44], "hp_clip_p": [12, 44], "hp_concat_": 45, "hp_concat_p": 45, "hp_conv2d_": 47, "hp_conv2d_p": 47, "hp_conv2dbackpropfilterfusion_": 49, "hp_conv2dbackpropfilterfusion_p": 49, "hp_conv2dbackpropinputfusion_": 50, "hp_conv2dbackpropinputfusion_p": 50, "hp_convtranspose_": 48, "hp_convtranspose_p": 48, "hp_cos_": 51, "hp_cos_p": 51, "hp_crop_and_resize_anycor": 53, "hp_cumsum_": 54, "hp_cumsum_p": 54, "hp_deconvgradfilter_": 58, "hp_deconvgradfilter_p": 58, "hp_depthtospace_": 59, "hp_depthtospace_p": 59, "hp_detection_post_process_": 60, "hp_detection_post_process_p": 60, "hp_div_fusion_": 61, "hp_div_fusion_p": 61, "hp_dropout_": 63, "hp_dropout_p": 63, "hp_dropoutgrad_": 64, "hp_dropoutgrad_p": 64, "hp_eltwise_": 67, "hp_eltwise_p": 67, "hp_elu_": [12, 68], "hp_elu_p": [12, 68], "hp_embeddinglookup_": 69, "hp_embeddinglookup_p": 69, "hp_equal_": 70, "hp_equal_p": 70, "hp_erf_": 71, "hp_erf_p": 71, "hp_expfusion_": 73, "hp_expfusion_p": 73, "hp_fake_quant_with_min_max_vars_": 74, "hp_fake_quant_with_min_max_vars_p": 74, "hp_fake_quant_with_min_max_vars_per_channel_": 75, "hp_fake_quant_with_min_max_vars_per_channel_p": 75, "hp_fill_": 78, "hp_fill_p": 78, "hp_flattengrad_": 81, "hp_flattengrad_p": 81, "hp_floor_": 82, "hp_floor_p": 82, "hp_floordiv_": 83, "hp_floordiv_p": 83, "hp_floormod_": 84, "hp_floormod_p": 84, "hp_formattranspose_": 85, "hp_formattranspose_p": 85, "hp_fullconnection_": 86, "hp_fullconnection_p": 86, "hp_fusedbatchnorm_": 87, "hp_fusedbatchnorm_p": 87, "hp_gather_": 88, "hp_gather_nd_": 89, "hp_gather_nd_p": 89, "hp_gather_p": 88, "hp_gelu_": 12, "hp_gelu_p": 12, "hp_glu_": 91, "hp_glu_p": 91, "hp_graddiv1l_": 62, "hp_graddiv1l_p": 62, "hp_graddiv2l_": 62, "hp_graddiv2l_p": 62, "hp_graddiv_": 62, "hp_graddiv_p": 62, "hp_gradmul1l_": 131, "hp_gradmul1l_p": 131, "hp_gradmul2l_": 131, "hp_gradmul2l_p": 131, "hp_gradmul_": 131, "hp_gradmul_p": 131, "hp_greater_": 92, "hp_greater_p": 92, "hp_greaterequal_": 93, "hp_greaterequal_p": 93, "hp_groupnormfusion_": 94, "hp_groupnormfusion_p": 94, "hp_gru_": 95, "hp_gru_p": 95, "hp_hardshrink_": 12, "hp_hardshrink_p": 12, "hp_hardtanh_": 12, "hp_hardtanh_p": 12, "hp_hsigmoid_": 12, "hp_hsigmoid_p": 12, "hp_hswish_": 12, "hp_hswish_p": 12, "hp_instancenorm_": 97, "hp_instancenorm_p": 97, "hp_isfinite_": 99, "hp_isfinite_p": 99, "hp_l2norm_": 100, "hp_l2norm_p": 100, "hp_layernormfusion_": 101, "hp_layernormfusion_p": 101, "hp_layernormgrad_": 102, "hp_layernormgrad_p": 102, "hp_leaky_relu_": 103, "hp_leaky_relu_p": 103, "hp_less_": 104, "hp_less_p": 104, "hp_lessequal_": 105, "hp_lessequal_p": 105, "hp_log1p_": 108, "hp_log1p_p": 108, "hp_log_": 107, "hp_log_grad_": 109, "hp_log_grad_p": 109, "hp_log_p": 107, "hp_logical_not_": 110, "hp_logical_not_p": 110, "hp_logical_or_": 111, "hp_logical_or_p": 111, "hp_logsoftmax_": 113, "hp_logsoftmax_p": 113, "hp_lpnorm_": 114, "hp_lpnorm_p": 114, "hp_lrelu_": 12, "hp_lrelu_p": 12, "hp_lrn_p": 115, "hp_lrn_s": 115, "hp_lsh_projection_": 116, "hp_lsh_projection_p": 116, "hp_lstm_p": 117, "hp_lstm_s": 117, "hp_lstmgrad_": 118, "hp_lstmgrad_p": 118, "hp_lstmgraddata_": 119, "hp_lstmgraddata_p": 119, "hp_lstmgradweight_": 120, "hp_lstmgradweight_p": 120, "hp_maximum_": 122, "hp_maximum_p": 122, "hp_maximumgrad_": 123, "hp_maximumgrad_p": 123, "hp_maxpool_fusion_": 124, "hp_maxpool_fusion_p": 124, "hp_maxpool_grad_": 125, "hp_maxpool_grad_p": 125, "hp_mfcc_p": 126, "hp_mfcc_s": 126, "hp_minimum_": 127, "hp_minimum_p": 127, "hp_minimumgrad_": 128, "hp_minimumgrad_p": 128, "hp_mod_": 129, "hp_mod_p": 129, "hp_mul_": 130, "hp_mul_p": 130, "hp_neg_": 132, "hp_neg_grad_": 133, "hp_neg_grad_p": 133, "hp_neg_p": 132, "hp_nllloss_": 134, "hp_nllloss_p": 134, "hp_nlllossgrad_": 135, "hp_nlllossgrad_p": 135, "hp_non_max_suppression_": 136, "hp_non_max_suppression_p": 136, "hp_not_equal_": 138, "hp_not_equal_p": 138, "hp_onehot_": 139, "hp_onehot_p": 139, "hp_ones_like_": 140, "hp_ones_like_p": 140, "hp_padfusion_": 141, "hp_padfusion_p": 141, "hp_pow_fusion_": 142, "hp_pow_fusion_p": 142, "hp_power_grad_": 143, "hp_power_grad_p": 143, "hp_prelufusion_": 144, "hp_prelufusion_p": 144, "hp_priorbox_": 145, "hp_priorbox_p": 145, "hp_quantdata_": 66, "hp_quantdata_p": 66, "hp_random_normal_": 148, "hp_random_normal_p": 148, "hp_random_standard_normal_": 149, "hp_random_standard_normal_p": 149, "hp_real_div_": 152, "hp_real_div_p": 152, "hp_reciprocal_": 153, "hp_reciprocal_p": 153, "hp_reduce_": 154, "hp_reduce_p": 154, "hp_reduceall_": 21, "hp_reduceall_p": 21, "hp_reducescatter_": 155, "hp_reducescatter_p": 155, "hp_relu6_": 12, "hp_relu6_p": 12, "hp_relu_": 12, "hp_relu_grad_": 13, "hp_relu_grad_p": 13, "hp_relu_p": 12, "hp_reshape_": 156, "hp_reshape_p": 156, "hp_resize_anycor": 157, "hp_resizebilineargrad_": 158, "hp_resizebilineargrad_p": 158, "hp_resizenearestneighborgrad_": 158, "hp_resizenearestneighborgrad_p": 158, "hp_roipooling_": 162, "hp_roipooling_p": 162, "hp_round_": 163, "hp_round_p": 163, "hp_rsqrt_p": 164, "hp_rsqrt_s": 164, "hp_rsqrtgrad_": 165, "hp_rsqrtgrad_p": 165, "hp_scalefusion_": 166, "hp_scalefusion_p": 166, "hp_scatter_elements_": 167, "hp_scatter_elements_p": 167, "hp_scatter_nd_": 168, "hp_scatter_nd_p": 168, "hp_scatter_nd_update_": 169, "hp_scatter_nd_update_p": 169, "hp_select_": 170, "hp_select_p": 170, "hp_sgd_p": 171, "hp_sgd_s": 171, "hp_sigmoid_": 12, "hp_sigmoid_p": 12, "hp_sigmoidcrossentropywithlogits_": 174, "hp_sigmoidcrossentropywithlogits_p": 174, "hp_sigmoidcrossentropywithlogitsgrad_": 173, "hp_sigmoidcrossentropywithlogitsgrad_p": 173, "hp_sin_": 175, "hp_sin_p": 175, "hp_slice_": 178, "hp_slice_p": 178, "hp_smoothl1loss_": 179, "hp_smoothl1loss_p": 179, "hp_smoothl1lossgrad_": 180, "hp_smoothl1lossgrad_p": 180, "hp_softmax_": 181, "hp_softmax_cross_entropy_with_logits_": 182, "hp_softmax_cross_entropy_with_logits_p": 182, "hp_softmax_p": 181, "hp_softplus_": 12, "hp_softplus_p": 12, "hp_softshrink_": 12, "hp_softshrink_p": 12, "hp_softsignopt_": 12, "hp_softsignopt_p": 12, "hp_spacetobatch_": 183, "hp_spacetobatch_p": 183, "hp_spacetobatchnd_": 184, "hp_spacetobatchnd_p": 184, "hp_spacetodepth_": 185, "hp_spacetodepth_p": 185, "hp_sparse_softmax_cross_entropy_with_logits_": 186, "hp_sparse_softmax_cross_entropy_with_logits_p": 186, "hp_sparsefillemptyrows_": 187, "hp_sparsefillemptyrows_p": 187, "hp_sparsesegmentsum_": 189, "hp_sparsesegmentsum_p": 189, "hp_sparsetodense_": 190, "hp_sparsetodense_p": 190, "hp_splice_": 191, "hp_splice_p": 191, "hp_split_": 192, "hp_split_p": 192, "hp_split_with_overlap_": 193, "hp_split_with_overlap_p": 193, "hp_sqrt_p": 194, "hp_sqrt_s": 194, "hp_sqrtgrad_": 195, "hp_sqrtgrad_p": 195, "hp_square_": 196, "hp_square_p": 196, "hp_squaredifference_": 197, "hp_squaredifference_p": 197, "hp_stack_": 199, "hp_stack_p": 199, "hp_stridedslicegrad_": 201, "hp_stridedslicegrad_p": 201, "hp_subext_": 202, "hp_subext_p": 202, "hp_subgrad_": 203, "hp_subgrad_p": 203, "hp_subrelu6_": 202, "hp_subrelu6_p": 202, "hp_subrelu_": 202, "hp_subrelu_p": 202, "hp_swish_": 12, "hp_swish_p": 12, "hp_tanh_": 12, "hp_tanh_p": 12, "hp_tensor_scatter_add_": 206, "hp_tensor_scatter_add_p": 206, "hp_tensorarrayread_": 208, "hp_tensorarrayread_p": 208, "hp_tensorlistfromtensor_": 210, "hp_tensorlistfromtensor_p": 210, "hp_tile_": 215, "hp_tile_p": 215, "hp_to_i8_quant_": 146, "hp_to_i8_quant_p": 146, "hp_topk_fusion_": 216, "hp_topk_fusion_p": 216, "hp_transpose_": 217, "hp_transpose_p": 217, "hp_tril_": 218, "hp_tril_p": 218, "hp_triu_": 219, "hp_triu_p": 219, "hp_uniform_real_": 220, "hp_uniform_real_p": 220, "hp_unique_": 221, "hp_unique_p": 221, "hp_where_": 225, "hp_where_p": 225, "hp_zerolike_": 226, "hp_zerolike_p": 226, "hpp": 0, "hr": 95, "hsigmoid": 12, "hsigmoidgrad": 13, "hswish": 12, "hswishgrad": 13, "https": [0, 233], "hwc2chw": 0, "hyperbol": 12, "hz": 95, "i16": [85, 110, 111, 116, 122, 127, 129, 130, 155, 191, 217, 235], "i16_": 216, "i16_abs_": 10, "i16_abs_p": 10, "i16_add_": 235, "i16_add_p": 235, "i16_addext_": 17, "i16_addext_p": 17, "i16_addn_": 19, "i16_addn_p": 19, "i16_addrelu6_": 17, "i16_addrelu6_p": 17, "i16_addrelu_": 17, "i16_addrelu_p": 17, "i16_allgather_": 22, "i16_allgather_p": 22, "i16_and_": 112, "i16_and_p": 112, "i16_assign_": 27, "i16_assign_p": 27, "i16_assignadd_": 28, "i16_assignadd_p": 28, "i16_batchtospace_": 35, "i16_batchtospace_p": 35, "i16_batchtospacend_": 36, "i16_batchtospacend_p": 36, "i16_biasadd_": 37, "i16_biasadd_p": 37, "i16_broadcastto_": 41, "i16_broadcastto_p": 41, "i16_clip_": 44, "i16_clip_p": 44, "i16_concat_": 45, "i16_concat_p": 45, "i16_constant_of_shape_": 46, "i16_constant_of_shape_p": 46, "i16_cos_": 51, "i16_cos_p": 51, "i16_cumsum_": 54, "i16_cumsum_p": 54, "i16_depthtospace_": 59, "i16_depthtospace_p": 59, "i16_div_fusion_": 61, "i16_div_fusion_p": 61, "i16_eltwise_": 67, "i16_eltwise_p": 67, "i16_equal_": 70, "i16_equal_p": 70, "i16_expfusion_": 73, "i16_expfusion_p": 73, "i16_extract_features_": 55, "i16_extract_features_p": 55, "i16_fill_": 78, "i16_fill_p": 78, "i16_formattranspose_": 85, "i16_formattranspose_p": 85, "i16_gather_": 88, "i16_gather_nd_": 89, "i16_gather_nd_p": 89, "i16_gather_p": 88, "i16_gatherd_": 90, "i16_gatherd_p": 90, "i16_greater_": 92, "i16_greater_p": 92, "i16_greaterequal_": 93, "i16_greaterequal_p": 93, "i16_invertpermutation_": 98, "i16_invertpermutation_p": 98, "i16_isfinite_": 99, "i16_isfinite_p": 99, "i16_less_": 104, "i16_less_p": 104, "i16_lessequal_": 105, "i16_lessequal_p": 105, "i16_log1p_": 108, "i16_log1p_p": 108, "i16_log_": 107, "i16_log_p": 107, "i16_logical_not_": 110, "i16_logical_not_p": 110, "i16_logical_or_": 111, "i16_logical_or_p": 111, "i16_lsh_projection_": 116, "i16_lsh_projection_p": 116, "i16_matmulfusion_": 121, "i16_matmulfusion_p": 121, "i16_maximum_": 122, "i16_maximum_p": 122, "i16_minimum_": 127, "i16_minimum_p": 127, "i16_mod_": 129, "i16_mod_p": 129, "i16_mul_": 130, "i16_mul_p": 130, "i16_neg_": 132, "i16_neg_grad_": 133, "i16_neg_grad_p": 133, "i16_neg_p": 132, "i16_nonzero_": 137, "i16_nonzero_p": 137, "i16_not_equal_": 138, "i16_not_equal_p": 138, "i16_onehot_": 139, "i16_onehot_p": 139, "i16_ones_like_": 140, "i16_ones_like_p": 140, "i16_padfusion_": 141, "i16_padfusion_p": 141, "i16_pow_fusion_": 142, "i16_pow_fusion_p": 142, "i16_raggedrange_": 147, "i16_raggedrange_p": 147, "i16_range_": 150, "i16_range_p": 150, "i16_real_div_": 152, "i16_real_div_p": 152, "i16_reciprocal_": 153, "i16_reciprocal_p": 153, "i16_reduce_": 154, "i16_reduce_p": 154, "i16_reduceall_": 21, "i16_reduceall_p": 21, "i16_reducescatter_": 155, "i16_reducescatter_p": 155, "i16_reshape_": 156, "i16_reshape_p": 156, "i16_rsqrt_": 164, "i16_rsqrt_p": 164, "i16_scalefusion_": 166, "i16_scalefusion_p": 166, "i16_scatter_elements_": 167, "i16_scatter_elements_p": 167, "i16_scatter_nd_": 168, "i16_scatter_nd_p": 168, "i16_scatter_nd_update_": 169, "i16_scatter_nd_update_p": 169, "i16_select_": 170, "i16_select_p": 170, "i16_sin_": 175, "i16_sin_p": 175, "i16_slice_": 178, "i16_slice_p": 178, "i16_spacetobatch_": 183, "i16_spacetobatch_p": 183, "i16_spacetobatchnd_": 184, "i16_spacetobatchnd_p": 184, "i16_spacetodepth_": 185, "i16_spacetodepth_p": 185, "i16_sparsefillemptyrows_": 187, "i16_sparsefillemptyrows_p": 187, "i16_sparsesegmentsum_": 189, "i16_sparsesegmentsum_p": 189, "i16_sparsetodense_": 190, "i16_sparsetodense_p": 190, "i16_splice_": 191, "i16_splice_p": 191, "i16_split_": 192, "i16_split_p": 192, "i16_split_with_overlap_": 193, "i16_split_with_overlap_p": 193, "i16_sqrt_": 194, "i16_sqrt_p": 194, "i16_sqrtgrad_": 195, "i16_sqrtgrad_p": 195, "i16_square_": 196, "i16_square_p": 196, "i16_squaredifference_": 197, "i16_squaredifference_p": 197, "i16_stack_": 199, "i16_stack_p": 199, "i16_subrelu6_": 202, "i16_subrelu6_p": 202, "i16_subrelu_": 202, "i16_subrelu_p": 202, "i16_tensor_scatter_add_": 206, "i16_tensor_scatter_add_p": 206, "i16_tensorarrayread_": 208, "i16_tensorarrayread_p": 208, "i16_tensorlistfromtensor_": 210, "i16_tensorlistfromtensor_p": 210, "i16_tile_": 215, "i16_tile_p": 215, "i16_topk_fusion_": 216, "i16_topk_fusion_p": 216, "i16_transpose_": 217, "i16_transpose_p": 217, "i16_tril_": 218, "i16_tril_p": 218, "i16_triu_": 219, "i16_triu_p": 219, "i16_unique_": 221, "i16_unique_p": 221, "i16_unsorted_segment_sum_": 222, "i16_unsorted_segment_sum_p": 222, "i16_where_": 225, "i16_where_p": 225, "i16_zerolike_": 226, "i16_zerolike_p": 226, "i32": [85, 110, 111, 116, 122, 127, 129, 130, 155, 191, 217, 235], "i32_": 216, "i32_abs_": 10, "i32_abs_p": 10, "i32_add_": 235, "i32_add_p": 235, "i32_addext_": 17, "i32_addext_p": 17, "i32_addn_": 19, "i32_addn_p": 19, "i32_addrelu6_": 17, "i32_addrelu6_p": 17, "i32_addrelu_": 17, "i32_addrelu_p": 17, "i32_allgather_": 22, "i32_allgather_p": 22, "i32_and_": 112, "i32_and_p": 112, "i32_assign_": 27, "i32_assign_p": 27, "i32_assignadd_": 28, "i32_assignadd_p": 28, "i32_batchtospace_": 35, "i32_batchtospace_p": 35, "i32_batchtospacend_": 36, "i32_batchtospacend_p": 36, "i32_biasadd_": 37, "i32_biasadd_p": 37, "i32_broadcastto_": 41, "i32_broadcastto_p": 41, "i32_clip_": 44, "i32_clip_p": 44, "i32_concat_": 45, "i32_concat_p": 45, "i32_constant_of_shape_": 46, "i32_constant_of_shape_p": 46, "i32_cos_": 51, "i32_cos_p": 51, "i32_cumsum_": 54, "i32_cumsum_p": 54, "i32_depthtospace_": 59, "i32_depthtospace_p": 59, "i32_div_fusion_": 61, "i32_div_fusion_p": 61, "i32_eltwise_": 67, "i32_eltwise_p": 67, "i32_equal_": 70, "i32_equal_p": 70, "i32_expfusion_": 73, "i32_expfusion_p": 73, "i32_extract_features_": 55, "i32_extract_features_p": 55, "i32_fill_": 78, "i32_fill_p": 78, "i32_formattranspose_": 85, "i32_formattranspose_p": 85, "i32_gather_": 88, "i32_gather_nd_": 89, "i32_gather_nd_p": 89, "i32_gather_p": 88, "i32_gatherd_": 90, "i32_gatherd_p": 90, "i32_greater_": 92, "i32_greater_p": 92, "i32_greaterequal_": 93, "i32_greaterequal_p": 93, "i32_hashtablelookup_": 96, "i32_hashtablelookup_p": 96, "i32_invertpermutation_": 98, "i32_invertpermutation_p": 98, "i32_isfinite_": 99, "i32_isfinite_p": 99, "i32_less_": 104, "i32_less_p": 104, "i32_lessequal_": 105, "i32_lessequal_p": 105, "i32_log1p_": 108, "i32_log1p_p": 108, "i32_log_": 107, "i32_log_p": 107, "i32_logical_not_": 110, "i32_logical_not_p": 110, "i32_logical_or_": 111, "i32_logical_or_p": 111, "i32_lsh_projection_": 116, "i32_lsh_projection_p": 116, "i32_matmulfusion_": 121, "i32_matmulfusion_p": 121, "i32_maximum_": 122, "i32_maximum_p": 122, "i32_minimum_": 127, "i32_minimum_p": 127, "i32_mod_": 129, "i32_mod_p": 129, "i32_mul_": 130, "i32_mul_p": 130, "i32_neg_": 132, "i32_neg_grad_": 133, "i32_neg_grad_p": 133, "i32_neg_p": 132, "i32_nonzero_": 137, "i32_nonzero_p": 137, "i32_not_equal_": 138, "i32_not_equal_p": 138, "i32_onehot_": 139, "i32_onehot_p": 139, "i32_ones_like_": 140, "i32_ones_like_p": 140, "i32_padfusion_": 141, "i32_padfusion_p": 141, "i32_pow_fusion_": 142, "i32_pow_fusion_p": 142, "i32_raggedrange_": 147, "i32_raggedrange_p": 147, "i32_range_": 150, "i32_range_p": 150, "i32_real_div_": 152, "i32_real_div_p": 152, "i32_reciprocal_": 153, "i32_reciprocal_p": 153, "i32_reduce_": 154, "i32_reduce_p": 154, "i32_reduceall_": 21, "i32_reduceall_p": 21, "i32_reducescatter_": 155, "i32_reducescatter_p": 155, "i32_reshape_": 156, "i32_reshape_p": 156, "i32_rsqrt_": 164, "i32_rsqrt_p": 164, "i32_scalefusion_": 166, "i32_scalefusion_p": 166, "i32_scatter_elements_": 167, "i32_scatter_elements_p": 167, "i32_scatter_nd_": 168, "i32_scatter_nd_p": 168, "i32_scatter_nd_update_": 169, "i32_scatter_nd_update_p": 169, "i32_select_": 170, "i32_select_p": 170, "i32_sin_": 175, "i32_sin_p": 175, "i32_slice_": 178, "i32_slice_p": 178, "i32_spacetobatch_": 183, "i32_spacetobatch_p": 183, "i32_spacetobatchnd_": 184, "i32_spacetobatchnd_p": 184, "i32_spacetodepth_": 185, "i32_spacetodepth_p": 185, "i32_sparsefillemptyrows_": 187, "i32_sparsefillemptyrows_p": 187, "i32_sparsesegmentsum_": 189, "i32_sparsesegmentsum_p": 189, "i32_sparsetodense_": 190, "i32_sparsetodense_p": 190, "i32_splice_": 191, "i32_splice_p": 191, "i32_split_": 192, "i32_split_p": 192, "i32_split_with_overlap_": 193, "i32_split_with_overlap_p": 193, "i32_sqrt_": 194, "i32_sqrt_p": 194, "i32_sqrtgrad_": 195, "i32_sqrtgrad_p": 195, "i32_square_": 196, "i32_square_p": 196, "i32_squaredifference_": 197, "i32_squaredifference_p": 197, "i32_stack_": 199, "i32_stack_p": 199, "i32_subrelu6_": 202, "i32_subrelu6_p": 202, "i32_subrelu_": 202, "i32_subrelu_p": 202, "i32_tensor_scatter_add_": 206, "i32_tensor_scatter_add_p": 206, "i32_tensorarrayread_": 208, "i32_tensorarrayread_p": 208, "i32_tensorlistfromtensor_": 210, "i32_tensorlistfromtensor_p": 210, "i32_tile_": 215, "i32_tile_p": 215, "i32_topk_fusion_": 216, "i32_topk_fusion_p": 216, "i32_transpose_": 217, "i32_transpose_p": 217, "i32_tril_": 218, "i32_tril_p": 218, "i32_triu_": 219, "i32_triu_p": 219, "i32_unique_": 221, "i32_unique_p": 221, "i32_unsorted_segment_sum_": 222, "i32_unsorted_segment_sum_p": 222, "i32_where_": 225, "i32_where_p": 225, "i32_zerolike_": 226, "i32_zerolike_p": 226, "i686": 233, "i8": [110, 111, 116, 122, 127, 129, 130, 182, 235], "i8_": [151, 176], "i8_abs_": 10, "i8_abs_p": 10, "i8_add_": 235, "i8_add_p": 235, "i8_adder_": 16, "i8_adder_p": 16, "i8_addext_": 17, "i8_addext_p": 17, "i8_addn_": 19, "i8_addn_p": 19, "i8_addrelu6_": 17, "i8_addrelu6_p": 17, "i8_addrelu_": 17, "i8_addrelu_p": 17, "i8_affine_": 20, "i8_affine_p": 20, "i8_allgather_": 22, "i8_allgather_p": 22, "i8_and_": 112, "i8_and_p": 112, "i8_assign_": 27, "i8_assign_p": 27, "i8_assignadd_": 28, "i8_assignadd_p": 28, "i8_avgpool_fusion_": 31, "i8_avgpool_fusion_p": 31, "i8_batchnorm_": 33, "i8_batchnorm_p": 33, "i8_batchtospace_": 35, "i8_batchtospace_p": 35, "i8_batchtospacend_": 36, "i8_batchtospacend_p": 36, "i8_biasadd_": 37, "i8_biasadd_p": 37, "i8_binarycrossentropy_": 39, "i8_binarycrossentropy_p": 39, "i8_broadcastto_": 41, "i8_broadcastto_p": 41, "i8_celu_": 12, "i8_celu_p": 12, "i8_clip_": [12, 44], "i8_clip_p": [12, 44], "i8_concat_": 45, "i8_concat_p": 45, "i8_constant_of_shape_": 46, "i8_constant_of_shape_p": 46, "i8_conv2d_": 47, "i8_conv2d_p": 47, "i8_convtranspose_": 48, "i8_convtranspose_p": 48, "i8_cos_": 51, "i8_cos_p": 51, "i8_crop_and_resize_anycor": 53, "i8_cumsum_": 54, "i8_cumsum_p": 54, "i8_depthtospace_": 59, "i8_depthtospace_p": 59, "i8_detection_post_process_": 60, "i8_detection_post_process_p": 60, "i8_div_fusion_": 61, "i8_div_fusion_p": 61, "i8_eltwise_": 67, "i8_eltwise_p": 67, "i8_elu_": [12, 68], "i8_elu_p": [12, 68], "i8_equal_": 70, "i8_equal_p": 70, "i8_expfusion_": 73, "i8_expfusion_p": 73, "i8_extract_features_": 55, "i8_extract_features_p": 55, "i8_fill_": 78, "i8_fill_p": 78, "i8_formattranspose_": 85, "i8_formattranspose_p": 85, "i8_fullconnection_": 86, "i8_fullconnection_p": 86, "i8_gather_": 88, "i8_gather_nd_": 89, "i8_gather_nd_p": 89, "i8_gather_p": 88, "i8_gatherd_": 90, "i8_gatherd_p": 90, "i8_gelu_": 12, "i8_gelu_p": 12, "i8_glu_": 91, "i8_glu_p": 91, "i8_greater_": 92, "i8_greater_p": 92, "i8_greaterequal_": 93, "i8_greaterequal_p": 93, "i8_gru_": 95, "i8_gru_p": 95, "i8_hardshrink_": 12, "i8_hardshrink_p": 12, "i8_hardtanh_": 12, "i8_hardtanh_p": 12, "i8_hsigmoid_": 12, "i8_hsigmoid_p": 12, "i8_hswish_": 12, "i8_hswish_p": 12, "i8_invertpermutation_": 98, "i8_invertpermutation_p": 98, "i8_isfinite_": 99, "i8_isfinite_p": 99, "i8_layernormfusion_": 101, "i8_layernormfusion_p": 101, "i8_leaky_relu_": 103, "i8_leaky_relu_p": 103, "i8_less_": 104, "i8_less_p": 104, "i8_lessequal_": 105, "i8_lessequal_p": 105, "i8_log1p_": 108, "i8_log1p_p": 108, "i8_logical_not_": 110, "i8_logical_not_p": 110, "i8_logical_or_": 111, "i8_logical_or_p": 111, "i8_logsoftmax_": 113, "i8_logsoftmax_p": 113, "i8_lrelu_": 12, "i8_lrelu_p": 12, "i8_lsh_projection_": 116, "i8_lsh_projection_p": 116, "i8_maximum_": 122, "i8_maximum_p": 122, "i8_minimum_": 127, "i8_minimum_p": 127, "i8_mod_": 129, "i8_mod_p": 129, "i8_mul_": 130, "i8_mul_p": 130, "i8_neg_": 132, "i8_neg_grad_": 133, "i8_neg_grad_p": 133, "i8_neg_p": 132, "i8_nllloss_": 134, "i8_nllloss_p": 134, "i8_non_max_suppression_": 136, "i8_non_max_suppression_p": 136, "i8_nonzero_": 137, "i8_nonzero_p": 137, "i8_not_equal_": 138, "i8_not_equal_p": 138, "i8_onehot_": 139, "i8_onehot_p": 139, "i8_ones_like_": 140, "i8_ones_like_p": 140, "i8_padfusion_": 141, "i8_padfusion_p": 141, "i8_pow_fusion_": 142, "i8_pow_fusion_p": 142, "i8_prelufusion_": 144, "i8_prelufusion_p": 144, "i8_raggedrange_": 147, "i8_raggedrange_p": 147, "i8_range_": 150, "i8_range_p": 150, "i8_real_div_": 152, "i8_real_div_p": 152, "i8_reciprocal_": 153, "i8_reciprocal_p": 153, "i8_reduce_": 154, "i8_reduce_p": 154, "i8_reduceall_": 21, "i8_reduceall_p": 21, "i8_reducescatter_": 155, "i8_reducescatter_p": 155, "i8_relu6_": 12, "i8_relu6_p": 12, "i8_relu_": 12, "i8_relu_p": 12, "i8_reshape_": 156, "i8_reshape_p": 156, "i8_resize_anycor": 157, "i8_roipooling_": 162, "i8_roipooling_p": 162, "i8_rsqrt_": 164, "i8_rsqrt_p": 164, "i8_scalefusion_": 166, "i8_scalefusion_p": 166, "i8_scatter_elements_": 167, "i8_scatter_elements_p": 167, "i8_scatter_nd_": 168, "i8_scatter_nd_p": 168, "i8_scatter_nd_update_": 169, "i8_scatter_nd_update_p": 169, "i8_select_": 170, "i8_select_p": 170, "i8_sigmoid_": 12, "i8_sigmoid_p": 12, "i8_sigmoidcrossentropywithlogits_": 174, "i8_sigmoidcrossentropywithlogits_p": 174, "i8_sin_": 175, "i8_sin_p": 175, "i8_slice_": 178, "i8_slice_p": 178, "i8_smoothl1loss_": 179, "i8_smoothl1loss_p": 179, "i8_softmax_": 181, "i8_softmax_cross_entropy_with_logits_": 182, "i8_softmax_cross_entropy_with_logits_p": 182, "i8_softmax_p": 181, "i8_softplus_": 12, "i8_softplus_p": 12, "i8_softshrink_": 12, "i8_softshrink_p": 12, "i8_softsignopt_": 12, "i8_softsignopt_p": 12, "i8_spacetobatch_": 183, "i8_spacetobatch_p": 183, "i8_spacetobatchnd_": 184, "i8_spacetobatchnd_p": 184, "i8_spacetodepth_": 185, "i8_spacetodepth_p": 185, "i8_sparsefillemptyrows_": 187, "i8_sparsefillemptyrows_p": 187, "i8_sparsetodense_": 190, "i8_sparsetodense_p": 190, "i8_splice_": 191, "i8_splice_p": 191, "i8_split_": 192, "i8_split_p": 192, "i8_split_with_overlap_": 193, "i8_split_with_overlap_p": 193, "i8_sqrt_": 194, "i8_sqrt_p": 194, "i8_sqrtgrad_": 195, "i8_sqrtgrad_p": 195, "i8_square_": 196, "i8_square_p": 196, "i8_squaredifference_": 197, "i8_squaredifference_p": 197, "i8_stack_": 199, "i8_stack_p": 199, "i8_subrelu6_": 202, "i8_subrelu6_p": 202, "i8_subrelu_": 202, "i8_subrelu_p": 202, "i8_swish_": 12, "i8_swish_p": 12, "i8_tanh_": 12, "i8_tanh_p": 12, "i8_tensor_scatter_add_": 206, "i8_tensor_scatter_add_p": 206, "i8_tensorarrayread_": 208, "i8_tensorarrayread_p": 208, "i8_tensorlistfromtensor_": 210, "i8_tensorlistfromtensor_p": 210, "i8_tile_": 215, "i8_tile_p": 215, "i8_to_fp_dequant_": 146, "i8_to_fp_dequant_p": 146, "i8_to_hp_dequant_": 146, "i8_to_hp_dequant_p": 146, "i8_transpose_": 217, "i8_transpose_p": 217, "i8_tril_": 218, "i8_tril_p": 218, "i8_triu_": 219, "i8_triu_p": 219, "i8_unique_": 221, "i8_unique_p": 221, "i8_unsorted_segment_sum_": 222, "i8_unsorted_segment_sum_p": 222, "i8_where_": 225, "i8_where_p": 225, "i8_zerolike_": 226, "i8_zerolike_p": 226, "i_": [88, 90, 139, 178], "i_0": [88, 90, 178], "i_1": [139, 178], "i_2": 139, "i_k": 178, "i_n": [90, 139], "i_t": 117, "id": [101, 189, 222], "id_max": 222, "ide": [0, 4, 231], "ident": 121, "ids": 69, "ids_siz": 69, "ids_size_": 69, "idx": 201, "idx1": 170, "idx2": 170, "idx3": 170, "ieee": 194, "if": [0, 11, 12, 16, 20, 21, 23, 26, 47, 48, 52, 53, 54, 55, 67, 68, 69, 70, 79, 95, 96, 99, 100, 103, 104, 105, 112, 117, 123, 125, 128, 138, 139, 142, 144, 154, 157, 158, 159, 160, 167, 170, 171, 179, 180, 187, 190, 204, 218, 219, 225], "ifft": [4, 9, 76, 77, 161, 227, 229], "ifft1": 4, "ifft_nobitrev": 229, "ifft_tim": 229, "ig": 117, "ii": 117, "im": 10, "im2row": 58, "imag": [0, 4, 130], "image_four_channel": 0, "image_height": 53, "image_origin": 0, "imagefolderdataset": 0, "imagepath": 0, "imagesc": 4, "img_siz": 0, "import": [0, 4, 6, 7, 8, 231, 233], "importdata": 4, "imread": 0, "imread_color": 0, "imshow": 4, "in": [16, 21, 34, 47, 48, 55, 56, 57, 69, 73, 95, 96, 110, 124, 125, 158, 162, 188, 189, 222], "in0": [17, 111, 122, 127, 129, 130, 199], "in0_i": 17, "in1": [17, 111, 122, 127, 129, 130, 199], "in1_i": 17, "in2": 199, "in_addr": 158, "in_c": 58, "in_channel": [16, 47, 48, 49, 50], "in_data": [91, 189, 213, 217], "in_data_shap": 189, "in_data_shape_s": 189, "in_elements_num0": [92, 93, 104, 105], "in_h": [31, 49, 50, 58, 124, 125], "in_height": 158, "in_i": 158, "in_indic": 189, "in_indices_ptr": 188, "in_indices_s": 189, "in_inshap": 188, "in_inshape_ptr": 188, "in_item": 213, "in_outshap": 188, "in_outshape_ptr": 188, "in_ptr": 162, "in_scal": 73, "in_segment_id": 189, "in_shap": [24, 25, 52, 59, 185, 200, 201], "in_shape_s": 200, "in_strid": [24, 25, 141, 188], "in_tensor0": 213, "in_tensor1": 213, "in_tensor2": 213, "in_w": [31, 49, 50, 58, 124, 125], "in_width": 158, "in_x": 158, "includ": [0, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 73, 74, 75, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 158, 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 224, 225, 226], "include_all_ngram": 177, "inclus": 54, "increment_input": 20, "increment_input_shap": 20, "increment_output": 20, "increment_output_shap": 20, "ind_ndim": [168, 169], "ind_shap": [168, 169], "index": [0, 24, 25, 60, 90, 136, 190, 205, 207, 208, 209, 211, 213, 222, 224], "index_depth": 206, "index_i": 222, "index_list1": 170, "index_list2": 170, "index_list3": 170, "index_shap": 90, "indic": [24, 25, 62, 88, 89, 131, 139, 167, 168, 169, 187, 206], "indices_": 139, "indices_data": 167, "indices_depth": 168, "indices_i": 168, "indices_ndim": [88, 89, 168, 169], "indices_ptr": 187, "indices_shap": [88, 89, 139, 167, 168, 169], "indices_shape_s": 139, "indices_stride_": 167, "indices_total_num_": 167, "indices_vec": 190, "inf": [61, 66, 107, 142], "infer": 172, "infti": 66, "initi": 160, "inner": 200, "inner_count": 159, "inner_count_": 159, "inner_dim": 54, "inner_loop_num_": 216, "inner_s": [21, 97, 113, 114, 154, 181, 186, 200], "inner_sizes_": 154, "inner_stride_": 159, "inp_box": 53, "inp_box_idx": 53, "input": [0, 4, 6, 10, 11, 12, 17, 18, 21, 22, 24, 25, 26, 28, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 45, 50, 51, 52, 53, 54, 57, 59, 63, 64, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 85, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 103, 104, 105, 107, 108, 110, 113, 114, 115, 117, 124, 125, 126, 132, 133, 137, 138, 141, 142, 146, 153, 154, 155, 156, 157, 161, 162, 163, 164, 166, 167, 172, 175, 178, 181, 183, 184, 185, 186, 188, 189, 191, 192, 193, 194, 196, 199, 200, 201, 204, 205, 206, 207, 210, 211, 215, 216, 217, 218, 219, 221, 222, 224, 231], "input0": [10, 11, 12, 19, 20, 45, 51, 61, 67, 69, 70, 73, 82, 83, 84, 101, 104, 105, 109, 111, 112, 122, 123, 127, 128, 129, 130, 131, 138, 152, 166, 170, 172, 173, 174, 197, 202, 205, 225], "input0_0": [104, 105], "input0_dim": [123, 128], "input0_i": [11, 61, 67, 70, 83, 104, 105, 111, 122, 127, 129, 130, 138, 152, 225], "input0_len": 20, "input0_shap": [20, 172], "input1": [11, 19, 20, 45, 61, 67, 69, 70, 83, 84, 92, 93, 104, 105, 109, 111, 112, 122, 123, 127, 128, 129, 130, 131, 138, 143, 152, 165, 170, 172, 173, 174, 195, 197, 202, 205, 225], "input1_0": [104, 105], "input1_dim": [123, 128], "input1_i": [11, 61, 67, 70, 83, 104, 105, 111, 122, 127, 129, 130, 138, 143, 152, 225], "input1_len": 20, "input1_shap": [20, 172], "input2": [20, 45, 92, 93, 143, 165, 195, 205], "input2_i": 143, "input2_len": 20, "input2_shap": 20, "input_": [32, 45, 75, 193], "input_0": 45, "input_1": 45, "input_axis_size_": 167, "input_batch_": [16, 47, 48, 49, 50], "input_bia": [37, 38, 95, 117], "input_bias_": 117, "input_box": 60, "input_c": 162, "input_channel_": [16, 47, 48, 49, 50], "input_col_align": 95, "input_col_align_": [95, 117], "input_column": 0, "input_data": [16, 30, 47, 48, 69, 126, 155, 159, 160, 167], "input_data_pad": [30, 126], "input_dims_": 167, "input_h": [32, 162], "input_h_": [16, 47, 48, 49, 50], "input_i": [12, 26, 28, 39, 40, 74, 98, 99, 100, 108, 110, 126, 132, 133, 142, 153, 156, 204], "input_index": 189, "input_len": [30, 126, 221], "input_n": 162, "input_ndim": [45, 88, 89, 192, 193, 199], "input_ptr": [113, 124, 125, 181], "input_rank": [22, 137, 188, 206], "input_row_align_": [95, 117], "input_s": [39, 40, 43, 57, 95, 96, 117], "input_scor": 60, "input_shap": [16, 35, 36, 41, 45, 47, 48, 52, 53, 88, 89, 90, 91, 126, 141, 154, 157, 167, 178, 183, 184, 192, 193, 199, 206, 215], "input_shape_": [53, 157, 160], "input_shape_s": [24, 25, 41, 90], "input_size_": [95, 117], "input_strides_": 160, "input_tensor": [0, 96, 205], "input_tensor_list": 211, "input_tensor_shap": 210, "input_tensor_total_el": 210, "input_tensor_valu": 210, "input_tensors_ptr": 172, "input_total_num_": 167, "input_w": [16, 32, 47, 48, 162], "input_w_": [16, 47, 48, 49, 50], "input_win": [30, 126], "input_x": [16, 37, 38, 39, 40, 43, 47, 48, 90, 204], "inputs_s": 172, "instal": [4, 233], "instanc": [97, 114], "instancenorm": [65, 227, 228, 229], "int": [0, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226], "int16": [10, 17, 19, 21, 22, 27, 28, 35, 36, 37, 41, 42, 44, 45, 46, 51, 54, 55, 59, 61, 67, 70, 72, 73, 76, 77, 78, 79, 80, 85, 88, 89, 92, 93, 98, 99, 104, 105, 108, 110, 111, 112, 116, 121, 122, 127, 129, 130, 132, 133, 137, 138, 139, 140, 141, 142, 147, 150, 151, 152, 153, 154, 155, 156, 159, 160, 161, 164, 166, 167, 168, 169, 170, 175, 176, 178, 183, 184, 185, 187, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 206, 208, 209, 210, 215, 216, 217, 218, 219, 221, 223, 224, 225, 226, 229, 235], "int16_t": [10, 17, 19, 21, 22, 27, 28, 35, 36, 37, 41, 42, 44, 45, 46, 51, 54, 55, 59, 61, 67, 70, 73, 78, 85, 88, 89, 90, 92, 93, 98, 99, 104, 105, 107, 108, 110, 111, 112, 116, 121, 122, 127, 129, 130, 132, 133, 137, 138, 139, 140, 142, 147, 150, 152, 153, 154, 155, 156, 164, 166, 167, 168, 169, 170, 175, 178, 183, 184, 185, 187, 189, 190, 191, 192, 193, 194, 195, 196, 197, 199, 202, 206, 210, 215, 216, 217, 218, 219, 221, 222, 225, 226], "int32": [10, 17, 19, 21, 22, 24, 25, 27, 28, 35, 36, 37, 41, 42, 44, 45, 46, 51, 54, 55, 59, 61, 67, 70, 72, 73, 76, 77, 78, 79, 80, 85, 88, 89, 92, 93, 96, 98, 99, 104, 105, 108, 110, 111, 112, 116, 121, 122, 127, 129, 130, 132, 133, 137, 138, 139, 140, 141, 142, 147, 150, 151, 152, 153, 154, 155, 156, 159, 160, 161, 164, 166, 167, 168, 169, 170, 175, 176, 178, 183, 184, 185, 187, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 206, 208, 209, 210, 215, 216, 217, 218, 219, 221, 223, 224, 225, 226, 229, 235], "int32_t": [10, 17, 19, 22, 24, 25, 27, 28, 35, 36, 37, 41, 42, 44, 45, 46, 47, 53, 54, 55, 59, 60, 61, 67, 70, 78, 88, 90, 92, 93, 98, 99, 104, 105, 108, 110, 111, 112, 116, 121, 122, 127, 129, 130, 132, 133, 134, 137, 138, 140, 142, 147, 150, 152, 153, 156, 164, 168, 170, 178, 183, 184, 185, 187, 189, 190, 192, 193, 195, 196, 197, 199, 202, 206, 210, 215, 216, 218, 219, 221, 222, 225, 226], "int64": [76, 77, 161], "int64_t": [218, 219], "int8": [4, 10, 12, 16, 17, 19, 20, 21, 22, 27, 28, 31, 33, 35, 36, 37, 39, 41, 42, 44, 45, 46, 47, 48, 51, 52, 53, 54, 55, 59, 60, 61, 66, 67, 68, 70, 72, 73, 76, 77, 78, 79, 80, 85, 86, 88, 89, 91, 92, 93, 95, 98, 99, 101, 103, 104, 105, 108, 110, 111, 112, 113, 116, 122, 127, 129, 130, 132, 133, 134, 136, 137, 138, 139, 140, 141, 142, 144, 146, 147, 150, 151, 152, 153, 154, 155, 156, 157, 159, 160, 161, 162, 164, 166, 167, 168, 169, 170, 174, 175, 176, 178, 179, 181, 182, 183, 184, 185, 187, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 206, 210, 215, 216, 217, 218, 219, 221, 223, 224, 225, 226, 229, 235], "int8_t": [10, 12, 16, 17, 19, 21, 22, 27, 28, 31, 33, 35, 36, 37, 39, 41, 42, 44, 45, 46, 47, 48, 51, 53, 54, 55, 59, 60, 61, 66, 67, 68, 70, 73, 78, 85, 86, 88, 89, 90, 91, 92, 93, 95, 98, 99, 101, 103, 104, 105, 108, 110, 111, 112, 113, 116, 122, 127, 129, 130, 132, 133, 134, 136, 137, 138, 139, 140, 142, 144, 146, 147, 150, 152, 153, 154, 155, 156, 157, 162, 164, 166, 167, 168, 169, 170, 174, 175, 178, 179, 181, 182, 183, 184, 185, 187, 190, 191, 192, 193, 194, 195, 196, 197, 199, 202, 206, 210, 215, 217, 218, 219, 221, 222, 225, 226], "int_": 71, "int_param": 139, "integ": 163, "inter_linear": 0, "interest": 162, "interpol": 0, "intersec": 136, "invar": 34, "invers": [34, 76, 77, 158, 161], "invertpermut": [65, 227, 228, 229], "io": [4, 117], "iou": 136, "iou_threshold": 136, "iou_threshold_bit": 136, "ip": 231, "ir": [95, 231], "irff": [76, 77, 161], "irfft": [76, 77, 161], "is": [0, 24, 25, 37, 38, 69, 100, 104, 105, 187, 190, 225, 233], "is_broadcast": 170, "is_full_run": 20, "is_grad": 186, "is_regul": 69, "is_regulated_": 69, "is_relu": 100, "is_relu6": 100, "is_scalar": 190, "is_train": 34, "isfinit": [65, 227, 228, 229], "item": 213, "iz": 95, "j_": 88, "j_0": 88, "jpeg": 0, "jpg": [0, 4], "k_": 216, "k_h": [31, 58], "k_w": [31, 58], "ka": 4, "kconstant": [30, 126, 141], "keep_dim": 154, "keepdim": 0, "kernel": 47, "kernel_h": [49, 50, 58], "kernel_h_": [16, 47, 48, 49, 50], "kernel_s": [0, 47], "kernel_w": [49, 50, 58], "kernel_w_": [16, 47, 48, 49, 50], "key": 96, "keys_siz": 96, "keys_tensor": 96, "khann": [30, 126], "kn": [76, 77, 161], "knumbertypefloat32": [172, 204], "kpnna": 0, "kr": 4, "kreflect": 141, "ksymmetr": 141, "ktypeunknown": [211, 214], "l1": [16, 114, 179, 180], "l2": [10, 11, 14, 15, 17, 18, 19, 22, 23, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 49, 50, 51, 54, 56, 57, 58, 59, 63, 64, 67, 68, 70, 71, 73, 80, 81, 82, 83, 84, 85, 87, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 106, 107, 108, 112, 113, 114, 115, 121, 123, 128, 132, 133, 134, 135, 137, 139, 141, 144, 145, 146, 147, 150, 155, 162, 163, 164, 165, 166, 170, 171, 173, 174, 175, 179, 180, 181, 183, 184, 185, 188, 189, 190, 191, 195, 196, 197, 200, 201, 202, 203, 205, 207, 208, 210, 213, 214, 217, 218, 219, 221, 222, 225, 226], "l2_norm_val": 100, "l2norm": [65, 227, 228], "l2normalizefus": 229, "l_k": 147, "l_n": 39, "l_relu_grad": 13, "label": [55, 57, 134, 135, 173, 174, 182, 186], "labelinfo": 57, "lambd": [12, 13], "lambda": [0, 12], "lamda": 4, "land": 112, "large_multipl": [62, 131], "large_shap": [62, 131], "large_strid": [62, 131], "layer": [69, 102], "layer_num": 69, "layer_num_": 69, "layer_s": 69, "layer_size_": 69, "layernorm": [101, 172], "layernorm_infershap": 172, "layernormfus": [65, 227, 228, 229], "layernormgrad": [65, 227, 228, 229], "layout": [24, 25], "lceil": [43, 147, 158, 162, 200], "ldot": [189, 210, 214], "le": [105, 116, 124, 125, 128, 144, 173, 178, 193], "leaki": [12, 13, 103], "leakyrelu": [65, 227, 228, 229], "leakyrelugrad": 13, "learn": [23, 171], "learning_r": [0, 14, 23, 171], "left": [12, 29, 34, 35, 36, 61, 66, 74, 97, 114, 115, 147, 162, 183, 184, 200], "left_matrix": 117, "left_shift_": 47, "left_x": 158, "leftarrow": [69, 96], "len": [0, 76, 77, 91, 161, 177], "length": [10, 12, 13, 15, 17, 19, 23, 27, 28, 37, 38, 42, 44, 51, 55, 61, 63, 64, 67, 68, 69, 70, 71, 73, 74, 75, 79, 82, 83, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 122, 127, 129, 130, 132, 133, 137, 138, 140, 143, 146, 148, 149, 150, 152, 153, 154, 156, 163, 164, 166, 171, 173, 174, 175, 179, 180, 194, 196, 197, 211, 220, 225, 226], "length_in": 142, "leq": [180, 218], "lerp": 158, "less": [65, 105, 159, 227, 228, 229], "less_dim": 159, "lessequ": [65, 227, 228, 229], "lfloor": [84, 158], "lib": 0, "librari": [177, 227, 228, 230, 239], "likelihood": [134, 135], "limit": 147, "limit_k": 147, "linaro": 233, "line_buffers_": [53, 157], "linear": [12, 68, 91], "linspac": [65, 227, 228], "linux": 233, "lite": [0, 4, 229, 237], "ll": 56, "ln": [12, 20, 107, 108, 174], "load": 0, "load_checkpoint": 0, "load_param_into_net": 0, "loadmat": 4, "local": [115, 116], "log": [39, 65, 96, 108, 109, 113, 134, 135, 182, 186, 227, 228, 229], "log1p": [65, 227, 228, 229], "log_grad": 109, "log_mel": 126, "log_prob": 134, "loggrad": [65, 227, 228, 229], "logic": [21, 110, 111, 112], "logic_core_id": [16, 20, 47, 48, 52, 53, 79, 95, 154, 157, 159, 160, 167], "logical_and": 112, "logicaland": [65, 227, 228, 229], "logicalnot": [65, 227, 228, 229], "logicalor": [65, 227, 228, 229], "logit": [135, 173, 174, 182, 186], "logits_grad": 135, "logsoftmax": [65, 134, 172, 227, 228, 229], "logsoftmax_infershap": 172, "long": [20, 56, 58, 62, 118, 119, 120, 124, 125, 131, 141, 170, 177, 205], "lor": 111, "loss": [0, 39, 134, 135, 174, 179, 180, 182, 186], "loss_fn": 0, "loss_grad": 135, "loss_i": [182, 186], "lossmonitor": 0, "lp": 114, "lpnorm": 114, "lpnormal": [65, 227, 228], "lr": [14, 15], "lrelu": 12, "lrn": [65, 227, 228, 229], "lsh": 116, "lshproject": [65, 227, 228, 229], "lstm": [65, 118, 119, 120, 227, 228, 229], "lstm_param": 117, "lstmgrad": [65, 227, 228, 229], "lstmgraddata": [65, 227, 228, 229], "lstmgradweight": [65, 227, 228, 229], "lstmp": 117, "lstmparamet": 117, "m_": [14, 15, 171], "m_pts": 126, "m_t": [14, 15, 171], "main": [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226], "major": [29, 80], "make_shar": 0, "map": 0, "mask": [63, 64], "mat": [0, 4], "math": [100, 102, 115, 201], "mathbb": 186, "mathbf": 67, "mathcal": [124, 125, 148, 149, 220], "mathrel": [125, 158, 189], "mathrm": [12, 66, 136, 158], "matio": 4, "matmul": [4, 231], "matmulfus": [65, 227, 228, 229], "matplotlib": 4, "max": [12, 17, 20, 31, 44, 61, 66, 67, 69, 74, 75, 100, 115, 122, 124, 125, 146, 158, 189, 202], "max_": [124, 125, 162], "max_arr": 75, "max_c": 162, "max_classes_per_detect": 60, "max_detect": 60, "max_norm": 69, "max_norm_": 69, "max_output_per_class": 136, "max_siz": 145, "max_sizes_data": 145, "max_sizes_s": 145, "max_skip_s": 177, "max_v": 74, "max_val": [12, 31, 74, 75], "maxf": [124, 125], "maxi_": 47, "maximum": [65, 123, 136, 227, 228, 229], "maximumgrad": [65, 227, 228, 229], "maxmin": 172, "maxmingrad_infershap": 172, "maxpool": 125, "maxpool2d": 0, "maxpoolfus": [65, 227, 228, 229], "maxpoolgrad": [65, 227, 228, 229], "mean": [0, 33, 34, 39, 40, 87, 94, 102, 134, 135, 148], "mean_c": 87, "mean_j": 33, "mel": 126, "mel_htk": 126, "mel_scal": 126, "mel_spectrogram_output": 126, "meltyp": 126, "memcpi": [0, 16, 47, 48, 52, 53, 95, 157, 159, 172, 204], "memori": 145, "memset": [48, 158, 190, 201], "merg": 229, "method": 157, "method_": 157, "metric": 0, "mfcc": [65, 227, 228], "mfcc_i": 126, "mfcc_param": 126, "mfcc_workspac": 126, "mfccparam": 126, "mfccworkspaceparam": 126, "midir": 0, "min": [12, 17, 20, 31, 44, 66, 74, 75, 100, 115, 124, 125, 127, 146, 158, 202], "min_arr": 75, "min_siz": 145, "min_sizes_data": 145, "min_sizes_s": 145, "min_v": 74, "min_val": [12, 31, 74, 75], "mindir": [0, 4, 231], "mindradar": [4, 6, 7, 8], "mindspor": [0, 6, 7, 8, 95, 177, 229, 236, 237], "mindspore_py38": 233, "minf": [124, 125], "mingw32_arm": 233, "mini_": 47, "miniconda3": 233, "minimum": [65, 128, 227, 228, 229], "minimumgrad": [65, 227, 228, 229], "minsdpor": 237, "mobilenetv3": 12, "mod": [65, 227, 228, 229], "mode": [0, 154, 157], "mode_": 154, "model": [0, 4, 231], "model_buf": 231, "model_context": 231, "model_data": 231, "model_typ": 231, "modelfil": 0, "modetyp": 231, "modulus": 84, "moment": [23, 171], "momentum": 23, "mr": [4, 6, 7, 8], "ms": [0, 4, 6, 7, 8, 231], "mstensor": [0, 231], "mt6678": 139, "mt7004": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226], "mu": [101, 102], "mu_": [94, 97], "mul": [65, 131, 227, 228], "mulfus": 229, "mulgrad": [65, 227, 228, 229], "muller": 149, "multipl": 233, "multipli": 4, "multiplier_": 47, "mutabledeviceinfo": [0, 231], "my_model": 0, "n1": 210, "n2": 210, "n3": 210, "n_": 35, "n_1": [7, 8, 76, 77, 161], "n_d": [7, 8, 76, 77, 161], "n_dim": [113, 181], "n_fft": [30, 126], "n_i": [7, 8, 47, 76, 77, 161], "n_mel": 126, "n_mfcc": 126, "n_t": 95, "na": 4, "name": 0, "nan": [61, 99, 107, 109, 142, 163, 194], "nc4hw4": 85, "nc8hw8": 85, "nchw": [37, 85, 158], "ndim": [62, 91, 131, 154, 159, 160, 167, 178, 215, 224], "ndim_": [78, 80, 159, 160], "nearest": [157, 163], "need_grad": 182, "neg": [65, 110, 227, 228, 229], "negat": [134, 135, 142], "neggrad": [65, 227, 228, 229], "neq": [21, 70, 73, 110, 111, 112, 135, 138], "nesterov": [14, 23, 171], "net": 6, "netron": 0, "new_shap": 4, "next": 233, "ngram_siz": 177, "nhwc": [16, 31, 37, 38, 47, 48, 58, 85, 124, 125, 158, 185], "nllloss": [65, 135, 227, 228, 229], "nlllossgrad": [65, 227, 228, 229], "nlp": 177, "nms": [60, 136], "nms_candid": 60, "nms_iou_threshold": 60, "nms_score_threshold": 60, "nmsparam": 136, "nmsparamfp16": 136, "nmsparamfp32": 136, "nmsparamint8": 136, "nn": [0, 4, 231], "no": [104, 105], "non": 136, "non_zero_num": 137, "none": [39, 40, 121, 134, 135, 167, 233], "nonmaxsupppress": 229, "nonmaxsuppress": [65, 227, 228], "nonzero": [65, 227, 228, 229], "norm": [7, 8, 76, 77, 114, 126, 161], "norm_inner_s": 101, "norm_m": 126, "norm_mode_ortho": 126, "norm_outer_s": 101, "norm_slaney": 126, "normal": [30, 33, 34, 87, 94, 102, 115, 126], "normmod": 126, "normtyp": 126, "not": [56, 110], "notequ": [65, 227, 228, 229], "np": [0, 4, 6, 7, 8, 231], "nr": 4, "nudg": [74, 75], "nudge_max": 74, "nudge_min": 74, "null": [86, 116, 121, 170, 187], "num": [0, 20, 98, 106, 182, 186, 199], "num_ax": [154, 217], "num_axes_": 154, "num_box": [60, 136], "num_class": [0, 60], "num_classes_with_bg": 60, "num_classes_with_bg_": 60, "num_complex": 130, "num_dim": [18, 123, 128, 203], "num_direct": 95, "num_el": 212, "num_elem_": 160, "num_epoch": 0, "num_group": 94, "num_input": [45, 199], "num_of_class": 182, "num_roi": 162, "num_slic": 168, "num_split": [91, 192, 193], "num_str": 55, "num_unit": 206, "number": 159, "number_of_class": 186, "numpi": [0, 4, 6, 7, 8, 231], "numpy_exp": 0, "nweights_": [49, 50], "o_t": [117, 118, 119, 120], "odot": [95, 117, 118, 119, 120], "of": [37, 38, 92, 93, 159, 162, 233], "off": 139, "off_valu": 139, "offset": [52, 87, 94, 145, 177], "offset_": 52, "offset_c": [87, 94], "offset_s": 154, "omega_1": [7, 8, 76, 77, 161], "omega_d": [7, 8, 76, 77, 161], "omega_i": [7, 8, 76, 77, 161], "on": [139, 233], "on_off": 139, "on_valu": 139, "one": [0, 139, 159, 186, 231], "onehot": [65, 227, 228, 229], "onesid": [30, 76, 77, 126, 161], "oneslik": [65, 227, 228, 229], "op_parameter_": [172, 216], "opencv": 0, "opencv2": 0, "oper": 0, "operatornam": [24, 25, 29, 55, 71, 121, 124, 146, 163], "opparamet": [172, 216], "ops": [0, 4, 231], "optim": [0, 12, 92, 93, 104, 105], "or": 111, "org": 233, "ori": 188, "orig_seq_length": 159, "origin": 81, "origin_ndim": 81, "origin_shap": 81, "ortho": [7, 8, 76, 77, 161], "other": [117, 216], "otherwis": [12, 23, 55, 99, 100, 103, 104, 105, 112, 123, 125, 128, 139, 144, 158, 171, 179, 218, 219], "otim": 91, "out": [0, 6, 7, 8, 17, 35, 47, 73, 91, 110, 111, 122, 127, 129, 130, 158, 179, 185, 188, 189, 231], "out0": [192, 193, 224], "out1": [192, 193, 224], "out_addr": 158, "out_c": 58, "out_channel": [16, 47, 48, 49, 50], "out_data": [0, 91, 189, 213, 217], "out_data_shap": 189, "out_dim": 54, "out_elem": [218, 219], "out_h": [49, 50, 58], "out_height": 158, "out_i": [6, 16, 17, 47, 48, 158], "out_indic": 187, "out_indices_ptr": 188, "out_j": 47, "out_mean": 101, "out_ndim": [168, 169], "out_outshap": 188, "out_outshape_ptr": 188, "out_ptr": 162, "out_scal": 73, "out_shap": [52, 62, 131, 168, 169, 200], "out_shape_s": 200, "out_siz": 115, "out_strid": [24, 25, 62, 131, 141, 188, 217], "out_tensor0": 213, "out_tensor1": 213, "out_tensor2": 213, "out_valu": [24, 25, 187], "out_vari": 101, "out_w": [49, 50, 58], "out_width": 158, "out_x": 158, "outer": 200, "outer_count_": 159, "outer_loop_num_": 216, "outer_s": [21, 154], "outer_sizes_": 154, "outer_stride_": 159, "output": [0, 10, 11, 12, 13, 19, 20, 21, 22, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 51, 52, 53, 54, 59, 61, 63, 64, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 122, 124, 125, 126, 127, 129, 130, 132, 133, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 176, 178, 181, 182, 183, 184, 185, 186, 190, 191, 192, 193, 194, 195, 196, 197, 199, 200, 201, 202, 204, 205, 206, 207, 208, 209, 210, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 224, 225, 226, 231], "output0": [210, 221], "output0_len": 221, "output1": 210, "output2": 210, "output_": [32, 75, 117, 139], "output_batch_": [16, 47, 48, 49, 50], "output_box": 60, "output_channel_": [16, 47, 48, 49, 50], "output_class": 60, "output_column": 0, "output_data": [16, 47, 48, 69, 145, 155, 159, 160, 167, 208, 209, 214], "output_dim": [20, 170], "output_dims_num": 170, "output_h": [32, 124, 125], "output_h_": [16, 47, 48, 49, 50], "output_hidden_st": 95, "output_i": [11, 12, 17, 26, 28, 61, 67, 70, 74, 99, 100, 104, 105, 108, 110, 111, 122, 127, 129, 130, 132, 133, 138, 140, 142, 143, 148, 149, 150, 152, 153, 156, 220, 224, 225], "output_index": 216, "output_j": 192, "output_label": [55, 57], "output_mfcc": [30, 126], "output_ndim": [168, 169], "output_np": 0, "output_num": [0, 57, 60], "output_num_": 154, "output_onsid": [30, 126], "output_prob": 0, "output_ptr": [113, 124, 125, 181], "output_rank": [22, 188], "output_reverse_index_map_ptr": 187, "output_s": [145, 158, 190, 208, 209], "output_scor": 60, "output_shap": [16, 20, 30, 41, 47, 48, 52, 53, 126, 141, 157, 168, 169, 172, 190, 217], "output_shape_": [53, 157], "output_shape_s": 41, "output_size_": 117, "output_step_": [95, 117], "output_strid": 190, "output_stride_": 167, "output_tensor": [96, 177, 210, 211], "output_tensors_ptr": 172, "output_unit_offset": 206, "output_valu": [24, 25], "output_w": [32, 124, 125], "output_w_": [16, 47, 48, 49, 50], "output_weight": [55, 57], "output_y_indices_ptr": 187, "output_y_values_ptr": 187, "output_zp_": 47, "outputfil": 0, "outputs_s": 172, "outter_s": [113, 181, 186], "overlap": 193, "p_": [134, 182, 186], "packed_input_": 117, "packed_output": 117, "packed_ptr": 117, "packed_st": 117, "packparam": [154, 167], "pad": [4, 16, 30, 47, 48, 49, 50, 124, 125, 126, 141, 183, 184], "pad_bottom": 31, "pad_d_": [49, 50], "pad_l": [32, 124, 125], "pad_l_": [16, 47, 48, 49, 50], "pad_left": 31, "pad_mod": [30, 126], "pad_r_": [49, 50], "pad_right": 31, "pad_top": 31, "pad_u": [32, 124, 125], "pad_u_": [16, 47, 48, 49, 50], "padarray": 4, "padding_mod": 141, "padfus": [65, 227, 228, 229], "para": 4, "parallel_on_out": 200, "parallel_on_split_axi": 200, "param": [16, 20, 30, 47, 48, 49, 50, 53, 56, 58, 60, 78, 80, 95, 118, 119, 120, 124, 125, 136, 141, 154, 157, 159, 160, 167, 172, 216], "param_dict": 0, "param_inner_s": 101, "param_not_load": 0, "param_num": 102, "param_outer_s": 101, "param_s": 102, "paramet": [0, 4, 31, 117, 145, 216], "parti": 233, "partial": [18, 58, 62, 135, 182, 186, 203], "partial_loss": 186, "partialfus": 229, "pass": [0, 64, 131, 165, 180, 195, 201, 203], "path": 233, "pcolor": 4, "per": [66, 75], "per_channel_": 47, "perm": 217, "phasemul": 229, "phi": 12, "pi": [4, 6, 7, 8, 12, 71, 76, 77, 161], "pil": 0, "pip": [4, 233], "plane": 85, "platform": 233, "plt": 4, "pmod": 129, "png": 0, "point": [66, 74, 136, 146], "pointer": 145, "pool": [31, 162], "pool1": 0, "pool2": 0, "pool3": 0, "pooled_height": 162, "pooled_width": 162, "pos": 201, "power": [30, 126, 143], "powergrad": [65, 227, 228, 229], "powfus": [65, 227, 228, 229], "pre": 63, "predict": [0, 179, 180, 231], "predicted_class": 0, "prelu": 144, "prelu_fus": 144, "prelufus": [65, 227, 228, 229], "preparecropandresizebilinear": 53, "prepareresizebicub": 157, "prepareresizebilinear": 157, "previous_output": 20, "previous_output_shap": 20, "prf": 4, "primit": 216, "print": [0, 4, 6, 7, 8, 231], "printf": 221, "prior": 145, "priorbox": [65, 227, 228, 229], "prob": 182, "probabl": 134, "process": 177, "prod_": [8, 21, 76, 77, 161, 189], "product": 29, "proj_col_align_": 117, "project_size_": 117, "promt": 233, "ptr": 0, "push_back": 0, "py": [0, 231], "py3": 233, "py_transform": 0, "pynative_mod": 0, "pyplot": 4, "python": 4, "python3": 233, "pytorch": 95, "q_": [66, 146], "q_i": [66, 146], "q_max": 146, "q_min": 146, "qk": 29, "qquad": [124, 125], "quad": [13, 61, 69, 73, 75, 76, 77, 78, 87, 94, 96, 98, 101, 106, 113, 124, 130, 140, 146, 147, 150, 161, 173, 181, 187, 189, 193, 224], "quant": [66, 74, 75], "quant_dtype_cast": 146, "quant_max": [74, 75], "quant_min": [74, 75], "quant_param": [16, 47], "quant_valu": 66, "quantdtypecast": [65, 227, 228, 229], "quantiz": [66, 146], "r0": 4, "r_t": 95, "radian": 51, "raggedrang": [65, 227, 228, 229], "rand": 20, "rand_max": 20, "randn": 0, "random": 0, "randomnorm": [65, 227, 228, 229], "randomstandardnorm": [65, 227, 228, 229], "rang": [4, 65, 147, 227, 228, 229], "range_count": 147, "rangfft": 229, "rank": [22, 65, 176, 187, 227, 228, 229], "rank_": 151, "rank_p": 151, "ratio": 145, "ratios_data": 145, "ratios_s": 145, "rceil": [43, 147, 158, 162, 200], "rd": 4, "rdsar": 3, "rdsarv3": 4, "re": [10, 56], "read": 0, "readfil": 231, "readimag": 0, "real": [76, 77, 130, 161], "real_valu": 66, "realdiv": [65, 227, 228, 229], "reciproc": [65, 164, 227, 228, 229], "rectifi": 12, "reduc": [65, 155, 227, 228], "reduce_asum": 154, "reduce_axi": 154, "reduce_l2norm": 154, "reduce_max": 154, "reduce_mean": 154, "reduce_min": 154, "reduce_prod": 154, "reduce_sum": 154, "reduce_sumsquar": 154, "reduce_typ": 155, "reducefus": 229, "reducemax": 155, "reducemean": 155, "reducemin": 155, "reduceparamet": 154, "reducescatt": [65, 227, 228, 229], "reducesum": 155, "reduct": [0, 39, 40, 135, 167], "reduction_typ": [134, 135, 167], "reduction_type_": 167, "refer": [227, 228, 230, 239], "reflect": 141, "region": 162, "regular": 60, "reinterpret_cast": 0, "releas": 233, "reload_cnn": 0, "relu": [0, 12, 13, 17, 20, 61, 86, 100, 103, 121, 202], "relu6": [12, 13, 17, 20, 31, 44, 86, 100, 121, 202], "relu6grad": 13, "relugrad": 13, "requir": 233, "rescale_to_0_1": 0, "rescale_transform": 0, "reserv": 0, "reshap": [0, 7, 8, 65, 80, 81, 188, 227, 228, 229], "resiz": [0, 65, 158, 159, 160, 227, 228, 229], "resize_op": 0, "resizebilineargrad": 158, "resized_imag": 0, "resized_image_tensor": 0, "resizegrad": [65, 227, 228, 229], "resizemethod": 157, "resizenearestneighborgrad": 158, "resizeparamet": 157, "reslut": 0, "respons": 115, "result": [0, 4, 56, 233], "result_len": 56, "return": [0, 4, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 73, 74, 75, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 158, 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 224, 225, 226, 231], "return_valu": [24, 25], "revers": 229, "reverse_map": 187, "reversesequ": [65, 227, 228, 229], "reversesequenceparamet": 159, "reversev2": [65, 227, 228, 229], "reversev2paramet": 160, "rfft": [65, 76, 77, 227, 228], "rfloor": [84, 158], "rgb": 0, "right": [12, 29, 34, 35, 36, 61, 66, 74, 97, 114, 115, 147, 162, 183, 184, 200], "right_shift_": 47, "right_x": 158, "rightarrow": [136, 187], "rnn": [95, 117], "roi": 162, "roipool": [65, 227, 228, 229], "roll": 4, "root": 164, "round": [4, 65, 66, 74, 146, 158, 227, 228, 229], "roundf": 163, "row": [0, 29, 80, 187], "rsqrt": [65, 165, 227, 228, 229], "rsqrtgrad": [65, 227, 228, 229], "run_check": 233, "s_": 73, "s_h": 31, "s_i": [21, 55], "s_w": 31, "sample_r": 126, "sar": [0, 3], "sar_imaging_with_rd_cs_wk": 4, "satur": 4, "saturation_tensor": 4, "save_checkpoint": 0, "savefig": 4, "scalar": [92, 93], "scalar_input": [104, 105], "scale": [29, 33, 34, 63, 64, 66, 73, 74, 87, 94, 142, 143, 146, 148, 162, 166], "scale_c": [75, 87, 94], "scale_i": 166, "scalefus": [65, 227, 228, 229], "scatterel": [65, 227, 228], "scatterelementsparamet": 167, "scatternd": [65, 227, 228, 229], "scatterndupd": [65, 227, 228, 229], "scipi": 4, "score": [60, 136], "score_threshold": 136, "score_threshold_bit": 136, "scores_scal": 60, "scores_zero_point": 60, "scratch": [161, 187], "scratch_ptr": [76, 77, 161, 187], "seed": [148, 149, 220], "seed2": 220, "seed_": 116, "segment": [189, 222], "segment_id": 189, "segment_num": 66, "select": [60, 65, 227, 228, 229], "self": [0, 4, 12, 231], "selu": 229, "sensit": 116, "sentenc": 177, "seq": 117, "seq_dim": 159, "seq_dim_": 159, "seq_len": [29, 95], "seq_len_": [95, 117], "seq_length": 159, "serial": 0, "set_context": [0, 233], "setbuiltindeleg": 0, "sgd": [65, 227, 228, 229], "shape": [0, 4, 24, 25, 31, 45, 47, 48, 65, 72, 76, 77, 79, 80, 137, 159, 160, 161, 176, 177, 192, 198, 199, 223, 224, 227, 228, 229, 231], "shape0": 45, "shape1": 45, "shape2": 45, "shape_": [78, 80, 159, 172, 204], "shape_changed_": 204, "shape_s": [37, 38, 212], "shape_size_": [172, 204], "shared_ptr": 231, "shift": [4, 142, 143], "should": [37, 38, 159], "show": 4, "shrink": 13, "shrinkag": 12, "sigma": [12, 20, 34, 91, 94, 95, 97, 101, 102, 117, 173], "sigmoid": [12, 13, 20, 39, 91, 95, 117, 173, 174], "sigmoid_cross_entropi": 173, "sigmoidcroosentropywithlogit": 229, "sigmoidcroosentropywithlogitsgrad": 229, "sigmoidcrossentropywithlogit": [65, 227, 228], "sigmoidcrossentropywithlogitsgrad": [65, 227, 228], "sigmoidgrad": 13, "signal": [76, 77, 161, 177, 231, 233, 236], "signal_ndim": [7, 8, 76, 77, 161], "signal_s": [76, 77, 161], "sim": [148, 149, 220], "simd": 117, "simple_out": 136, "sin": [65, 227, 228, 229], "single_class_index": 60, "sio": 4, "size": [0, 4, 11, 17, 47, 48, 65, 84, 92, 93, 102, 159, 165, 178, 186, 195, 202, 205, 207, 208, 227, 228, 229], "size_": 176, "size_k": 178, "size_p": 176, "size_t": [0, 231], "sizeof": [0, 16, 35, 36, 41, 47, 48, 52, 53, 59, 72, 78, 80, 95, 157, 158, 159, 172, 183, 184, 185, 190, 198, 201, 204, 208, 223, 224], "skip": 177, "skipgram": [65, 227, 228, 229], "skipgram_": 177, "skipgram_p": 177, "slice": [52, 65, 200, 210, 216, 224, 227, 228], "slice_i": [24, 25], "slicefus": 229, "slici": 0, "slope": [126, 144], "sm": 29, "small_multipl": [62, 131], "small_shap": [62, 131], "small_strid": [62, 131], "smc": [121, 147, 154], "smooth": 180, "smoothl1loss": [65, 227, 228, 229], "smoothl1lossgrad": [65, 227, 228, 229], "soft": 12, "soft_copy_mod": 200, "softmax": [29, 65, 113, 172, 182, 186, 227, 228, 229], "softmax_infershap": 172, "softmax_out": 29, "softmaxcrossentropywithlogit": [65, 186, 227, 228], "softmaxgrad": 229, "softplus": [12, 13, 20, 229], "softplusgrad": 13, "softshrink": [12, 13], "softshrinkgrad": 13, "softsign": 12, "softsignopt": 12, "sort": 216, "sorted_": 216, "space": [34, 55, 56, 59], "spacetobatch": [65, 227, 228, 229], "spacetobatchnd": [65, 227, 228, 229], "spacetodepth": [65, 227, 228, 229], "spars": 190, "sparse_length": 190, "sparse_valu": 190, "sparsefillemptyrow": [65, 227, 228], "sparsereshap": [65, 227, 228], "sparsereshape_": 188, "sparsereshape_p": 188, "sparsesegmentsum": [65, 227, 228], "sparsesoftmaxcrossentropywithlogit": [65, 227, 228, 229], "sparsetodens": [65, 227, 228, 229], "spec_f": [30, 126], "spec_param": [30, 126], "spec_workspac": [30, 126], "spectrogram": 30, "spectrogram_output": 126, "spectrogramparam": [30, 126], "splice": [65, 227, 228, 229], "split": [0, 65, 147, 193, 227, 228, 229], "split_axi": 200, "split_data": 91, "split_data_buf": 91, "split_dim": 91, "split_siz": [91, 192], "splitwithoverlap": [65, 227, 228, 229], "sq_fa_axi": 4, "sq_fr_axi": 4, "sqrt": [6, 7, 8, 10, 12, 14, 15, 29, 33, 34, 65, 71, 76, 77, 87, 94, 97, 100, 101, 102, 161, 164, 165, 195, 227, 228, 229], "sqrt_sum": 100, "sqrtf": 100, "sqrtgrad": [65, 227, 228, 229], "squar": [4, 65, 164, 227, 228, 229], "squareddiffer": 229, "squarediffer": [65, 227, 228], "squeez": [0, 65, 227, 228, 229], "srand": [20, 141], "src": [27, 44, 53, 72, 74, 75, 101, 144, 159, 160, 164, 196, 198, 211, 218, 219, 223], "src0": 13, "src0_i": [13, 19], "src1": 13, "src1_i": [13, 19], "src_": 33, "src_col": 191, "src_data": [10, 21, 51, 73, 82, 85, 101, 144, 154, 166, 175, 191, 194], "src_data0": 83, "src_data1": 83, "src_format": 85, "src_i": [10, 27, 42, 51, 73, 82, 166, 175, 194], "src_ptr": 0, "src_row": 191, "ssh": 231, "stack": [65, 177, 227, 228, 229], "start": [14, 15, 23, 46, 106, 124, 144, 147, 150, 171, 193], "start_idx": [32, 193], "start_indic": 193, "start_k": 147, "state_bia": [95, 117], "state_bias_": 117, "state_col_align": 95, "state_col_align_": [95, 117], "state_g": 117, "state_row_align_": [95, 117], "std": [0, 231], "stdbool": [23, 26, 74, 75, 121, 142, 147, 150, 171], "stderr": 0, "stdint": [182, 186], "stdio": [10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 73, 74, 75, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 158, 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 224, 225, 226], "stdlib": 20, "step": [4, 106], "step_h": 145, "step_w": 145, "str": [7, 8, 56, 76, 77, 161], "str_len": 56, "strict_load": 0, "stride": [0, 16, 24, 25, 47, 48, 49, 50, 91, 124, 125, 159, 200, 201, 206, 215, 217], "stride0": 190, "stride1": 190, "stride2": 190, "stride3": 190, "stride_h": [31, 32, 124, 125], "stride_h_": [16, 47, 48, 49, 50], "stride_w": [31, 32, 124, 125], "stride_w_": [16, 47, 48, 49, 50], "stridedslic": [65, 201, 227, 228, 229], "stridedslicegrad": [65, 227, 228, 229], "strides_": 159, "string": [0, 55, 56, 214], "string_length": 55, "string_point": 55, "stringpack": 177, "struct": [16, 30, 47, 48, 53, 60, 78, 95, 117, 126, 136, 154, 157, 159, 160, 167, 177, 216], "sub": 203, "subext": 202, "subfus": [65, 227, 228, 229], "subgrad": [65, 227, 228, 229], "subrelu": 202, "subrelu6": 202, "success": 233, "sum": [0, 39, 40, 134, 135], "sum_": [7, 8, 16, 31, 34, 38, 47, 54, 58, 69, 76, 77, 86, 97, 100, 101, 102, 114, 115, 161, 182, 186, 188, 222], "sum_data": [113, 181, 182, 186], "sum_j": [113, 181], "sum_of_squar": 100, "sum_row": 0, "sum_t": [118, 119, 120], "super": [0, 4, 231], "support_neg_index": 139, "suppress": 136, "swish": [12, 13, 20], "switch": [65, 227, 228, 229], "switch_": 204, "switch_p": 204, "switchlay": [65, 227, 228, 229], "switchlayer_": 205, "switchlayer_p": 205, "symmetr": [74, 75, 141], "sys_bar": [16, 47, 48, 52, 53, 79, 95, 154, 157, 159, 160, 167], "system": 233, "t62": 0, "t_": 42, "ta_axi": 4, "ta_gap": 4, "tangent": 12, "tanh": [12, 13, 20, 95, 117, 118, 119, 120], "tanhgrad": 13, "tar": 233, "target": [0, 179, 180], "task_id": 101, "tdpp": 229, "temp": [4, 24, 25, 39, 100], "temp1": 4, "temp2": 4, "temp3": 4, "temp_spac": 200, "tensor": [0, 4, 6, 7, 8, 47, 53, 66, 76, 77, 79, 92, 93, 96, 125, 160, 161, 167, 192, 198, 207, 214, 231], "tensor0": 207, "tensor1": [207, 214], "tensor2": [207, 214], "tensor_c_shap": 212, "tensor_c_shape_s": 212, "tensor_data": 214, "tensor_data_typ": 214, "tensor_element_num": 214, "tensor_list_c_element_shap": 212, "tensor_list_c_element_shape_s": 212, "tensor_num": 214, "tensorarray": [65, 227, 228], "tensorarrayread": [65, 207, 209, 227, 228], "tensorarrayread_": 207, "tensorarrayread_p": 207, "tensorarraywrit": [65, 207, 227, 228], "tensorarraywrite_": 207, "tensorarraywrite_p": 207, "tensorc": [172, 204, 205], "tensorlist": [212, 213, 214], "tensorlist_s": 213, "tensorlistfromtensor": [65, 227, 228, 229], "tensorlistgetitem": [65, 227, 228, 229], "tensorlistgetitem_": 211, "tensorlistgetitem_p": 211, "tensorlistreserv": [65, 227, 228, 229], "tensorlistsetitem": [65, 227, 228, 229], "tensorlistsetitem_": 213, "tensorlistsetitem_p": 213, "tensorliststack": [65, 227, 228, 229], "tensorliststack_": 214, "tensorliststack_p": 214, "tensorscatteradd": [65, 227, 228, 229], "test": 55, "test_fp_affine_": 20, "test_matmul": 231, "testadderl2fp32": 16, "testaddersmcfp32": 16, "testconvl2fp32": 47, "testconvsmcfp32": 47, "testconvtransposel2fp32": 48, "testconvtransposesmcfp32": 48, "testcropandresizesmcfp32": 53, "testcropsmcfp32": 52, "testgrul2fp32": 95, "testgrusmcfp32": 95, "testreducel2fp32": 154, "testreducesmcfp32": 154, "testresizefp32smc": 157, "testreversesequencefp32": 159, "testreversev2": 160, "testscatterelementsl2": 167, "testscatterelementssmc": 167, "text": [10, 11, 12, 13, 21, 23, 26, 29, 31, 32, 35, 37, 43, 44, 45, 47, 49, 50, 54, 55, 58, 61, 63, 64, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 80, 81, 84, 88, 90, 91, 92, 93, 96, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 112, 113, 114, 115, 117, 121, 123, 124, 125, 128, 130, 131, 134, 135, 136, 138, 139, 140, 142, 144, 146, 147, 148, 150, 158, 161, 162, 163, 164, 165, 170, 171, 174, 179, 180, 181, 185, 187, 188, 189, 190, 192, 193, 195, 196, 197, 199, 200, 201, 202, 203, 204, 205, 207, 208, 209, 210, 211, 214, 215, 218, 219, 221, 222, 224, 225], "textbf": 69, "tfrac": 12, "the": [37, 38, 113, 159, 181, 233], "third": 233, "thread_num": 101, "tile": [65, 227, 228], "tile_data0": [62, 131], "tile_data1": [62, 131], "tile_data2": 62, "tile_dim": 215, "tile_num": 215, "tilefus": 229, "time": [0, 20, 29, 31, 35, 74, 115, 121, 125, 130, 131, 141, 142, 143, 146, 150, 159, 165, 180, 188, 189, 195, 196, 202, 203, 218, 219], "titl": 4, "tmp_dst_data": 154, "tmp_input": 154, "tmp_input_shap": 154, "tmp_loss": 39, "tmp_output": 154, "tmp_src_data": 154, "tmp_str": 56, "to": [163, 233], "toolchain": 233, "top": [29, 35, 36, 50, 57, 183, 184, 216], "top_i": 158, "topk": [24, 25, 216], "topk_fus": 216, "topk_node_list_": 216, "topkfus": [65, 227, 228, 229], "topkparamet": 216, "total_copy_s": [72, 198, 223], "total_el": 170, "total_num": 154, "total_num_": 154, "total_w": 134, "total_weight": [134, 135], "tr": 4, "tr_axi": 4, "train": 0, "train_data": 0, "trainable_param": 0, "transform": 0, "transpos": [58, 65, 227, 228, 229], "tril": [65, 227, 228], "triu": [65, 227, 228], "true": [0, 4, 12, 23, 24, 25, 26, 30, 34, 39, 40, 54, 60, 70, 74, 75, 76, 77, 92, 93, 104, 105, 110, 111, 112, 117, 126, 136, 138, 142, 161, 170, 171, 204, 216, 225], "tupl": [76, 77, 161], "twiddl": [76, 77, 161], "twod": 0, "txt": [0, 231, 233], "type_": 172, "type_s": [52, 79, 160, 205, 207], "type_size_": [78, 80, 159, 160], "typecast": 0, "typedef": [16, 30, 47, 48, 53, 60, 78, 95, 117, 126, 136, 154, 157, 159, 160, 167, 177, 216], "typeerror": [76, 77, 161], "u_t": 171, "uint32": 224, "uint64_t": [136, 186], "uint8": [0, 76, 77, 96, 161, 229], "uint8_t": [60, 96], "underset": [24, 25], "uniformr": [65, 227, 228, 229], "uniqu": [65, 227, 228, 229], "unit": [12, 33, 68, 87, 91, 94], "unknown_type_offset": 214, "unsign": [148, 149, 170], "unsort": 222, "unsorted_segment_sum": 222, "unsortedsegmentsum": [65, 227, 228, 229], "unsqueez": [4, 65, 227, 228, 229], "unstack": [65, 227, 228, 229], "unstack_": 224, "unstack_p": 224, "up_div": 66, "up_slop": 126, "updat": [167, 168, 169, 206], "update_t": 23, "updates_data": 167, "updates_i": 168, "upstream": [34, 40, 64], "use_regular_nm": 60, "user": 233, "util": [13, 45, 74, 75, 88, 89, 110, 111, 116, 122, 127, 129, 130, 140, 156, 168, 169, 178, 192, 193, 199, 215], "v3": 4, "v_": [14, 15, 124], "v_t": [14, 15], "val_i": 46, "val_r": 46, "valu": [24, 25, 46, 78, 79, 96, 147, 187], "value_imag": 46, "value_r": 46, "valueerror": [76, 77, 161], "values_ptr": 187, "values_tensor": 96, "var": [15, 33, 102], "var_": 15, "var_t": 15, "varianc": [33, 34, 87, 94, 102], "variance_c": 87, "variance_j": 33, "vec": 0, "vecatan": 229, "vector": [0, 231], "version": 233, "vision": 0, "void": [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 231], "vr": 4, "vscode": 231, "w_": [14, 35, 47, 48, 95, 117, 124, 134, 135, 171, 185], "w_i": [124, 125], "w_n": [39, 40], "w_o": [124, 125], "w_scale": 60, "w_t": [14, 171], "we": 56, "weight": [14, 15, 16, 23, 39, 40, 47, 48, 55, 57, 116, 134, 135, 171], "weight_": 23, "weight_decay": 171, "weight_defin": [39, 40], "weight_g": 95, "weight_h": 117, "weight_i": 117, "weight_r": 95, "weight_shap": [16, 47, 48], "weight_t": 23, "weight_threshold": 57, "where": [4, 65, 73, 101, 227, 228, 229], "which": [37, 38], "whl": 233, "width": [0, 35, 36, 59, 158, 183, 184, 218, 219], "width_scal": 158, "will": 56, "win": [124, 125], "win_amd64": 233, "win_h": [31, 124, 125], "win_length": [30, 126], "win_w": [31, 124, 125], "window": [32, 231, 233], "window_h": 32, "window_typ": [30, 126], "window_w": 32, "windowtyp": [30, 126], "with": 173, "word": 177, "workspac": [16, 24, 25, 30, 39, 47, 182, 186], "workspace_": [16, 47, 48, 49, 50], "workspaceparam": [30, 126], "world": 55, "www": 233, "x1": [0, 18, 53, 62, 131, 162, 180, 203, 231], "x1_data": [62, 131], "x1_dim": [18, 203], "x1_size": [62, 131], "x1_tensor": 231, "x2": [18, 53, 62, 131, 162, 180, 203, 231], "x2_data": [62, 131], "x2_dim": [18, 203], "x2_size": [62, 131], "x2_tensor": 231, "x86": 233, "x_": [24, 25, 69, 87, 94, 97, 114, 135, 158, 182, 186], "x_1": [62, 179], "x_2": [62, 179], "x_b": 58, "x_data": 58, "x_h": 32, "x_i": [66, 146, 173], "x_j": 102, "x_lefts_": [53, 157], "x_n": [39, 40], "x_rights_": [53, 157], "x_scale": 60, "x_shape": 204, "x_t": [95, 117, 118, 119, 120], "x_tensor": [6, 7, 8], "x_w": 32, "x_weights_": [53, 157], "xmax": 145, "xmin": 145, "xxx": [231, 233, 238], "xxx_add_sub_xxx": 235, "xxx_add_xxx": 235, "xxx_mul_xxx": 235, "xxx_xxx_p": 235, "xxx_xxx_s": 235, "xxx_xxx_xxx": 235, "xz": 233, "y1": [53, 162], "y2": [53, 162], "y_": [87, 94, 97, 114, 158, 182], "y_bottoms_": [53, 157], "y_h": 32, "y_i": [21, 24, 25, 134, 135, 173, 186], "y_k": 69, "y_n": [39, 40], "y_scale": 60, "y_shape": 204, "y_tops_": [53, 157], "y_w": 32, "y_weights_": [53, 157], "yhft": [0, 4, 231], "ymax": 145, "ymin": 145, "z_t": 95, "zero": [66, 74, 146], "zero_point": 74, "zerolik": 226, "zeroslik": [65, 227, 228, 229], "zoneout": 117, "zoneout_cell_": 117, "zoneout_hidden_": 117, "zp": [66, 146], "zsu_23_4": 0}, "titles": ["GRAY_CNN(\u56fe\u7247\u7070\u5ea6\u5316\u5904\u7406+\u56fe\u7247\u8bc6\u522b)", "AI+DSP\u5e94\u7528\u793a\u4f8b", "AI\u8f85\u52a9\u5f00\u53d1\u793a\u4f8b", "DSP\u5e94\u7528\u793a\u4f8b", "RDSAR\uff08\u8ddd\u79bb-\u591a\u666e\u52d2SAR\u6210\u50cf\u7b97\u6cd5\uff09", "\u5e94\u7528\u5f00\u53d1\u793a\u4f8b", "ComplexAbs", "FFT", "IFFT", "\u81ea\u5b9a\u4e49\u7b97\u5b50\u5217\u8868", "Abs", "Absgrad", "Activation", "ActivationGrad", "Adam", "AdamWeightDecay", "Adder", "Addfusion", "Addgrad", "AddN", "Affine", "All", "AllGather", "ApplyMomentum", "Argmax", "Argmin", "Assert", "Assign", "AssignAdd", "Attention", "AudioSpectrogram", "Avgpooling", "AvgPoolingGrad", "BatchNorm", "Batchnormgrad", "BatchToSpace", "BatchToSpaceND", "Biasadd", "Biasaddgrad", "Binarycrossentropy", "Binarycrossentropygrad", "BroadcastTo", "Cast", "Ceil", "Clip", "Concat", "ConstantOfShape", "Conv2d", "Conv2dTranspose", "Conv2DBackpropFilterFusion", "Conv2DBackpropInputFusion", "Cos", "Crop", "CropAndResize", "Cumsum", "CustomExtractFeatures", "Customnormalize", "CustomPredict", "DeconvGradFilter", "DepthToSpace", "DetectionPostProcess", "DivFusion", "Divgrad", "Dropout", "Dropoutgrad", "DSP Library C API Reference", "DynamicQuant", "Eltwise", "Elu", "EmbeddingLookup", "Equal", "Erf", "ExpandDims", "ExpFusion", "FakeQuantWithMinMaxVars", "FakeQuantWithMinMaxVarsPerChannel", "FFTImag", "FFTReal", "Fill", "FillV2", "Flatten", "FlattenGrad", "Floor", "FloorDiv", "Floormod", "FormatTranspose", "FullConnection", "FusedBatchNorm", "Gather", "GatherNd", "GatherD", "GLU", "Greater", "Greaterequal", "GroupNormFusion", "GRU", "HashtableLookup", "InstanceNorm", "InvertPermutation", "Isfinite", "L2norm", "LayerNormFusion", "Layernormgrad", "LeakyReLu", "Less", "Lessequal", "LinSpace", "Log", "Log1p", "LogGrad", "LogicalNot", "LogicalOr", "LogicalAnd", "LogSoftmax", "LpNormalization", "Lrn", "LshProjection", "LSTM", "LstmGrad", "LstmGradData", "LstmGradWeight", "MatMulFusion", "Maximum", "Maximumgrad", "MaxPoolFusion", "MaxPoolGrad", "MFCC", "Minimum", "Minimumgrad", "Mod", "Mul", "Mulgrad", "Neg", "NegGrad", "NLLLoss", "NLLLossGrad", "NonMaxSuppression", "NonZero", "NotEqual", "OneHot", "OnesLike", "PadFusion", "PowFusion", "PowerGrad", "PReLUFusion", "Priorbox", "QuantDTypeCast", "RaggedRange", "RandomNormal", "RandomStandardNormal", "Range", "Rank", "RealDiv", "Reciprocal", "Reduce", "ReduceScatter", "Reshape", "Resize", "Resizegrad", "ReverseSequence", "ReverseV2", "RFFT", "ROIPooling", "Round", "Rsqrt", "Rsqrtgrad", "ScaleFusion", "ScatterElements", "ScatterNd", "ScatterNdUpdate", "Select", "SGD", "Shape", "SigmoidCrossEntropyWithLogitsGrad", "SigmoidCrossEntropyWithLogits", "Sin", "Size", "Skipgram", "Slice", "SmoothL1Loss", "Smoothl1lossgrad", "Softmax", "SoftmaxCrossEntropyWithLogits", "SpaceToBatch", "SpaceToBatchND", "SpaceToDepth", "SparseSoftmaxCrossEntropyWithLogits", "SparseFillEmptyRows", "Sparsereshape", "Sparsesegmentsum", "Sparsetodense", "Splice", "Split", "SplitWithOverlap", "Sqrt", "Sqrtgrad", "Square", "Squaredifference", "Squeeze", "Stack", "Stridedslice", "Stridedslicegrad", "Subfusion", "Subgrad", "Switch", "Switchlayer", "TensorScatterAdd", "Tensorarray", "Tensorarrayread", "TensorarrayWrite", "Tensorlistfromtensor", "Tensorlistgetitem", "Tensorlistreserve", "Tensorlistsetitem", "Tensorliststack", "Tile", "TopkFusion", "Transpose", "Tril", "Triu", "UniformReal", "Unique", "UnsortedSegmentSum", "UnSqueeze", "Unstack", "Where", "ZerosLike", "\u7b97\u5b50\u5e93\u652f\u6301", "\u7b97\u5b50\u5e93\u652f\u6301", "\u7b97\u5b50\u5e93\u652f\u6301\u60c5\u51b5", "MindSpore Signal+ \u4f7f\u7528\u624b\u518c", "HelloDSP", "\u5feb\u901f\u5165\u95e8", "\u73af\u5883\u5b89\u88c5", "\u6574\u4f53\u6982\u89c8", "DSP\u7b97\u5b50C\u63a5\u53e3\u547d\u540d\u89c4\u8303", "\u53c2\u8003\u8d44\u6599", "\u5b98\u65b9\u8d44\u6599", "MindSpore Signal+ \u8c03\u5ea6\u65b9\u6848", "MindSpore Signal+ \u4f7f\u7528\u624b\u518c"], "titleterms": {"abs": 10, "absgrad": 11, "activ": 12, "activationgrad": 13, "adam": 14, "adamweightdecay": 15, "adder": 16, "addfus": 17, "addgrad": 18, "addn": 19, "affin": 20, "ai": [1, 2], "all": 21, "allgath": 22, "api": 65, "applymomentum": 23, "argmax": 24, "argmin": 25, "assert": 26, "assign": 27, "assignadd": 28, "attent": 29, "audiospectrogram": 30, "avgpool": 31, "avgpoolinggrad": 32, "batchnorm": 33, "batchnormgrad": 34, "batchtospac": 35, "batchtospacend": 36, "biasadd": 37, "biasaddgrad": 38, "binarycrossentropi": 39, "binarycrossentropygrad": 40, "broadcastto": 41, "cast": 42, "cc": 231, "ceil": 43, "clip": 44, "cmake": 233, "complexab": 6, "concat": 45, "conda": 233, "constantofshap": 46, "conv2d": 47, "conv2dbackpropfilterfus": 49, "conv2dbackpropinputfus": 50, "conv2dtranspos": 48, "cos": 51, "crop": 52, "cropandres": 53, "cumsum": 54, "customextractfeatur": 55, "customnorm": 56, "custompredict": 57, "deconvgradfilt": 58, "depthtospac": 59, "detectionpostprocess": 60, "divfus": 61, "divgrad": 62, "dropout": 63, "dropoutgrad": 64, "dsp": [1, 3, 65, 235], "dynamicqu": 66, "eltwis": 67, "elu": 68, "embeddinglookup": 69, "equal": 70, "erf": 71, "expanddim": 72, "expfus": 73, "fakequantwithminmaxvar": 74, "fakequantwithminmaxvarsperchannel": 75, "fft": 7, "fftimag": 76, "fftreal": 77, "fill": 78, "fillv2": 79, "flatten": 80, "flattengrad": 81, "floor": 82, "floordiv": 83, "floormod": 84, "formattranspos": 85, "fullconnect": 86, "fusedbatchnorm": 87, "gather": 88, "gatherd": 90, "gathernd": 89, "glu": 91, "gray_cnn": 0, "greater": 92, "greaterequ": 93, "groupnormfus": 94, "gru": 95, "hashtablelookup": 96, "hellodsp": 231, "ide": 233, "ifft": 8, "instancenorm": 97, "invertpermut": 98, "isfinit": 99, "l2norm": 100, "layernormfus": 101, "layernormgrad": 102, "leakyrelu": 103, "less": 104, "lessequ": 105, "librari": 65, "linspac": 106, "lite": 231, "log": 107, "log1p": 108, "loggrad": 109, "logicaland": 112, "logicalnot": 110, "logicalor": 111, "logsoftmax": 113, "lpnormal": 114, "lrn": 115, "lshproject": 116, "lstm": 117, "lstmgrad": 118, "lstmgraddata": 119, "lstmgradweight": 120, "main": 231, "matlab": 4, "matmulfus": 121, "maximum": 122, "maximumgrad": 123, "maxpoolfus": 124, "maxpoolgrad": 125, "mfcc": 126, "mindradar": 233, "mindspor": [4, 230, 231, 233, 238, 239], "minimum": 127, "minimumgrad": 128, "mod": 129, "mt7004": 231, "mul": 130, "mulgrad": 131, "neg": 132, "neggrad": 133, "netron": 233, "nllloss": 134, "nlllossgrad": 135, "nonmaxsuppress": 136, "nonzero": 137, "notequ": 138, "onehot": 139, "oneslik": 140, "padfus": 141, "powergrad": 143, "powfus": 142, "prelufus": 144, "priorbox": 145, "python": [0, 231, 233], "quantdtypecast": 146, "radar": 233, "raggedrang": 147, "randomnorm": 148, "randomstandardnorm": 149, "rang": 150, "rank": 151, "rdsar": 4, "realdiv": 152, "reciproc": 153, "reduc": 154, "reducescatt": 155, "refer": 65, "reshap": 156, "resiz": 157, "resizegrad": 158, "reversesequ": 159, "reversev2": 160, "rfft": 161, "roipool": 162, "round": 163, "rsqrt": 164, "rsqrtgrad": 165, "sar": 4, "scalefus": 166, "scatterel": 167, "scatternd": 168, "scatterndupd": 169, "select": 170, "sgd": 171, "shape": 172, "sigmoidcrossentropywithlogit": 174, "sigmoidcrossentropywithlogitsgrad": 173, "signal": [4, 230, 238, 239], "sin": 175, "size": 176, "skipgram": 177, "slice": 178, "smoothl1loss": 179, "smoothl1lossgrad": 180, "softmax": 181, "softmaxcrossentropywithlogit": 182, "spacetobatch": 183, "spacetobatchnd": 184, "spacetodepth": 185, "sparsefillemptyrow": 187, "sparsereshap": 188, "sparsesegmentsum": 189, "sparsesoftmaxcrossentropywithlogit": 186, "sparsetodens": 190, "splice": 191, "split": 192, "splitwithoverlap": 193, "sqrt": 194, "sqrtgrad": 195, "squar": 196, "squarediffer": 197, "squeez": 198, "stack": 199, "stridedslic": 200, "stridedslicegrad": 201, "subfus": 202, "subgrad": 203, "switch": 204, "switchlay": 205, "tensorarray": 207, "tensorarrayread": 208, "tensorarraywrit": 209, "tensorlistfromtensor": 210, "tensorlistgetitem": 211, "tensorlistreserv": 212, "tensorlistsetitem": 213, "tensorliststack": 214, "tensorscatteradd": 206, "tile": 215, "topkfus": 216, "transpos": 217, "tril": 218, "triu": 219, "uniformr": 220, "uniqu": 221, "unsortedsegmentsum": 222, "unsqueez": 223, "unstack": 224, "where": 225, "yhft": 233, "zeroslik": 226}}) \ No newline at end of file