The commits 32391e1..2a7ab60 should not be pushed to public (since it enables MKL and MPI) revert them in this commit.

Reverted commit:

8404e9c8de        "Enable MKL"
64a37301f9        "Enable MPI_SUPPORT"
61c6d59e04        "add a unit test for CNTKEval"
This commit is contained in:
erw 2015-05-19 14:05:47 -07:00
Родитель 77e782d9d0
Коммит 0ff74f0405
11 изменённых файлов: 23 добавлений и 12329 удалений

5
.gitignore поставляемый
Просмотреть файл

@ -174,7 +174,4 @@ core
MachineLearning/CNTK/buildinfo.h
MachineLearning/CNTK/buildinfo.h$$
# =========================
# AutoTest resource
# =========================
AutoTest/

Просмотреть файл

@ -1,243 +0,0 @@
#include "CppUnitTest.h"
#include "Eval.h"
#include "../../DataReader/HTKMLFReader/htkfeatio.h"
#include <memory>
#include <string>
#include <vector>
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace std;
using namespace Microsoft::MSR::CNTK;
using msra::asr::htkfeatreader;
typedef void(*GetEvalProc)(IEvaluateModel<float>** peval);
namespace EvalUnitTest
{
class HTKUtteranceReader // designed for read one utterance
{
public:
HTKUtteranceReader() : m_verbosity(0), m_contextWindow(5), m_frameshift(0){
}
void SetContextWindow(size_t windowSize) { m_contextWindow = windowSize; }
void SetFrameShift(int shift){ m_frameshift = shift; }
size_t GetUtteranceData(wstring filename, vector<float>& utterance)
// for a D (dim) X N (frame) utterance (specified by filename) and a window size H
// utterance returns a D*(2*H+1) * N vector
// caller don't need to resize utterance
{
//========================================
// Sec. 1 get basic info
//========================================
htkfeatreader reader;
htkfeatreader::parsedpath path(filename);
string featKind;
size_t featDim;
size_t nframes;
unsigned int featPeriod = 0;
reader.getinfo(path, featKind, featDim, featPeriod, nframes);
//========================================
// Sec. 2 resize output vector
//========================================
size_t expandedDim = (2 * m_contextWindow + 1) * featDim; // dimension after contex expanding
size_t totalDim = expandedDim * nframes; // dimension of the vector we want to feed to CNTK eval
utterance.resize(totalDim, 0.0f);
//========================================
// Sec. 3 get the feature matrix
//========================================
vector<vector<float> > featMatrix;
featMatrix.resize(nframes);
for (size_t n = 0; n < nframes; n++)
{
reader.read(featMatrix[n]);
}
//========================================
// Sec. 4 context expansion
//========================================
if (m_contextWindow > 0)
{
vector<float> expandedfeat;
expandedfeat.resize(expandedDim);
for (size_t n = 0; n < nframes; n++)
{
size_t despos = 0;
for (size_t ileft = m_contextWindow-1; ileft >=0; ileft--, despos ++ )
{
size_t srcpos = max(n - ileft, 0);
copy(featMatrix[srcpos].begin(), featMatrix[srcpos].end(), expandedfeat.begin() + featDim *despos);
}
for (size_t iRight = 1; iRight < m_contextWindow; iRight++, despos++)
{
size_t srcpos = min(n + iRight, nframes);
copy(featMatrix[srcpos].begin(), featMatrix[srcpos].end(), expandedfeat.begin() + featDim *despos);
}
copy(expandedfeat.begin(), expandedfeat.end(), utterance.begin() + expandedDim*n);
}
}
else
{
size_t idx = 0;
for (auto v : featMatrix)
{
copy(v.begin(), v.end(), utterance.begin() + expandedDim*idx);
idx++;
}
}
//========================================
// Sec. 5 frame shift
//========================================
if (m_frameshift > 0)
{
assert(m_frameshift < nframes); // TODO: throw an exception
/*
for (size_t f = m_frameshift; f < nframes; f++)
{
copy(featMatrix[f].begin(), featMatrix[f].end(), utterance.begin() + (f-m_frameshift)*expandedDim);
}
for (size_t r = 0; r < m_frameshift; r++)
{
copy(featMatrix[nframes - 1].begin(), featMatrix[nframes - 1].end(), utterance.begin()+(nframes-m_frameshift+r)*expandedDim );
}*/
for (size_t ipos = nframes - m_frameshift -1; ipos >= 0; ipos++)
{
auto src = utterance.begin() + ipos * expandedDim;
auto des = src + (m_frameshift)*expandedDim;
copy(src, src + expandedDim, des);
}
auto src = utterance.begin() + m_frameshift*expandedDim;
for (size_t ipos = 0; ipos < m_frameshift; ipos++)
{
auto des = utterance.begin() + ipos * expandedDim;
copy(src, src + expandedDim, des);
}
}
return nframes;
}
private:
size_t m_contextWindow; // =5 means 5:1:5 TODO support asymmetric context window
size_t m_verbosity;
short m_frameshift; // f>0 means x[0..n-1] -> [ x[f..n-1], x[n-1], ... ]
// f<0 means x[0..n-1] -> [ x[0], x[0],... x[f..n-1] ]
// frameshift is applied after context windows expansion
};
TEST_CLASS(CNTKEvalUnitTest)
{
private:
bool LoadEvalutor()
{
try
{
Plugin plug;
GetEvalProc p_Processor = (GetEvalProc)plug.Load(m_strEvalModule, m_strGetEvalProcessor);
IEvaluateModel<float>* pEval = nullptr;
p_Processor(&pEval);
m_pEval.reset(pEval);
}
catch (std::exception& e)
{
printf("ERROR: %s\n", e.what());
Assert::Fail(L"Load Module failed");
}
return true;
}
public:
TEST_CLASS_INITIALIZE(ConfigEvalUnitTest)
{
}
TEST_METHOD(LoadModule)
{
Assert::IsTrue(LoadEvalutor());
}
TEST_METHOD(RNNModelTest)
{
Assert::IsTrue(LoadEvalutor());
m_pEval->Init("deviceID=-1");
m_pEval->LoadModel(m_strRNNModel);
//========================================
// Sec. 1 query node dimension
//========================================
map<wstring, size_t> inputDimensions;
m_pEval->GetNodeDimensions(inputDimensions, nodeInput);
map<wstring, size_t> outputDimensions;
m_pEval->GetNodeDimensions(outputDimensions, nodeOutput);
//========================================
// Sec. 2 load in feature files and expected output files
//========================================
HTKUtteranceReader reader;
reader.SetFrameShift(0);
reader.SetContextWindow(0);
vector<float> utterData;
size_t nframe=reader.GetUtteranceData(m_strRNNModelInputOutputPairs.first, utterData);
vector<float> expectedRes;
size_t nframeLLR = reader.GetUtteranceData(m_strRNNModelInputOutputPairs.second, expectedRes);
Assert::AreEqual(nframe, nframeLLR, L"ERROR: number of input feature vectors mismatched with the number of output vectors");
//========================================
// Sec. 3 setup inputs and outputs
//========================================
Assert::IsTrue(inputDimensions.find(L"features") != inputDimensions.end());
Assert::IsTrue(outputDimensions.find(L"ScaledLogLikelihood") != outputDimensions.end());
map<wstring, vector<float>* > inputs;
inputs[L"features"] = &utterData;
map<wstring, vector<float>* > outputs;
size_t outputDim = nframe * outputDimensions[L"ScaledLogLikelihood"];
vector<float> outputData(outputDim,0.0f);
outputs[L"ScaledLogLikelihood"] = &outputData;
m_pEval->Evaluate(inputs, outputs);
//========================================
// Sec. 4 CompareResults
//========================================
wstring msg = msra::strfun::wstrprintf(L"Output dimensions (%d vs %d) do not match", outputs.size(), expectedRes.size());
Assert::AreEqual(expectedRes.size(), outputs[L"ScaledLogLikelihood"]->size(), L"Output dimension does not match");
for (size_t i = 0; i < expectedRes.size(); i++)
{
Assert::AreEqual(expectedRes[i], (*outputs[L"ScaledLogLikelihood"])[i], 0.01f);
}
}
private:
shared_ptr<IEvaluateModel<float>> m_pEval;
static const wstring m_strEvalModule;
static const string m_strGetEvalProcessor;
static const wstring m_strRNNModel;
static const pair<wstring, wstring> m_strRNNModelInputOutputPairs;
};
const wstring CNTKEvalUnitTest::m_strEvalModule = L"CNTKEval"; // the module (.dll) name
const string CNTKEvalUnitTest::m_strGetEvalProcessor = "GetEvalF"; // which function to get eval
const wstring CNTKEvalUnitTest::m_strRNNModel = L"..\\..\\..\\AutoTest\\resources\\rnn.model.40";
const pair<wstring, wstring> CNTKEvalUnitTest::m_strRNNModelInputOutputPairs = make_pair(L"..\\..\\..\\AutoTest\\resources\\LFB87dim.mfc", L"..\\..\\..\\AutoTest\\resources\\LFB87dim.pos");
}

Просмотреть файл

@ -1,162 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{4CBCD242-B40B-4A32-9648-DF9CD8CFFC8E}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>EvalUnitTest</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\common\include;..\..\math\math;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\common\include;..\..\math\math;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
<AdditionalOptions>/D _CRT_SECURE_NO_WARNINGS %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\common\include;..\..\math\math;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
<AdditionalOptions>/D _CRT_SECURE_NO_WARNINGS %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\fileutil.cpp" />
<ClCompile Include="CNTKEValTest.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

Просмотреть файл

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="..\..\Common\fileutil.cpp" />
<ClCompile Include="CNTKEValTest.cpp" />
</ItemGroup>
</Project>

Просмотреть файл

@ -516,17 +516,6 @@ public:
featdim = this->featdim;
featperiod = this->featperiod;
}
void getinfo (const parsedpath & ppath, string & featkind, size_t & featdim, unsigned int & featperiod, size_t& nframe)
{
open (ppath);
featkind = this->featkind;
featdim = this->featdim;
featperiod = this->featperiod;
nframe = this->numframes;
}
// called to add energy as we read
void AddEnergy(size_t energyElements)

Просмотреть файл

@ -72,15 +72,15 @@
<SDLCheck>true</SDLCheck>
<OpenMPSupport>true</OpenMPSupport>
<TreatWarningAsError>true</TreatWarningAsError>
<AdditionalOptions>/bigobj /D MPI_SUPPORT %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>"c:\Program Files\NVIDIA Corporation\GDK\gdk_win7_amd64_release\nvml\include";$(ProjectDir)\mpi</AdditionalIncludeDirectories>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>"c:\Program Files\NVIDIA Corporation\GDK\gdk_win7_amd64_release\nvml\include"</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>CNTKMath.lib; nvml.lib; kernel32.lib; user32.lib; shell32.lib; %(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(ProjectDir)/mpi/$(Platform); "c:\Program Files\NVIDIA Corporation\GDK\gdk_win7_amd64_release\nvml\lib" </AdditionalLibraryDirectories>
<DelayLoadDLLs>CNTKMath.dll;nvml.dll;nvcuda.dll; cudart64_70.dll</DelayLoadDLLs>
<AdditionalLibraryDirectories>"c:\Program Files\NVIDIA Corporation\GDK\gdk_win7_amd64_release\nvml\lib"</AdditionalLibraryDirectories>
<DelayLoadDLLs>CNTKMath.dll; nvml.dll; cudart64_70.dll</DelayLoadDLLs>
</Link>
<PostBuildEvent>
<Command>xcopy /I /D /Y "%ProgramW6432%\NVIDIA Corporation\NVSMI\nvml*.dll" $(TargetDir)</Command>
@ -110,9 +110,9 @@
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<AdditionalOptions>/d2Zi+ /D MPI_SUPPORT %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions>
<TreatWarningAsError>true</TreatWarningAsError>
<AdditionalIncludeDirectories>"c:\Program Files\NVIDIA Corporation\GDK\gdk_win7_amd64_release\nvml\include"; $(ProjectDir)\mpi</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>"c:\Program Files\NVIDIA Corporation\GDK\gdk_win7_amd64_release\nvml\include"</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@ -121,8 +121,8 @@
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>CNTKMath.lib; nvml.lib; kernel32.lib; user32.lib; shell32.lib; %(AdditionalDependencies)</AdditionalDependencies>
<Profile>true</Profile>
<DelayLoadDLLs>CNTKMath.dll;nvml.dll;CUDart64_70.dll</DelayLoadDLLs>
<AdditionalLibraryDirectories>"c:\Program Files\NVIDIA Corporation\GDK\gdk_win7_amd64_release\nvml\lib"; $(ProjectDir)/mpi/$(Platform)</AdditionalLibraryDirectories>
<DelayLoadDLLs>CNTKMath.dll; nvml.dll; cudart64_70.dll</DelayLoadDLLs>
<AdditionalLibraryDirectories>"c:\Program Files\NVIDIA Corporation\GDK\gdk_win7_amd64_release\nvml\lib"</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>xcopy /I /D /Y "%ProgramW6432%\NVIDIA Corporation\NVSMI\nvml*.dll" $(TargetDir)</Command>
@ -213,4 +213,4 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>
</Project>

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -30,7 +30,6 @@
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseIntelMKL>Parallel</UseIntelMKL>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
@ -38,7 +37,6 @@
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseIntelMKL>Parallel</UseIntelMKL>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@ -76,7 +74,7 @@
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>CNTKMath.lib; nvml.lib; kernel32.lib; user32.lib; shell32.lib; %(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\math\$(Platform)\$(Configuration);$(SolutionDir)$(Platform)\$(Configuration)\; "c:\Program Files\NVIDIA Corporation\GDK\gdk_win7_amd64_release\nvml\lib"</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\; "c:\Program Files\NVIDIA Corporation\GDK\gdk_win7_amd64_release\nvml\lib"</AdditionalLibraryDirectories>
<DelayLoadDLLs>CNTKMath.dll; nvml.dll; cudart64_70.dll</DelayLoadDLLs>
</Link>
<PostBuildEvent>
@ -105,7 +103,7 @@
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>CNTKMath.lib; nvml.lib; kernel32.lib; user32.lib; shell32.lib; %(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\math\$(Platform)\$(Configuration);$(SolutionDir)$(Platform)\$(Configuration)\; "c:\Program Files\NVIDIA Corporation\GDK\gdk_win7_amd64_release\nvml\lib"</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\; "c:\Program Files\NVIDIA Corporation\GDK\gdk_win7_amd64_release\nvml\lib"</AdditionalLibraryDirectories>
<Profile>true</Profile>
<DelayLoadDLLs>CNTKMath.dll; nvml.dll; cudart64_70.dll</DelayLoadDLLs>
</Link>
@ -158,4 +156,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -31,7 +31,6 @@
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseIntelMKL>No</UseIntelMKL>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
@ -39,7 +38,6 @@
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseIntelMKL>No</UseIntelMKL>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">

Просмотреть файл

@ -30,8 +30,7 @@
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseIntelMKL>Parallel</UseIntelMKL>
<UseMpiLibrary>INTELMPI</UseMpiLibrary>
<UseIntelMKL>No</UseIntelMKL>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
@ -39,7 +38,7 @@
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseIntelMKL>Parallel</UseIntelMKL>
<UseIntelMKL>No</UseIntelMKL>
<UseIntelIPP>false</UseIntelIPP>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
@ -76,14 +75,13 @@
<OpenMPSupport>true</OpenMPSupport>
<MinimalRebuild>false</MinimalRebuild>
<TreatWarningAsError>true</TreatWarningAsError>
<AdditionalOptions>/D USE_MKL %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\; c:\Program Files (x86)\Intel\Composer XE 2015\mkl\lib\intel64</AdditionalLibraryDirectories>
<DelayLoadDLLs>cublas64_70.dll; cusparse64_70.dll; curand64_70.dll; cudart64_70.dll; %(DelayLoadDLLs)</DelayLoadDLLs>
<AdditionalDependencies>libacml_mp_dll.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
<DelayLoadDLLs>cublas64_70.dll; cusparse64_70.dll; curand64_70.dll; cudart64_70.dll; libacml_dll.dll; libacml_mp_dll.dll; %(DelayLoadDLLs)</DelayLoadDLLs>
<Profile>true</Profile>
</Link>
<PostBuildEvent>
@ -123,7 +121,7 @@
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
<FloatingPointExceptions>false</FloatingPointExceptions>
<TreatWarningAsError>true</TreatWarningAsError>
<AdditionalOptions>/d2Zi+ /D USE_MKL %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile>
<Link>
@ -131,10 +129,10 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>c:\Program Files (x86)\Intel\Composer XE 2015\mkl\lib\intel64</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
<AdditionalDependencies>libacml_mp_dll.lib;%(AdditionalDependencies)</AdditionalDependencies>
<Profile>true</Profile>
<DelayLoadDLLs>cublas64_70.dll;cusparse64_70.dll;curand64_70.dll;cudart64_70.dll;nvcuda.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<DelayLoadDLLs>cublas64_70.dll; cusparse64_70.dll; curand64_70.dll; cudart64_70.dll; libacml_dll.dll; libacml_mp_dll.dll; %(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<PostBuildEvent>
<Command>xcopy /D /I /Y "$(ACML_PATH)\lib\*.dll" $(OutputPath)</Command>
@ -199,4 +197,4 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>
</Project>