intel / intel/llvm

[SYCL] standardize complex number operations

Open
#2,061 3 comments 0 reactions 0 assignees View on GitHub
confirmed enhancement spec extension
Dominant language
LLVM
Stars
1.5k
Forks
854
Avg merge
3d 17h
Merged PRs (30d)
137

Description

I skimmed through the SYCL 2020 provisional spec at https://www.khronos.org/registry/SYCL/specs/sycl-2020-provisional.pdf, and there is no mention of operations on complex numbers. I am involved in porting the GENE fusion code to GPU - we use std::complex, basic arithmetic operations, and FFT. I think FFT is out of scope; however supporting basic arithmetic and the same suite of functions supported for FP types would be extremely useful for a lot of different science codes.

It seems that each sycl implementation has it's own way of dealing with complex numbers (or not). For this Intel implementation, there are libraries available to link against which provide device implementations for many operations on std::complex. CodePlay seems to work when passing -ffast-math to the device compiler. It would be better if this was part of the standard, or at least a standard extension. Is there interest in drafting a proposal for this? @paboyle @jeffhammond

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.