swh:1:snp:f50ab94432af916b5fb8b4ad831e8dddded77084
- HEAD
- refs/heads/2.0rc/breakingChanges
- refs/heads/Aghagolzadeh-brainscript_useV2Aggregator_true
- refs/heads/Aghagolzadeh-dockerfile_AzurebatchAI
- refs/heads/BMUF-float16
- refs/heads/BMUF_fp16
- refs/heads/CUDA-elementwise-rework
- refs/heads/Compliance2.2
- refs/heads/Dev
- refs/heads/KaldiReaderOnWindows
- refs/heads/LastKnownGood
- refs/heads/MasterBeforeRemovingUnusedCode
- refs/heads/aayushg/Seq2SeqRepro
- refs/heads/aayushg/autoencoder
- refs/heads/aayushg/seq2seqChanges
- refs/heads/aforesti/compnetwork-constructors
- refs/heads/alahiri/distrib-reading-LMSequenceReader
- refs/heads/alexeyk/bn
- refs/heads/alexeyk/bn_fix
- refs/heads/alexeyk/conv_fix
- refs/heads/alexeyk/conv_tests
- refs/heads/alexeyk/cudnn3
- refs/heads/alexeyk/legacy
- refs/heads/alexeyk/logsum
- refs/heads/alexeyk/perf
- refs/heads/alexeyk/tests
- refs/heads/alexeyo/1bit-SGD-License-Update-Do-Not-Integrate
- refs/heads/alexeyo/Docker-Image
- refs/heads/alexeyo/ReadMe-News-February-10
- refs/heads/alexeyo/fix-linux-configure-script
- refs/heads/alexeyo/fix-linux-install-mpi-path
- refs/heads/alexeyo/test-winodows-drop-new-file-names
- refs/heads/alrezni/MatrixQuantizerTestsFailRepro
- refs/heads/alrezni/RandomGeneratorCpu
- refs/heads/alrezni/RandomUniform
- refs/heads/alrezni/ReseedCudaGenerator
- refs/heads/alrezni/bptt_ctf
- refs/heads/alrezni/checkpointing_v2
- refs/heads/alrezni/ctf_nan
- refs/heads/alrezni/cuda_reset_test
- refs/heads/alrezni/divering_loss_with_checkpointing
- refs/heads/alrezni/fix_pytests
- refs/heads/alrezni/index_cache
- refs/heads/alrezni/learners_v2
- refs/heads/alrezni/learners_v2_serialization
- refs/heads/alrezni/learners_v2_uts
- refs/heads/alrezni/mlf_fix
- refs/heads/alrezni/mpi_lib_loading
- refs/heads/alrezni/proposal_layer
- refs/heads/alrezni/reader_randomization_test
- refs/heads/alrezni/simple_mnist_repro
- refs/heads/alrezni/text_reader_benchmark
- refs/heads/alrezni/v2_communicator
- refs/heads/alrezni/xpacker
- refs/heads/alrezni/xpacker2
- refs/heads/amitaga/apiChangesForRC
- refs/heads/amitaga/batchNorm
- refs/heads/amitaga/beta11BugFixes
- refs/heads/amitaga/bn
- refs/heads/amitaga/cudaErrorBugFix
- refs/heads/amitaga/cudaMemCheckForE2ETests
- refs/heads/amitaga/dataInteropFeatures
- refs/heads/amitaga/fix1BitPerf
- refs/heads/amitaga/fixSimpleAggregatorPerf
- refs/heads/amitaga/htkmlfreaderMemoryOptimizations
- refs/heads/amitaga/mblayoutMismatchError
- refs/heads/amitaga/memoryDebug
- refs/heads/amitaga/noDEBUG
- refs/heads/amitaga/sparseMemAllocFix
- refs/heads/amitaga/v2Library
- refs/heads/arturl-uwp-doc
- refs/heads/arturl-uwp-sample
- refs/heads/arturl-uwp-sample-pick-model
- refs/heads/barlaso/SampledTimes
- refs/heads/binbzha/backstitch
- refs/heads/binbzha/fsmn
- refs/heads/binbzha/latency-control-blstm
- refs/heads/binbzha/latency-control-blstm-2.5
- refs/heads/binbzha/low-frame-rate
- refs/heads/binbzha/tf-lstm-refine
- refs/heads/binxu/LeakyReLU
- refs/heads/bmitra/NDRMReader
- refs/heads/bmitra/fix
- refs/heads/boren/bfsmn_binary_mlf_2.6
- refs/heads/boren/bfsmn_binary_mlf_on_release_2.6
- refs/heads/boren/bfsmn_binary_mlf_on_release_2.7
- refs/heads/boren/release_2.6_kax_fsmn
- refs/heads/bospoort-maartenb/cntk_103a
- refs/heads/bowbao/arguments_order
- refs/heads/bowbao/cuda10
- refs/heads/bowbao/freedim_perf
- refs/heads/bowbao/mkl_asym_pad_and_channel_pad
- refs/heads/bowbao/mkl_channel_pad
- refs/heads/bowbao/nightly-fix
- refs/heads/bowbao/onnx_conv_kerneldim
- refs/heads/bowbao/onnx_flatten
- refs/heads/bowbao/onnx_gather_prelu
- refs/heads/bowbao/onnx_init_typetoproto
- refs/heads/bowbao/onnx_lrn_mvn_layerNorm
- refs/heads/bowbao/onnx_match_number
- refs/heads/bowbao/onnx_matmul_gemm
- refs/heads/bowbao/onnx_models_unittest
- refs/heads/bowbao/onnx_slice
- refs/heads/bowbao/onnxrt
- refs/heads/bowbao/onnxrt_stage
- refs/heads/bowbao/onnxruntime_ci
- refs/heads/bowbao/onnxruntime_ci_stage
- refs/heads/bowbao/overhaul_conv_export
- refs/heads/bowbao/preserve_work
- refs/heads/bowbao/protobuf_version
- refs/heads/bowbao/seqconv
- refs/heads/bowbao/seqconv_perf
- refs/heads/bowbao/seqconv_profiling
- refs/heads/bowbao/seqconv_v2
- refs/heads/bowbao/seqconv_v2_stage
- refs/heads/bowbao/update_onnx
- refs/heads/bowbao/update_onnx_stage
- refs/heads/bowbao/update_onnx_stage_cr
- refs/heads/bowbao/update_onnx_stage_cr_v14
- refs/heads/broda/tolower
- refs/heads/cazhan/lu-seq-reader
- refs/heads/chanliu/AMTrain
- refs/heads/chanliu/TSLearn
- refs/heads/chaojunl/lfmmi
- refs/heads/chaojunl/smbr
- refs/heads/chazhang/faster_rcnn
- refs/heads/chazhang/pretrain
- refs/heads/chenta/add_keras_learner
- refs/heads/chenta/align_axis_indices
- refs/heads/chenta/auto_broadcast_binary_op
- refs/heads/chenta/crash_investigate
- refs/heads/chenta/disable_omp
- refs/heads/chenta/distPerf
- refs/heads/chenta/expose_gradient_api
- refs/heads/chenta/fix_conv_crash
- refs/heads/chenta/fix_crash
- refs/heads/chenta/fix_gather_bug
- refs/heads/chenta/fix_nightly_build_crash
- refs/heads/chenta/fix_slice_free_dimension
- refs/heads/chenta/free_dimension_pooling
- refs/heads/chenta/freedimension_test
- refs/heads/chenta/keras-final
- refs/heads/chenta/keras_learner
- refs/heads/chenta/lotus_test
- refs/heads/chenta/nightly_crash
- refs/heads/chenta/padding
- refs/heads/chenta/print_omp_thread
- refs/heads/chenta/profile_test
- refs/heads/chenta/reverse_support
- refs/heads/chenta/splice
- refs/heads/chenta/test
- refs/heads/chenta/times
- refs/heads/chenta/univeral-learner
- refs/heads/chenta/unpack_batch_grad_fix
- refs/heads/chenzhehuai/lfbmmi-negstream
- refs/heads/chenzhehuai/lfbmmi-negstream-sil
- refs/heads/clemensm/cntkmkl
- refs/heads/clemensm/cntkmkl-evalx
- refs/heads/clemensm/dynamicaxis
- refs/heads/clemensm/fixseqcla
- refs/heads/clemensm/mblayouts
- refs/heads/clemensm/perf2
- refs/heads/clemensm/perf4
- refs/heads/clemensm/perf4b
- refs/heads/clemensm/profiler
- refs/heads/clemensm/quantmultiply2
- refs/heads/clemensm/runtimeopt
- refs/heads/clemensm/s2s
- refs/heads/cntk_agg
- refs/heads/cntkteam/new_onnx_without_batch_axis
- refs/heads/cntkteam/onnx1.0
- refs/heads/cntkteam/onnx1.2
- refs/heads/cntkteam/onnx_without_batch_axis
- refs/heads/csnugetquickfix
- refs/heads/dapisani/center_loss
- refs/heads/dapisani/cntk_converter
- refs/heads/dongyu/addhypertune
- refs/heads/dongyu/htkreaderext
- refs/heads/dongyu/writerfix
- refs/heads/duli/histogram
- refs/heads/duli/tensorboard_image
- refs/heads/duli/tensorboard_image1
- refs/heads/duli/tensorboard_image2
- refs/heads/duli/tensorboard_staging
- refs/heads/ebarsoum/cleanup
- refs/heads/ebarsoum/cntkv2doc
- refs/heads/ebarsoum/dilation_with_padding
- refs/heads/ebarsoum/emotion
- refs/heads/ebarsoum/inceptionv3
- refs/heads/ebarsoum/iteration
- refs/heads/ebarsoum/layerconv
- refs/heads/ebarsoum/pixelcnn
- refs/heads/ebarsoum/png16
- refs/heads/eldak/adaptiveLearningRate
- refs/heads/eldak/addingMLFTests
- refs/heads/eldak/addingPerDimMeanVarDeNormalization
- refs/heads/eldak/alignedBundler
- refs/heads/eldak/cesparsebs
- refs/heads/eldak/chunkDiagnostics
- refs/heads/eldak/clonePreservingIds
- refs/heads/eldak/codeGen4
- refs/heads/eldak/compositeInMemory
- refs/heads/eldak/exposingCWrapperForHalide
- refs/heads/eldak/exposingGPUThruC
- refs/heads/eldak/exposingSequenceIdFromMinibatchData
- refs/heads/eldak/fixingBatchNorm
- refs/heads/eldak/fixingBlockReplace
- refs/heads/eldak/fixingCrop
- refs/heads/eldak/fixingMaskForEval
- refs/heads/eldak/fixingUDInitialization
- refs/heads/eldak/forJacob
- refs/heads/eldak/gpuPrefetchGpuTranspose
- refs/heads/eldak/includingCNTKLibraryC
- refs/heads/eldak/investigatingBM
- refs/heads/eldak/jdEvalC
- refs/heads/eldak/maxNumSequences
- refs/heads/eldak/muditsChanges
- refs/heads/eldak/muditsChanges2
- refs/heads/eldak/muditsChanges3
- refs/heads/eldak/netRefactoring
- refs/heads/eldak/noRandomizerChunking
- refs/heads/eldak/opencv32
- refs/heads/eldak/optimizeO
- refs/heads/eldak/optimizingMBSize
- refs/heads/eldak/optimizingSparseRead
- refs/heads/eldak/parallelPacking
- refs/heads/eldak/refactoringForInference
- refs/heads/eldak/refactoringForInference2
- refs/heads/eldak/renamingManual
- refs/heads/eldak/retryToOpenFile
- refs/heads/eldak/sequenceKeyLength
- refs/heads/eldak/tempFixInVectorMax
- refs/heads/eldak/ud
- refs/heads/eldak/udRandom
- refs/heads/eldak/udRandom2
- refs/heads/fmegen/eval-internal-test
- refs/heads/fmegen/eval-vs2015
- refs/heads/fmegen/eval-vs2015_2
- refs/heads/fmegen/linux-debian
- refs/heads/fmegen/vs2015/changing-project-files
- refs/heads/fseide/99
- refs/heads/fseide/complexity
- refs/heads/fseide/cudnn5
- refs/heads/fseide/dynamite
- refs/heads/fseide/e2easr
- refs/heads/fseide/fixAsMatrix
- refs/heads/fseide/fixLoad
- refs/heads/fseide/fixSamples
- refs/heads/fseide/kdd
- refs/heads/fseide/ndops
- refs/heads/fseide/netlib
- refs/heads/fseide/pathPrefix
- refs/heads/fseide/refactor_nodes
- refs/heads/fseide/s2s
- refs/heads/fseide/s2sd
- refs/heads/fseide/s2sd5
- refs/heads/fseide/s2spy
- refs/heads/fseide/seqtest
- refs/heads/fseide/testlstm
- refs/heads/gaizna/cntk_readerless
- refs/heads/gaizna/eval_import_lib
- refs/heads/gaizna/writeminibatch_fix
- refs/heads/gather_from_target
- refs/heads/gather_op
- refs/heads/giwye/lightrnn
- refs/heads/gloch/fix_native_proposallayerlib
- refs/heads/gorand/lstm_experiments
- refs/heads/guoli/EMBR
- refs/heads/guoye/EMBR
- refs/heads/guoye/EMBR1
- refs/heads/guoye/RNNT_eval_cuda10_embr_1
- refs/heads/guoye/RNNT_eval_cuda10_embr_hao_decoder
- refs/heads/guoye/dcfsmn
- refs/heads/guoye/dcfsmn1
- refs/heads/guoye/dcfsmn1_debug
- refs/heads/guoye/dcfsmn2
- refs/heads/guoye/dcfsmn4
- refs/heads/guoye/dcfsmn5
- refs/heads/guoye/dcfsmn6
- refs/heads/guoye/master_debug
- refs/heads/guoye/merge_embr
- refs/heads/guoye/merge_embr_final
- refs/heads/guoye/merge_embr_final_v1
- refs/heads/hecli/PostReleaseMerge
- refs/heads/hjl/Char-RNN-Example
- refs/heads/huhu/RNNT_SR_master
- refs/heads/hunter/fast-rcnn
- refs/heads/hunter/fast-rcnn2
- refs/heads/hunter/fix-write
- refs/heads/issaca
- refs/heads/iu.triplet_loss
- refs/heads/iu_layer
- refs/heads/ivanst/profiler
- refs/heads/ivanst/profiler2
- refs/heads/ivanst/profiler3
- refs/heads/ivanst/profiler5
- refs/heads/ivanst/profiler_20160510
- refs/heads/ivanst/profiler_20161108
- refs/heads/ivanst/profiler_chr
- refs/heads/ivanst/profiler_cr
- refs/heads/ivanst/profiler_dir
- refs/heads/ivanst/profiler_ovr
- refs/heads/ivanst/temp
- refs/heads/ivanst/temp2
- refs/heads/jacde/CNTKEvalPlainCAPI
- refs/heads/jacde/PlainCAPIPlaceholder
- refs/heads/jaliyaek/htk_test
- refs/heads/jaliyaek/int16
- refs/heads/jdroppo/ceiling-mbsize
- refs/heads/jdroppo/ceiling-mbsize_conttrain
- refs/heads/jdroppo/cudnn-rnn-lstm
- refs/heads/jdroppo/cudnn-rnn-lstm-lfmmi
- refs/heads/jewong/RNNT_SE_TS
- refs/heads/jiajia/DropOutParam2
- refs/heads/jiajia/IRMetricV2
- refs/heads/jiajia/IRMetricV4
- refs/heads/jiajia/cdssm
- refs/heads/jiajia/cdssm2
- refs/heads/jiajia/cdssm3
- refs/heads/jiajia/loglossfix
- refs/heads/jiajia/ndcgcost
- refs/heads/jianblin/CDenseReader
- refs/heads/jianblin/CDenseReader1
- refs/heads/jianluan/test1
- refs/heads/jiashua/CSparsePCReader
- refs/heads/jieli/CTC
- refs/heads/jieli/LFMMI
- refs/heads/jlie/CSparseDensePCReader
- refs/heads/jlie/CSparsePCReader
- refs/heads/jlie/SparseDensePCReader
- refs/heads/jqian/fixnccl
- refs/heads/jqian/logcublas
- refs/heads/jqian/nonccl
- refs/heads/jqian/wip_io
- refs/heads/kate/dockerFile
- refs/heads/kedeng/boostAsync
- refs/heads/kedeng/cpuNcclFix
- refs/heads/kedeng/cuda92
- refs/heads/kedeng/custom_json
- refs/heads/kedeng/fix
- refs/heads/kedeng/fix2963
- refs/heads/kedeng/fixAutopad
- refs/heads/kedeng/fixCrash
- refs/heads/kedeng/mkldnn
- refs/heads/kedeng/mkldnn2
- refs/heads/kedeng/mkldnn_merge
- refs/heads/kedeng/ncclUUID
- refs/heads/kedeng/oldPackThreshold
- refs/heads/kedeng/perfTest
- refs/heads/kedeng/profileReader
- refs/heads/kedeng/yanchen/custom-attrs
- refs/heads/kyiwasak/faster-rcnn-distributed
- refs/heads/lakshayg-asinh
- refs/heads/lakshayg-atanh
- refs/heads/lakshayg-swish
- refs/heads/lewlu/ResNet-V2
- refs/heads/lewlu/densenet
- refs/heads/lewlu/facereaderopt
- refs/heads/lewlu/inceptionv3-py
- refs/heads/lewlu/msra-face
- refs/heads/lewlu/msra-face-dist
- refs/heads/lewlu/optimizer
- refs/heads/lewlu/python-disableRegInBN
- refs/heads/lewlu/rmsprop
- refs/heads/lewlu/ssgd_experiment_wofixedkernel
- refs/heads/lewlu/subminibatch-test
- refs/heads/lewlu/update-aspectratio-limit
- refs/heads/lingfw/adadelta_bs
- refs/heads/lingfw/conttrain-ceiling-mbsize
- refs/heads/lingfw/lfbmmi-negstream
- refs/heads/lingfw/lfmmi
- refs/heads/linqul/merge_ebmr
- refs/heads/linqul/merge_ebmr_v2
- refs/heads/linux-gcc
- refs/heads/liqun/2954
- refs/heads/liqun/Broadcast1252970
- refs/heads/liqun/CSApiHighLevel
- refs/heads/liqun/Lang
- refs/heads/liqun/Misc2.6
- refs/heads/liqun/Misc2.6Stage
- refs/heads/liqun/Misc2.6Stage2
- refs/heads/liqun/Mise2.6_2
- refs/heads/liqun/NewSequenceSliceStage
- refs/heads/liqun/NewSequenceSliceStage2
- refs/heads/liqun/NewSequenceSliceStage2Stage
- refs/heads/liqun/OfficeModel2
- refs/heads/liqun/OfficeModel2Stage
- refs/heads/liqun/OfficeModel2Stage2
- refs/heads/liqun/OfficeModel2Stage3
- refs/heads/liqun/RNN2.6
- refs/heads/liqun/SequenceSlice
- refs/heads/liqun/SequenceSliceStage
- refs/heads/liqun/SymbolicBatch
- refs/heads/liqun/TopK
- refs/heads/liqun/TopKStage
- refs/heads/liqun/fixp27
- refs/heads/liqun/fixp27Stage
- refs/heads/liqun/gslfix
- refs/heads/liqun/gslfixstage
- refs/heads/liqun/hashDev
- refs/heads/liqun/issue3428
- refs/heads/liqun/issues
- refs/heads/liqun/iter2.6
- refs/heads/liqun/liqun/RNN2.6.Stage
- refs/heads/liqun/liqun/scan6Stage2
- refs/heads/liqun/memleak
- refs/heads/liqun/onnx.cast
- refs/heads/liqun/onnx.cast.stage
- refs/heads/liqun/onnx1.3
- refs/heads/liqun/onnx1.3Stage
- refs/heads/liqun/onnx1.3Stage2
- refs/heads/liqun/onnx_axis
- refs/heads/liqun/onnx_axis_stage
- refs/heads/liqun/protobuf.upgrade
- refs/heads/liqun/remove-crosstalkcaffe-test
- refs/heads/liqun/scan
- refs/heads/liqun/scan10
- refs/heads/liqun/scan10Stage
- refs/heads/liqun/scan11
- refs/heads/liqun/scan11Stage
- refs/heads/liqun/scan12
- refs/heads/liqun/scan13
- refs/heads/liqun/scan14
- refs/heads/liqun/scan2
- refs/heads/liqun/scan2Stage
- refs/heads/liqun/scan2Stage2
- refs/heads/liqun/scan3
- refs/heads/liqun/scan3Stage
- refs/heads/liqun/scan4
- refs/heads/liqun/scan4Stage
- refs/heads/liqun/scan5
- refs/heads/liqun/scan5Stage
- refs/heads/liqun/scan6
- refs/heads/liqun/scan6Stage
- refs/heads/liqun/scan7
- refs/heads/liqun/scan7Stage
- refs/heads/liqun/scan8
- refs/heads/liqun/scan8Stage
- refs/heads/liqun/scan9
- refs/heads/liqun/seqops
- refs/heads/liqun/seqopsStage
- refs/heads/liqun/topk2
- refs/heads/liqun/wrap_maxlpool_with_reshape
- refs/heads/liwchang/StagePreorderTraverse4
- refs/heads/liwchang/diagTimesBackCompat
- refs/heads/liwchang/stagingDiagTimesFix
- refs/heads/lnunes/add-class-activation-map-example
- refs/heads/lnunes/cpu_conv_engine_improvements
- refs/heads/lnunes/remove-gpu-nms
- refs/heads/mahilleb/AsyncThrow
- refs/heads/mahilleb/BaselineNew
- refs/heads/mahilleb/CheckGitVsVs
- refs/heads/mahilleb/CmakeWip
- refs/heads/mahilleb/Cntkv2DelayLoad
- refs/heads/mahilleb/DocTest
- refs/heads/mahilleb/E2eWithTimeTool
- refs/heads/mahilleb/FixLinInstall2
- refs/heads/mahilleb/LinuxOobeJupyterTestDevice
- refs/heads/mahilleb/MnistDownload
- refs/heads/mahilleb/PyLibLocations
- refs/heads/mahilleb/PyLibLocations2
- refs/heads/mahilleb/PyScripts
- refs/heads/mahilleb/SetupPy
- refs/heads/mahilleb/ShareVersion
- refs/heads/mahilleb/SphinxUpd2
- refs/heads/mahilleb/TestDriver
- refs/heads/mahilleb/TestDriverIncludeSku
- refs/heads/mahilleb/TestDriverNvsmiExit
- refs/heads/mahilleb/TestDriverTimeoutWip
- refs/heads/mahilleb/UnitTestEnable
- refs/heads/mahilleb/Win1BitSgdSeparateOutDir
- refs/heads/mahilleb/disable104
- refs/heads/mahilleb/docfxPostprocess
- refs/heads/mahilleb/eldak/opencv32
- refs/heads/mahilleb/test
- refs/heads/mahilleb/test1
- refs/heads/mahilleb/test2
- refs/heads/mahilleb/tut104
- refs/heads/mahilleb/u16
- refs/heads/mahilleb/valgrind
- refs/heads/malcolm-cuda-changes
- refs/heads/manikj/nightly
- refs/heads/manikj/unifyBuildFolders
- refs/heads/marhamil-fix-jar
- refs/heads/marhamil/cherry-pick-jar
- refs/heads/marhamil/fix-jar-test
- refs/heads/marhamil/jar
- refs/heads/marhamil/jar-2.2
- refs/heads/marhamil/java-bindings-backup
- refs/heads/marhamil/java-bindings-one-commit
- refs/heads/master
- refs/heads/maven-central-jar
- refs/heads/meaghago
- refs/heads/mradmila/dgx1
- refs/heads/mradmila/modeltime
- refs/heads/mradmila/nogpu
- refs/heads/mseltzer/exportdbn_mkl
- refs/heads/mseltzer/ivectorreader
- refs/heads/mseltzer/utterancesourcemulti
- refs/heads/mseltzer/uttreaderfix
- refs/heads/msrpeng/sparse_agg_v2_direct_port
- refs/heads/msrpeng/sparse_agg_v2_sandbox
- refs/heads/msrpeng/sparse_agg_v2_sandbox1
- refs/heads/msrpeng/sparse_agg_v2_sandbox2
- refs/heads/muditj/FixHTKLatticeRelatedSettings2
- refs/heads/muditj/FixNoRandomizerBug
- refs/heads/muditj/FixNoRandomizerBug2
- refs/heads/muditj/FixNoRandomizerBug3
- refs/heads/muditj/FixReaderMemoryLeak2
- refs/heads/muditj/FixReaderMemoryLeak3
- refs/heads/muditj/FixReaderMemoryLeak4
- refs/heads/muditj/FixReaderMemoryLeak5
- refs/heads/muditj/HTKDeserializerPythonWrapper
- refs/heads/muditj/V231NoRandDivergenceDebug
- refs/heads/muditj/fixBMUFTestcase
- refs/heads/muditj/pythonCRlossAvg
- refs/heads/muditj/pythonCRlossAvg_2
- refs/heads/muditj/pythonCRlossAvg_3
- refs/heads/muditj/pythonCRlossAvg_staging
- refs/heads/n17s-patch-1
- refs/heads/naotous/translated-tutorials
- refs/heads/nikmil/acc_agg_fix_2
- refs/heads/nikmil/cv_best
- refs/heads/nikmil/ndarray_conversion_public
- refs/heads/nikmil/python_crop_cr
- refs/heads/nikmil/python_distrib_eval_cr_rebased
- refs/heads/nikmil/save_outputs_public
- refs/heads/nikosk/bidaf
- refs/heads/nikosk/clang
- refs/heads/nikosk/gmatch
- refs/heads/nikosk/lrdisplay
- refs/heads/nikosk/rangan_repro
- refs/heads/nikosk/tuned_bidaf
- refs/heads/nvidia/dgx1
- refs/heads/origin/t-titan/attention
- refs/heads/pahua/CDenseReader
- refs/heads/penhe/issue_repro
- refs/heads/penhe/native_cosdistance
- refs/heads/penhe/reasonet
- refs/heads/penhe/reasonet_contractive_loss
- refs/heads/penhe/reasonet_example
- refs/heads/penhe/reasonet_tutorial
- refs/heads/penhe/rsn_issue_repro
- refs/heads/peykash/BN_FP16_fix
- refs/heads/peykash/TimesTranspose_export
- refs/heads/peykash/batchnorm_and_pooling_fixes
- refs/heads/peykash/batchnorm_fixes
- refs/heads/peykash/batchnorm_float16_fix
- refs/heads/peykash/batchnorm_float16_fixes
- refs/heads/peykash/batchnorm_float16_support
- refs/heads/peykash/batchnorm_fp16_fix
- refs/heads/peykash/float16
- refs/heads/peykash/fp16-gru-fix
- refs/heads/peykash/fp16-load-from-rawdata
- refs/heads/peykash/fp16-misc-fixes
- refs/heads/peykash/initializer
- refs/heads/peykash/linux_CI_fix
- refs/heads/peykash/model_tests_CI
- refs/heads/peykash/onnx_no_batch_axis_fixes
- refs/heads/peykash/pooling_backward_compatibility_fix
- refs/heads/peykash/pretrained_model_fixes
- refs/heads/peykash/python27_test_fix
- refs/heads/peykash/reduce_fixes
- refs/heads/peykash/reduction_allaxes_export
- refs/heads/peykash/sequence_isfirst_islast
- refs/heads/peykash/softmax_fix
- refs/heads/peykash/times_export_fix
- refs/heads/pkranen/arbDim
- refs/heads/pkranen/bnFrozenFix
- refs/heads/pkranen/csevalFastrcnn
- refs/heads/pkranen/hierClass
- refs/heads/pkranen/hierarachical_FastRCNN
- refs/heads/pkranen/mbSize
- refs/heads/pkranen/newHierarchy
- refs/heads/pkranen/new_yolo
- refs/heads/pkranen/odScripts
- refs/heads/pkranen/yolo
- refs/heads/prototypes/arm64-debian
- refs/heads/pytest/update-anaconda-and-pytest
- refs/heads/qiwye/asgd-dev
- refs/heads/ratsur/find-by-uid
- refs/heads/ratsur/jar-rc3
- refs/heads/ratsur/java-bindings
- refs/heads/ratsur/java-csharp-parity
- refs/heads/ratsur/java-csharp-parity-rebase
- refs/heads/ratsur/java-training
- refs/heads/ratsur/maven-central-jar
- refs/heads/release/2.0
- refs/heads/release/2.0.beta10.0
- refs/heads/release/2.0.beta11.0
- refs/heads/release/2.0.beta12.0
- refs/heads/release/2.0.beta15.0
- refs/heads/release/2.0.beta2.0
- refs/heads/release/2.0.beta3.0
- refs/heads/release/2.0.beta4.0
- refs/heads/release/2.0.beta5.0
- refs/heads/release/2.0.beta6.0
- refs/heads/release/2.0.beta7.0
- refs/heads/release/2.0.beta8.0
- refs/heads/release/2.0.beta9.0
- refs/heads/release/2.0.rc1
- refs/heads/release/2.0.rc2
- refs/heads/release/2.0.rc3
- refs/heads/release/2.1
- refs/heads/release/2.2
- refs/heads/release/2.3
- refs/heads/release/2.3.1
- refs/heads/release/2.4
- refs/heads/release/2.5
- refs/heads/release/2.5.1
- refs/heads/release/2.6
- refs/heads/release/2.7
- refs/heads/release/latest
- refs/heads/removeSNB
- refs/heads/resetbranch
- refs/heads/rpengms/fp16_bmuf_20
- refs/heads/rpengms/fp16_sandbox
- refs/heads/rpengms/fp16_sandbox2
- refs/heads/rpengms/fp16_scale
- refs/heads/rpengms/stableTanh
- refs/heads/rpengms/vadimma_stableTanh
- refs/heads/ruizhao/CTC
- refs/heads/ruizhao/CTC_HC
- refs/heads/ruizhao/CTC_NDL
- refs/heads/ruizhao/CTC_Nbest
- refs/heads/ruizhao/CTC_blankinmlf
- refs/heads/ruizhao/CTC_checkin2
- refs/heads/ruizhao/LFMMI
- refs/heads/ruizhao/RNNT
- refs/heads/ruizhao/RNNT_830merge
- refs/heads/ruizhao/RNNT_Build
- refs/heads/ruizhao/RNNT_EOS
- refs/heads/ruizhao/RNNT_KWS
- refs/heads/ruizhao/RNNT_SR_master
- refs/heads/ruizhao/RNNT_TS
- refs/heads/ruizhao/RNNT_V2
- refs/heads/ruizhao/RNNT_beamsearch
- refs/heads/ruizhao/RNNT_bs
- refs/heads/ruizhao/RNNT_eval_cuda10
- refs/heads/ruizhao/RNNT_fastfb
- refs/heads/ruizhao/RNNT_gpuall
- refs/heads/ruizhao/RNNT_master
- refs/heads/ruizhao/RNNT_mergelinear
- refs/heads/ruizhao/RNNT_mergelinear_uttinfo
- refs/heads/ruizhao/RNNT_separatesum
- refs/heads/ruizhao/SE
- refs/heads/ruizhao/SE_TS
- refs/heads/ruizhao/SMBR
- refs/heads/ruizhao/base
- refs/heads/ruizhao/lfmmi-2pass
- refs/heads/ruizhao/lfmmi-2pass-m15
- refs/heads/ruizhao/lfmmi-2pass-test
- refs/heads/ruzhao/CTC_leftTC
- refs/heads/sanjeevm/test_branch
- refs/heads/sayanpa/aqgan
- refs/heads/sayanpa/aqganchk
- refs/heads/sayanpa/contribmd
- refs/heads/sayanpa/gi2022
- refs/heads/sayanpa/nbsphinx5
- refs/heads/sayanpa/nbsphinx6
- refs/heads/sayanpa/seqclass
- refs/heads/sayanpa/seqclass2
- refs/heads/sayanpa/slawek
- refs/heads/sayanpa/sr
- refs/heads/sayanpa/srcin
- refs/heads/sayanpa/srcin2
- refs/heads/sayanpa/srcin3
- refs/heads/sayanpa/srcin4
- refs/heads/sayanpa/t303
- refs/heads/sayanpa/t303chk
- refs/heads/sedymche/fix-doc
- refs/heads/sedymche/message
- refs/heads/sedymche/onnx-backend
- refs/heads/sedymche/onnx-backend-test
- refs/heads/sedymche/onnx-broadcast
- refs/heads/sedymche/onnx-maxes
- refs/heads/sedymche/onnx-maxes-new
- refs/heads/sedymche/onnx-min-max
- refs/heads/sedymche/onnx-reshape
- refs/heads/sedymche/onnx-save-load
- refs/heads/sedymche/test-skip
- refs/heads/shuzhe/treeps
- refs/heads/singletonComm
- refs/heads/slayton58/divmod
- refs/heads/sparse_agg
- refs/heads/sparse_aggregation
- refs/heads/sparse_aggregation_large_BUCKETSIZE
- refs/heads/sparse_aggregation_simple_selectK
- refs/heads/sparse_cntk
- refs/heads/sptiwari/KEEP_onnx_remove_autopad_from_conv
- refs/heads/sptiwari/UpdateFasterRcnn
- refs/heads/sptiwari/add_zeros_ones_eye
- refs/heads/sptiwari/add_zeros_ones_eye2
- refs/heads/sptiwari/conv_backend_test_fix
- refs/heads/sptiwari/conv_master_failure
- refs/heads/sptiwari/conv_with_static_batch_axis
- refs/heads/sptiwari/convtranspose_update
- refs/heads/sptiwari/convtranspose_update2
- refs/heads/sptiwari/convtranspose_update3
- refs/heads/sptiwari/convtranspose_update5
- refs/heads/sptiwari/convtranspose_update6
- refs/heads/sptiwari/convtranspose_update7
- refs/heads/sptiwari/dilated_conv
- refs/heads/sptiwari/dilated_conv_non_mkldnn_test
- refs/heads/sptiwari/disable_test_conv_setup
- refs/heads/sptiwari/elu_fix2
- refs/heads/sptiwari/fasterRcnn_NoFastMath
- refs/heads/sptiwari/fasterRcnn_freeDim3
- refs/heads/sptiwari/group_conv_cudnn7
- refs/heads/sptiwari/group_conv_input_validation
- refs/heads/sptiwari/mkldnn
- refs/heads/sptiwari/mkldnn_first_round
- refs/heads/sptiwari/mkldnn_first_round2
- refs/heads/sptiwari/mnist_onnx_group_conv_fix
- refs/heads/sptiwari/model_fix_test
- refs/heads/sptiwari/one_hot_onnx
- refs/heads/sptiwari/one_hot_onnx2
- refs/heads/sptiwari/ones_zeros_like_op
- refs/heads/sptiwari/onnx1.2_merge
- refs/heads/sptiwari/onnx_avg_pool_stride
- refs/heads/sptiwari/onnx_conv_reload
- refs/heads/sptiwari/onnx_conv_reload2
- refs/heads/sptiwari/onnx_convtrans_fix2
- refs/heads/sptiwari/onnx_convtranspose_fixes
- refs/heads/sptiwari/onnx_emotion_fix
- refs/heads/sptiwari/onnx_emotion_fix1
- refs/heads/sptiwari/onnx_emotion_fix2
- refs/heads/sptiwari/onnx_emotion_fix3
- refs/heads/sptiwari/onnx_hash_update
- refs/heads/sptiwari/onnx_hash_update2
- refs/heads/sptiwari/onnx_inception_fix
- refs/heads/sptiwari/onnx_inception_fix2
- refs/heads/sptiwari/onnx_infra_for_simple_batch_ops2
- refs/heads/sptiwari/onnx_lrn_fix
- refs/heads/sptiwari/onnx_merge_with_master
- refs/heads/sptiwari/onnx_pooling_overhaul
- refs/heads/sptiwari/onnx_resnet3d
- refs/heads/sptiwari/onnx_topk
- refs/heads/sptiwari/shufflenet
- refs/heads/sptiwari/straight_through_op
- refs/heads/sptiwari/straight_through_op2
- refs/heads/sptiwari/test_onnx_branch_reversion
- refs/heads/sptiwari/update_depth2space
- refs/heads/sptiwari/update_onnx_metadata
- refs/heads/szhao/cntkport
- refs/heads/t-alkhar/cntk-board
- refs/heads/t-alkhar/distributed-sequence-example
- refs/heads/t-alkhar/distributed-testing
- refs/heads/t-alkhar/graph-output-bug-fix
- refs/heads/t-alkhar/resnet-example-fix
- refs/heads/t-alkhar/tensorboard-cntk-connect
- refs/heads/t-alkhar/visualization-tool
- refs/heads/t-anqli/gan
- refs/heads/t-ivrodr/adding_more_cpp_cs_eval_examples
- refs/heads/t-ivrodr/binary_reader_changes_rev
- refs/heads/t-ivrodr/ctfparser_multithread
- refs/heads/t-ivrodr/fix_for_bufferedreader
- refs/heads/t-ivrodr/fix_percentage_epoch_progress
- refs/heads/t-ivrodr/fix_segfaul_nonprimitive_func
- refs/heads/t-ivrodr/naming_nodes_resnet_example
- refs/heads/t-ivrodr/refactoring_readers_file_handling
- refs/heads/t-ivrodr/setting_py_value_to_deserializer
- refs/heads/t-ivrodr/small_fixes_to_training_log
- refs/heads/t-ivrodr/uncommenting_cs_examples
- refs/heads/t-ivrodr/using_filewrapper_in_bin_reader
- refs/heads/t-kax/bfsmn
- refs/heads/t-kax/debug-fsmn
- refs/heads/t-kax/fix-param-share-bug
- refs/heads/t-kax/fsmn
- refs/heads/t-makrei/YOLOv2
- refs/heads/t-makrei/hierClass
- refs/heads/t-makrei/hierarchical_FastRCNN
- refs/heads/t-makrei/new_yolo
- refs/heads/t-makrei/transpose-fix
- refs/heads/t-mofun/learners_grad_clip_doc
- refs/heads/t-mofun/rmspropgraves
- refs/heads/t-tiah/LMNCE-dev
- refs/heads/t-tiah/lm
- refs/heads/t-tiah/reader-debug
- refs/heads/t-tidett/ExtendedCUDAErrors
- refs/heads/t-tidett/memoryswapping
- refs/heads/t-tidett/memoryswappingWithFlagToTrue
- refs/heads/t-tidett/onDemandMemorySwapping
- refs/heads/t-titan/attention
- refs/heads/t-titan/shiftread
- refs/heads/thhoens/NewBinaryReader
- refs/heads/thhoens/atomic
- refs/heads/thhoens/atomic-nosync
- refs/heads/thhoens/atomic-nosync-nop
- refs/heads/thhoens/basemat
- refs/heads/thhoens/binreader
- refs/heads/thhoens/bnfix
- refs/heads/thhoens/cdssm
- refs/heads/thhoens/cuda7
- refs/heads/thhoens/distgradfix
- refs/heads/thhoens/mblayout
- refs/heads/thhoens/multi
- refs/heads/thhoens/multivalid
- refs/heads/thhoens/nbr
- refs/heads/thhoens/nbr2
- refs/heads/thhoens/newbinreader
- refs/heads/thhoens/nosync
- refs/heads/thhoens/packmatrix
- refs/heads/thhoens/pathfix
- refs/heads/thhoens/perf2
- refs/heads/thhoens/perf4
- refs/heads/thhoens/reader
- refs/heads/thhoens/readertest
- refs/heads/thhoens/s2s
- refs/heads/thhoens/seq2seq
- refs/heads/thhoens/sparsematrix
- refs/heads/thhoens/sparsemul
- refs/heads/thhoens/syncguard
- refs/heads/thhoens/test
- refs/heads/thhoens/unatomic
- refs/heads/thhoens/unatomic-nosync
- refs/heads/thhoens/unatomic-nosync-nop
- refs/heads/thiagofc/Dockerfile
- refs/heads/thiagofc/clean
- refs/heads/thiagofc/ctf_parser_perf
- refs/heads/thiagofc/ctf_parser_test
- refs/heads/thiagofc/disable-csharp-target-for-linux
- refs/heads/thiagofc/disable-failing-tests
- refs/heads/thiagofc/disable-many-tests
- refs/heads/thiagofc/fix-build
- refs/heads/thiagofc/fix-cntk-dev-docker
- refs/heads/thiagofc/fix-conda-env
- refs/heads/thiagofc/fix-debug-target-on-linux
- refs/heads/thiagofc/fix-docker-image
- refs/heads/thiagofc/fix-nightly-build
- refs/heads/thiagofc/fix-warning
- refs/heads/thiagofc/increase-batch-norm-spatial-error-tolerance
- refs/heads/thiagofc/make-master-green
- refs/heads/thiagofc/pr3558
- refs/heads/thiagofc/revert-mkl-dnn-upgrade
- refs/heads/thiagofc/temporarily-disable-doctests
- refs/heads/thiagofc/test-reset
- refs/heads/thiagofc/update-anaconda-and-pytest
- refs/heads/thiagofc/update-mkldnn-to-0.14-on-windows
- refs/heads/thiagofc/update-mkldnn-to-v0.14
- refs/heads/thiagofc/update-windows-server-dockerfile
- refs/heads/tix/FixParallelBuild
- refs/heads/tix/convertEvalExampleTestToNetCore
- refs/heads/tix/fixExamples
- refs/heads/tix/memoryPinning
- refs/heads/tix/testCifar
- refs/heads/users/fmegen/brainwave-cntk-beta15
- refs/heads/v-igquin/fix-binary-conv
- refs/heads/v-igquin/fix-doc-forward-backward
- refs/heads/v-lelu/facereader
- refs/heads/v-lelu/facereader-test
- refs/heads/v-lelu/inception-resnet-v2
- refs/heads/v-lelu/inceptionv4
- refs/heads/v-niveli/mem_sharing_supressed
- refs/heads/v-niveli/mpi_bcast_with_profiler
- refs/heads/v-rodemo/disable-node-timing
- refs/heads/v-rodemo/fix-batchnorm-freedimension
- refs/heads/v-yuxgu/caffe2cntk
- refs/heads/v-yuxgu/crosstalkcaffe-bugfix
- refs/heads/v-yuxgu/model2cntk
- refs/heads/v-yuxgu/psroipooling
- refs/heads/v-yuxgu/rpn
- refs/heads/v-yuxgu/sigmoid
- refs/heads/v-zhke/fb-ssgd
- refs/heads/v-zhke/model2cntk_testcase
- refs/heads/v-zhke/smb_verify
- refs/heads/v-zhke/ssgd_experiment
- refs/heads/vad
- refs/heads/vadimma/AddLogs
- refs/heads/vadimma/AddSaveLogs
- refs/heads/vadimma/BMUF
- refs/heads/vadimma/CTC
- refs/heads/vadimma/CTCDebug
- refs/heads/vadimma/CTCNode
- refs/heads/vadimma/CTC_R
- refs/heads/vadimma/EMBR
- refs/heads/vadimma/EMBR1
- refs/heads/vadimma/Eval_optimizations
- refs/heads/vadimma/ExtendedEvalExample
- refs/heads/vadimma/FixLN
- refs/heads/vadimma/FixRepetitiveValueUpdate
- refs/heads/vadimma/LatticeDebug
- refs/heads/vadimma/LatticeParallel
- refs/heads/vadimma/ModelVersionLog
- refs/heads/vadimma/MomDouble
- refs/heads/vadimma/MomentumLog
- refs/heads/vadimma/QuantizedParameter
- refs/heads/vadimma/RNNT-optimize
- refs/heads/vadimma/ReaderPrint
- refs/heads/vadimma/RemoveCodeDuplication
- refs/heads/vadimma/SE_debug
- refs/heads/vadimma/adambs
- refs/heads/vadimma/adambs-cuda9
- refs/heads/vadimma/badlat
- refs/heads/vadimma/binaryMLF
- refs/heads/vadimma/binaryMLF2
- refs/heads/vadimma/binaryMLF3
- refs/heads/vadimma/binmlf
- refs/heads/vadimma/bmlfex
- refs/heads/vadimma/context
- refs/heads/vadimma/context9
- refs/heads/vadimma/ctc_ndl
- refs/heads/vadimma/evaluateStreamMode
- refs/heads/vadimma/exposeSE
- refs/heads/vadimma/fb
- refs/heads/vadimma/fcontext
- refs/heads/vadimma/fixCNTKCompat
- refs/heads/vadimma/fse
- refs/heads/vadimma/latency-control-blstm-2.5
- refs/heads/vadimma/latpar
- refs/heads/vadimma/lc-blstm-sq
- refs/heads/vadimma/lc_fix
- refs/heads/vadimma/maxerrors
- refs/heads/vadimma/mlfreader
- refs/heads/vadimma/nccl_bmuf
- refs/heads/vadimma/reader_c
- refs/heads/vadimma/rightContext
- refs/heads/vadimma/rnnt
- refs/heads/vadimma/rnnt-compressed
- refs/heads/vadimma/rnnt2
- refs/heads/vadimma/rnnt_cuda_debug
- refs/heads/vadimma/rnnt_cuda_eval
- refs/heads/vadimma/se_de
- refs/heads/vadimma/sed
- refs/heads/vadimma/stableTanh
- refs/heads/vadimma/testfp16
- refs/heads/vadimma/testlr
- refs/heads/vadimma/wu
- refs/heads/vadimma/wuf
- refs/heads/vadimmia/binary
- refs/heads/vlivan/large-minibatches
- refs/heads/vlivan/linux-gpu-locking
- refs/heads/vlivan/linux-reader-catchup
- refs/heads/vlivan/linux-reader-catchup2
- refs/heads/vlivan/test-master
- refs/heads/wdarling/axisdoc
- refs/heads/wdarling/lstmaux
- refs/heads/wdarling/pythongru
- refs/heads/wdarling/tutorial
- refs/heads/wdarling/update_fastrcnn
- refs/heads/wdarling/updatezeroes
- refs/heads/weba/FixBatchNorm
- refs/heads/weixi/autolr
- refs/heads/weixi/conttrain
- refs/heads/weixi/lfmmi
- refs/heads/weixi/lfmmi-2-lstm
- refs/heads/weixi/lfmmi-2pass
- refs/heads/weixi/lfmmi-2pass-cr
- refs/heads/weixi/lfmmi-2pass-test
- refs/heads/weixi/lfmmi-conttrain
- refs/heads/weixi/lfmmi-conttrain-neg
- refs/heads/weixi/lfmmi-conttrain-wlstm
- refs/heads/weixi/lfmmi-debug
- refs/heads/weixi/lfmmi-memzip
- refs/heads/weixi/lfmmi-new
- refs/heads/weixi/oldbuild
- refs/heads/weixi/pcv
- refs/heads/weixi/waynecoding
- refs/heads/wilrich/cntkv2Cython
- refs/heads/wilrich/cntkv2Swig
- refs/heads/wilrich/rl
- refs/heads/wolfma/checkdep
- refs/heads/wolfma/instsplat
- refs/heads/wolfma/mkl2017
- refs/heads/wolfma/setup
- refs/heads/wolfma/t-makrei/transpose-fix
- refs/heads/xiaoyongzhu-master
- refs/heads/xwang/tts-lace
- refs/heads/yacheo/h-softmax
- refs/heads/yacheo/h-softmax-fix
- refs/heads/yanchen/copy-api-internals
- refs/heads/yanchen/custom-attrs
- refs/heads/yanchen/custom-attrs-future
- refs/heads/yanchen/custom-attrs-loadbuf
- refs/heads/yanchen/custom-op-desc
- refs/heads/yanchen/future-attrs
- refs/heads/yanchen/load-from-mem
- refs/heads/yanchen/load-from-memory
- refs/heads/yanchen/null-output-owner
- refs/heads/yanchen/onnx-description
- refs/heads/yanchen/output-mapping
- refs/heads/yanchen/primitive-func
- refs/heads/yanchen/rm-asserts
- refs/heads/yanchen/wchar
- refs/heads/yaronwe/hide-protobuf
- refs/heads/yingsh/OrderedCEWithSM
- refs/heads/yuqing/HDF5Reader
- refs/heads/yuqtang/AugmentMinibatchSourceAPI
- refs/heads/yuqtang/ChangeOneHotDefaultToSparse
- refs/heads/yuqtang/DebugCrossTalkConv2d
- refs/heads/yuqtang/DebugGPUMemory
- refs/heads/yuqtang/DyanmicChunkDescriptions
- refs/heads/yuqtang/EnableDefMBSizeInStreamInfo
- refs/heads/yuqtang/FixBugsInNoBackPropOpsGradients
- refs/heads/yuqtang/FixDistributedTrainingCounts
- refs/heads/yuqtang/FreeAxisTensorTimes
- refs/heads/yuqtang/FunctionalLearningParameter
- refs/heads/yuqtang/GradOnGatherIndices
- refs/heads/yuqtang/ImplDefMbSizeStreamForUserDeserializer
- refs/heads/yuqtang/LambdaDeserializer
- Branches list truncated to 1000 entries, 72 were omitted.
No releases to show
Permalinks
To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.
Tip revision: 07ce0c73d8d6ab1faa7023b6231e516023ec76f4 authored by Vadim Mazalov on 06 March 2017, 17:51:32 UTC
Make DeviceId as a parameter in CTC tests
Make DeviceId as a parameter in CTC tests
Tip revision: 07ce0c7
PerformanceProfiler.h
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
//
// Real-time thread-safe profiler that generates a summary report and a detail profile log.
// The profiler is highly performant and lightweight. Profiling a single event introduces an overhead
// of approximately 100 ns.
//
// Profiler Usage
//
// To initialize and tear down the profiler, call ProfilerInit() and ProfilerClose(). The scoped
// object, ProfilerContext can also be used for managing the lifetime of the profiler. The profiler
// works by accumulating events in a pre-allocated buffer, up until the buffer is full. At the
// time when the profiler is torn down, a summary report and a detailed log file is written to disk.
//
// When profiling code, two types of events can be used - fixed or custom. A fixed event is
// predefined in the ProfilerEvents enum and by the FixedEventDesc struct. A custom event is
// simply a string.
//
// To profile a section of code, call ProfilerTimeBegin() and ProfilerTimeEnd(), or the scoped
// object ScopeProfile. When the GPU sync flag is set in the FixedEventDesc and in ProfilerInit(),
// the GPU will be synced at the time ProfilerTimeEnd() is called, for fixed events only. For
// custom events, ProfilerSyncGpu() can be called to sync the GPU.
//
// When there is a need to profile I/O bandwidth (or throughput), the ProfilerThroughputBegin()
// and ProfilerThroughputBegin() calls should be used. The throughput APIs can only be used
// with fixed events.
//
// CNTK specifics
//
// The profiler is turned off during the very first epoch to avoid polluting profile data with
// times that are typically larger (warm-up).
//
#pragma once
#include <string>
namespace Microsoft { namespace MSR { namespace CNTK {
#ifdef _WIN32
#if defined(PERFORMANCE_PROFILER_DLL)
#define PERF_PROFILER_API __declspec(dllexport)
#else
#define PERF_PROFILER_API __declspec(dllimport)
#endif
#else
#define PERF_PROFILER_API
#endif
//
// Fixed/predetermined profiler events. These appear in the summary report.
//
enum ProfilerEvents
{
// Main thread header (dummy events)
profilerSepMainThread = 0,
profilerSepSpace0,
// Main thread events
profilerEvtMainEpoch, // Train epoch loop time
profilerEvtMainMinibatch, // One minibatch loop time
profilerEvtMainGetMinibatch, // GetMinibatch() function time
profilerEvtMainFB, // Forward + Backward pass time
profilerEvtMainGradient, // Gradient aggregation time
profilerEvtMainWeights, // Weight update time
profilerEvtMainPost, // Remainder time in minibatch loop
// Data reader header (dummy events)
profilerSepSpace1,
profilerSepDataReader,
profilerSepSpace2,
// Data reader events
profilerEvtPrefetchMinibatch, // Prefetching the next minibatch in a background thread
profilerEvtMax
};
//
// Initialize all resources to enable profiling.
// profilerDir: Directory where the profiler logs will be saved.
// customEventBufferBytes: Bytes to allocate for the custom event buffer.
// logSuffix: Suffix string to append to log files.
// syncGpu: Wait for GPU to complete processing for each profiling event.
//
void PERF_PROFILER_API ProfilerInit(const std::wstring& profilerDir, const unsigned long long customEventBufferBytes,
const std::wstring& logSuffix, const bool syncGpu);
//
// Enable/disable profiling.
// By default, profiling is disabled after a ProfilerInit call.
// This can be used to temporarily turn profiling on/off during execution.
//
void PERF_PROFILER_API ProfilerEnable(bool enable);
//
// Measure either a fixed or custom event time.
// ProfilerTimeBegin() returns a stateId that is passed to ProfilerTimeEnd().
// If ProfilerTimeEnd() is not called, the event is not recorded.
//
long long PERF_PROFILER_API ProfilerTimeBegin();
void PERF_PROFILER_API ProfilerTimeEnd(const long long stateId, const int eventId);
void PERF_PROFILER_API ProfilerTimeEnd(const long long stateId, const char* eventDescription);
//
// Conditionally sync the GPU if the syncGPU flag is set. This only needs to be excplicitly
// called for custom events.
//
void PERF_PROFILER_API ProfilerSyncGpu();
//
// Measure throughput given the number of bytes.
// ProfilerThroughputBegin() returns a stateId that is passed to ProfilerThroughputEnd().
// If ProfilerThroughputEnd() is not called, the event is not recorded.
//
long long PERF_PROFILER_API ProfilerThroughputBegin();
void PERF_PROFILER_API ProfilerThroughputEnd(const long long stateId, const int eventId, const long long bytes);
//
// Generate reports and release all resources.
//
void PERF_PROFILER_API ProfilerClose();
//
// Scoped profiler instantiation.
//
struct PERF_PROFILER_API ProfilerContext
{
void Init(const std::wstring& profilerDir = L"", const unsigned long long customEventBufferBytes = (32 * 1024 * 1024), const std::wstring& logSuffix = L"", const bool syncGpu = false);
~ProfilerContext();
};
//
// Scoped time profiling.
//
struct PERF_PROFILER_API ScopeProfile
{
ScopeProfile(int eventId);
ScopeProfile(const char* description);
~ScopeProfile();
private:
unsigned long long m_stateId;
int m_eventId;
const char* m_description;
};
#define PROFILE_SCOPE(eventId) ScopeProfile __sp##eventId(eventId);
#define PROFILE_FUNCTION ScopeProfile __fsp(__FUNCTION__);
//
// Scoped throughput profiling.
//
struct PERF_PROFILER_API ScopeThroughput
{
ScopeThroughput(int eventId, long long bytes);
~ScopeThroughput();
private:
unsigned long long m_stateId;
int m_eventId;
long long m_bytes;
};
#define THROUGHPUT_SCOPE(eventId, bytes) ScopeThroughput __st##eventId(eventId, bytes);
}}}