You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
using System;
using System.Reflection;
using System.Runtime.InteropServices;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class matrix_test {
[TestMethod]
public void matrix_multiply_test(){
MKLNET.matrix matrixA = new MKLNET.matrix(6, 6);
for (int i = 0; i < matrixA.Cols; ++i) {
for (int j = 0; j < matrixA.Rows; ++j) {
matrixA[i, j] = (i + 1) * (j + 1);
}
}
try { MKLNET.matrix result = matrixA * matrixA;
} catch (ExternalException e) {
Console.WriteLine(e.ErrorCode);
Console.WriteLine(e.Source);
Assert.Fail();
}
Assert.IsTrue(true);
}
}
output (catching the exception)
Error Message:
Assert.Fail failed.
Stack Trace:
at matrix_test.matrix_multiply_test() in C:\test\test.cs:line 20
Standard Output Messages:
-2147467259 (translates to 0x80004005, an Unspecified Error)
MKL.NET
output (not catching the exception)
System.Runtime.InteropServices.SEHException: External component has thrown an exception.
Stack Trace:
at MKLNET.Blas.Unsafe.gemm(Layout Layout, Trans TransA, Trans TransB, Int32 M, Int32 N, Int32 K, Double alpha, Double* A, Int32 lda, Double* B, Int32 ldb, Double beta, Double* C, Int32 ldc)
at MKLNET.Expression.MatrixMultiply.Evaluate()
at MKLNET.Expression.MatrixExpression.op_Implicit(MatrixExpression a)
at matrix_test.matrix_multiply_test() in C:\test\test.cs:line 16
Some scenarios where this error doesn't exist (that could help isolate the issue):
when using mcr.microsoft.com/dotnet/sdk:6.0-jammy image (I change the runtime package to MKL.NET.linux-x64 and change dockerfile test path to /test/)
executing the unit test outside of a docker image (i.e. normal windows 11)
Insight on why this error could be happening or how to get more information out of the external failure would be greatly helpful. Thanks
The text was updated successfully, but these errors were encountered:
There should be an SEHException.ErrorCode property, maybe if you print the value you can find out more.
Oh, you already did that, sorry…
Maybe the windowsservercore-ltsc2022 image is missing something, like an MSVC redistributable or other libraries? That typically should give you a missing DLL error, but I do not have much experience with Windows containers.
According to Dependency Walker the MKL libraries do not need MSVC. I’ve read that you can run procmon (SysInternals Process Monitor) in a Windows container to monitor what the process does, maybe this will help
Encountering errors with matrix multiplication using MKL.NET.Matrix Nuget package in a docker container
Dockerfile
test.csproj file
test.cs file:
output (catching the exception)
output (not catching the exception)
Some scenarios where this error doesn't exist (that could help isolate the issue):
MKL.NET.linux-x64
and change dockerfile test path to/test/
)Insight on why this error could be happening or how to get more information out of the external failure would be greatly helpful. Thanks
The text was updated successfully, but these errors were encountered: