Skip to content

Commit a1d76cc

Browse files
Add Windows ARM64 CPU support for TorchSharp
Add support for building, packaging, and distributing TorchSharp on Windows ARM64 (CPU-only, no CUDA). This enables .NET developers on Windows ARM64 devices to use TorchSharp with the stable LibTorch 2.10.0 release. Key changes: - MSBuild: Add win-arm64 RID mapping, archive name, and cmake path (ARM64 archive has different layout: lib/ instead of libtorch/lib/) - Native build: Enable ARM64 cross-compilation from x64 via MSVC amd64_arm64 toolchain and CMake -A ARM64 - Runtime: Detect win-arm64 in Torch.cs nativeRid for correct native library loading - NuGet: Add libtorch-cpu-win-arm64 package and update libtorch-cpu meta-package - CI: Add Windows ARM64 PR validation and native build pipeline jobs (cross-compiled on x64 agents) - LibTorch: ARM64 uses armpl_lp64.dll (ARM Performance Libraries) instead of Intel OpenMP (libiomp5md.dll) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 297f8cb commit a1d76cc

File tree

11 files changed

+178
-24
lines changed

11 files changed

+178
-24
lines changed

Directory.Build.props

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,12 @@
5555
<TargetPlatform Condition="'$(TargetPlatform)' == ''">$(TargetOS)-$(TargetArchitecture)</TargetPlatform>
5656

5757
<TargetRuntimeID Condition="'$(TargetOS)' == 'windows'">win-x64</TargetRuntimeID>
58+
<TargetRuntimeID Condition="'$(TargetPlatform)' == 'windows-arm64'">win-arm64</TargetRuntimeID>
5859
<TargetRuntimeID Condition="'$(TargetOS)' == 'linux'">linux-x64</TargetRuntimeID>
5960
<TargetRuntimeID Condition="'$(TargetPlatform)' == 'mac-arm64'">osx-arm64</TargetRuntimeID>
6061

6162
<TargetRuntimeID Condition="'$(TargetOS)' == 'windows'">win-x64</TargetRuntimeID>
63+
<TargetRuntimeID Condition="'$(TargetPlatform)' == 'windows-arm64'">win-arm64</TargetRuntimeID>
6264
<TargetRuntimeID Condition="'$(TargetOS)' == 'linux'">linux-x64</TargetRuntimeID>
6365
<TargetRuntimeID Condition="'$(TargetOS)' == 'mac'">osx-$(TargetArchitecture)</TargetRuntimeID>
6466

@@ -141,14 +143,17 @@
141143
<LibTorchCpuLocalNameSuffix>cpu</LibTorchCpuLocalNameSuffix>
142144
<LibTorchCudaLocalNameSuffix>cu$(CudaVersionNoDot)</LibTorchCudaLocalNameSuffix>
143145
<LibTorchArchiveCoreName Condition="'$(TargetOS)' == 'windows'">libtorch-win-shared-with-deps$(LibTorchDebug)</LibTorchArchiveCoreName>
146+
<LibTorchArchiveCoreName Condition="'$(TargetPlatform)' == 'windows-arm64'">libtorch-win-arm64-shared-with-deps$(LibTorchDebug)</LibTorchArchiveCoreName>
144147
<LibTorchArchiveCoreName Condition="'$(TargetOS)' == 'linux'">libtorch-shared-with-deps</LibTorchArchiveCoreName>
145148
<LibTorchArchiveCoreName Condition="'$(TargetOS)' == 'mac'">libtorch-macos-x86_64</LibTorchArchiveCoreName>
146149
<LibTorchArchiveCoreName Condition="'$(TargetPlatform)' == 'mac-arm64'">libtorch-macos-arm64</LibTorchArchiveCoreName>
147150
<LibTorchCpuArchiveBase>$(LibTorchArchiveCoreName)-$(LibTorchVersion)$(LibTorchCpuArchiveNameSuffix)</LibTorchCpuArchiveBase>
148151
<LibTorchCudaArchiveBase>$(LibTorchArchiveCoreName)-$(LibTorchVersion)$(LibTorchCudaArchiveNameSuffix)</LibTorchCudaArchiveBase>
149152
<LibTorchCpuLocalBase>$(LibTorchArchiveCoreName)-$(LibTorchVersion)$(LibTorchCpuLocalNameSuffix)</LibTorchCpuLocalBase>
150153
<LibTorchCudaLocalBase>$(LibTorchArchiveCoreName)-$(LibTorchVersion)$(LibTorchCudaLocalNameSuffix)</LibTorchCudaLocalBase>
151-
<LibTorchCmakePath>$(IntermediateOutputRootPath)libtorch-cpu\$(LibTorchCpuLocalBase)\libtorch\share\cmake\Torch</LibTorchCmakePath>
154+
<LibTorchCmakePath Condition="'$(TargetPlatform)' != 'windows-arm64'">$(IntermediateOutputRootPath)libtorch-cpu\$(LibTorchCpuLocalBase)\libtorch\share\cmake\Torch</LibTorchCmakePath>
155+
<!-- Windows ARM64 archive has a different layout: share/cmake/Torch instead of libtorch/share/cmake/Torch -->
156+
<LibTorchCmakePath Condition="'$(TargetPlatform)' == 'windows-arm64'">$(IntermediateOutputRootPath)libtorch-cpu\$(LibTorchCpuLocalBase)\share\cmake\Torch</LibTorchCmakePath>
152157
</PropertyGroup>
153158

154159
<!-- Language configuration -->

Directory.Build.targets

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,16 @@
1818
<NativeAssemblyReference Include="uv" />
1919
</ItemGroup>
2020

21+
<!-- Windows ARM64 CPU libtorch binary list used for examples and testing -->
22+
<ItemGroup Condition="'$(NativeTargetArchitecture)' == 'arm64' and '$(OS)' == 'Windows_NT' and '$(TestUsesLibTorch)' == 'true' and ('$(TestCuda)' != 'true' or '$(SkipCuda)' == 'true') and '$(SkipNative)' != 'true' ">
23+
<NativeAssemblyReference Include="armpl_lp64" />
24+
<NativeAssemblyReference Include="c10" />
25+
<NativeAssemblyReference Include="torch" />
26+
<NativeAssemblyReference Include="torch_cpu" />
27+
<NativeAssemblyReference Include="torch_global_deps" />
28+
<NativeAssemblyReference Include="uv" />
29+
</ItemGroup>
30+
2131
<!-- Windows CUDA 12.1 libtorch binary list used for examples and testing -->
2232
<ItemGroup Condition="'$(NativeTargetArchitecture)' == 'x64' and '$(OS)' == 'Windows_NT' and '$(TestUsesLibTorch)' == 'true' and ('$(TestCuda)' == 'true' and '$(SkipCuda)' != 'true') and '$(SkipNative)' != 'true' ">
2333
<NativeAssemblyReference Include="c10" Variant="cuda\" />

azure-pipelines.yml

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,15 @@ jobs:
8989
pool:
9090
vmImage: 'macos-latest'
9191

92+
- template: /build/ci/job-template.yml
93+
parameters:
94+
prepScript: echo "no prep needed"
95+
name: Windows_arm64
96+
buildScript: dotnet build /p:SkipCuda=true /p:TargetArchitecture=arm64 /p:SkipNetFxBuild=true -c
97+
testScript: echo "Cannot run ARM64 tests on x64 Azure Pipelines agent"
98+
pool:
99+
vmImage: 'windows-latest'
100+
92101
################################################################################
93102
# {Build} --> combine --> package to build native bits on multiple OS's
94103
################################################################################
@@ -285,13 +294,72 @@ jobs:
285294
- publish: $(Build.SourcesDirectory)/bin/obj/packprep/$(BuildConfig)
286295
artifact: MacAssets_arm64
287296

297+
################################################################################
298+
- job: Windows_arm64_Native_Build_For_Packages
299+
################################################################################
300+
condition: and(ne(variables['system.pullrequest.isfork'], true), eq(variables['build.sourcebranchname'], '${{ parameters.SourceBranchName }}'))
301+
variables:
302+
BuildConfig: Release
303+
OfficialBuildId: $(BUILD.BUILDNUMBER)
304+
DOTNET_CLI_TELEMETRY_OPTOUT: 1
305+
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
306+
DOTNET_MULTILEVEL_LOOKUP: 0
307+
pool:
308+
vmImage: 'windows-latest'
309+
steps:
310+
# Initial cleanup
311+
- script: |
312+
rmdir /s /q .git 2>nul
313+
dotnet nuget locals all --clear
314+
dir
315+
displayName: Initial cleanup
316+
continueOnError: true
317+
318+
- task: UseDotNet@2
319+
displayName: 'Use .NET Core sdk'
320+
inputs:
321+
packageType: sdk
322+
version: 8.0.x
323+
installationPath: $(Agent.ToolsDirectory)/dotnet
324+
325+
# Download ARM64 LibTorch and clean immediately
326+
- script: |
327+
dotnet build -c $(BuildConfig) src/Redist/libtorch-cpu/libtorch-cpu.proj /p:UpdateSHA=true /p:SkipTests=true /p:TargetOS=windows /p:TargetArchitecture=arm64 /t:Build /p:IncludeLibTorchCpuPackages=true
328+
del /s /q *.zip 2>nul
329+
del /s /q *.tar.gz 2>nul
330+
displayName: Download ARM64 libtorch native binaries and cleanup
331+
condition: eq('${{ parameters.BuildLibTorchPackages }}', true)
332+
333+
# Cross-compile LibTorchSharp for ARM64 on x64 host
334+
- script: dotnet build -c $(BuildConfig) src/TorchSharp/TorchSharp.csproj /p:SkipCuda=true /p:SkipTests=true /p:TargetArchitecture=arm64
335+
condition: eq('${{ parameters.BuildLibTorchPackages }}', true)
336+
displayName: Build TorchSharp win-arm64
337+
338+
- script: dotnet build -c $(BuildConfig) src/TorchVision/TorchVision.csproj /p:SkipCuda=true /p:SkipTests=true /p:TargetArchitecture=arm64
339+
displayName: Build TorchVision
340+
341+
- script: dotnet build -c $(BuildConfig) src/TorchAudio/TorchAudio.csproj /p:SkipCuda=true /p:SkipTests=true /p:TargetArchitecture=arm64
342+
displayName: Build TorchAudio
343+
344+
# Clean up unnecessary files before publishing
345+
- script: |
346+
del /s /q $(Build.SourcesDirectory)\bin\*.pdb 2>nul
347+
del /s /q $(Build.SourcesDirectory)\bin\*.xml 2>nul
348+
del /s /q $(Build.SourcesDirectory)\bin\obj\packprep\$(BuildConfig)\*.lib 2>nul
349+
displayName: Clean up unnecessary files
350+
continueOnError: true
351+
352+
- publish: $(Build.SourcesDirectory)/bin/obj/packprep/$(BuildConfig)
353+
artifact: WindowsAssets_arm64
354+
288355
################################################################################
289356
- job: Build_TorchSharp_And_libtorch_cpu_Packages
290357
################################################################################
291358
condition: and(ne(variables['system.pullrequest.isfork'], true), eq(variables['build.sourcebranchname'], '${{ parameters.SourceBranchName }}'))
292359
dependsOn:
293360
- Linux_Native_Build_For_Packages
294361
- Windows_Native_Build_For_Packages
362+
- Windows_arm64_Native_Build_For_Packages
295363
- MacOS_arm64_Native_Build_For_Packages
296364
timeoutInMinutes: 90
297365
variables:
@@ -496,6 +564,56 @@ jobs:
496564
displayName: Clean WindowsAssets immediately
497565
continueOnError: true
498566

567+
# Process Windows ARM64 assets
568+
- task: DownloadPipelineArtifact@2
569+
displayName: Download Windows ARM64 TorchSharp assets
570+
inputs:
571+
artifact: WindowsAssets_arm64
572+
patterns: |
573+
TorchSharp/**
574+
path: $(Pipeline.Workspace)/WindowsAssets_arm64
575+
retryCountOnTaskFailure: 3
576+
577+
- task: DownloadPipelineArtifact@2
578+
displayName: Download Windows ARM64 TorchAudio assets
579+
inputs:
580+
artifact: WindowsAssets_arm64
581+
patterns: |
582+
TorchAudio/**
583+
path: $(Pipeline.Workspace)/WindowsAssets_arm64
584+
retryCountOnTaskFailure: 3
585+
586+
- task: DownloadPipelineArtifact@2
587+
displayName: Download Windows ARM64 TorchVision assets
588+
inputs:
589+
artifact: WindowsAssets_arm64
590+
patterns: |
591+
TorchVision/**
592+
path: $(Pipeline.Workspace)/WindowsAssets_arm64
593+
retryCountOnTaskFailure: 3
594+
595+
- task: DownloadPipelineArtifact@2
596+
displayName: Download Windows ARM64 libtorch-cpu assets
597+
condition: eq('${{ parameters.BuildLibTorchPackages }}', true)
598+
inputs:
599+
artifact: WindowsAssets_arm64
600+
patterns: |
601+
libtorch-cpu-win-arm64/**
602+
path: $(Pipeline.Workspace)/WindowsAssets_arm64
603+
retryCountOnTaskFailure: 3
604+
continueOnError: true
605+
606+
- task: CopyFiles@2
607+
displayName: Copy Windows ARM64 native assets (batch)
608+
inputs:
609+
sourceFolder: $(Pipeline.Workspace)/WindowsAssets_arm64
610+
targetFolder: $(Build.SourcesDirectory)/bin/obj/packprep/$(BuildConfig)
611+
cleanTargetFolder: false
612+
613+
- script: rmdir /s /q $(Pipeline.Workspace)\WindowsAssets_arm64
614+
displayName: Clean WindowsAssets_arm64 immediately
615+
continueOnError: true
616+
499617
# Restore and pack
500618
- script: dotnet restore pkg/pack.proj /p:Configuration=Release --nologo
501619
displayName: Restore package projects
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<Project Sdk="Microsoft.NET.Sdk" DefaultTargets="Pack">
2+
3+
<PropertyGroup>
4+
<TargetFramework>netstandard2.0</TargetFramework>
5+
</PropertyGroup>
6+
7+
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
8+
</ItemGroup>
9+
10+
<ItemGroup>
11+
<Content Include="..\common\CpuHeadPackage.props" Pack="true" PackagePath="buildTransitive\netstandard2.0\$(MSBuildProjectName).props" />
12+
<Content Include="..\common\CpuHeadPackage.targets" Pack="true" PackagePath="buildTransitive\netstandard2.0\$(MSBuildProjectName).targets" />
13+
<Content Include="..\empty.txt" Pack="true" PackagePath="lib\netstandard2.0\_._" />
14+
<Content Include="$(RepoRoot)\THIRD-PARTY-NOTICES.txt" Pack="true" PackagePath="LICENSE-LIBTORCH.txt" />
15+
</ItemGroup>
16+
</Project>

pkg/libtorch-cpu/libtorch-cpu.nupkgproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<ItemGroup>
88
<ProjectReference Include="../libtorch-cpu-linux-x64/libtorch-cpu-linux-x64.nupkgproj" />
99
<ProjectReference Include="../libtorch-cpu-osx-arm64/libtorch-cpu-osx-arm64.nupkgproj" />
10+
<ProjectReference Include="../libtorch-cpu-win-arm64/libtorch-cpu-win-arm64.nupkgproj" />
1011
<ProjectReference Include="../libtorch-cpu-win-x64/libtorch-cpu-win-x64.nupkgproj" />
1112
</ItemGroup>
1213

pkg/pack.proj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
Condition="'$(IncludeTorchSharpPackage)' == 'true' AND !Exists('$(PackagePreparationPath)\TorchSharp\runtimes\linux-x64\native\libLibTorchSharp.so')" />
2525
<Warning Text="Packages will be incomplete and unusable on win-x64 platform. To get a complete package you need the LibTorchSharp.dll binaries for other platforms and copy them into '$(PackagePreparationPath)' to make complete packages. This is automated by Azure Pipelines."
2626
Condition="'$(IncludeTorchSharpPackage)' == 'true' AND !Exists('$(PackagePreparationPath)\TorchSharp\runtimes\win-x64\native\LibTorchSharp.dll')" />
27+
<Warning Text="Packages will be incomplete and unusable on win-arm64 platform. To get a complete package you need the LibTorchSharp.dll binaries for other platforms and copy them into '$(PackagePreparationPath)' to make complete packages. This is automated by Azure Pipelines."
28+
Condition="'$(IncludeTorchSharpPackage)' == 'true' AND !Exists('$(PackagePreparationPath)\TorchSharp\runtimes\win-arm64\native\LibTorchSharp.dll')" />
2729

2830
<MSBuild Projects="%(PackProject.Identity)" Targets="Pack" />
2931

src/Native/build.cmd

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ if /i [%1] == [Debug] ( set CMAKE_BUILD_TYPE=Debug&&shift&goto Arg_Loop)
2323
if /i [%1] == [x86] ( set __BuildArch=x86&&set __VCBuildArch=x86&&shift&goto Arg_Loop)
2424
if /i [%1] == [x64] ( set __BuildArch=x64&&set __VCBuildArch=x86_amd64&&shift&goto Arg_Loop)
2525
if /i [%1] == [amd64] ( set __BuildArch=x64&&set __VCBuildArch=x86_amd64&&shift&goto Arg_Loop)
26+
if /i [%1] == [arm64] ( set __BuildArch=ARM64&&set __VCBuildArch=amd64_arm64&&shift&goto Arg_Loop)
2627

2728
if /i [%1] == [--libtorchpath] ( set LIBTORCH_PATH=%2&&shift&goto Arg_Loop)
2829

@@ -66,50 +67,39 @@ exit /b 1
6667
:: Setup vars for VS2026
6768
set __PlatformToolset=v145
6869
set __VSVersion=18 2026
69-
if NOT "%__BuildArch%" == "arm64" (
70-
:: Set the environment for the native build
71-
call "%VS180COMNTOOLS%..\..\VC\Auxiliary\Build\vcvarsall.bat" %__VCBuildArch%
72-
)
70+
:: Set the environment for the native build (including cross-compilation for ARM64)
71+
call "%VS180COMNTOOLS%..\..\VC\Auxiliary\Build\vcvarsall.bat" %__VCBuildArch%
7372
goto :SetupDirs
7473

7574
:VS2022
7675
:: Setup vars for VS2022
7776
set __PlatformToolset=v143
7877
set __VSVersion=17 2022
79-
if NOT "%__BuildArch%" == "arm64" (
80-
:: Set the environment for the native build
81-
call "%VS170COMNTOOLS%..\..\VC\Auxiliary\Build\vcvarsall.bat" %__VCBuildArch%
82-
)
78+
:: Set the environment for the native build (including cross-compilation for ARM64)
79+
call "%VS170COMNTOOLS%..\..\VC\Auxiliary\Build\vcvarsall.bat" %__VCBuildArch%
8380
goto :SetupDirs
8481

8582
:VS2019
8683
:: Setup vars for VS2019
8784
set __PlatformToolset=v142
8885
set __VSVersion=16 2019
89-
if NOT "%__BuildArch%" == "arm64" (
90-
:: Set the environment for the native build
91-
call "%VS160COMNTOOLS%..\..\VC\Auxiliary\Build\vcvarsall.bat" %__VCBuildArch%
92-
)
86+
:: Set the environment for the native build (including cross-compilation for ARM64)
87+
call "%VS160COMNTOOLS%..\..\VC\Auxiliary\Build\vcvarsall.bat" %__VCBuildArch%
9388
goto :SetupDirs
9489

9590
:VS2017
9691
:: Setup vars for VS2017
9792
set __PlatformToolset=v141
9893
set __VSVersion=15 2017
99-
if NOT "%__BuildArch%" == "arm64" (
100-
:: Set the environment for the native build
101-
call "%VS150COMNTOOLS%..\..\VC\Auxiliary\Build\vcvarsall.bat" %__VCBuildArch%
102-
)
94+
:: Set the environment for the native build (including cross-compilation for ARM64)
95+
call "%VS150COMNTOOLS%..\..\VC\Auxiliary\Build\vcvarsall.bat" %__VCBuildArch%
10396
goto :SetupDirs
10497

10598
:VS2015
10699
:: Setup vars for VS2015build
107100
set __PlatformToolset=v140
108101
set __VSVersion=14 2015
109-
if NOT "%__BuildArch%" == "arm64" (
110-
:: Set the environment for the native build
111-
call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" %__VCBuildArch%
112-
)
102+
call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" %__VCBuildArch%
113103

114104
:SetupDirs
115105
:: Setup to cmake the native components

src/Native/gen-buildsys-win.bat

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ popd
3030
:: Set the target architecture to a format cmake understands.
3131
if /i "%3" == "x64" (set __ExtraCmakeParams=%__ExtraCmakeParams% -A x64)
3232
if /i "%3" == "x86" (set __ExtraCmakeParams=%__ExtraCmakeParams% -A Win32)
33+
if /i "%3" == "ARM64" (set __ExtraCmakeParams=%__ExtraCmakeParams% -A ARM64)
3334

3435
echo "%CMakePath%" "-DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE%" "-DCMAKE_INSTALL_PREFIX=%__CMakeBinDir%" "-DLIBTORCH_PATH=%LIBTORCH_PATH%" -G "Visual Studio %__VSString%" %__ExtraCmakeParams% -B. -H%1
3536
"%CMakePath%" "-DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE%" "-DCMAKE_INSTALL_PREFIX=%__CMakeBinDir%" "-DLIBTORCH_PATH=%LIBTORCH_PATH%" -G "Visual Studio %__VSString%" %__ExtraCmakeParams% -B. -H%1
@@ -40,7 +41,7 @@ GOTO :DONE
4041
echo "Usage..."
4142
echo "gen-buildsys-win.bat <VSVersion> <Target Architecture>"
4243
echo "Specify the VSVersion to be used - VS2015, VS2017 or VS2019"
43-
echo "Specify the Target Architecture - x86, or x64."
44+
echo "Specify the Target Architecture - x86, x64, or ARM64."
4445
EXIT /B 1
4546

4647
:DONE

src/Redist/libtorch-cpu/libtorch-cpu.proj

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<CopyToPackageSemaphore>$(MainPackageFolder)\.copied.SkipTests.$(SkipTests).IncludeLibTorchCpuPackages.$(IncludeLibTorchCpuPackages)</CopyToPackageSemaphore>
3131
</PropertyGroup>
3232

33-
<ItemGroup Condition="'$(TargetOS)' == 'windows'">
33+
<ItemGroup Condition="'$(TargetOS)' == 'windows' and '$(NativeTargetArchitecture)' != 'arm64'">
3434
<File Include="libtorch\lib\c10.dll" />
3535
<File Include="libtorch\lib\libiomp5md.dll" />
3636
<File Include="libtorch\lib\libiompstubs5md.dll" />
@@ -39,6 +39,15 @@
3939
<File Include="libtorch\lib\torch_global_deps.dll" />
4040
<File Include="libtorch\lib\uv.dll" />
4141
</ItemGroup>
42+
<!-- Windows ARM64 archive has a different layout (lib/ instead of libtorch/lib/) and uses ARM Performance Libraries instead of Intel OpenMP -->
43+
<ItemGroup Condition="'$(TargetOS)' == 'windows' and '$(NativeTargetArchitecture)' == 'arm64'">
44+
<File Include="lib\armpl_lp64.dll" />
45+
<File Include="lib\c10.dll" />
46+
<File Include="lib\torch.dll" />
47+
<File Include="lib\torch_cpu.dll" />
48+
<File Include="lib\torch_global_deps.dll" />
49+
<File Include="lib\uv.dll" />
50+
</ItemGroup>
4251
<ItemGroup Condition="'$(NativeTargetArchitecture)' == 'arm64' and '$(TargetOS)' == 'mac'">
4352
<File Include="libtorch\lib\libc10.dylib" />
4453
<File Include="libtorch\lib\libshm.dylib" />
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
38d666a9030ba098d1ac5dabfd995cf3d113a12d512252080978b0cc206af205

0 commit comments

Comments
 (0)