Skip to content
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

[mono] Implement * and / quaternion intrinsics #82408

Open
Tracked by #43051
radekdoulik opened this issue Feb 20, 2023 · 2 comments
Open
Tracked by #43051

[mono] Implement * and / quaternion intrinsics #82408

radekdoulik opened this issue Feb 20, 2023 · 2 comments

Comments

@radekdoulik
Copy link
Member

Currently we don't have correct intrinsics for these operators for Quaternions in mono

@ghost ghost added the untriaged New issue has not been triaged by the area owner label Feb 20, 2023
@radekdoulik radekdoulik self-assigned this Feb 20, 2023
@radekdoulik radekdoulik added this to the 8.0.0 milestone Feb 20, 2023
@ghost ghost removed the untriaged New issue has not been triaged by the area owner label Feb 20, 2023
radekdoulik added a commit to radekdoulik/runtime that referenced this issue Feb 20, 2023
For * and / operators as these are not the same as vector operations.
Opened dotnet#82408 to implement
correct ones in future.
radekdoulik added a commit that referenced this issue Feb 21, 2023
* Disable few quaternion intrinsics

For * and / operators as these are not the same as vector operations.
Opened #82408 to implement
correct ones in future.

* Change comparison order
radekdoulik added a commit to radekdoulik/runtime that referenced this issue Feb 21, 2023
For * and / operators as these are not the same as vector operations.
Opened dotnet#82408 to implement
correct ones in future.
radekdoulik added a commit that referenced this issue Mar 1, 2023
* [wasm] Enable SIMD

* Let old V8 use simd

Co-authored-by: Ankit Jain <radical@gmail.com>

* [wasm] ManagedToNativeGenerator: Skip unmanaged dlls

.. 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.

* [wasm] WasmApp.Native.targets: do not trigger relinking when WasmEnableSIMD=true

Instead, let the property be effective only for the AOT case.

* Use staging image with newer v8

* [wasm] WasmAppHost: Add support for host arguments

* [wasm] console template: Add --experimental-wasm-simd to node, and remove v8 config as that isn't supported

* [wasm] Pass --experiment-wasm-simd for aot library tests too

* Try to pass full path to v8

Also remove --experimental-wasm-simd option, which shouldn't be needed
for newer v8

* Use docker image for all wasm helix jobs

As we need newer v8

* Set DOTNET_CLI_HOME under workitem payload

The correlation payload is read only

* Revert "Try to pass full path to v8"

This reverts commit a15b3ef.

* Use DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1

Let see whether it will avoid all the writes to correlation payload
path

* Set NeedsEMSDKNode to false

To try if we can use newer node in path

* Revert "Set DOTNET_CLI_HOME under workitem payload"

This reverts commit 5dec1aa.

* Set DOTNET_CLI_HOME under workitem payload

The correlation payload is read only. And even with
`export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1` we have still many
failures.

* Reverse the test here as we don't relink anymore

* Set _ExtraTrimmerArgs for tests

So that linker substitution files are used

* Put the SIMD/trim related props in separate group

More changes from Ankit

* Add dynamic dependency

* Disable Vector128IsHardwareAcceleratedTest

Til we have the interpreter support in place

* Disable GenericVectorTests.IsHardwareAcceleratedTest

Til we have the interpreter support in place

* Disable check_no_intrinsic_cattr in emit_vector_2_3_4

And add note about opened issue

* [mono] Disable few quaternion intrinsics

For * and / operators as these are not the same as vector operations.
Opened #82408 to implement
correct ones in future.

* Change comparison order

* Use stable images

* WBT: Add --engine-arg=--experimental-wasm-simd for node, and v8

* Do not skip dotnet 1st time experience anymore

---------

Co-authored-by: Ankit Jain <radical@gmail.com>
@SamMonoRT
Copy link
Member

@radekdoulik - Not sure how much more work is remaining here, moving to 9.0.0

@steveisok
Copy link
Member

@radekdoulik is this still relevant? Do you plan on getting this in in the 9.0 timeframe?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants