Skip to content
This repository was archived by the owner on Jan 12, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
e024636
Use explicit static VC runtime on Windows (#851)
swernli Oct 16, 2021
b2e2f80
Append AppId to UserAgent when calling Azure Quantum APIs (#858)
vxfield Oct 21, 2021
1702325
Add `CX`, `CY` and `CZ` to Type1, Type3 target packages. (#842) (#861)
swernli Oct 27, 2021
9239c42
Moving QIR runtime build config into CMakeLists. (#863)
idavis Nov 5, 2021
59e55c0
Basic Runtime Driver (#859)
swernli Nov 9, 2021
5ea517c
Normalize case of target name when creating Quantum Machine (#868)
ricardo-espinoza Nov 10, 2021
b30286c
Preparing the QuantumSimulator for unifying the Dump(). (#867)
kuzminrobin Nov 11, 2021
631727e
Use old Mac OS build until gcc update (#875)
swernli Nov 18, 2021
0f66dfe
Revert "Preparing the QuantumSimulator for unifying the Dump(). (#867…
bettinaheim Nov 18, 2021
f4f2812
Create Rust QIR Runtime Wrapper Library (#878)
idavis Nov 22, 2021
5273e54
Update "use" and "borrow" statements in comments (#860)
tcNickolas Nov 23, 2021
5985170
Migrate native simulator from GCC to Clang. (#881)
kuzminrobin Dec 4, 2021
2080f80
Adding ability to provide content type and encoding for Azure blobs (…
anpaz Dec 5, 2021
0eb449a
Reverting the PR #881 to investigate the QDK Release failures. (#888)
kuzminrobin Dec 6, 2021
8c2a77c
Re-trying the PR #881: Migrating native sim from GCC to Clang. (#889)
kuzminrobin Jan 5, 2022
72f7e96
update project name to not include date (#894)
IsraelMiles Jan 5, 2022
b7668ca
Cherry-Picked: Broken up QuantumSimulator into CommonNativeSimulator …
kuzminrobin Jan 11, 2022
e25fa0f
libomp workaround for Linux, Mac (#897)
swernli Jan 12, 2022
45a92af
Add exponentiation test for runtime (#899)
swernli Jan 13, 2022
7736de7
Fixing sign usage on Y matrix (#893)
swernli Jan 13, 2022
dcb5b1a
Refactored the Dump functionality on Q#RT side. (#898)
kuzminrobin Jan 14, 2022
0c0e65d
Fix links to QIR specification (#903)
tcNickolas Jan 19, 2022
a860518
Fix capitalization in xref links (#902)
tcNickolas Jan 19, 2022
d6ec661
Update macOS build scripts for libomp dependency (#906)
swernli Jan 20, 2022
61e3fde
Added `libomp` instructions. (#901)
kuzminrobin Jan 21, 2022
1fff10b
Consolidate native dlls in a single folder to avoid dupe references (…
anpaz Jan 23, 2022
a06b672
Merge remote-tracking branch 'origin/main' into kuzminrobin/sparseSim…
kuzminrobin Jan 25, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -354,3 +354,9 @@ out/

# Ignore drops from building native simulators.
xplat
src/Simulation/Native/win10/Microsoft.Quantum.Simulator.Runtime.dll
src/Simulation/Native/linux/libMicrosoft.Quantum.Simulator.Runtime.so
src/Simulation/Native/osx/libMicrosoft.Quantum.Simulator.Runtime.dylib
src/Simulation/Native/win10/Microsoft.Quantum.Experimental.Simulators.Runtime.dll
src/Simulation/Native/linux/Microsoft.Quantum.Experimental.Simulators.Runtime.dll
src/Simulation/Native/osx/Microsoft.Quantum.Experimental.Simulators.Runtime.dll
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ To build on other platforms:
* Install [CMake](https://cmake.org/install/)
* Install [.NET Core 3 SDK](https://dotnet.microsoft.com/download)
* On [WSL](https://docs.microsoft.com/en-us/windows/wsl/)/Linux:
* Install `g++` (e.g. in Ubuntu 20.04 `sudo apt-get install g++`).
* Install [`libomp`](https://openmp.llvm.org) needed for the native (C++) full-state simulator.
* The build does not accept `dotnet-*-5.0` packages, install `dotnet-*-3.1`
(`sudo apt-get install dotnet-sdk-3.1`). The possible result can be:

Expand Down
68 changes: 28 additions & 40 deletions src/Simulation/Common/Simulators.Dev.props
Original file line number Diff line number Diff line change
@@ -1,67 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project InitialTargets="CopyNativeDlls" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>
<DocumentationFile>bin\$(BuildConfiguration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
<EnlistmentRoot>$([MSBuild]::NormalizeDirectory($(MSBuildThisFileDirectory)..\..\..\))</EnlistmentRoot>
<NativeBuildPath>$([MSBuild]::NormalizePath($(EnlistmentRoot)src/Simulation/Native/build/drop))</NativeBuildPath>
<NativeRootPath>$([MSBuild]::NormalizePath($(EnlistmentRoot)src/Simulation/Native))</NativeRootPath>
<NativeBuildPath>$([MSBuild]::NormalizePath($(NativeRootPath)/build/drop))</NativeBuildPath>
<ExperimentalSimBuildPath>$([MSBuild]::NormalizePath($(EnlistmentRoot)src/Simulation/qdk_sim_rs/drop))</ExperimentalSimBuildPath>
</PropertyGroup>

<!-- Copy Microsoft.Quantum.Simulator.Runtime.dll from src/Simulation/Native build to where we can see and use it. -->
<PropertyGroup Condition="'$(QsimDll)' == ''">
<QsimDllMac>$([MSBuild]::NormalizePath($(NativeBuildPath)/libMicrosoft.Quantum.Simulator.Runtime.dylib))</QsimDllMac>
<QsimDllLinux>$([MSBuild]::NormalizePath($(NativeBuildPath)/libMicrosoft.Quantum.Simulator.Runtime.so))</QsimDllLinux>
<QsimDllWindows>$([MSBuild]::NormalizePath($(NativeBuildPath)/Microsoft.Quantum.Simulator.Runtime.dll))</QsimDllWindows>
<QSimDll Condition="$([MSBuild]::IsOsPlatform('OSX'))">$(QsimDllMac)</QSimDll>
<QSimDll Condition="$([MSBuild]::IsOsPlatform('Linux'))">$(QsimDllLinux)</QSimDll>
<QSimDll Condition="$([MSBuild]::IsOsPlatform('Windows'))">$(QsimDllWindows)</QSimDll>
<QSimDependencies Condition="$([MSBuild]::IsOsPlatform('OSX'))">$([MSBuild]::NormalizePath($(NativeBuildPath)/../../osx))</QSimDependencies>
<QSimDependencies Condition="$([MSBuild]::IsOsPlatform('Linux'))">$([MSBuild]::NormalizePath($(NativeBuildPath)/../../linux))</QSimDependencies>
<QSimDependencies Condition="$([MSBuild]::IsOsPlatform('Windows'))">$([MSBuild]::NormalizePath($(NativeBuildPath)/../../win10))</QSimDependencies>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="$(EnlistmentRoot)src\Simulation\Core\Microsoft.Quantum.Runtime.Core.csproj" />
<ProjectReference Include="$(EnlistmentRoot)src\Simulation\Common\Microsoft.Quantum.Simulation.Common.csproj" IncludeInSimulatorPackage="true" />
</ItemGroup>

<!-- Copy Native dlls from their build output to where we can see and use them -->
<Target Name="CopyNativeDlls">
<ItemGroup>
<!-- Native simulator: -->
<NativeDll Include="$([MSBuild]::NormalizePath($(NativeBuildPath)/libMicrosoft.Quantum.Simulator.Runtime.dylib))" Dest="osx/libMicrosoft.Quantum.Simulator.Runtime.dylib" />
<NativeDll Include="$([MSBuild]::NormalizePath($(NativeBuildPath)/libMicrosoft.Quantum.Simulator.Runtime.so))" Dest="linux/libMicrosoft.Quantum.Simulator.Runtime.so" />
<NativeDll Include="$([MSBuild]::NormalizePath($(NativeBuildPath)/Microsoft.Quantum.Simulator.Runtime.dll))" Dest="win10/Microsoft.Quantum.Simulator.Runtime.dll" />

<!-- Native Experimental simulator simulator: -->
<NativeDll Include="$([MSBuild]::NormalizePath($(ExperimentalSimBuildPath)/libqdk_sim.dylib))" Dest="osx/Microsoft.Quantum.Experimental.Simulators.Runtime.dll" />
<NativeDll Include="$([MSBuild]::NormalizePath($(ExperimentalSimBuildPath)/libqdk_sim.so))" Dest="linux/Microsoft.Quantum.Experimental.Simulators.Runtime.dll" />
<NativeDll Include="$([MSBuild]::NormalizePath($(ExperimentalSimBuildPath)/qdk_sim.dll))" Dest="win10/Microsoft.Quantum.Experimental.Simulators.Runtime.dll" />
</ItemGroup>

<Copy
SourceFiles="@(NativeDll)"
DestinationFiles="@(NativeDll->'$([MSBuild]::NormalizePath($(NativeRootPath)/))%(Dest)')"
ContinueOnError="WarnAndContinue"
SkipUnchangedFiles="true" />
</Target>

<ItemGroup>
<None Include="$(QSimDll)" >
<None Include="$(NativeRootPath)/win10/*" Condition="$([MSBuild]::IsOsPlatform('Windows'))">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Visible>false</Visible>
</None>
<None Include="$(QSimDependencies)/**/*" >
<None Include="$(NativeRootPath)/osx/*" Condition="$([MSBuild]::IsOsPlatform('OSX'))">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Visible>false</Visible>
</None>
</ItemGroup>

<!-- Copy the experimental simulators from xplat/qdk_sim_rs build to where we can see and use it. -->
<PropertyGroup Condition="'$(ExperimentalSimDll)' == ''">
<ExperimentalSimDllMac>$([MSBuild]::NormalizePath($(ExperimentalSimBuildPath)/libqdk_sim.dylib))</ExperimentalSimDllMac>
<ExperimentalSimDllLinux>$([MSBuild]::NormalizePath($(ExperimentalSimBuildPath)/libqdk_sim.so))</ExperimentalSimDllLinux>
<ExperimentalSimDllWindows>$([MSBuild]::NormalizePath($(ExperimentalSimBuildPath)/qdk_sim.dll))</ExperimentalSimDllWindows>
<ExperimentalSimDll Condition="$([MSBuild]::IsOsPlatform('OSX'))">$(ExperimentalSimDllMac)</ExperimentalSimDll>
<ExperimentalSimDll Condition="$([MSBuild]::IsOsPlatform('Linux'))">$(ExperimentalSimDllLinux)</ExperimentalSimDll>
<ExperimentalSimDll Condition="$([MSBuild]::IsOsPlatform('Windows'))">$(ExperimentalSimDllWindows)</ExperimentalSimDll>
</PropertyGroup>

<ItemGroup>
<None Include="$(ExperimentalSimDll)" Condition="Exists('$(ExperimentalSimDll)')">
<Link>Microsoft.Quantum.Experimental.Simulators.Runtime.dll</Link>
<None Include="$(NativeRootPath)/linux/*" Condition="$([MSBuild]::IsOsPlatform('Linux'))">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Visible>false</Visible>
</None>
</ItemGroup>

<Target Name="ValidateExperimentalSimDll" BeforeTargets="GetCopyToOutputDirectoryItems">
<Warning
Text="The experimental simulator DLL was not found at '$(ExperimentalSimDll)'; not including in simulators package."
Condition="!Exists('$(ExperimentalSimDll)')"
/>
</Target>

</Project>