Giter Club home page Giter Club logo

Comments (6)

luitjens avatar luitjens commented on June 2, 2024 1

Ran a quick experiment where I modified 11.5 libcu++. Modifications were to fix double cast and comment out isnan checks. This data indicates the isnan checks are still very expensive on performance. 65us vs 110us.

The benchmark is found here: https://github.com/NVIDIA/MatX/blob/main/bench/00_transform/conv.cu

A100 isnan checks, double fix

T Samples CPU Time Noise GPU Time Noise Batch GPU Batch
cuda::std::__4::complex 31079x 120.867 us 1.40% 112.339 us 0.53% 109.970 us 31080x

A100 NO isnan checks, double fix

T Samples CPU Time Noise GPU Time Noise Batch GPU Batch
cuda::std::__4::complex 32944x 76.357 us 1.45% 67.539 us 1.59% 64.615 us 32945x

from libcudacxx.

jrhemstad avatar jrhemstad commented on June 2, 2024

@griwes @wmaxey @gonzalobg @brycelelbach

Can any of you shine some light on this?

from libcudacxx.

jrhemstad avatar jrhemstad commented on June 2, 2024

CC @cliffburdick @luitjens

from libcudacxx.

jrhemstad avatar jrhemstad commented on June 2, 2024

This implementation appears to be inherited from the C99 Standard Annex G

latest-screenshot

Given that the C++ Standard does not implicitly inherit everything from the C Standard and https://eel.is/c++draft/complex.numbers#general-3 makes no mention of any requirement about anything like this, I am convinced that we can remove this from our implementation and remain conforming to the C++ Standard.

from libcudacxx.

miscco avatar miscco commented on June 2, 2024

I am wary of changing the current implementation because of non subtle runtime differences it would introduce. Those would only happen in a denormal case but still could potentially silently break user code.

Given that the chance of breaking something is rather slim and users might prefer the performance I would propose to add a feature macro that removes the sanitation of denormals.

Something in the direction LIBCUDACXX_ENABLE_SIMPLIFIED_COMPLEX_OPERATIONS?

Obviously I would like to tackle this in #338

from libcudacxx.

miscco avatar miscco commented on June 2, 2024

#338 because editing a comment does not link the issue / PR

from libcudacxx.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.