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
Port C# hardware intrinsics APIs for SSE from SIMD native algorithms (#562)
* Implemented SSE support and software fallbacks for key intrinsics
* Implemented unit tests for key intrinsics with passing results
* Implemented performance tests on some key intrinsics with BenchmarkDotNet
* Fixed array pinning issues and solved unreported latency of NativeDotSU
* Minor syntax change for style consistency in fixed statements
* Implemented performance tests for all key intrinsics
* Simulated user performance with large inputs
* Allow CpuMath to reference C# Hardware Intrinsics APIs.
Need to multi-target CpuMath for netstandard and netcoreapp2.1. Also, since we are going to move CpuMath into its own NuGet package, remove the dependency from CpuMath to the ML.Core project.
* Added files for the hierarchical framework to prepare for multi-targetting.
Note: It will not compile until Microsoft.ML.CpuMath.csproj is changed to adapt to multi-targetting.
* Removed the redundant CpuMathUtils.cs file.
* Cleaned up the primitive build constant for featuring intrinsics
* Created a new helper class holding C# implementations of SSE intrinsics to simplify CpuMathUtils.DotNetCoreApp.cs
* Minor change in naming of variables
* Implemented more SSE intrinsics
* Changed version number of .NET Core App as target framework
* Cleaned up unit test file that needs to be split into two for multi-targeting
* Fixed seed in performance tests
* Cleaned up unreferenced namespaces
* Split unit tests into two projects for multi-targetting
* Cleaned up new intrinsics that are not yet tested to prepare for PR
* Minor style changes
* Added the solution package that includes multi-targeting with UseIntrinsics attribute
* Included all files in the CpuMath project for display in Visual Studio regardless of target framework
* Removed irrelevant build line from CpuMath
- due to working in Mac OSX
* Response to PR review
* Removed deprecated src\Native\CpuMath working folder
* Removed unnecessary references in unit tests
* Minor style changes
* Fixed SLN file
* Fixed build error with netcoreapp3.0 not supported
* Minor style fixes
* Skip netcoreapp3.0 projects when not building for intrinsics
* Exclude netcoreapp3.0 tests from running by overriding VSTest target
* Second response to PR feedback
* Removed NETCoreAppMaximumVersion tags with modification
* Moved VSTest targets to Empty.targets, and parsed -Intrinsics configs for Native build
* Modified VectorSum to fix perf results
* Modified VectorSum to comply with latest C# language updates
* Response to PR feedback: added a comment and removed unnecessary MSBuild tags
* Made private functions for SSE intrinsics inline
In the SDK ImportAfter folder, this property is declared to point to Microsoft.TestPlatform.targets, which is the file containing the original VSTest target.
6
+
Since the Microsoft.TestPlatform.targets are in the ImportAfter folder, they would be imported after this file hence our empty VSTest target would be overriden,
7
+
in order to be able to override this target, we set the VSTestTargets property to an inexistent file path, so nothing will be imported and that way we successfully
8
+
overrode the VSTest target.
9
+
-->
10
+
<VSTestTargets>ignore.targets</VSTestTargets>
11
+
</PropertyGroup>
12
+
13
+
<!--
14
+
Copied from https://github.com/dotnet/arcade/blob/master/src/Microsoft.DotNet.Arcade.Sdk/tools/Empty.targets
15
+
16
+
Import this file to suppress all targets while allowing the project to participate in the build.
17
+
Workaround for https://github.com/dotnet/sdk/issues/2071.
18
+
19
+
The targets defined here are not sufficient for the project to be open in Visual Studio without issues though.
0 commit comments