Quantcast
Channel: Math.NET Numerics - Math.NET
Viewing all articles
Browse latest Browse all 224

Math.NET Numerics Intel MKL with Unity C# - Missing assembly reference

$
0
0

@maxdefeber wrote:

Intro

How to correctly install the Intel Math Kernel Library (MKL) from Math.NET Numerics on a C# script, which is part of a Unity project? Following instructions from a Unity forum, I've managed to successfully install Math.NET Numerics on C# Unity. Now I want to install Intel MKL following instructions from source 1, but I can't get it to work. Installing Intel MKL on a regular (no Unity) C# script works with above instructions, but not in C# with Unity.

Things I've done

  • Install Intel MKL to C# Unity using VS' Package Manager with NuGet (successfully):

    Install-Package MathNet.Numerics.MKL.Win-x64

  • Sources 1 and 2 tell you to put both MathNet.Numerics.MKL.dll and libiomp5md.dll to the output directory, which is set to Temp\UnityVS_bin\Debug\ in C# Unity. As C# Unity didn't do this itself after PM NuGet install, I've put a pre-built event command line in VS (Project, Properties, Built Events):

    xcopy /y /d "$(ProjectDir)\packages\MathNet.Numerics.MKL.Win-x64.2.2.0\build\x64*.dll" "$(ProjectDir)$(OutDir)"

Which successfully puts the two .dll files into the temporary Unity output directory, before build.
- Many Unity / C# forums tell you to put the .dll files of a plugin into the Assets (/Plugins) folder of your Unity project. I also did this with the two .dll files.
- Copied the Math.NET Numerics reference including Intel MKL (from the regular C# script) to the Unity C# script.

Problem

After these steps, Intel MKL still is not recognized as namespace of MathNet. The following error keeps on showing up:

The type or namespace name 'Mkl' does not exist in the namespace 'MathNet.Numerics.Providers.LinearAlgebra' (are you missing an assembly reference?)

I've noticed that in the regular C# script (where I got Intel MKL working), Solution Explorer --> References --> MathNet.Numerics double-click shows the Mkl linear algebra provider. And in my Unity C# (with Math.NET Numerics installed, but Intel MKL not working due to missing assembly reference), when I look at the references under MathNet.Numerics, the Mkl linear algebra provider is missing.

Question

How to solve this problem? How to add the missing assembly reference?

My setup

Unity 5.6.0f3 (64 bit) - .NET 3.5 framework

Visual Studio 2015

Windows 10

Posts: 6

Participants: 2

Read full topic


Viewing all articles
Browse latest Browse all 224

Trending Articles