Browse Source

Merge pull request #72 from cuda/mkl

more mkl tweaks
v2
Christoph Ruegg 14 years ago
parent
commit
430c334b62
  1. 37
      src/NativeWrappers/Common/lapack_common.h
  2. 12
      src/NativeWrappers/Common/resource.rc
  3. 28
      src/NativeWrappers/Windows/MKL/MKLWrapper.vcxproj
  4. 6
      src/NativeWrappers/Windows/MKLWrapperTests/MKLWrapperTests.csproj
  5. 4
      src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs

37
src/NativeWrappers/Common/lapack_common.h

@ -0,0 +1,37 @@
#ifndef LAPACK_COMMON_H
#define LAPACK_COMMON_H
void shift_ipiv_down(int m, int ipiv[]);
inline void shift_ipiv_down(int m, int ipiv[]){
for(int i = 0; i < m; ++i ){
ipiv[i] -= 1;
}
}
void shift_ipiv_up(int m, int ipiv[]);
inline void shift_ipiv_up(int m, int ipiv[]){
for(int i = 0; i < m; ++i ){
ipiv[i] += 1;
}
}
template<typename T>
inline T* Clone(const int m, const int n, const T* a)
{
T* clone = new T[m*n];
std::memcpy(clone, a, m*n*sizeof(T));
return clone;
}
template<typename T>
void copyBtoX (int m, int n, int bn, T b[], T x[]){
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < bn; ++j)
{
x[j * n + i] = b[j * m + i];
}
}
}
#endif

12
src/NativeWrappers/Common/resource.rc

@ -51,8 +51,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,1,0,0
PRODUCTVERSION 1,1,0,0
FILEVERSION 1,2,0,0
PRODUCTVERSION 1,2,0,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -67,15 +67,15 @@ BEGIN
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "Comments", "http://http://mathnetnumerics.codeplex.com/"
VALUE "Comments", "http://numerics.mathdotnet.com/"
VALUE "CompanyName", "Math.NET"
VALUE "FileDescription", "MathNET Numerics Native Wrapper"
VALUE "FileVersion", "1.1.0.0"
VALUE "FileVersion", "1.2.0.0"
VALUE "InternalName", "Math.NET"
VALUE "LegalCopyright", "Copyright (C) Math.NET 2009-2011"
VALUE "LegalCopyright", "Copyright (C) Math.NET 2009-2013"
VALUE "OriginalFilename", "MathNET.Numerics"
VALUE "ProductName", "Math.NET Numerics"
VALUE "ProductVersion", "1.1.0.0"
VALUE "ProductVersion", "1.2.0.0"
END
END
BLOCK "VarFileInfo"

28
src/NativeWrappers/Windows/MKL/MKLWrapper.vcxproj

@ -97,14 +97,15 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>mkl_intel_c.lib;mkl_intel_thread.lib;mkl_core.lib;libiomp5md.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>libiomp5md.lib;mkl_intel_c.lib;mkl_intel_thread.lib;mkl_core.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)MathNET.Numerics.MKL.dll</OutputFile>
<AdditionalLibraryDirectories>C:\Program Files (x86)\Intel\Compiler\11.1\046\lib\ia32;C:\Program Files (x86)\Intel\Compiler\11.1\046\mkl\ia32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OmpLibDir)\;$(MKLLibDir)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>copy "$(INTEL_DEV_REDIST)\redist\$(IntelPlatform)\compiler\libiomp5md.dll" $(OutDir)</Command>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@ -123,14 +124,15 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>mkl_intel_lp64.lib;mkl_intel_thread.lib;mkl_core.lib;libiomp5md.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>libiomp5md.lib;mkl_intel_lp64.lib;mkl_intel_thread.lib;mkl_core.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)MathNET.Numerics.MKL.dll</OutputFile>
<AdditionalLibraryDirectories>C:\Program Files (x86)\Intel\Compiler\11.1\046\lib\intel64;C:\Program Files (x86)\Intel\Compiler\11.1\046\mkl\em64t\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OmpLibDir)\;$(MKLLibDir)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<PostBuildEvent>
<Command>copy "$(INTEL_DEV_REDIST)\redist\$(IntelPlatform)\compiler\libiomp5md.dll" $(OutDir)</Command>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@ -146,16 +148,17 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>mkl_intel_c.lib;mkl_intel_thread.lib;mkl_core.lib;libiomp5md.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>libiomp5md.lib;mkl_intel_c.lib;mkl_intel_thread.lib;mkl_core.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)MathNET.Numerics.MKL.dll</OutputFile>
<AdditionalLibraryDirectories>C:\Program Files (x86)\Intel\Compiler\11.1\060\lib\ia32;C:\Program Files (x86)\Intel\Compiler\11.1\060\mkl\ia32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OmpLibDir)\;$(MKLLibDir)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>copy "$(INTEL_DEV_REDIST)\redist\$(IntelPlatform)\compiler\libiomp5md.dll" $(OutDir)</Command>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@ -174,16 +177,17 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>mkl_intel_lp64.lib;mkl_intel_thread.lib;mkl_core.lib;libiomp5md.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>libiomp5md.lib;mkl_intel_lp64.lib;mkl_intel_thread.lib;mkl_core.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)MathNET.Numerics.MKL.dll</OutputFile>
<AdditionalLibraryDirectories>C:\Program Files (x86)\Intel\Compiler\11.1\060\lib\intel64;C:\Program Files (x86)\Intel\Compiler\11.1\060\mkl\em64t\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OmpLibDir)\;$(MKLLibDir)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<PostBuildEvent>
<Command>copy "$(INTEL_DEV_REDIST)\redist\$(IntelPlatform)\compiler\libiomp5md.dll" $(OutDir)</Command>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>

6
src/NativeWrappers/Windows/MKLWrapperTests/MKLWrapperTests.csproj

@ -41,7 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
@ -548,10 +548,6 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="..\..\..\..\lib\Windows\Win32\libiomp5md.dll">
<Link>libiomp5md.dll</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\..\lib\Windows\Win32\MathNET.Numerics.MKL.dll">
<Link>MathNET.Numerics.MKL.dll</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>

4
src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs

@ -64,7 +64,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double
{ "Wide2x3", new DenseMatrix(new[,] { { -1.1, -2.2, -3.3 }, { 0.0, 1.1, 2.2 } }) }
};
/* /// <summary>
/// <summary>
/// Can add a vector to scaled vector
/// </summary>
[Test]
@ -1682,7 +1682,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double
AssertHelpers.AlmostEqual(test[1, 0], x[1], 14);
AssertHelpers.AlmostEqual(test[0, 1], x[2], 14);
AssertHelpers.AlmostEqual(test[1, 1], x[3], 14);
}*/
}
/// <summary>
/// Checks to see if a matrix and array contain the same values.

Loading…
Cancel
Save