Use GDK_NVML_LIB_PATH
Simplify Boost libraries
Use ORIGINDIR in rpath of libeval
remove GDK_NVML_LIB_PATH from cppevalclient and Add -lcntkmath to libeval.so
Use GDK_NVML_LIB_PATH to avoid using system-wide one, Simplify
use in libeval.so
Build unit tests only when Boost is available
Configure Boost path in configure
Address CR comments
fix#678
This is a combination of 10 commits.
Adapt makefile to work with Docker container on Linux
This is a combination of 7 commits.
enable unit tests build
remove -liomp5 from math unit test
enable openmp
add -ldl
fix space error
add -dl for reader test
change order of -l
remove gdk installation
use /usr/local/lib as boost library path
Adapt path in unit tests on Linux
adapt path for Linux
adapt path on other test projects for Linux
remove extra blank line
add BOOST_PATH,and build unit tests based on BOOST_PATH
configure boost path
install Boost 1.60.0; use version variable instead of hardcoding.
add comments for different paths on Linux than on Windows.
restore installation of gdk, because the removal of gdk needs more changes and will be done in a separate check-in
use ifdef, fix typos
This is a combination of 7 commits.
minor format changes
adapt makefile and math tests
enable sse4.1 support
adapt to linux
fix shadow param, and adjust order of functions
netowrk tests need .cu
move constant definition into a .cpp file, instead of .h
This is a combination of 25 commits.
Add unit tests
make them work on Linux
add to build eval unit tests.
adapt for Linux
fix incompatablity issues on linux
using runtime_error() instead of exception to make linux happy
add library and path
change order of included files
use dynmaic library on linux
link with boost dynamic libraries
minor changes
use BOOSTLIBS to specify all required boost libraries
Add reader unit tests
add .phony unittests to only build unit tests. (will be removed later)
fix errors
add ifdef for platform specifc stuff
fix for linux
adapt makefile for unit tests
adapt reader test to work on Linux
add missing files for the networks unit test
adapt the networks unit test
add the math unit tests
fix errors
minor changes
remove unexpected tab
remvoed pre-compiler headers and addressed CR comments
simplify naming comments from CR
delete unused files, minor changes
Changes in comments and Todo
Adapt cppevalcient to build both on Windwos and Linux
Add comment for using "this->" explicitly
Add to build LibEval.so in Makefile
minor changes
EvalSample on Linux
Add EvalSampleClient to Makefile
fix errors in Makefile
fix compilation error on Linux
fix more errors
add main function for Linux
Fix captial case for Eval.h on Linux
build cppevalclient
Add dependency processing for .cu
replace \ with / in the file path on Linux
Adapt path on Linux
fix path on Linux
Use main() on Windows, remvoe unused files and path in Makefile
remove unused files
Use main() on Windows, and remove the wrapper for Linux
further remvoe unused files
fine tuning on lib and path
minor changes
* Move caching into a stand-alone ChunkCache class.
Add a config flag 'keepDataInMemory' to cache the whole dataset.
* Allow both tabs and spaces as separators.
* Couple loading/indexing retries with file re-opening (if there was a
file error and the file handle is stale).
* Break 'randomize' config parameter into boolean 'randomize' and
integer 'randomizationWindow'.
* Add 'frameMode' config flag.
* Add an extra check and verify that the expected sequence length
(calculated during indexing) matches the actual length (maximum
number of samples in an input).
Extend sequence and frame packers to support sparse input.
Create a tightly filled layout and base packing off of it.
Add a number of unit test for sequence packing (both sparse and
dense, no randomization, using CNTK text format for input).
new operation Trace() (TraceNode) as a debugging aid;
WriteMinibatchWithFormatting() can now log by FrameRange;
WriteFormattingOptions now in ComputationNode.h
Renames SynchronousNodeEvaluator to NDLNodeEvaluatorImpl
Merges SynchronousExecutionEngine.h into NDLNetworkBuilder.h
Renames SynchronousExecutionEngine.cpp into NDLNetworkBuilder.cpp
Moves DebugUtil functions (PrintCallStack, GetCallStack) to ExceptionWithCallStack
Refactors the PrintCallStack and GetCallStack functions in ExceptionWithCallBack to re-use the common functionality.
Make gcc happy
* Add 'openblas' as mathlib option in configure. Not added to auto-search so
must be specified using --with-openblas
* configure script searches empty tail so that libraries located at default_path_list
roots (ie /usr/local/ + include/openblas_config.h) are found
* Treat ACML as the odd library out in ifdefs since it doesn't conform to typical
BLAS standard. Other libraries like ATLAS should be able to share
OpenBLAS/MKL variants. Add default USE_ACML define in VS projects to match
* Fix 'max' macro define colliding with C++ std::max once openblas headers are included
Usage Notes:
* For best performance, build OpenBLAS with USE_OPENMP=1. When running CNTK, set
OPENBLAS_NUM_THREADS environment var or set numCPUThreads CNTK config variable to the
physical core count or performance will suffer
* OpenBLAS 2.16 (git HEAD) tested in Linux with GCC 4.8.4 and in Windows with
OpenBLAS 2.15 (pre-built binary release + MingGW 64-bit support dlls)
* For Windows, in Math.vcxproj, replace libacml_mp_dll.lib with libopenblas.dll.a and change
USE_ACML define to USE_OPENBLAS. Change ACML_PATH environment variable to your OpenBLAS path.
Modify openblas_config.h as per https://github.com/xianyi/OpenBLAS/issues/708
* On current generation Intel processors, OpenBLAS measures a little faster than
AMD ACML and slower than Intel MKL on MNIST and other examples
Activate LibSparsePCReader on Linux build
Make file name consistent with Windows
Activate LibSparsePCReader on Linux build
Make file name consistent with Windows
Activate LibSparsePCReader on Linux build
Make file name consistent with Windows
Fix reader on Linux
Activate LibSparsePCReader on Linux build
Make file name consistent with Windows
Activate LibSparsePCReader on Linux build
Make file name consistent with Windows
Activate LibSparsePCReader on Linux build
Make file name consistent with Windows
Activate LibSparsePCReader on Linux build
Make file name consistent with Windows
added a dummy DataReader constructor from BrainScript (currently not implemented);
had to disable DelayLoadNofify() as that suddenly caused link errors (seems because DeviceFromConfig() is now called from a different place?);
further unified DoTrain() w.r.t. old CNTK config and BrainScript. Added a new BrainScriptBuilder (but the builders will go away next and get replaced by a lambda). DoTrain now accessible from BS (but not functional yet, too many pieces missing);
all builders now can be constructed from both old ConfigParameters and BrainScript IConfigRecord;
suddenly gcc got very picky, had to fix several places
fixed Linux Makefile after change of GPUMatrixCUDAKernels.cu to GPUMatrixCUDAKernels.cuh. It used to explicitly compile this in the GCC build, although it was included
new source file ComputationNetworkScripting.cpp;
changed ComputationNetwork::SetDeviceId(). Now just takes the input and sets that as the device. Before it did somethinf funky with m_deviceId, which looks like a bug;
in LSTM test config, removed remnants of old NDL, now completely based on BS
moved DisableLegacyTruncationSettings() away from being the very first piece of code in CNTK.cpp, hiding it close to where it is used. Also fixed its spelling and made it 'static'
renamed SimpleEvaluator::PreCompute() to EvaluateBatchModeNodes() because the original name was misleading;
Linux Makefile now defines _DEBUG in debug builds
Replace hash_map with unordered_map
Fix size_t formatting (%zd)
Add some missing sprintf_s args
Some methods defined in base class need the base mentioned in templates
Don't use classname::methodname in class definitions
fixed the slew of dependencies, mostly SimpleNetworkBuilder.cpp;
ComputationNetwork no longer has to include all headers for all vairants of ComputationNodes;
a few ComputationNode derivates missed #includes
Remove the no longer needed kaldi Makefiles.
Fix some pre-configure references in the README that were missed, add
a missing step to the build instructions, remove some obsolete
information, be more specific about the acml library that works, and
reword a few sentences.
Add math library dependencies to the kaldi plugins so that make -j
doesn't try to build them before the math library is finished.
Add a configure script for initializing build parameters, either
for in or out of source builds. The script generates a Config.make
in the build directory, and, for out of source builds, a trampoline
Makefile.
Make the build-and-test script to do an out of source build.
Add Config.make to .gitignore, as well as emacs temporary file patterns.
Change configuration to build to a specific PREFIX directory, where
a Config.make is located that contains build and site-specific information.
This also makes it easy to check just how an earlier build was configured.
Update the instructions in README.
Modularize build specifications for each target, where each target
adds what it needs to paths.
Add rpath to cntkmath and plugins so they do not need LD_LIBRARY_PATH.
Remove object files from cntk that were already in cntkmath.
Organize build targets into UNIX-like bin and lib directories under a
configuration-specific directory. Have .gitignore ignore these
directories.
Make it easy to keep sources in alphabetic order for easier comparison
with the Windows project definition.
This change implements a read-ahead (prefetch) of one minibatch on a separate thread to ensure that main thread always has enough work. This is done through coarse-level parallelism, where GetMinibatch is called from a separate thread and result is cached for main thread to consume. The synchronization is a simple producer/consumer model with a single mutex and a conditional variable.
This change also modifies how we measure time it takes to read and compute a minibatch worth of data.