mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-17 21:10:43 +00:00
### Description 1) Added Sequence And Maps convenience APIs to create input Sequences and Maps and also visit the outputs. 2) Address OrtValue design issue when the values are created on top of the managed memory and the ortValues are used for sequence and maps creation. We should retain the original managed instances that keep the memory pinned. We opt to keep track of those and dispose of them within an instance of OrtValue that represents a Map or a Sequence. 3) Set `LangVersion` to default per [MS Versioning Docs.](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version) ### Motivation and Context 1) When writing code examples, use of Map and Sequences API proved to be cumbersome. 2) It is a BUG, that we should address, as the managed memory can move by the GC and lead to intermittent crashes. 3) Make use of the most feature of the C#.
136 lines
6.9 KiB
XML
136 lines
6.9 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>net6.0</TargetFramework>
|
|
<IsPackable>false</IsPackable>
|
|
<OnnxRuntimeCsharpRoot>$(ProjectDir)..\..</OnnxRuntimeCsharpRoot>
|
|
<Platforms>AnyCPU;x86</Platforms>
|
|
<OutputPath>bin\$(Configuration)\</OutputPath>
|
|
<IsLinuxBuild Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))' == 'true'">true</IsLinuxBuild>
|
|
<IsWindowsBuild Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Windows)))' == 'true'">true</IsWindowsBuild>
|
|
<IsMacOSBuild Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))' == 'true'">true</IsMacOSBuild>
|
|
<ProtoSrc>$(OnnxSourceDirectory)\onnx</ProtoSrc>
|
|
<!-- following attributes were necessary for the migrated Tensor tests -->
|
|
<LangVersion>default</LangVersion>
|
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
|
<SignAssembly>true</SignAssembly> <!-- need signing for friend access to the internals of the Tensors assembly -->
|
|
<AssemblyOriginatorKeyFile>..\..\OnnxRuntime.snk</AssemblyOriginatorKeyFile>
|
|
<Configurations>Debug;Release;RelWithDebInfo</Configurations>
|
|
<!-- end -->
|
|
|
|
<!-- Training build property.
|
|
Should be set to true when training is enabled in onnxruntime native binary
|
|
Note: This property should be set when building the csharp solution independently.
|
|
When building using the build.py script, setting the necessary properties is handled by the script. -->
|
|
<TrainingEnabledNativeBuild Condition="'$(TrainingEnabledNativeBuild)' == ''">false</TrainingEnabledNativeBuild>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(TrainingEnabledNativeBuild)'=='true'">
|
|
<ExtraDefineConstants>$(ExtraDefineConstants);__TRAINING_ENABLED_NATIVE_BUILD__</ExtraDefineConstants>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<DefineConstants>__NET_CORE_APP__;$(DefineConstants);$(ExtraDefineConstants)</DefineConstants>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(IsLinuxBuild)'=='true'">
|
|
<!--internal build related properties for Linux -->
|
|
<OnnxRuntimeBuildDirectory Condition="'$(OnnxRuntimeBuildDirectory)'==''">$(OnnxRuntimeCsharpRoot)\..\build\Linux</OnnxRuntimeBuildDirectory>
|
|
<NativeBuildOutputDir>$(OnnxRuntimeBuildDirectory)\$(Configuration)</NativeBuildOutputDir>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(IsWindowsBuild)'=='true'">
|
|
<!--internal build related properties for Windows -->
|
|
<OnnxRuntimeBuildDirectory Condition="'$(OnnxRuntimeBuildDirectory)'==''">$(OnnxRuntimeCsharpRoot)\..\build\Windows</OnnxRuntimeBuildDirectory>
|
|
<NativeBuildOutputDir>$(OnnxRuntimeBuildDirectory)\$(Configuration)\$(Configuration)</NativeBuildOutputDir>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(IsMacOSBuild)'=='true'">
|
|
<!--internal build related properties for OSX -->
|
|
<OnnxRuntimeBuildDirectory Condition="'$(OnnxRuntimeBuildDirectory)'==''">$(OnnxRuntimeCsharpRoot)\..\build\MacOS</OnnxRuntimeBuildDirectory>
|
|
<NativeBuildOutputDir>$(OnnxRuntimeBuildDirectory)\$(Configuration)</NativeBuildOutputDir>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="Microsoft.NETCore.Targets" Version="5.0.0" />
|
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
|
|
<PackageReference Include="xunit" Version="2.4.1" />
|
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />
|
|
</ItemGroup>
|
|
|
|
<!--
|
|
Copy the required libraries for testing to the output directory.
|
|
NOTE: We use a wildcard for custom_op_library even though that isn't necessary, so it doesn't fail
|
|
if the custom op library isn't present, which it may not be depending on the ORT build settings.
|
|
-->
|
|
<ItemGroup>
|
|
<None Condition="'$(IsWindowsBuild)'=='true'"
|
|
Include="$(NativeBuildOutputDir)\onnxruntime.dll;
|
|
$(NativeBuildOutputDir)\onnxruntime.pdb;
|
|
$(NativeBuildOutputDir)\onnxruntime_providers_*.dll;
|
|
$(NativeBuildOutputDir)\onnxruntime_providers_*.pdb;
|
|
$(NativeBuildOutputDir)\custom_op_library*.dll">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
|
|
<None Condition="'$(IsLinuxBuild)'=='true'"
|
|
Include="$(NativeBuildOutputDir)\libonnxruntime.so;
|
|
$(NativeBuildOutputDir)\libonnxruntime_providers_*.so;
|
|
$(NativeBuildOutputDir)\libcustom_op_library*.so">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
|
|
<None Condition="'$(IsMacOSBuild)'=='true'"
|
|
Include="$(NativeBuildOutputDir)\libonnxruntime.dylib;
|
|
$(NativeBuildOutputDir)\libonnxruntime_providers_*.dylib;
|
|
$(NativeBuildOutputDir)\libcustom_op_library*.dylib">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
|
|
<None Include="$(OnnxRuntimeCSharpRoot)\testdata\*">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
<None Include="$(OnnxRuntimeCSharpRoot)\..\onnxruntime\test\testdata\overridable_initializer.onnx">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
<None Include="$(OnnxRuntimeCSharpRoot)\..\onnxruntime\test\testdata\capi_symbolic_dims.onnx">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
<None Include="$(OnnxRuntimeCSharpRoot)\..\onnxruntime\test\testdata\custom_op_library\custom_op_test.onnx">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
<BuildEnvVars Include="OnnxRuntimeBuildDirectory=$(OnnxRuntimeBuildDirectory)" />
|
|
</ItemGroup>
|
|
|
|
<Target Name="DefineBuildEnvironmentVariables" BeforeTargets="Build">
|
|
<WriteLinesToFile File="$(OutputPath)\Properties.txt" Lines="@(BuildEnvVars)" Overwrite="true" />
|
|
</Target>
|
|
|
|
<ItemGroup>
|
|
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
|
|
</ItemGroup>
|
|
|
|
<!-- NOTE: The xUnit framework doesn't pickup the tests defined within the referenced Microsoft.ML.OnnxRuntime.Tests.Common project -->
|
|
<ItemGroup>
|
|
<Compile Include="..\Microsoft.ML.OnnxRuntime.Tests.Common\**\*Test.cs" />
|
|
<Compile Include="..\Microsoft.ML.OnnxRuntime.Tests.Common\**\*Tests.cs" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<None Include="$(OnnxRuntimeCSharpRoot)\..\onnxruntime\test\testdata\training_api\**\*.*">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\Microsoft.ML.OnnxRuntime.Tests.Common\Microsoft.ML.OnnxRuntime.Tests.Common.csproj" />
|
|
</ItemGroup>
|
|
</Project>
|