mirror of
https://github.com/marian-nmt/marian.git
synced 2024-11-27 10:33:14 +03:00
Merge branch 'dmaster'
This commit is contained in:
commit
02f4af4eee
@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
||||
- Automatic detection of CPU intrisics when building with -arch=native
|
||||
|
||||
### Fixed
|
||||
- Windows build with recent changes
|
||||
- Bug with read-ahead buffer
|
||||
- Fixed handling of "dump-config: false" in YAML config
|
||||
- Errors due to warnings
|
||||
- Fixed issue concerning failed saving with single GPU training and --sync-sgd option.
|
||||
|
@ -32,6 +32,34 @@ message(STATUS "Project version: ${PROJECT_VERSION_STRING_FULL}")
|
||||
|
||||
execute_process(COMMAND git submodule update --init --recursive --no-fetch
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
# Set compilation flags
|
||||
if(MSVC)
|
||||
# These are used in src/CMakeLists.txt on a per-target basis
|
||||
list(APPEND ALL_WARNINGS /WX; /W4;)
|
||||
|
||||
# Disabled bogus warnings for CPU intrincics:
|
||||
# C4310: cast truncates constant value
|
||||
# C4324: 'marian::cpu::int16::`anonymous-namespace'::ScatterPut': structure was padded due to alignment specifier
|
||||
set(DISABLE_GLOBALLY "/wd\"4310\" /wd\"4324\"")
|
||||
|
||||
set(INTRINSICS "/arch:AVX")
|
||||
|
||||
# Or maybe use these?
|
||||
# set(INTRINSICS "/arch:AVX2")
|
||||
# set(INTRINSICS "/arch:AVX512")
|
||||
|
||||
set(CMAKE_CXX_FLAGS "/EHsc /DWIN32 /D_WINDOWS /DUNICODE /D_UNICODE /D_CRT_NONSTDC_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS ${DISABLE_GLOBALLY}")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} /MT /O2 ${INTRINSICS} /Zi /MP /GL /DNDEBUG")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} /MTd /Od /Ob0 ${INTRINSICS} /RTC1 /Zi /D_DEBUG")
|
||||
|
||||
# ignores warning LNK4049: locally defined symbol free imported - this comes from zlib
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEBUG /LTCG:incremental /INCREMENTAL:NO /NODEFAULTLIB:MSVCRT /ignore:4049")
|
||||
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /LTCG:incremental")
|
||||
|
||||
find_library(SHLWAPI Shlwapi.lib)
|
||||
set(EXT_LIBS ${EXT_LIBS} SHLWAPI)
|
||||
else()
|
||||
|
||||
# Detect support CPU instrinsics for the current platform. This will
|
||||
# only by used with BUILD_ARCH=native. For overridden BUILD_ARCH we
|
||||
@ -64,21 +92,11 @@ else()
|
||||
set(INTRINSICS "-msse4.1")
|
||||
endif()
|
||||
|
||||
# Set compilation flags
|
||||
if(MSVC)
|
||||
set(CMAKE_CXX_FLAGS "/EHsc /DWIN32 /D_WINDOWS /DUNICODE /D_UNICODE /D_CRT_NONSTDC_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "/MT /O2 /W4 /Zi /MP /GL /DNDEBUG")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "/MTd /Od /Ob0 /RTC1 /Zi /D_DEBUG")
|
||||
set(DISABLE_GLOBALLY "-Wno-unused-result")
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEBUG /LTCG:incremental /INCREMENTAL:NO")
|
||||
|
||||
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /LTCG:incremental")
|
||||
else()
|
||||
set(DISABLE_GLOBALLY "-Wno-unused-result")
|
||||
|
||||
# These are used in src/CMakeLists.txt on a per-target basis
|
||||
list(APPEND ALL_WARNINGS -Wall; -Werror; -Wno-unused-result; -Wno-deprecated; -Wno-pragmas; -Wno-unused-parameter; -Wextra; -Wno-unused-function;
|
||||
-Wno-unused-value; -Wno-unknown-pragmas; -Wno-sign-compare; -Wno-missing-field-initializers;)
|
||||
# These are used in src/CMakeLists.txt on a per-target basis
|
||||
list(APPEND ALL_WARNINGS -Wall; -Werror; -Wno-unused-result; -Wno-deprecated; -Wno-pragmas; -Wno-unused-parameter; -Wextra; -Wno-unused-function;
|
||||
-Wno-unused-value; -Wno-unknown-pragmas; -Wno-sign-compare; -Wno-missing-field-initializers;)
|
||||
|
||||
# This warning does not exist prior to gcc 5.0
|
||||
if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0)
|
||||
@ -87,7 +105,7 @@ else()
|
||||
|
||||
set(CMAKE_CXX_FLAGS "-std=c++11 -O3 -Ofast -m64 -pthread -march=${BUILD_ARCH} ${INTRINSICS} -Wl,--no-as-needed -funroll-loops -ffinite-math-only -fPIC ${DISABLE_GLOBALLY}")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -g -rdynamic")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-std=c++11 -g -rdynamic -O0 -pthread -Wl,--no-as-needed -fPIC -Wno-unused-result -Wno-deprecated -Werror -Wno-pragmas")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-std=c++11 -g -rdynamic -O0 -pthread -Wl,--no-as-needed -fPIC -Wno-unused-result -Wno-deprecated -Wno-pragmas")
|
||||
set(CMAKE_CXX_FLAGS_SLIM "${CMAKE_CXX_FLAGS} -DNDEBUG")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS} -g -rdynamic")
|
||||
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE} -pg -g -rdynamic")
|
||||
|
13
src/3rd_party/pathie-cpp/src/path.cpp
vendored
13
src/3rd_party/pathie-cpp/src/path.cpp
vendored
@ -51,6 +51,9 @@
|
||||
#include <shlwapi.h>
|
||||
//#include <ntifs.h> // Currently not in msys2
|
||||
|
||||
// @TODO: This is a hack to make it compile under Windows, check if this is save.
|
||||
#define F_OK 0
|
||||
|
||||
#elif defined(_PATHIE_UNIX)
|
||||
#include <unistd.h>
|
||||
#include <limits.h>
|
||||
@ -159,7 +162,7 @@ void Path::sanitize()
|
||||
}
|
||||
|
||||
// Remove trailing slash if any (except for the filesystem root)
|
||||
long len = m_path.length();
|
||||
long len = (long)m_path.length();
|
||||
#if defined(_PATHIE_UNIX)
|
||||
if (len > 1 && m_path[len - 1] == '/')
|
||||
m_path = m_path.substr(0, len - 1);
|
||||
@ -2920,6 +2923,7 @@ Path Path::global_appentries_dir(localpathtype local)
|
||||
#else
|
||||
#error Unsupported system.
|
||||
#endif
|
||||
local; // make compiler happy
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2952,6 +2956,7 @@ Path Path::global_immutable_data_dir(localpathtype local)
|
||||
#else
|
||||
#error Unsupported system.
|
||||
#endif
|
||||
local; // make compiler happy
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2984,6 +2989,7 @@ Path Path::global_mutable_data_dir(localpathtype local)
|
||||
#else
|
||||
#error Unsupported system
|
||||
#endif
|
||||
local; // make compiler happy
|
||||
}
|
||||
|
||||
/**
|
||||
@ -3013,6 +3019,7 @@ Path Path::global_cache_dir(localpathtype local)
|
||||
#else
|
||||
#error Unsupported system.
|
||||
#endif
|
||||
local; // make compiler happy
|
||||
}
|
||||
|
||||
/**
|
||||
@ -3045,6 +3052,7 @@ Path Path::global_runtime_dir(localpathtype local)
|
||||
#else
|
||||
#error Unsupported system.
|
||||
#endif
|
||||
local; // make compiler happy
|
||||
}
|
||||
|
||||
/**
|
||||
@ -3078,6 +3086,7 @@ Path Path::global_config_dir(localpathtype local)
|
||||
#else
|
||||
#error Unsupported system.
|
||||
#endif
|
||||
local; // make compiler happy
|
||||
}
|
||||
|
||||
/**
|
||||
@ -3227,6 +3236,7 @@ std::vector<Path> Path::glob(const std::string& pattern, int flags /* = 0 */)
|
||||
#else
|
||||
#error Unsupported system.
|
||||
#endif
|
||||
flags; // make compiler happy
|
||||
}
|
||||
|
||||
///@}
|
||||
@ -3276,6 +3286,7 @@ bool Path::fnmatch(const std::string& pattern, int flags /* = 0 */) const
|
||||
#else
|
||||
#error Unsupported system.
|
||||
#endif
|
||||
flags; // make compiler happy
|
||||
}
|
||||
|
||||
/**
|
||||
|
8
src/3rd_party/pathie-cpp/src/pathie.cpp
vendored
8
src/3rd_party/pathie-cpp/src/pathie.cpp
vendored
@ -39,12 +39,12 @@
|
||||
*/
|
||||
std::string Pathie::utf16_to_utf8(std::wstring str)
|
||||
{
|
||||
int size = WideCharToMultiByte(CP_UTF8, 0, str.c_str(), str.length(), NULL, 0, NULL, NULL);
|
||||
int size = WideCharToMultiByte(CP_UTF8, 0, str.c_str(), (int)str.length(), NULL, 0, NULL, NULL);
|
||||
|
||||
char* utf8 = (char*) malloc(size); // sizeof(char) = 1 per ANSI C standard.
|
||||
memset(utf8, 0, size);
|
||||
|
||||
size = WideCharToMultiByte(CP_UTF8, 0, str.c_str(), str.length(), utf8, size, NULL, NULL);
|
||||
size = WideCharToMultiByte(CP_UTF8, 0, str.c_str(), (int)str.length(), utf8, size, NULL, NULL);
|
||||
|
||||
if (size == 0)
|
||||
throw(Pathie::WindowsError(GetLastError()));
|
||||
@ -61,12 +61,12 @@ std::string Pathie::utf16_to_utf8(std::wstring str)
|
||||
*/
|
||||
std::wstring Pathie::utf8_to_utf16(std::string str)
|
||||
{
|
||||
int count = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), str.length(), NULL, 0);
|
||||
int count = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), (int)str.length(), NULL, 0);
|
||||
|
||||
wchar_t* utf16 = (wchar_t*) malloc(count * sizeof(wchar_t));
|
||||
memset(utf16, 0, count * sizeof(wchar_t));
|
||||
|
||||
count = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), str.length(), utf16, count);
|
||||
count = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), (int)str.length(), utf16, count);
|
||||
|
||||
if (count == 0)
|
||||
throw(Pathie::WindowsError(GetLastError()));
|
||||
|
7
src/3rd_party/zlib/CMakeLists.txt
vendored
7
src/3rd_party/zlib/CMakeLists.txt
vendored
@ -4,4 +4,9 @@ file(GLOB ZLIB_INC *.h)
|
||||
|
||||
# add sources of the wrapper as a "SQLiteCpp" static library
|
||||
add_library(zlib OBJECT ${ZLIB_SRC} ${ZLIB_INC})
|
||||
target_compile_options(zlib PUBLIC -Wno-implicit-function-declaration)
|
||||
|
||||
if(MSVC)
|
||||
target_compile_options(zlib PUBLIC /wd"4996" /wd"4267")
|
||||
else()
|
||||
target_compile_options(zlib PUBLIC -Wno-implicit-function-declaration)
|
||||
endif()
|
||||
|
13
src/3rd_party/zlib/zutil.c
vendored
13
src/3rd_party/zlib/zutil.c
vendored
@ -296,11 +296,14 @@ void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
|
||||
|
||||
#ifndef MY_ZCALLOC /* Any system without a special alloc function */
|
||||
|
||||
#ifndef STDC
|
||||
extern voidp malloc OF((uInt size));
|
||||
extern voidp calloc OF((uInt items, uInt size));
|
||||
extern void free OF((voidpf ptr));
|
||||
#endif
|
||||
// // Fix linker warning under MSC
|
||||
// #define STDC
|
||||
|
||||
// #ifndef STDC
|
||||
// extern voidp malloc OF((uInt size));
|
||||
// extern voidp calloc OF((uInt items, uInt size));
|
||||
// extern void free OF((voidpf ptr));
|
||||
// #endif
|
||||
|
||||
voidpf ZLIB_INTERNAL zcalloc (opaque, items, size)
|
||||
voidpf opaque;
|
||||
|
10
src/3rd_party/zstr/zstr.hpp
vendored
10
src/3rd_party/zstr/zstr.hpp
vendored
@ -179,9 +179,9 @@ public:
|
||||
// run inflate() on input
|
||||
if (! zstrm_p) zstrm_p = new detail::z_stream_wrapper(true);
|
||||
zstrm_p->next_in = reinterpret_cast< decltype(zstrm_p->next_in) >(in_buff_start);
|
||||
zstrm_p->avail_in = in_buff_end - in_buff_start;
|
||||
zstrm_p->avail_in = (uInt)(in_buff_end - in_buff_start);
|
||||
zstrm_p->next_out = reinterpret_cast< decltype(zstrm_p->next_out) >(out_buff_free_start);
|
||||
zstrm_p->avail_out = (out_buff + buff_size) - out_buff_free_start;
|
||||
zstrm_p->avail_out = (uInt)((out_buff + buff_size) - out_buff_free_start);
|
||||
int ret = inflate(zstrm_p, Z_NO_FLUSH);
|
||||
// process return code
|
||||
if (ret != Z_OK && ret != Z_STREAM_END) throw Exception(zstrm_p, ret);
|
||||
@ -248,7 +248,7 @@ public:
|
||||
while (true)
|
||||
{
|
||||
zstrm_p->next_out = reinterpret_cast< decltype(zstrm_p->next_out) >(out_buff);
|
||||
zstrm_p->avail_out = buff_size;
|
||||
zstrm_p->avail_out = (uInt)buff_size;
|
||||
int ret = deflate(zstrm_p, flush);
|
||||
if (ret != Z_OK && ret != Z_STREAM_END && ret != Z_BUF_ERROR) throw Exception(zstrm_p, ret);
|
||||
std::streamsize sz = sbuf_p->sputn(out_buff, reinterpret_cast< decltype(out_buff) >(zstrm_p->next_out) - out_buff);
|
||||
@ -283,7 +283,7 @@ public:
|
||||
virtual std::streambuf::int_type overflow(std::streambuf::int_type c = traits_type::eof())
|
||||
{
|
||||
zstrm_p->next_in = reinterpret_cast< decltype(zstrm_p->next_in) >(pbase());
|
||||
zstrm_p->avail_in = pptr() - pbase();
|
||||
zstrm_p->avail_in = (uInt)(pptr() - pbase());
|
||||
while (zstrm_p->avail_in > 0)
|
||||
{
|
||||
int r = deflate_loop(Z_NO_FLUSH);
|
||||
@ -294,7 +294,7 @@ public:
|
||||
}
|
||||
}
|
||||
setp(in_buff, in_buff + buff_size);
|
||||
return traits_type::eq_int_type(c, traits_type::eof()) ? traits_type::eof() : sputc(c);
|
||||
return traits_type::eq_int_type((char)c, traits_type::eof()) ? traits_type::eof() : sputc((char)c);
|
||||
}
|
||||
virtual int sync()
|
||||
{
|
||||
|
@ -58,6 +58,7 @@ add_library(marian STATIC
|
||||
|
||||
models/model_factory.cpp
|
||||
models/encoder_decoder.cpp
|
||||
models/transformer_stub.cpp
|
||||
|
||||
rescorer/score_collector.cpp
|
||||
|
||||
|
@ -17,7 +17,7 @@ int main(int argc, char **argv) {
|
||||
|
||||
// Initialize web server
|
||||
WSServer server;
|
||||
server.config.port = options->get<size_t>("port", 8080);
|
||||
server.config.port = (short)options->get<size_t>("port", 8080);
|
||||
|
||||
auto &translate = server.endpoint["^/translate/?$"];
|
||||
|
||||
|
@ -4,18 +4,14 @@
|
||||
#include "common/logging.h"
|
||||
#include "common/definitions.h"
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wsuggest-override"
|
||||
#include "3rd_party/zstr/zstr.hpp"
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
#ifdef _GNUC_
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wsuggest-override"
|
||||
#endif
|
||||
#include "3rd_party/zstr/zstr.hpp"
|
||||
#include <boost/iostreams/device/file_descriptor.hpp>
|
||||
#include <boost/iostreams/stream_buffer.hpp>
|
||||
#ifdef _GNUC_
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
@ -183,8 +179,8 @@ public:
|
||||
|
||||
void setbufsize(size_t size) const {
|
||||
istream_->rdbuf()->pubsetbuf(0, 0);
|
||||
readBuf_.reset(new char[size]);
|
||||
istream_->rdbuf()->pubsetbuf(readBuf_.get(), 0);
|
||||
readBuf_.resize(size);
|
||||
istream_->rdbuf()->pubsetbuf(readBuf_.data(), readBuf_.size());
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
@ -208,9 +204,10 @@ private:
|
||||
std::unique_ptr<std::istream> istream_;
|
||||
|
||||
boost::iostreams::file_descriptor_source fds_;
|
||||
mutable std::vector<char> readBuf_; // for setbuf()
|
||||
std::unique_ptr<boost::iostreams::stream_buffer<boost::iostreams::file_descriptor_source>> fdsBuffer_;
|
||||
|
||||
mutable UPtr<char[]> readBuf_; // for setbuf()
|
||||
|
||||
};
|
||||
|
||||
// wrapper around std::getline() that handles Windows input files with extra CR
|
||||
@ -303,6 +300,7 @@ private:
|
||||
marian::filesystem::Path file_;
|
||||
std::unique_ptr<std::ostream> ostream_;
|
||||
|
||||
|
||||
boost::iostreams::file_descriptor_sink fds_;
|
||||
std::unique_ptr<boost::iostreams::stream_buffer<boost::iostreams::file_descriptor_sink>> fdsBuffer_;
|
||||
};
|
||||
|
@ -7,11 +7,17 @@
|
||||
// @TODO: go back to canonical names for functions and objects
|
||||
// as specified in C++17 so it becomes easy to move in the future
|
||||
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wsuggest-override"
|
||||
#endif
|
||||
|
||||
#include "3rd_party/pathie-cpp/include/path.hpp"
|
||||
#include "3rd_party/pathie-cpp/include/errors.hpp"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
namespace marian {
|
||||
namespace filesystem {
|
||||
|
@ -21,7 +21,7 @@ namespace marian {
|
||||
namespace timer {
|
||||
|
||||
// Helper function to get the current date and time
|
||||
static std::string currentDate() {
|
||||
static inline std::string currentDate() {
|
||||
std::time_t now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
|
||||
char date[100] = {0};
|
||||
std::strftime(date, sizeof(date), "%F %X %z", std::localtime(&now));
|
||||
|
@ -82,7 +82,7 @@ CorpusBase::CorpusBase(Ptr<Options> options, bool translate)
|
||||
for(size_t i = 0; i < paths_.size(); ++i) {
|
||||
Ptr<Vocab> vocab = New<Vocab>(options_, i);
|
||||
std::vector<std::string> trainPaths = { paths_[i] };
|
||||
int vocSize = vocab->loadOrCreate("", trainPaths, maxVocabs[i]);
|
||||
size_t vocSize = vocab->loadOrCreate("", trainPaths, maxVocabs[i]);
|
||||
// TODO: this is not nice as it modifies the option object and needs to expose the changes
|
||||
// outside the corpus as models need to know about the vocabulary size; extract the vocab
|
||||
// creation functionality from the class.
|
||||
@ -119,7 +119,7 @@ CorpusBase::CorpusBase(Ptr<Options> options, bool translate)
|
||||
// it wild not be created again, but just correctly loaded.
|
||||
auto pathsAndSize = groupVocab[vocabPaths[i]];
|
||||
std::vector<std::string> groupedPaths(pathsAndSize.paths.begin(), pathsAndSize.paths.end());
|
||||
int vocSize = vocab->loadOrCreate(vocabPaths[i], groupedPaths, pathsAndSize.size);
|
||||
size_t vocSize = vocab->loadOrCreate(vocabPaths[i], groupedPaths, pathsAndSize.size);
|
||||
|
||||
// TODO: this is not nice as it modifies the option object and needs to expose the changes
|
||||
// outside the corpus as models need to know about the vocabulary size; extract the vocab
|
||||
@ -140,7 +140,7 @@ CorpusBase::CorpusBase(Ptr<Options> options, bool translate)
|
||||
|
||||
for(size_t i = 0; i + 1 < vocabPaths.size(); ++i) {
|
||||
Ptr<Vocab> vocab = New<Vocab>(options_, i);
|
||||
int vocSize = vocab->load(vocabPaths[i], maxVocabs[i]);
|
||||
size_t vocSize = vocab->load(vocabPaths[i], maxVocabs[i]);
|
||||
options_->getYaml()["dim-vocabs"][i] = vocSize;
|
||||
|
||||
vocabs_.emplace_back(vocab);
|
||||
|
@ -82,7 +82,7 @@ public:
|
||||
return id2str_.size();
|
||||
}
|
||||
|
||||
int load(const std::string& vocabPath, int max) override {
|
||||
size_t load(const std::string& vocabPath, size_t maxSize) override {
|
||||
bool isJson = regex::regex_search(vocabPath, regex::regex("\\.(json|yaml|yml)$"));
|
||||
LOG(info,
|
||||
"[data] Loading vocabulary from {} file {}",
|
||||
@ -120,7 +120,7 @@ public:
|
||||
auto id = pair.second;
|
||||
|
||||
// note: this requires ids to be sorted by frequency
|
||||
if(!max || id < (Word)max) {
|
||||
if(!maxSize || id < (Word)maxSize) {
|
||||
insertWord(id, str);
|
||||
}
|
||||
}
|
||||
@ -174,7 +174,7 @@ public:
|
||||
requireWord(DEFAULT_EOS_ID, DEFAULT_EOS_STR);
|
||||
}
|
||||
|
||||
return std::max((int)id2str_.size(), max);
|
||||
return std::max(id2str_.size(), maxSize);
|
||||
}
|
||||
|
||||
// for fakeBatch()
|
||||
|
@ -111,7 +111,7 @@ private:
|
||||
|
||||
public:
|
||||
SentencePieceVocab(Ptr<Options> options, size_t batchIndex)
|
||||
: options_(options), batchIndex_(batchIndex), generator_(Config::seed) {
|
||||
: options_(options), batchIndex_(batchIndex), generator_((uint32_t)Config::seed) {
|
||||
|
||||
if(options_->has("sentencepiece-alphas")) {
|
||||
auto alphas = options_->get<std::vector<float>>("sentencepiece-alphas");
|
||||
@ -232,7 +232,7 @@ public:
|
||||
return spm_->GetPieceSize();
|
||||
}
|
||||
|
||||
int load(const std::string& vocabPath, int /*max*/) override {
|
||||
size_t load(const std::string& vocabPath, size_t /*maxSize*/) override {
|
||||
LOG(info, "[data] Loading SentencePiece vocabulary from file {}", vocabPath);
|
||||
|
||||
ABORT_IF(!filesystem::exists(vocabPath),
|
||||
|
@ -12,7 +12,7 @@ Ptr<VocabBase> createVocab(const std::string& vocabPath, Ptr<Options> options, s
|
||||
return vocab ? vocab : createDefaultVocab();
|
||||
}
|
||||
|
||||
int Vocab::loadOrCreate(const std::string& vocabPath,
|
||||
size_t Vocab::loadOrCreate(const std::string& vocabPath,
|
||||
const std::vector<std::string>& trainPaths,
|
||||
size_t maxSize) {
|
||||
size_t size = 0;
|
||||
@ -49,13 +49,13 @@ int Vocab::loadOrCreate(const std::string& vocabPath,
|
||||
size = load(vocabPath, maxSize);
|
||||
}
|
||||
LOG(info, "[data] Setting vocabulary size for input {} to {}", batchIndex_, size);
|
||||
return (int)size;
|
||||
return size;
|
||||
}
|
||||
|
||||
int Vocab::load(const std::string& vocabPath, size_t maxSize) {
|
||||
size_t Vocab::load(const std::string& vocabPath, size_t maxSize) {
|
||||
if(!vImpl_)
|
||||
vImpl_ = createVocab(vocabPath, options_, batchIndex_);
|
||||
return vImpl_->load(vocabPath, maxSize);
|
||||
return vImpl_->load(vocabPath, (int)maxSize);
|
||||
}
|
||||
|
||||
void Vocab::create(const std::string& vocabPath,
|
||||
|
@ -25,11 +25,11 @@ public:
|
||||
Vocab(Ptr<Options> options, size_t batchIndex)
|
||||
: options_(options), batchIndex_(batchIndex) {}
|
||||
|
||||
int loadOrCreate(const std::string& vocabPath,
|
||||
const std::vector<std::string>& trainPaths,
|
||||
size_t maxSize = 0);
|
||||
size_t loadOrCreate(const std::string& vocabPath,
|
||||
const std::vector<std::string>& trainPaths,
|
||||
size_t maxSize = 0);
|
||||
|
||||
int load(const std::string& vocabPath, size_t maxSize = 0);
|
||||
size_t load(const std::string& vocabPath, size_t maxSize = 0);
|
||||
|
||||
void create(const std::string& vocabPath,
|
||||
const std::vector<std::string>& trainPaths,
|
||||
|
@ -9,7 +9,7 @@ namespace marian {
|
||||
|
||||
class VocabBase {
|
||||
public:
|
||||
virtual int load(const std::string& vocabPath, int max = 0) = 0;
|
||||
virtual size_t load(const std::string& vocabPath, size_t maxSize = 0) = 0;
|
||||
|
||||
virtual void create(const std::string& vocabPath,
|
||||
const std::vector<std::string>& trainPaths,
|
||||
@ -19,10 +19,10 @@ public:
|
||||
virtual const std::string& canonicalExtension() const = 0;
|
||||
virtual const std::vector<std::string>& suffixes() const = 0;
|
||||
|
||||
int findAndLoad(const std::string& path, int max) {
|
||||
size_t findAndLoad(const std::string& path, size_t maxSize) {
|
||||
for(auto suffix : suffixes())
|
||||
if(filesystem::exists(path + suffix))
|
||||
return load(path + suffix, max);
|
||||
return load(path + suffix, maxSize);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ public:
|
||||
ioItems.emplace_back();
|
||||
ioItems.back().name = "decoder_c_tt";
|
||||
ioItems.back().shape = Shape({1, 0});
|
||||
ioItems.back().bytes.emplace_back(0);
|
||||
ioItems.back().bytes.emplace_back((char)0);
|
||||
|
||||
io::addMetaToItems(getModelParametersAsString(), "special:model.yml", ioItems);
|
||||
io::saveItems(name, ioItems);
|
||||
|
@ -69,7 +69,7 @@ public:
|
||||
ioItems.emplace_back();
|
||||
ioItems.back().name = "decoder_c_tt";
|
||||
ioItems.back().shape = Shape({1, 0});
|
||||
ioItems.back().bytes.emplace_back(0);
|
||||
ioItems.back().bytes.emplace_back((char)0);
|
||||
|
||||
io::addMetaToItems(getModelParametersAsString(), "special:model.yml", ioItems);
|
||||
io::saveItems(name, ioItems);
|
||||
|
@ -12,7 +12,3 @@ namespace marian {
|
||||
Ptr<EncoderBase> NewEncoderTransformer(Ptr<Options> options);
|
||||
Ptr<DecoderBase> NewDecoderTransformer(Ptr<Options> options);
|
||||
} // namespace marian
|
||||
|
||||
#ifndef _MSC_VER
|
||||
#include "models/transformer.h"
|
||||
#endif
|
||||
|
4
src/models/transformer_stub.cpp
Normal file
4
src/models/transformer_stub.cpp
Normal file
@ -0,0 +1,4 @@
|
||||
// TODO: This is a wrapper around transformer.h. We kept the .H name to minimize confusing git, until this is code-reviewed.
|
||||
// This is meant to speed-up builds, and to support Ctrl-F7 to rebuild.
|
||||
|
||||
#include "models/transformer.h"
|
@ -22,13 +22,19 @@ Device::~Device() {
|
||||
// Should generate a runtime error otherwise as we have a check in the AVX512
|
||||
// functions which tests for alignment.
|
||||
#ifdef _WIN32
|
||||
#define MALLOC(size) _aligned_alloc(size, alignment_)
|
||||
#define MALLOC(size) _aligned_malloc(size, alignment_)
|
||||
#elif __GNUC__
|
||||
#define MALLOC(size) aligned_alloc(alignment_, size)
|
||||
#else
|
||||
#define MALLOC(size) malloc(size)
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#define FREE(ptr) _aligned_free(ptr)
|
||||
#else
|
||||
#define FREE(ptr) free(ptr)
|
||||
#endif
|
||||
|
||||
void Device::reserve(size_t size) {
|
||||
size = align(size);
|
||||
ABORT_IF(size < size_ || size == 0,
|
||||
@ -37,7 +43,7 @@ void Device::reserve(size_t size) {
|
||||
if(data_) {
|
||||
uint8_t *temp = static_cast<uint8_t*>(MALLOC(size));
|
||||
std::copy(data_, data_ + size_, temp);
|
||||
free(data_);
|
||||
FREE(data_);
|
||||
data_ = temp;
|
||||
} else {
|
||||
data_ = static_cast<uint8_t*>(MALLOC(size));
|
||||
|
@ -99,7 +99,8 @@ union IntAccess {
|
||||
* _mm512_sra_epi32(sum, shift16));
|
||||
*/
|
||||
inline void Convert32Sum(__m512i &sum) {
|
||||
sum = _mm512_madd_epi16(sum, _mm512_set1_epi16(1));
|
||||
short one = 1;
|
||||
sum = _mm512_madd_epi16(sum, _mm512_set1_epi16(one));
|
||||
}
|
||||
|
||||
// Two sum version.
|
||||
@ -114,7 +115,7 @@ inline ReducedPair Reduce16to32(__m512i sum1, __m512i sum2) {
|
||||
_mm512_unpacklo_epi32(sum1, sum2));
|
||||
// 1 2 1 2 1 2 1 2
|
||||
__m256i halves = _mm256_add_epi32(_mm512_castsi512_si256(pack12),
|
||||
_mm512_extracti64x4_epi64(pack12, 1));
|
||||
_mm512_extracti64x4_epi64(pack12, (short)1));
|
||||
// 1 2 1 2
|
||||
IntAccess a;
|
||||
a.as_n = _mm_add_epi32(_mm256_castsi256_si128(halves),
|
||||
@ -144,7 +145,7 @@ inline __m128i Reduce32(__m512i sum1,
|
||||
_mm512_unpacklo_epi64(pack12, pack34));
|
||||
// Cut the register into halves and sum those. 1 2 3 4 1 2 3 4
|
||||
__m256i halves = _mm256_add_epi32(_mm512_castsi512_si256(pack1234),
|
||||
_mm512_extracti64x4_epi64(pack1234, 1));
|
||||
_mm512_extracti64x4_epi64(pack1234, (short)1));
|
||||
// Again: cut the register into halves and sum those. 1 2 3 4
|
||||
return _mm_add_epi32(_mm256_castsi256_si128(halves),
|
||||
_mm256_extracti128_si256(halves, 1));
|
||||
@ -175,14 +176,14 @@ inline int32_t Reduce32(__m256i halves) {
|
||||
inline int32_t Reduce32(__m512i sum1) {
|
||||
// Fold register over itself.
|
||||
return Reduce32(_mm256_add_epi32(_mm512_castsi512_si256(sum1),
|
||||
_mm512_extracti64x4_epi64(sum1, 1)));
|
||||
_mm512_extracti64x4_epi64(sum1, (short)1)));
|
||||
}
|
||||
|
||||
inline int32_t Reduce16to32(__m512i sum1) {
|
||||
Convert32Sum(sum1);
|
||||
// Fold register over itself.
|
||||
return Reduce32(_mm256_add_epi32(_mm512_castsi512_si256(sum1),
|
||||
_mm512_extracti64x4_epi64(sum1, 1)));
|
||||
_mm512_extracti64x4_epi64(sum1, (short)1)));
|
||||
}
|
||||
|
||||
class ScatterPut {
|
||||
@ -204,7 +205,7 @@ public:
|
||||
float_sums = _mm_mul_ps(float_sums, unquant_mult_sse_);
|
||||
#ifdef __AVX512VL__
|
||||
// The scatter instruction requires avx512vl
|
||||
_mm_i32scatter_ps(base, num_b_rows_scatter_, float_sums, 1);
|
||||
_mm_i32scatter_ps(base, num_b_rows_scatter_, float_sums, (short)1);
|
||||
#else
|
||||
FloatAccess a;
|
||||
// Get floats for each of the sums to write.
|
||||
@ -398,6 +399,7 @@ inline void Accum(const __m512i zeros,
|
||||
// Choosing to approximate and do adds.
|
||||
// Perhaps every so often we could accumulate by Convert32Sum
|
||||
sum = _mm512_adds_epi16(sum, multiplied);
|
||||
b; // make compiler happy
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
@ -73,7 +73,7 @@ void Quantize8(marian::Tensor out,
|
||||
const marian::Tensor in,
|
||||
float clipValue) {
|
||||
#ifdef __AVX512F__
|
||||
float quant_mult = 127.0 / clipValue;
|
||||
float quant_mult = 127.0f / clipValue;
|
||||
AVX_Quantize8(
|
||||
in->data(), out->data<int8_t>(), quant_mult, in->shape().elements());
|
||||
#else
|
||||
@ -165,8 +165,8 @@ void ProdInt8(marian::Tensor C,
|
||||
#ifdef __AVX512F__
|
||||
// This would be easy...
|
||||
ABORT_IF(scale != 1, "Scale other than 1 not supported");
|
||||
float quant_mult = 127.0 / clipValue;
|
||||
float unquant_mult = 1.0 / (quant_mult * quant_mult);
|
||||
float quant_mult = 127.0f / clipValue;
|
||||
float unquant_mult = 1.0f / (quant_mult * quant_mult);
|
||||
|
||||
float* fC = C->data();
|
||||
int num_A_rows = A->shape().elements() / A->shape()[-1];
|
||||
|
@ -327,11 +327,7 @@ CUDNNWrapper::CUDNNWrapper() {
|
||||
"-DUSE_CUDNN=on)");
|
||||
}
|
||||
|
||||
CUDNNWrapper::~CUDNNWrapper() {
|
||||
ABORT(
|
||||
"To use convolution and pooling, recompile with CUDNN (cmake flag "
|
||||
"-DUSE_CUDNN=on)");
|
||||
}
|
||||
CUDNNWrapper::~CUDNNWrapper() {}
|
||||
|
||||
ConvolutionWrapper::ConvolutionWrapper(const Shape&,
|
||||
const Shape&,
|
||||
@ -367,11 +363,7 @@ void ConvolutionWrapper::backward(Tensor,
|
||||
"-DUSE_CUDNN=on)");
|
||||
}
|
||||
|
||||
ConvolutionWrapper::~ConvolutionWrapper() {
|
||||
ABORT(
|
||||
"To use convolution and pooling, recompile with CUDNN (cmake flag "
|
||||
"-DUSE_CUDNN=on)");
|
||||
}
|
||||
ConvolutionWrapper::~ConvolutionWrapper() {}
|
||||
|
||||
PoolingWrapper::PoolingWrapper(int, int, int, int, int, int, std::string) {
|
||||
ABORT(
|
||||
@ -397,11 +389,7 @@ void PoolingWrapper::backward(Tensor, Tensor, Tensor, Tensor) {
|
||||
"-DUSE_CUDNN=on)");
|
||||
}
|
||||
|
||||
PoolingWrapper::~PoolingWrapper() {
|
||||
ABORT(
|
||||
"To use convolution and pooling, recompile with CUDNN (cmake flag "
|
||||
"-DUSE_CUDNN=on)");
|
||||
}
|
||||
PoolingWrapper::~PoolingWrapper() {}
|
||||
|
||||
#endif
|
||||
} // namespace marian
|
||||
|
@ -71,7 +71,7 @@ void StdlibRandomGenerator::normal(Tensor tensor, float mean, float stddev) {
|
||||
CurandRandomGenerator::CurandRandomGenerator(size_t seed, DeviceId deviceId)
|
||||
: RandomGenerator(seed), deviceId_(deviceId) {
|
||||
if(deviceId_.type == DeviceType::gpu) {
|
||||
cudaSetDevice(deviceId_.no);
|
||||
cudaSetDevice((int)deviceId_.no);
|
||||
CURAND_CHECK(curandCreateGenerator(&generator_, CURAND_RNG_PSEUDO_DEFAULT));
|
||||
}
|
||||
else {
|
||||
@ -82,7 +82,7 @@ CurandRandomGenerator::CurandRandomGenerator(size_t seed, DeviceId deviceId)
|
||||
|
||||
CurandRandomGenerator::~CurandRandomGenerator() {
|
||||
if(deviceId_.type == DeviceType::gpu)
|
||||
cudaSetDevice(deviceId_.no);
|
||||
cudaSetDevice((int)deviceId_.no);
|
||||
CURAND_CHECK(curandDestroyGenerator(generator_));
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,7 @@ public:
|
||||
request<T>(),
|
||||
type_);
|
||||
|
||||
T temp;
|
||||
T temp = 0;
|
||||
if(backend_->getDeviceId().type == DeviceType::cpu) {
|
||||
std::copy(data<T>() + i, data<T>() + i + 1, &temp);
|
||||
}
|
||||
|
@ -240,7 +240,7 @@ void MultiNodeGraphGroup::launchServerThread() {
|
||||
#if CUDA_FOUND
|
||||
serverShardThread_ = new std::thread([this] {
|
||||
// keep track of number of nodes still communicating with this shard
|
||||
int nCommunicatingNodes = mpi_->numMPIProcesses();
|
||||
int nCommunicatingNodes = (int)mpi_->numMPIProcesses();
|
||||
MPI_Status status;
|
||||
do {
|
||||
// Receive grads from any client
|
||||
@ -401,7 +401,7 @@ void MultiNodeGraphGroup::synchronizeWithServerShards(Tensor newGrads,
|
||||
using namespace functional;
|
||||
Element(_1 += _2, accGradients[node], accGradientBuffer[node]);
|
||||
// Accumulate total batch word
|
||||
totalBatchWords[node] += batchWords;
|
||||
totalBatchWords[node] += (int)batchWords;
|
||||
delay_count[node]++;
|
||||
|
||||
if(delay_count[node] < tau_)
|
||||
@ -461,8 +461,8 @@ void MultiNodeGraphGroup::synchronizeWithServerShards(Tensor newGrads,
|
||||
size_t localOffset = offset;
|
||||
std::vector<std::thread> threads;
|
||||
|
||||
for(int gpu = 0; gpu < devices_.size(); gpu++) {
|
||||
size_t gpuSize = shardSizes_[gpu];
|
||||
for(int gpui = 0; gpui < devices_.size(); gpui++) {
|
||||
size_t gpuSize = shardSizes_[gpui];
|
||||
|
||||
threads.emplace_back(std::thread(
|
||||
[=](int gpu, size_t offset, size_t size) {
|
||||
@ -477,7 +477,7 @@ void MultiNodeGraphGroup::synchronizeWithServerShards(Tensor newGrads,
|
||||
// Copy params back to current GPU
|
||||
oldParams->subtensor(offset, size)->copyFrom(shardParams_[gpu]);
|
||||
},
|
||||
gpu,
|
||||
gpui,
|
||||
localOffset,
|
||||
gpuSize));
|
||||
|
||||
|
@ -17,6 +17,6 @@ if "%BUILD_ROOT%"=="" set BUILD_ROOT=%ROOT%build
|
||||
call CreateVSProjects.bat %BUILD_ROOT%
|
||||
if errorlevel 1 exit /b 1
|
||||
|
||||
cmake --build %BUILD_ROOT% --config Release
|
||||
cmake --build %BUILD_ROOT% --config Release
|
||||
|
||||
exit /b 0
|
112
vs/CheckDeps.bat
112
vs/CheckDeps.bat
@ -2,8 +2,8 @@
|
||||
:: Usage: CheckDeps.bat
|
||||
::
|
||||
:: This script is used to verify that all the dependencies required to build Marian are available.
|
||||
:: The Cuda SDK, the CuDNN library and the Intel MKL must be installed beforehand by the user.
|
||||
:: The Boost, zlib and OpenSSH libraries, if not found, will be installed by this script using vcpkg
|
||||
:: The Cuda SDK and the Intel MKL must be installed beforehand by the user.
|
||||
:: The Boost and OpenSSH libraries, if not found, will be installed by this script using vcpkg
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
@ -27,7 +27,6 @@ set ROOT=%~dp0
|
||||
::----------------------------------------------------------------------------------------------
|
||||
::set BOOST_INCLUDEDIR=
|
||||
::set BOOST_LIBRARYDIR=
|
||||
::set ZLIB_ROOT=
|
||||
::set OPENSSL_ROOT_DIR=
|
||||
|
||||
|
||||
@ -44,7 +43,6 @@ set ROOT=%~dp0
|
||||
|
||||
|
||||
if "%BOOST_INCLUDEDIR%" == "" goto :needVcPkg
|
||||
if "%ZLIB_ROOT%" == "" goto :needVcPkg
|
||||
if "%OPENSSL_ROOT_DIR%" == "" goto :needVcPkg
|
||||
|
||||
goto :checkDeps
|
||||
@ -111,42 +109,11 @@ set CMAKE_OPT=
|
||||
echo.
|
||||
echo ... CUDA
|
||||
if "%CUDA_PATH%"=="" (
|
||||
echo The CUDA_PATH environment variable is not defined: please make sure CUDA 8.0+ is installed.
|
||||
exit /b 1
|
||||
echo The CUDA_PATH environment variable is not defined: this will compile only the CPU version.
|
||||
)
|
||||
if not exist "%CUDA_PATH%" (
|
||||
echo CUDA_PATH is set to a non existing path:
|
||||
echo %CUDA_PATH%
|
||||
echo Please make sure CUDA 8.0+ is properly installed.
|
||||
exit /b 1
|
||||
else (
|
||||
echo Found Cuda SDK in %CUDA_PATH%
|
||||
)
|
||||
if not exist "%CUDA_PATH%\include\cuda.h" (
|
||||
echo CUDA header files were not found in this folder:
|
||||
echo "%CUDA_PATH%"
|
||||
echo Please make sure CUDA 8.0+ is properly installed.
|
||||
exit /b 1
|
||||
)
|
||||
if not exist "%CUDA_PATH%\lib\x64\cuda.lib" (
|
||||
echo CUDA library files were not found in this folder:
|
||||
echo "%CUDA_PATH%"
|
||||
echo Please make sure CUDA 8.0+ is properly installed.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo Found Cuda SDK in %CUDA_PATH%
|
||||
|
||||
|
||||
:: -------------------------
|
||||
:: CuDNN is installed manually into CUDA directories.
|
||||
echo.
|
||||
echo ... CUDNN
|
||||
if not exist "%CUDA_PATH%\lib\x64\cudnn.lib" (
|
||||
echo The CuDNN library was not found. Please make sure it is installed correctly in your CUDA setup.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo Found CuDNN library in %CUDA_PATH%\lib\x64
|
||||
|
||||
|
||||
:: -------------------------
|
||||
:: The MKL setup does not set any environment variable to the installation path.
|
||||
@ -179,7 +146,6 @@ if not exist "%MKLROOT%\lib\intel64\mkl_core.lib" (
|
||||
|
||||
echo Found Intel MKL library in %MKLROOT%
|
||||
|
||||
|
||||
:: -------------------------
|
||||
:: BOOST_INCLUDEDIR and BOOST_LIBRARYDIR can be both set to an existing Boost installation.
|
||||
:: If not, we use vcpkg to install the required Boost packages
|
||||
@ -220,41 +186,6 @@ if not exist "%BOOST_LIBRARYDIR%\boost_*.lib" (
|
||||
|
||||
echo Found Boost headers in "%BOOST_INCLUDEDIR%" and libs in "%BOOST_LIBRARYDIR%"
|
||||
|
||||
|
||||
:: -------------------------
|
||||
:: ZLIB_ROOT can be set to an existing zlib installation.
|
||||
:: If not, we use vcpkg to install the library
|
||||
::
|
||||
echo.
|
||||
echo ... zlib
|
||||
if "%ZLIB_ROOT%"=="" (
|
||||
%VCPKG% install zlib
|
||||
set ZLIB_ROOT=%VCPKG_INSTALL%
|
||||
)
|
||||
|
||||
if not exist "%ZLIB_ROOT%" (
|
||||
echo ZLIB_ROOT is set to a non existing path:
|
||||
echo "%ZLIB_ROOT%"
|
||||
echo Please set ZLIB_ROOT to the installation path of the zlib library.
|
||||
exit /b 1
|
||||
)
|
||||
if not exist "%ZLIB_ROOT%\include\zlib.h" (
|
||||
echo zlib header files were not found in this folder:
|
||||
echo "%ZLIB_ROOT%"
|
||||
echo Please make sure zlib is correctly installed.
|
||||
exit /b 1
|
||||
)
|
||||
if not exist "%ZLIB_ROOT%\lib\zlib.lib" (
|
||||
echo zlib library file were not found in this folder:
|
||||
echo "%ZLIB_ROOT%"
|
||||
echo Please make sure zlib is correctly installed.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo Found zlib library in "%ZLIB_ROOT%"
|
||||
|
||||
|
||||
|
||||
:: -------------------------
|
||||
:: OPENSSL_ROOT_DIR can be set to an existing OpenSSL installation.
|
||||
:: If not, we use vcpkg to install the library
|
||||
@ -266,27 +197,20 @@ if "%OPENSSL_ROOT_DIR%"=="" (
|
||||
set OPENSSL_ROOT_DIR=%VCPKG_INSTALL%
|
||||
)
|
||||
|
||||
if not exist "%OPENSSL_ROOT_DIR%" (
|
||||
echo OPENSSL_ROOT_DIR is set to a non existing path:
|
||||
echo "%OPENSSL_ROOT_DIR%"
|
||||
echo Please set OPENSSL_ROOT_DIR to the installation path of the OpenSLL library.
|
||||
exit /b 1
|
||||
)
|
||||
if not exist "%OPENSSL_ROOT_DIR%\include\openssl\opensslv.h" (
|
||||
echo OpenSSL header files were not found in this folder:
|
||||
echo "%OPENSSL_ROOT_DIR%"
|
||||
echo Please make sure OpenSSL is correctly installed.
|
||||
exit /b 1
|
||||
)
|
||||
if not exist "%OPENSSL_ROOT_DIR%\lib\ssleay32.lib" (
|
||||
echo OpenSSL library file were not found in this folder:
|
||||
echo "%OPENSSL_ROOT_DIR%"
|
||||
echo Please make sure OpenSSL is correctly installed.
|
||||
exit /b 1
|
||||
if not exist "%VCPKG_INSTALL%/bin/protoc.exe" (
|
||||
mkdir build
|
||||
cd build
|
||||
git clone https://github.com/protocolbuffers/protobuf
|
||||
cd protobuf
|
||||
git checkout v3.6.1
|
||||
cd cmake
|
||||
cmake . -A x64 -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=%VCPKG_INSTALL%
|
||||
cmake --build . --config Release --target install
|
||||
cd ..\..\..
|
||||
|
||||
)
|
||||
|
||||
echo Found OpenSSL library in "%OPENSSL_ROOT_DIR%"
|
||||
|
||||
set CMAKE_PREFIX_PATH=%VCPKG_INSTALL%
|
||||
|
||||
echo.
|
||||
echo.
|
||||
@ -296,8 +220,8 @@ echo MKLROOT ^| %MKLROOT%
|
||||
echo VCPKG_ROOT ^| %VCPKG_ROOT%
|
||||
echo BOOST_INCLUDEDIR ^| %BOOST_INCLUDEDIR%
|
||||
echo BOOST_LIBRARYDIR ^| %BOOST_LIBRARYDIR%
|
||||
echo ZLIB_ROOT ^| %ZLIB_ROOT%
|
||||
echo OPENSSL_ROOT_DIR ^| %OPENSSL_ROOT_DIR%
|
||||
echo CMAKE_PREFIX_PATH ^| %CMAKE_PREFIX_PATH%
|
||||
echo --------------------------------------------------
|
||||
echo.
|
||||
echo.
|
||||
|
@ -45,15 +45,20 @@ set CMAKE_OPT=%CMAKE_OPT% -G %GENERATOR_TARGET%
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D CMAKE_POLICY_DEFAULT_CMP0074=NEW
|
||||
|
||||
:: ----- Disable some tool build -----
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D COMPILE_SERVER:BOOL=TRUE
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D COMPILE_EXAMPLES:BOOL=FALSE
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D COMPILE_TESTS:BOOL=FALSE
|
||||
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D COMPILE_CPU:BOOL=TRUE
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D COMPILE_CUDA:BOOL=TRUE
|
||||
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D USE_CUDNN:BOOL=TRUE
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D USE_MPI:BOOL=FALSE
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D USE_CUDNN:BOOL=FALSE
|
||||
|
||||
:: ----- Enable certain options -----
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D COMPILE_SERVER:BOOL=TRUE
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D COMPILE_CPU:BOOL=TRUE
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D COMPILE_CUDA:BOOL=TRUE
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D USE_SENTENCEPIECE:BOOL=ON
|
||||
|
||||
:: ----- Not supported on Windows yet -----
|
||||
set CMAKE_OPT=%CMAKE_OPT% -D USE_NCCL:BOOL=FALSE
|
||||
|
||||
|
||||
echo.
|
||||
echo.
|
||||
|
376
vs/Marian.sln
376
vs/Marian.sln
@ -1,25 +1,377 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.27703.2047
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Marian", "Marian.vcxproj", "{E2F320FE-0C01-4C80-810C-3A92205A29DC}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ALL_BUILD", "ALL_BUILD.vcxproj", "{5216F769-E887-369E-AD1E-D6A1F69E834E}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{17E8F84B-76CD-326B-B50A-C4F3C3A8CE33} = {17E8F84B-76CD-326B-B50A-C4F3C3A8CE33}
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{5AF43E07-5917-3D8F-9BF0-B41F698242EA} = {5AF43E07-5917-3D8F-9BF0-B41F698242EA}
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4} = {885D3D2B-7278-30EF-BB1B-50E83D1635C4}
|
||||
{3CD61EAE-244E-33AB-8C7D-F5182481E033} = {3CD61EAE-244E-33AB-8C7D-F5182481E033}
|
||||
{97131187-E592-3981-886F-222EE20FB669} = {97131187-E592-3981-886F-222EE20FB669}
|
||||
{25A05D30-AFC2-3F0E-B475-0B2B81530151} = {25A05D30-AFC2-3F0E-B475-0B2B81530151}
|
||||
{8A6B1F60-8E2D-3171-828B-07E732C8E7D7} = {8A6B1F60-8E2D-3171-828B-07E732C8E7D7}
|
||||
{3784D69C-33A9-33A7-A557-F809EF2F4D34} = {3784D69C-33A9-33A7-A557-F809EF2F4D34}
|
||||
{EA3973A2-F92E-3124-9817-81B2458EC8DC} = {EA3973A2-F92E-3124-9817-81B2458EC8DC}
|
||||
{36953645-6D01-37E4-ACF7-D3F9BFFCA49D} = {36953645-6D01-37E4-ACF7-D3F9BFFCA49D}
|
||||
{F4AD2C38-E6B9-3C4A-A281-4AB7440D6162} = {F4AD2C38-E6B9-3C4A-A281-4AB7440D6162}
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337} = {D9D20410-4011-370C-8E15-A6F5C311F337}
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678} = {4A20AD5F-7334-31D3-B31D-9AAF53CC6678}
|
||||
{5857EF98-C87F-3197-A399-F0F9A20913FC} = {5857EF98-C87F-3197-A399-F0F9A20913FC}
|
||||
{F6E7B14E-D9E6-343C-B58D-CA0381A3BB8F} = {F6E7B14E-D9E6-343C-B58D-CA0381A3BB8F}
|
||||
{FBB107B9-523B-3094-95CF-A103E2388006} = {FBB107B9-523B-3094-95CF-A103E2388006}
|
||||
{5B4A6D26-C638-3350-9E1A-0F987C448DEC} = {5B4A6D26-C638-3350-9E1A-0F987C448DEC}
|
||||
{11AB9AE9-CF65-341B-B425-9EDFC4E2F22F} = {11AB9AE9-CF65-341B-B425-9EDFC4E2F22F}
|
||||
{1134F859-3DE4-34B1-924F-82CA38D4D4F3} = {1134F859-3DE4-34B1-924F-82CA38D4D4F3}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "INSTALL", "INSTALL.vcxproj", "{9DAF8CA3-052E-3480-A332-34676CAE852B}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{5216F769-E887-369E-AD1E-D6A1F69E834E} = {5216F769-E887-369E-AD1E-D6A1F69E834E}
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PACKAGE", "PACKAGE.vcxproj", "{3A3C6EA5-65CD-324E-90F4-6B4D70DD5A37}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{5216F769-E887-369E-AD1E-D6A1F69E834E} = {5216F769-E887-369E-AD1E-D6A1F69E834E}
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLiteCpp", "src\3rd_party\SQLiteCpp\SQLiteCpp.vcxproj", "{17E8F84B-76CD-326B-B50A-C4F3C3A8CE33}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZERO_CHECK", "ZERO_CHECK.vcxproj", "{806A44E1-15D4-3368-B0B9-2A6CC352D505}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libyaml-cpp", "src\3rd_party\yaml-cpp\libyaml-cpp.vcxproj", "{5AF43E07-5917-3D8F-9BF0-B41F698242EA}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "marian", "src\marian.vcxproj", "{885D3D2B-7278-30EF-BB1B-50E83D1635C4}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{17E8F84B-76CD-326B-B50A-C4F3C3A8CE33} = {17E8F84B-76CD-326B-B50A-C4F3C3A8CE33}
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{5AF43E07-5917-3D8F-9BF0-B41F698242EA} = {5AF43E07-5917-3D8F-9BF0-B41F698242EA}
|
||||
{55A27783-64A4-3AA7-A4B1-49C4B628F18C} = {55A27783-64A4-3AA7-A4B1-49C4B628F18C}
|
||||
{F4AD2C38-E6B9-3C4A-A281-4AB7440D6162} = {F4AD2C38-E6B9-3C4A-A281-4AB7440D6162}
|
||||
{1134F859-3DE4-34B1-924F-82CA38D4D4F3} = {1134F859-3DE4-34B1-924F-82CA38D4D4F3}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "marian_conv", "src\marian_conv.vcxproj", "{3CD61EAE-244E-33AB-8C7D-F5182481E033}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4} = {885D3D2B-7278-30EF-BB1B-50E83D1635C4}
|
||||
{97131187-E592-3981-886F-222EE20FB669} = {97131187-E592-3981-886F-222EE20FB669}
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337} = {D9D20410-4011-370C-8E15-A6F5C311F337}
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678} = {4A20AD5F-7334-31D3-B31D-9AAF53CC6678}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "marian_cuda", "src\marian_cuda.vcxproj", "{97131187-E592-3981-886F-222EE20FB669}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "marian_decoder", "src\marian_decoder.vcxproj", "{25A05D30-AFC2-3F0E-B475-0B2B81530151}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4} = {885D3D2B-7278-30EF-BB1B-50E83D1635C4}
|
||||
{97131187-E592-3981-886F-222EE20FB669} = {97131187-E592-3981-886F-222EE20FB669}
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337} = {D9D20410-4011-370C-8E15-A6F5C311F337}
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678} = {4A20AD5F-7334-31D3-B31D-9AAF53CC6678}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "marian_scorer", "src\marian_scorer.vcxproj", "{8A6B1F60-8E2D-3171-828B-07E732C8E7D7}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4} = {885D3D2B-7278-30EF-BB1B-50E83D1635C4}
|
||||
{97131187-E592-3981-886F-222EE20FB669} = {97131187-E592-3981-886F-222EE20FB669}
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337} = {D9D20410-4011-370C-8E15-A6F5C311F337}
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678} = {4A20AD5F-7334-31D3-B31D-9AAF53CC6678}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "marian_server", "src\marian_server.vcxproj", "{3784D69C-33A9-33A7-A557-F809EF2F4D34}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4} = {885D3D2B-7278-30EF-BB1B-50E83D1635C4}
|
||||
{97131187-E592-3981-886F-222EE20FB669} = {97131187-E592-3981-886F-222EE20FB669}
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337} = {D9D20410-4011-370C-8E15-A6F5C311F337}
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678} = {4A20AD5F-7334-31D3-B31D-9AAF53CC6678}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "marian_train", "src\marian_train.vcxproj", "{EA3973A2-F92E-3124-9817-81B2458EC8DC}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4} = {885D3D2B-7278-30EF-BB1B-50E83D1635C4}
|
||||
{97131187-E592-3981-886F-222EE20FB669} = {97131187-E592-3981-886F-222EE20FB669}
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337} = {D9D20410-4011-370C-8E15-A6F5C311F337}
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678} = {4A20AD5F-7334-31D3-B31D-9AAF53CC6678}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "marian_version", "src\marian_version.vcxproj", "{55A27783-64A4-3AA7-A4B1-49C4B628F18C}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "marian_vocab", "src\marian_vocab.vcxproj", "{36953645-6D01-37E4-ACF7-D3F9BFFCA49D}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4} = {885D3D2B-7278-30EF-BB1B-50E83D1635C4}
|
||||
{97131187-E592-3981-886F-222EE20FB669} = {97131187-E592-3981-886F-222EE20FB669}
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337} = {D9D20410-4011-370C-8E15-A6F5C311F337}
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678} = {4A20AD5F-7334-31D3-B31D-9AAF53CC6678}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pathie-cpp", "src\3rd_party\pathie-cpp\pathie-cpp.vcxproj", "{F4AD2C38-E6B9-3C4A-A281-4AB7440D6162}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sentencepiece-static", "src\3rd_party\sentencepiece\src\sentencepiece-static.vcxproj", "{D9D20410-4011-370C-8E15-A6F5C311F337}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sentencepiece_train-static", "src\3rd_party\sentencepiece\src\sentencepiece_train-static.vcxproj", "{4A20AD5F-7334-31D3-B31D-9AAF53CC6678}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spm_decode", "src\3rd_party\sentencepiece\src\spm_decode.vcxproj", "{5857EF98-C87F-3197-A399-F0F9A20913FC}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337} = {D9D20410-4011-370C-8E15-A6F5C311F337}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spm_encode", "src\3rd_party\sentencepiece\src\spm_encode.vcxproj", "{F6E7B14E-D9E6-343C-B58D-CA0381A3BB8F}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337} = {D9D20410-4011-370C-8E15-A6F5C311F337}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spm_export_vocab", "src\3rd_party\sentencepiece\src\spm_export_vocab.vcxproj", "{FBB107B9-523B-3094-95CF-A103E2388006}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337} = {D9D20410-4011-370C-8E15-A6F5C311F337}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spm_normalize", "src\3rd_party\sentencepiece\src\spm_normalize.vcxproj", "{5B4A6D26-C638-3350-9E1A-0F987C448DEC}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337} = {D9D20410-4011-370C-8E15-A6F5C311F337}
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678} = {4A20AD5F-7334-31D3-B31D-9AAF53CC6678}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spm_train", "src\3rd_party\sentencepiece\src\spm_train.vcxproj", "{11AB9AE9-CF65-341B-B425-9EDFC4E2F22F}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337} = {D9D20410-4011-370C-8E15-A6F5C311F337}
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678} = {4A20AD5F-7334-31D3-B31D-9AAF53CC6678}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "src\3rd_party\zlib\zlib.vcxproj", "{1134F859-3DE4-34B1-924F-82CA38D4D4F3}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505} = {806A44E1-15D4-3368-B0B9-2A6CC352D505}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Release|x64 = Release|x64
|
||||
MinSizeRel|x64 = MinSizeRel|x64
|
||||
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{E2F320FE-0C01-4C80-810C-3A92205A29DC}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E2F320FE-0C01-4C80-810C-3A92205A29DC}.Debug|x64.Build.0 = Debug|x64
|
||||
{E2F320FE-0C01-4C80-810C-3A92205A29DC}.Release|x64.ActiveCfg = Release|x64
|
||||
{E2F320FE-0C01-4C80-810C-3A92205A29DC}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
{5216F769-E887-369E-AD1E-D6A1F69E834E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5216F769-E887-369E-AD1E-D6A1F69E834E}.Debug|x64.Build.0 = Debug|x64
|
||||
{5216F769-E887-369E-AD1E-D6A1F69E834E}.Release|x64.ActiveCfg = Release|x64
|
||||
{5216F769-E887-369E-AD1E-D6A1F69E834E}.Release|x64.Build.0 = Release|x64
|
||||
{5216F769-E887-369E-AD1E-D6A1F69E834E}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{5216F769-E887-369E-AD1E-D6A1F69E834E}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{5216F769-E887-369E-AD1E-D6A1F69E834E}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{5216F769-E887-369E-AD1E-D6A1F69E834E}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{9DAF8CA3-052E-3480-A332-34676CAE852B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9DAF8CA3-052E-3480-A332-34676CAE852B}.Release|x64.ActiveCfg = Release|x64
|
||||
{9DAF8CA3-052E-3480-A332-34676CAE852B}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{9DAF8CA3-052E-3480-A332-34676CAE852B}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{3A3C6EA5-65CD-324E-90F4-6B4D70DD5A37}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3A3C6EA5-65CD-324E-90F4-6B4D70DD5A37}.Release|x64.ActiveCfg = Release|x64
|
||||
{3A3C6EA5-65CD-324E-90F4-6B4D70DD5A37}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{3A3C6EA5-65CD-324E-90F4-6B4D70DD5A37}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{17E8F84B-76CD-326B-B50A-C4F3C3A8CE33}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{17E8F84B-76CD-326B-B50A-C4F3C3A8CE33}.Debug|x64.Build.0 = Debug|x64
|
||||
{17E8F84B-76CD-326B-B50A-C4F3C3A8CE33}.Release|x64.ActiveCfg = Release|x64
|
||||
{17E8F84B-76CD-326B-B50A-C4F3C3A8CE33}.Release|x64.Build.0 = Release|x64
|
||||
{17E8F84B-76CD-326B-B50A-C4F3C3A8CE33}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{17E8F84B-76CD-326B-B50A-C4F3C3A8CE33}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{17E8F84B-76CD-326B-B50A-C4F3C3A8CE33}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{17E8F84B-76CD-326B-B50A-C4F3C3A8CE33}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505}.Debug|x64.Build.0 = Debug|x64
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505}.Release|x64.ActiveCfg = Release|x64
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505}.Release|x64.Build.0 = Release|x64
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{806A44E1-15D4-3368-B0B9-2A6CC352D505}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{5AF43E07-5917-3D8F-9BF0-B41F698242EA}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5AF43E07-5917-3D8F-9BF0-B41F698242EA}.Debug|x64.Build.0 = Debug|x64
|
||||
{5AF43E07-5917-3D8F-9BF0-B41F698242EA}.Release|x64.ActiveCfg = Release|x64
|
||||
{5AF43E07-5917-3D8F-9BF0-B41F698242EA}.Release|x64.Build.0 = Release|x64
|
||||
{5AF43E07-5917-3D8F-9BF0-B41F698242EA}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{5AF43E07-5917-3D8F-9BF0-B41F698242EA}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{5AF43E07-5917-3D8F-9BF0-B41F698242EA}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{5AF43E07-5917-3D8F-9BF0-B41F698242EA}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4}.Debug|x64.Build.0 = Debug|x64
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4}.Release|x64.ActiveCfg = Release|x64
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4}.Release|x64.Build.0 = Release|x64
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{885D3D2B-7278-30EF-BB1B-50E83D1635C4}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{3CD61EAE-244E-33AB-8C7D-F5182481E033}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3CD61EAE-244E-33AB-8C7D-F5182481E033}.Debug|x64.Build.0 = Debug|x64
|
||||
{3CD61EAE-244E-33AB-8C7D-F5182481E033}.Release|x64.ActiveCfg = Release|x64
|
||||
{3CD61EAE-244E-33AB-8C7D-F5182481E033}.Release|x64.Build.0 = Release|x64
|
||||
{3CD61EAE-244E-33AB-8C7D-F5182481E033}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{3CD61EAE-244E-33AB-8C7D-F5182481E033}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{3CD61EAE-244E-33AB-8C7D-F5182481E033}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{3CD61EAE-244E-33AB-8C7D-F5182481E033}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{97131187-E592-3981-886F-222EE20FB669}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{97131187-E592-3981-886F-222EE20FB669}.Debug|x64.Build.0 = Debug|x64
|
||||
{97131187-E592-3981-886F-222EE20FB669}.Release|x64.ActiveCfg = Release|x64
|
||||
{97131187-E592-3981-886F-222EE20FB669}.Release|x64.Build.0 = Release|x64
|
||||
{97131187-E592-3981-886F-222EE20FB669}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{97131187-E592-3981-886F-222EE20FB669}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{97131187-E592-3981-886F-222EE20FB669}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{97131187-E592-3981-886F-222EE20FB669}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{25A05D30-AFC2-3F0E-B475-0B2B81530151}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{25A05D30-AFC2-3F0E-B475-0B2B81530151}.Debug|x64.Build.0 = Debug|x64
|
||||
{25A05D30-AFC2-3F0E-B475-0B2B81530151}.Release|x64.ActiveCfg = Release|x64
|
||||
{25A05D30-AFC2-3F0E-B475-0B2B81530151}.Release|x64.Build.0 = Release|x64
|
||||
{25A05D30-AFC2-3F0E-B475-0B2B81530151}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{25A05D30-AFC2-3F0E-B475-0B2B81530151}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{25A05D30-AFC2-3F0E-B475-0B2B81530151}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{25A05D30-AFC2-3F0E-B475-0B2B81530151}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{8A6B1F60-8E2D-3171-828B-07E732C8E7D7}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{8A6B1F60-8E2D-3171-828B-07E732C8E7D7}.Debug|x64.Build.0 = Debug|x64
|
||||
{8A6B1F60-8E2D-3171-828B-07E732C8E7D7}.Release|x64.ActiveCfg = Release|x64
|
||||
{8A6B1F60-8E2D-3171-828B-07E732C8E7D7}.Release|x64.Build.0 = Release|x64
|
||||
{8A6B1F60-8E2D-3171-828B-07E732C8E7D7}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{8A6B1F60-8E2D-3171-828B-07E732C8E7D7}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{8A6B1F60-8E2D-3171-828B-07E732C8E7D7}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{8A6B1F60-8E2D-3171-828B-07E732C8E7D7}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{3784D69C-33A9-33A7-A557-F809EF2F4D34}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3784D69C-33A9-33A7-A557-F809EF2F4D34}.Debug|x64.Build.0 = Debug|x64
|
||||
{3784D69C-33A9-33A7-A557-F809EF2F4D34}.Release|x64.ActiveCfg = Release|x64
|
||||
{3784D69C-33A9-33A7-A557-F809EF2F4D34}.Release|x64.Build.0 = Release|x64
|
||||
{3784D69C-33A9-33A7-A557-F809EF2F4D34}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{3784D69C-33A9-33A7-A557-F809EF2F4D34}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{3784D69C-33A9-33A7-A557-F809EF2F4D34}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{3784D69C-33A9-33A7-A557-F809EF2F4D34}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{EA3973A2-F92E-3124-9817-81B2458EC8DC}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EA3973A2-F92E-3124-9817-81B2458EC8DC}.Debug|x64.Build.0 = Debug|x64
|
||||
{EA3973A2-F92E-3124-9817-81B2458EC8DC}.Release|x64.ActiveCfg = Release|x64
|
||||
{EA3973A2-F92E-3124-9817-81B2458EC8DC}.Release|x64.Build.0 = Release|x64
|
||||
{EA3973A2-F92E-3124-9817-81B2458EC8DC}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{EA3973A2-F92E-3124-9817-81B2458EC8DC}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{EA3973A2-F92E-3124-9817-81B2458EC8DC}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{EA3973A2-F92E-3124-9817-81B2458EC8DC}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{55A27783-64A4-3AA7-A4B1-49C4B628F18C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{55A27783-64A4-3AA7-A4B1-49C4B628F18C}.Debug|x64.Build.0 = Debug|x64
|
||||
{55A27783-64A4-3AA7-A4B1-49C4B628F18C}.Release|x64.ActiveCfg = Release|x64
|
||||
{55A27783-64A4-3AA7-A4B1-49C4B628F18C}.Release|x64.Build.0 = Release|x64
|
||||
{55A27783-64A4-3AA7-A4B1-49C4B628F18C}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{55A27783-64A4-3AA7-A4B1-49C4B628F18C}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{55A27783-64A4-3AA7-A4B1-49C4B628F18C}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{55A27783-64A4-3AA7-A4B1-49C4B628F18C}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{36953645-6D01-37E4-ACF7-D3F9BFFCA49D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{36953645-6D01-37E4-ACF7-D3F9BFFCA49D}.Debug|x64.Build.0 = Debug|x64
|
||||
{36953645-6D01-37E4-ACF7-D3F9BFFCA49D}.Release|x64.ActiveCfg = Release|x64
|
||||
{36953645-6D01-37E4-ACF7-D3F9BFFCA49D}.Release|x64.Build.0 = Release|x64
|
||||
{36953645-6D01-37E4-ACF7-D3F9BFFCA49D}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{36953645-6D01-37E4-ACF7-D3F9BFFCA49D}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{36953645-6D01-37E4-ACF7-D3F9BFFCA49D}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{36953645-6D01-37E4-ACF7-D3F9BFFCA49D}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{F4AD2C38-E6B9-3C4A-A281-4AB7440D6162}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{F4AD2C38-E6B9-3C4A-A281-4AB7440D6162}.Debug|x64.Build.0 = Debug|x64
|
||||
{F4AD2C38-E6B9-3C4A-A281-4AB7440D6162}.Release|x64.ActiveCfg = Release|x64
|
||||
{F4AD2C38-E6B9-3C4A-A281-4AB7440D6162}.Release|x64.Build.0 = Release|x64
|
||||
{F4AD2C38-E6B9-3C4A-A281-4AB7440D6162}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{F4AD2C38-E6B9-3C4A-A281-4AB7440D6162}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{F4AD2C38-E6B9-3C4A-A281-4AB7440D6162}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{F4AD2C38-E6B9-3C4A-A281-4AB7440D6162}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337}.Debug|x64.Build.0 = Debug|x64
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337}.Release|x64.ActiveCfg = Release|x64
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337}.Release|x64.Build.0 = Release|x64
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{D9D20410-4011-370C-8E15-A6F5C311F337}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678}.Debug|x64.Build.0 = Debug|x64
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678}.Release|x64.ActiveCfg = Release|x64
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678}.Release|x64.Build.0 = Release|x64
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{4A20AD5F-7334-31D3-B31D-9AAF53CC6678}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{5857EF98-C87F-3197-A399-F0F9A20913FC}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5857EF98-C87F-3197-A399-F0F9A20913FC}.Debug|x64.Build.0 = Debug|x64
|
||||
{5857EF98-C87F-3197-A399-F0F9A20913FC}.Release|x64.ActiveCfg = Release|x64
|
||||
{5857EF98-C87F-3197-A399-F0F9A20913FC}.Release|x64.Build.0 = Release|x64
|
||||
{5857EF98-C87F-3197-A399-F0F9A20913FC}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{5857EF98-C87F-3197-A399-F0F9A20913FC}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{5857EF98-C87F-3197-A399-F0F9A20913FC}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{5857EF98-C87F-3197-A399-F0F9A20913FC}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{F6E7B14E-D9E6-343C-B58D-CA0381A3BB8F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{F6E7B14E-D9E6-343C-B58D-CA0381A3BB8F}.Debug|x64.Build.0 = Debug|x64
|
||||
{F6E7B14E-D9E6-343C-B58D-CA0381A3BB8F}.Release|x64.ActiveCfg = Release|x64
|
||||
{F6E7B14E-D9E6-343C-B58D-CA0381A3BB8F}.Release|x64.Build.0 = Release|x64
|
||||
{F6E7B14E-D9E6-343C-B58D-CA0381A3BB8F}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{F6E7B14E-D9E6-343C-B58D-CA0381A3BB8F}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{F6E7B14E-D9E6-343C-B58D-CA0381A3BB8F}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{F6E7B14E-D9E6-343C-B58D-CA0381A3BB8F}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{FBB107B9-523B-3094-95CF-A103E2388006}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{FBB107B9-523B-3094-95CF-A103E2388006}.Debug|x64.Build.0 = Debug|x64
|
||||
{FBB107B9-523B-3094-95CF-A103E2388006}.Release|x64.ActiveCfg = Release|x64
|
||||
{FBB107B9-523B-3094-95CF-A103E2388006}.Release|x64.Build.0 = Release|x64
|
||||
{FBB107B9-523B-3094-95CF-A103E2388006}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{FBB107B9-523B-3094-95CF-A103E2388006}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{FBB107B9-523B-3094-95CF-A103E2388006}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{FBB107B9-523B-3094-95CF-A103E2388006}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{5B4A6D26-C638-3350-9E1A-0F987C448DEC}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5B4A6D26-C638-3350-9E1A-0F987C448DEC}.Debug|x64.Build.0 = Debug|x64
|
||||
{5B4A6D26-C638-3350-9E1A-0F987C448DEC}.Release|x64.ActiveCfg = Release|x64
|
||||
{5B4A6D26-C638-3350-9E1A-0F987C448DEC}.Release|x64.Build.0 = Release|x64
|
||||
{5B4A6D26-C638-3350-9E1A-0F987C448DEC}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{5B4A6D26-C638-3350-9E1A-0F987C448DEC}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{5B4A6D26-C638-3350-9E1A-0F987C448DEC}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{5B4A6D26-C638-3350-9E1A-0F987C448DEC}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{11AB9AE9-CF65-341B-B425-9EDFC4E2F22F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{11AB9AE9-CF65-341B-B425-9EDFC4E2F22F}.Debug|x64.Build.0 = Debug|x64
|
||||
{11AB9AE9-CF65-341B-B425-9EDFC4E2F22F}.Release|x64.ActiveCfg = Release|x64
|
||||
{11AB9AE9-CF65-341B-B425-9EDFC4E2F22F}.Release|x64.Build.0 = Release|x64
|
||||
{11AB9AE9-CF65-341B-B425-9EDFC4E2F22F}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{11AB9AE9-CF65-341B-B425-9EDFC4E2F22F}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{11AB9AE9-CF65-341B-B425-9EDFC4E2F22F}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{11AB9AE9-CF65-341B-B425-9EDFC4E2F22F}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{1134F859-3DE4-34B1-924F-82CA38D4D4F3}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{1134F859-3DE4-34B1-924F-82CA38D4D4F3}.Debug|x64.Build.0 = Debug|x64
|
||||
{1134F859-3DE4-34B1-924F-82CA38D4D4F3}.Release|x64.ActiveCfg = Release|x64
|
||||
{1134F859-3DE4-34B1-924F-82CA38D4D4F3}.Release|x64.Build.0 = Release|x64
|
||||
{1134F859-3DE4-34B1-924F-82CA38D4D4F3}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{1134F859-3DE4-34B1-924F-82CA38D4D4F3}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{1134F859-3DE4-34B1-924F-82CA38D4D4F3}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{1134F859-3DE4-34B1-924F-82CA38D4D4F3}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {8CA1BE8F-87A9-4094-B549-E8C790F79D8C}
|
||||
SolutionGuid = {A73289FB-DB51-3D6F-802E-B474CC102EDA}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
32
vs/README.md
32
vs/README.md
@ -3,21 +3,21 @@
|
||||
|
||||
## Install prerequisites
|
||||
|
||||
The following SDK are required to build Marian with GPU support
|
||||
The following SDK are required to build Marian with GPU support. At least one of them needs to be installed. If only CUDA is installed but not MKL,
|
||||
a GPU-only version will be build. If only MKL is installed and not CUDA, only the CPU version will be built. So if you are interested in only one
|
||||
functionality, you can ommit one of them. Install both for full functionality.
|
||||
|
||||
- [Cuda 9.2+](https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal)
|
||||
- [Cuda 10](https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal)
|
||||
- Base installer
|
||||
- Patches
|
||||
|
||||
- [CuDNN 7.1+](https://developer.nvidia.com/rdp/cudnn-download)
|
||||
- Requires nVidia Developper account
|
||||
|
||||
- [MKL](https://software.intel.com/en-us/mkl)
|
||||
|
||||
|
||||
__Note: Patch for CUDA error: Unsupported Visual Studio Version Error__
|
||||
__Note: Patch for CUDA 9.2 error: Unsupported Visual Studio Version Error__
|
||||
|
||||
The latest versions of Visual Studio 2017 are not officially supported by CUDA. Two fixes are proposed:
|
||||
This seems to work fine with CUDA 10.0.
|
||||
|
||||
When using CUDA 9.2, the latest versions of Visual Studio 2017 are not officially supported by CUDA. Two fixes are proposed:
|
||||
|
||||
- Downgrade Visual Studio to a supported version
|
||||
|
||||
@ -31,15 +31,13 @@ The latest versions of Visual Studio 2017 are not officially supported by CUDA.
|
||||
|
||||
For more information, read this [nVidia forum](https://devtalk.nvidia.com/default/topic/1022648/cuda-setup-and-installation/cuda-9-unsupported-visual-studio-version-error/4)
|
||||
|
||||
|
||||
---
|
||||
## Check dependencies : `CheckDeps.bat`
|
||||
|
||||
In addition to the 3 previous prerequisites, Marian needs 3 libraries that you may already have on your system:
|
||||
In addition to the 2 previous prerequisites, Marian needs 2 libraries that you may already have on your system:
|
||||
|
||||
- Boost (1.58+)
|
||||
- zlib
|
||||
- OpenSSL
|
||||
- OpenSSL (optional for server)
|
||||
|
||||
The script `CheckDeps.bat` can be used to verify that all dependencies are found on your system. If not, it will use the `vcpkg` library manager to download and manage your dependencies for CMake.
|
||||
|
||||
@ -50,7 +48,6 @@ If you already have a working `vcpkg` installation, this script can use it:
|
||||
|
||||
If you prefer to manage yourself the dependencies, you can edit the script file to set the following variables to the respective installation paths. These variable can also be already set in your environment.
|
||||
- `BOOST_INCLUDE_PATH` and `BOOST_LIB_PATH`
|
||||
- `ZLIB_ROOT`
|
||||
- `OPENSSL_PATH`
|
||||
|
||||
---
|
||||
@ -136,13 +133,16 @@ If you have a previous version of Visual Studio, you will need to use CMake to g
|
||||
The provided script `CreateVSProjects.bat` runs the dependency checks then invokes CMake with the right parameters to create the solutions for Visual Studio.
|
||||
|
||||
|
||||
### 3. Use MSBuild : `Build.bat`
|
||||
### 3. Use MSBuild : `BuildRelease.bat`
|
||||
|
||||
The last alternative is to use the script `Build.bat` that will:
|
||||
The last alternative is to use the script `BuildRelease.bat` that will:
|
||||
- Check the dependencies
|
||||
- Create the VS project files
|
||||
- Invoke MSBuild on these projects to build the targets in Release.
|
||||
|
||||
<!--
|
||||
This is interesting for developers, hiding away from users.
|
||||
|
||||
---
|
||||
## Changes from the master branch
|
||||
This part gives more information on all changes done in this PR. Refer to [this page](https://github.com/cedrou/marian-dev/commits/build_on_win) for commits.
|
||||
@ -195,6 +195,6 @@ This part gives more information on all changes done in this PR. Refer to [this
|
||||
I also handled the case of the default value for the `base` parameter: the path `\tmp` doesnot exist on Windows, so it is replaced by the value of the `%TMP%` environment variable in `NormalizeTempPrefix`.
|
||||
|
||||
11. __Revert commit #2f8b093 + Fix copy/paste error while fixing #301 + restrict fix to MSVC compiler.__
|
||||
cf [Issue #301](https://github.com/marian-nmt/marian-dev/issues/301)
|
||||
cf [Issue #301](https://github.com/marian-nmt/marian-dev/issues/301) -->
|
||||
|
||||
|
@ -1,4 +0,0 @@
|
||||
setx ZLIB_PATH d:\marian-windows\zlib-vs15
|
||||
setx BOOST_INCLUDE_PATH d:\marian-windows\boost_1_66_0
|
||||
setx BOOST_LIB_PATH d:\marian-windows\boost_1_66_0\lib64-msvc-14.1
|
||||
setx MKL_PATH D:\marian-windows\mkl\compilers_and_libraries\windows\mkl
|
Loading…
Reference in New Issue
Block a user