diff --git a/MathNet.Numerics.NativeProviders.sln b/MathNet.Numerics.NativeProviders.sln index 0b0efacb..a83444e8 100644 --- a/MathNet.Numerics.NativeProviders.sln +++ b/MathNet.Numerics.NativeProviders.sln @@ -34,6 +34,14 @@ Global Release|Mixed Platforms = Release|Mixed Platforms Release|Win32 = Release|Win32 Release|x64 = Release|x64 + Release-CUDA|Any CPU = Release-CUDA|Any CPU + Release-CUDA|Mixed Platforms = Release-CUDA|Mixed Platforms + Release-CUDA|Win32 = Release-CUDA|Win32 + Release-CUDA|x64 = Release-CUDA|x64 + Release-MKL|Any CPU = Release-MKL|Any CPU + Release-MKL|Mixed Platforms = Release-MKL|Mixed Platforms + Release-MKL|Win32 = Release-MKL|Win32 + Release-MKL|x64 = Release-MKL|x64 Release-Signed|Any CPU = Release-Signed|Any CPU Release-Signed|Mixed Platforms = Release-Signed|Mixed Platforms Release-Signed|Win32 = Release-Signed|Win32 @@ -54,6 +62,18 @@ Global {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|Win32.Build.0 = Release|Win32 {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|x64.ActiveCfg = Release|x64 {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|x64.Build.0 = Release|x64 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-CUDA|Any CPU.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-CUDA|Mixed Platforms.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-CUDA|Mixed Platforms.Build.0 = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-CUDA|Win32.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-CUDA|x64.ActiveCfg = Release|x64 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|Any CPU.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|Mixed Platforms.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|Mixed Platforms.Build.0 = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|Win32.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|Win32.Build.0 = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|x64.ActiveCfg = Release|x64 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|x64.Build.0 = Release|x64 {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Any CPU.ActiveCfg = Release|Win32 {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Win32 {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Mixed Platforms.Build.0 = Release|Win32 @@ -69,6 +89,14 @@ Global {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release|Win32.ActiveCfg = Release|Win32 {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release|x64.ActiveCfg = Release|x64 + {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release-CUDA|Any CPU.ActiveCfg = Release|Win32 + {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release-CUDA|Mixed Platforms.ActiveCfg = Release|Win32 + {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release-CUDA|Win32.ActiveCfg = Release|Win32 + {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release-CUDA|x64.ActiveCfg = Release|x64 + {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release-MKL|Any CPU.ActiveCfg = Release|Win32 + {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release-MKL|Mixed Platforms.ActiveCfg = Release|Win32 + {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release-MKL|Win32.ActiveCfg = Release|Win32 + {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release-MKL|x64.ActiveCfg = Release|x64 {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release-Signed|Any CPU.ActiveCfg = Release|Win32 {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Win32 {2362B8AC-C52B-45E4-A1BF-C682A4DB4220}.Release-Signed|Win32.ActiveCfg = Release|Win32 @@ -91,6 +119,22 @@ Global {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Win32.Build.0 = Release|Any CPU {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|x64.ActiveCfg = Release|Any CPU {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|x64.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|Any CPU.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|Any CPU.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|Mixed Platforms.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|Mixed Platforms.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|Win32.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|Win32.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|x64.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|x64.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|Any CPU.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|Any CPU.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|Mixed Platforms.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|Mixed Platforms.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|Win32.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|Win32.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|x64.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|x64.Build.0 = Release|Any CPU {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Any CPU.ActiveCfg = Release-Signed|Any CPU {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Any CPU.Build.0 = Release-Signed|Any CPU {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU @@ -109,6 +153,20 @@ Global {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release|Mixed Platforms.Build.0 = Release|Any CPU {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release|Win32.ActiveCfg = Release|Any CPU {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release|x64.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-CUDA|Any CPU.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-CUDA|Any CPU.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-CUDA|Mixed Platforms.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-CUDA|Mixed Platforms.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-CUDA|Win32.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-CUDA|x64.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|Any CPU.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|Any CPU.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|Mixed Platforms.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|Mixed Platforms.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|Win32.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|Win32.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|x64.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|x64.Build.0 = Release|Any CPU {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-Signed|Any CPU.Build.0 = Release|Any CPU {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU @@ -129,6 +187,18 @@ Global {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release|Win32.Build.0 = Release|Win32 {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release|x64.ActiveCfg = Release|x64 {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release|x64.Build.0 = Release|x64 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|Any CPU.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|Mixed Platforms.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|Mixed Platforms.Build.0 = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|Win32.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|Win32.Build.0 = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|x64.ActiveCfg = Release|x64 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|x64.Build.0 = Release|x64 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-MKL|Any CPU.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-MKL|Mixed Platforms.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-MKL|Mixed Platforms.Build.0 = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-MKL|Win32.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-MKL|x64.ActiveCfg = Release|x64 {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-Signed|Any CPU.ActiveCfg = Release|Win32 {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Win32 {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-Signed|Mixed Platforms.Build.0 = Release|Win32 @@ -147,6 +217,20 @@ Global {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release|Mixed Platforms.Build.0 = Release|Any CPU {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release|Win32.ActiveCfg = Release|Any CPU {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release|x64.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|Any CPU.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|Any CPU.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|Mixed Platforms.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|Mixed Platforms.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|Win32.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|Win32.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|x64.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|x64.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-MKL|Any CPU.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-MKL|Any CPU.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-MKL|Mixed Platforms.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-MKL|Mixed Platforms.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-MKL|Win32.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-MKL|x64.ActiveCfg = Release|Any CPU {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-Signed|Any CPU.Build.0 = Release|Any CPU {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU diff --git a/MathNet.Numerics.sln b/MathNet.Numerics.sln index 58787f08..4eb3bebe 100644 --- a/MathNet.Numerics.sln +++ b/MathNet.Numerics.sln @@ -9,8 +9,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Readme", "Readme", "{C2F374 CONTRIBUTORS.md = CONTRIBUTORS.md LICENSE.md = LICENSE.md README.md = README.md + RELEASENOTES-CUDA.md = RELEASENOTES-CUDA.md RELEASENOTES-Data.md = RELEASENOTES-Data.md RELEASENOTES-MKL.md = RELEASENOTES-MKL.md + RELEASENOTES-OpenBLAS.md = RELEASENOTES-OpenBLAS.md RELEASENOTES.md = RELEASENOTES.md EndProjectSection EndProject @@ -27,6 +29,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{A4A66FA9 docs\tools\build-docs.fsx = docs\tools\build-docs.fsx build.fsx = build.fsx build\MathNet.Numerics.Extension.nuspec = build\MathNet.Numerics.Extension.nuspec + build\MathNet.Numerics.MKL.Win.targets = build\MathNet.Numerics.MKL.Win.targets build\MathNet.Numerics.nuspec = build\MathNet.Numerics.nuspec paket.dependencies = paket.dependencies paket.lock = paket.lock diff --git a/RELEASENOTES-CUDA.md b/RELEASENOTES-CUDA.md new file mode 100644 index 00000000..0ab166d4 --- /dev/null +++ b/RELEASENOTES-CUDA.md @@ -0,0 +1,3 @@ +### 0.1.0-alpha - TBA +* With Nvidia CUDA 7.0.28 +* Initial version diff --git a/RELEASENOTES-OpenBLAS.md b/RELEASENOTES-OpenBLAS.md new file mode 100644 index 00000000..2951cc2c --- /dev/null +++ b/RELEASENOTES-OpenBLAS.md @@ -0,0 +1,2 @@ +### 0.1.0-alpha - TBA +* Initial version diff --git a/build.fsx b/build.fsx index 505d73fd..f0a7eade 100644 --- a/build.fsx +++ b/build.fsx @@ -51,6 +51,13 @@ let mklPackageVersion = mklRelease.NugetVersion let mklReleaseNotes = mklRelease.Notes |> List.map (fun l -> l.Replace("*","").Replace("`","")) |> toLines trace (sprintf " Math.NET Numerics MKL Provider v%s" mklPackageVersion) +let cudaRelease = LoadReleaseNotes "RELEASENOTES-CUDA.md" +let cudaBuildPart = "0" +let cudaAssemblyVersion = cudaRelease.AssemblyVersion + "." + cudaBuildPart +let cudaPackageVersion = cudaRelease.NugetVersion +let cudaReleaseNotes = cudaRelease.Notes |> List.map (fun l -> l.Replace("*","").Replace("`","")) |> toLines +trace (sprintf " Math.NET Numerics CUDA Provider v%s" cudaPackageVersion) + let dataRelease = LoadReleaseNotes "RELEASENOTES-Data.md" let dataBuildPart = "0" let dataAssemblyVersion = dataRelease.AssemblyVersion + "." + dataBuildPart @@ -187,10 +194,10 @@ let coreSignedBundle = // NATIVE PROVIDER PACKAGES -let mklWin32Pack = - { Id = "MathNet.Numerics.MKL.Win-x86" +let mklWinPack = + { Id = "MathNet.Numerics.MKL.Win" Version = mklPackageVersion - Title = "Math.NET Numerics - MKL Native Provider for Windows (x86)" + Title = "Math.NET Numerics - MKL Native Provider for Windows (x64 and x86)" Summary = "" Description = "Intel MKL native libraries for Math.NET Numerics. Requires an Intel MKL license if redistributed." ReleaseNotes = mklReleaseNotes @@ -198,15 +205,32 @@ let mklWin32Pack = Authors = [ "Christoph Ruegg"; "Marcus Cuda"; "Jurgen Van Gael" ] Dependencies = [ { FrameworkVersion="" - Dependencies=[ "MathNet.Numerics", "2.4.0" ] } ] + Dependencies=[ "MathNet.Numerics", "3.6.0" ] } ] Files = - [ @"..\..\out\MKL\Windows\x86\libiomp5md.dll", Some "content", None; - @"..\..\out\MKL\Windows\x86\MathNet.Numerics.MKL.dll", Some "content", None ] } + [ @"MathNet.Numerics.MKL.Win.targets", Some "build", None; + @"..\..\out\MKL\Windows\x64\libiomp5md.dll", Some "build\x64", None; + @"..\..\out\MKL\Windows\x64\MathNet.Numerics.MKL.dll", Some "build\x64", None; + @"..\..\out\MKL\Windows\x86\libiomp5md.dll", Some "build\x86", None; + @"..\..\out\MKL\Windows\x86\MathNet.Numerics.MKL.dll", Some "build\x86", None ] } + +let mklWin32Pack = + { mklWinPack with + Id = "MathNet.Numerics.MKL.Win-x86" + Title = "Math.NET Numerics - MKL Native Provider for Windows (x86)" + Dependencies = + [ { FrameworkVersion="" + Dependencies=[ "MathNet.Numerics", "2.4.0" ] } ] + Files = + [ @"..\..\out\MKL\Windows\x86\libiomp5md.dll", Some "content", None; + @"..\..\out\MKL\Windows\x86\MathNet.Numerics.MKL.dll", Some "content", None ] } let mklWin64Pack = - { mklWin32Pack with + { mklWinPack with Id = "MathNet.Numerics.MKL.Win-x64" Title = "Math.NET Numerics - MKL Native Provider for Windows (x64)" + Dependencies = + [ { FrameworkVersion="" + Dependencies=[ "MathNet.Numerics", "2.4.0" ] } ] Files = [ @"..\..\out\MKL\Windows\x64\libiomp5md.dll", Some "content", None; @"..\..\out\MKL\Windows\x64\MathNet.Numerics.MKL.dll", Some "content", None ] } @@ -241,7 +265,7 @@ let mklWinBundle = Title = "Math.NET Numerics MKL Native Provider for Windows" ReleaseNotesFile = "RELEASENOTES-MKL.md" FsLoader = false - Packages = [ mklWin32Pack; mklWin64Pack ] } + Packages = [ mklWinPack; mklWin32Pack; mklWin64Pack ] } let mklLinuxBundle = { Id = "MathNet.Numerics.MKL.Linux" @@ -251,6 +275,37 @@ let mklLinuxBundle = FsLoader = false Packages = [ mklLinux32Pack; mklLinux64Pack ] } +let cudaWinPack = + { Id = "MathNet.Numerics.CUDA.Win" + Version = cudaPackageVersion + Title = "Math.NET Numerics - CUDA Native Provider for Windows (x64 and x86)" + Summary = "" + Description = "Nvidia CUDA native libraries for Math.NET Numerics." + ReleaseNotes = cudaReleaseNotes + Tags = "math numeric statistics probability integration interpolation linear algebra matrix fft native cuda gpu" + Authors = [ "Matthew A Johnson"; "Christoph Ruegg" ] + Dependencies = + [ { FrameworkVersion="" + Dependencies=[ "MathNet.Numerics", "3.7.0" ] } ] + Files = + [ @"MathNet.Numerics.CUDA.Win.targets", Some "build", None; + @"..\..\out\CUDA\Windows\x64\cublas64_70.dll", Some "content", None; + @"..\..\out\CUDA\Windows\x64\cudart64_70.dll", Some "content", None; + @"..\..\out\CUDA\Windows\x64\cusolver64_70.dll", Some "content", None; + @"..\..\out\CUDA\Windows\x64\MathNet.Numerics.CUDA.dll", Some "content", None + @"..\..\out\CUDA\Windows\x86\cublas32_70.dll", Some "content", None; + @"..\..\out\CUDA\Windows\x86\cudart32_70.dll", Some "content", None; + @"..\..\out\CUDA\Windows\x86\cusolver32_70.dll", Some "content", None; + @"..\..\out\CUDA\Windows\x86\MathNet.Numerics.CUDA.dll", Some "content", None ] } + +let cudaWinBundle = + { Id = "MathNet.Numerics.CUDA.Win" + Version = mklPackageVersion + Title = "Math.NET Numerics CUDA Native Provider for Windows" + ReleaseNotesFile = "RELEASENOTES-CUDA.md" + FsLoader = false + Packages = [ cudaWinPack ] } + // DATA EXTENSION PACKAGES @@ -309,7 +364,7 @@ Target "Clean" (fun _ -> CleanDirs [ "out/lib-debug/Net35"; "out/lib-debug/Net40"; "out/lib-debug/Profile7"; "out/lib-debug/Profile47"; "out/lib-debug/Profile78"; "out/lib-debug/Profile259"; "out/lib-debug/Profile328" ] CleanDirs [ "out/test-debug/Net35"; "out/test-debug/Net40"; "out/test-debug/Profile7"; "out/test-debug/Profile47"; "out/test-debug/Profile78"; "out/test-debug/Profile259"; "out/test-debug/Profile328" ] CleanDirs [ "out/lib-signed/Net40"; "out/test-signed/Net40" ] // Signed Build - CleanDirs [ "out/MKL"; "out/ATLAS" ] // Native Providers + CleanDirs [ "out/MKL"; "out/ATLAS"; "out/CUDA"; "out/OpenBLAS" ] // Native Providers CleanDirs [ "out/Data" ]) // Data Extensions Target "ApplyVersion" (fun _ -> @@ -328,7 +383,11 @@ Target "ApplyVersion" (fun _ -> ReplaceInFile (regex_replace @"\d+\.\d+\.\d+\.\d+" mklAssemblyVersion >> regex_replace @"\d+,\d+,\d+,\d+" (replace "." "," mklAssemblyVersion)) - "src/NativeProviders/Common/resource.rc") + "src/NativeProviders/MKL/resource.rc" + ReplaceInFile + (regex_replace @"\d+\.\d+\.\d+\.\d+" cudaAssemblyVersion + >> regex_replace @"\d+,\d+,\d+,\d+" (replace "." "," cudaAssemblyVersion)) + "src/NativeProviders/CUDA/resource.rc") Target "Prepare" DoNothing "Start" @@ -344,8 +403,8 @@ Target "Prepare" DoNothing let buildConfig config subject = MSBuild "" (if hasBuildParam "incremental" then "Build" else "Rebuild") [ "Configuration", config ] subject |> ignore let build subject = buildConfig "Release" subject let buildSigned subject = buildConfig "Release-Signed" subject -let nativeWin32Build subject = MSBuild "" (if hasBuildParam "incremental" then "Build" else "Rebuild") [("Configuration","Release"); ("Platform","Win32")] subject |> ignore -let nativeWin64Build subject = MSBuild "" (if hasBuildParam "incremental" then "Build" else "Rebuild") [("Configuration","Release"); ("Platform","x64")] subject |> ignore +let buildConfig32 config subject = MSBuild "" (if hasBuildParam "incremental" then "Build" else "Rebuild") [("Configuration", config); ("Platform","Win32")] subject |> ignore +let buildConfig64 config subject = MSBuild "" (if hasBuildParam "incremental" then "Build" else "Rebuild") [("Configuration", config); ("Platform","x64")] subject |> ignore Target "BuildMain" (fun _ -> build !! "MathNet.Numerics.sln") Target "BuildNet35" (fun _ -> build !! "MathNet.Numerics.Net35Only.sln") @@ -360,13 +419,18 @@ Target "Build" DoNothing =?> ("BuildMain", not (hasBuildParam "all" || hasBuildParam "release" || hasBuildParam "net35" || hasBuildParam "signed")) ==> "Build" -Target "MklWin32Build" (fun _ -> nativeWin32Build !! "MathNet.Numerics.NativeProviders.sln") -Target "MklWin64Build" (fun _ -> nativeWin64Build !! "MathNet.Numerics.NativeProviders.sln") - +Target "MklWin32Build" (fun _ -> buildConfig32 "Release-MKL" !! "MathNet.Numerics.NativeProviders.sln") +Target "MklWin64Build" (fun _ -> buildConfig64 "Release-MKL" !! "MathNet.Numerics.NativeProviders.sln") Target "MklWinBuild" DoNothing "Prepare" ==> "MklWin32Build" ==> "MklWinBuild" "Prepare" ==> "MklWin64Build" ==> "MklWinBuild" +Target "CudaWin32Build" (fun _ -> buildConfig32 "Release-CUDA" !! "MathNet.Numerics.NativeProviders.sln") +Target "CudaWin64Build" (fun _ -> buildConfig64 "Release-CUDA" !! "MathNet.Numerics.NativeProviders.sln") +Target "CudaWinBuild" DoNothing +"Prepare" ==> "CudaWin32Build" ==> "CudaWinBuild" +"Prepare" ==> "CudaWin64Build" ==> "CudaWinBuild" + Target "DataBuild" (fun _ -> build !! "MathNet.Numerics.Data.sln") "Prepare" ==> "DataBuild" diff --git a/build/MathNet.Numerics.CUDA.Win.targets b/build/MathNet.Numerics.CUDA.Win.targets new file mode 100644 index 00000000..74be39a2 --- /dev/null +++ b/build/MathNet.Numerics.CUDA.Win.targets @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + $(BuildDependsOn); + CopyMathNetInteropFiles; + + + $(CleanDependsOn); + CleanMathNetInteropFiles; + + + diff --git a/build/MathNet.Numerics.MKL.Win.targets b/build/MathNet.Numerics.MKL.Win.targets new file mode 100644 index 00000000..870de2b4 --- /dev/null +++ b/build/MathNet.Numerics.MKL.Win.targets @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + $(BuildDependsOn); + CopyMathNetInteropFiles; + + + $(CleanDependsOn); + CleanMathNetInteropFiles; + + + diff --git a/src/NativeProviders/Windows/CUDA/CUDAWrapper.vcxproj b/src/NativeProviders/Windows/CUDA/CUDAWrapper.vcxproj index 45f99146..476349ff 100644 --- a/src/NativeProviders/Windows/CUDA/CUDAWrapper.vcxproj +++ b/src/NativeProviders/Windows/CUDA/CUDAWrapper.vcxproj @@ -105,7 +105,7 @@ true cublas.lib;cublas_device.lib;%(AdditionalDependencies) - $(CUDA_PATH)\lib\x64;%(AdditionalLibraryDirectories) + $(CUDA_PATH)\lib\Win32;%(AdditionalLibraryDirectories) @@ -141,7 +141,7 @@ copy "$(CUDA_PATH)\bin\cudart64_70.dll" $(OutputPath) true true cublas.lib;%(AdditionalDependencies) - $(CUDA_PATH)\lib\x64;%(AdditionalLibraryDirectories) + $(CUDA_PATH)\lib\Win32;%(AdditionalLibraryDirectories)