acts-project / traccc

Demonstrator tracking chain on accelerators
Mozilla Public License 2.0
29 stars 50 forks source link

Make alpaka work with SYCL #785

Open StewMH opened 5 days ago

StewMH commented 5 days ago

I added a queue argument for vecmem::sycl::copy. Not in a very clean way, but this all needs cleaned up (as discussed with @CrossR) and hopefully coming soon in an MR from him or me.

With this I can get the alpaka seeding example to work on the CERN GPU Flex 170:

==> Statistics ...
- read    77602 spacepoints
- created  (cpu)  0 seeds
- created (alpaka)  66540 seeds
==>Elapsed times...
            Hit reading  (cpu)  1012 ms
              Seeding (alpaka)  6472 ms
         Track params (alpaka)  1847 ms
                     Wall time  9334 ms

It's very slow compared to the CUDA implementation, but I think this is largely because I had to enable FP64 emulation:

  • Some Intel GPUs do not support the double type for device code. alpaka will not check this. You can enable software emulation for double precision types with
    export IGC_EnableDPEmulation=1
    export OverrideDefaultFP64Settings=1
sonarcloud[bot] commented 4 days ago

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarQube Cloud