-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[wasm] Enable SIMD #80797
[wasm] Enable SIMD #80797
Conversation
Co-authored-by: Ankit Jain <[email protected]>
Currently we fail on helix because v8 is too old. I am trying to improve that with 2 independent approaches, #80808 and dotnet/dotnet-buildtools-prereqs-docker#774 |
.. instead crashing with an exception like: ``` src/mono/wasm/build/WasmApp.Native.targets(296,5): error MSB4018: (NETCORE_ENGINEERING_TELEMETRY=Build) The "ManagedToNativeGenerator" task failed unexpectedly. System.BadImageFormatException: This PE image is not a managed executable. at System.Reflection.MetadataLoadContext.LoadFromStreamCore(Stream peStream) at System.Reflection.MetadataLoadContext.LoadFromAssemblyPath(String assemblyPath) at PInvokeTableGenerator.Generate(String[] pinvokeModules, String[] assemblies, String outputPath) in /_/src/tasks/WasmAppBuilder/PInvokeTableGenerator.cs:line 42 at ManagedToNativeGenerator.ExecuteInternal() in /_/src/tasks/WasmAppBuilder/ManagedToNativeGenerator.cs:line 68 at ManagedToNativeGenerator.Execute() in /_/src/tasks/WasmAppBuilder/ManagedToNativeGenerator.cs:line 53 at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask) ``` The wasm targets currently are not able to differentiate the managed assemblies from the unmanaged ones. so it needs to be handled here.
…leSIMD=true Instead, let the property be effective only for the AOT case.
…move v8 config as that isn't supported
…runtime into pr-wasm-enable-simd
/azp run runtime-wasm |
Azure Pipelines successfully started running 1 pipeline(s). |
Also remove --experimental-wasm-simd option, which shouldn't be needed for newer v8
As we need newer v8
Tagging subscribers to 'arch-wasm': @lewing Issue DetailsLet see how it goes on CI
|
The correlation payload is read only
This reverts commit a15b3ef.
Let see whether it will avoid all the writes to correlation payload path
To try if we can use newer node in path
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM but we need to resolve the wbt failure
/azp run runtime-wasm |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-wasm |
Azure Pipelines successfully started running 1 pipeline(s). |
The |
@maraf are you looking into this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, with the caveat that I don't have the ability to fully vet the yml or msbuild bits (but the latter do look correct to me), and I left some comments
Change default value of
WasmEnableSIMD
property to true. That enables SIMD for wasm/AOT.Use docker image with newer v8 and node on helix.