Giter VIP home page Giter VIP logo

Comments (10)

mstimberg avatar mstimberg commented on June 11, 2024

Just a quick comment about that: we actually have a preference in Brian2 exactly for this (core.default_float_dtype), but this has been broken for quite a while now because we did not consequently use this preference and instead just assumed double in quite a few places. Therefore, this preference will currently raise an error when you try to set it to single (see brian-team/brian2#417).

from brian2cuda.

denisalevi avatar denisalevi commented on June 11, 2024

Currently we are using double type everywhere except for random number generation with curand, where we generate floats... Any reason why this was implemented this way? If not, we should probably generate doubles by default?

from brian2cuda.

denisalevi avatar denisalevi commented on June 11, 2024

As long as brian-team/brian2#417 is not fixed, we could use our own preference and define our own c_data_type function and transform numpy.float64 and numpy.float32 either both to float or both to double, depending on the preference.

Additionally the SynapticPathway declaration on objects.cu should use the same preference (currently hard coded to double).

from brian2cuda.

denisalevi avatar denisalevi commented on June 11, 2024

We should use the brian-team/brian2@float32_support branch for our final benchmarks (potentially need to rebase on brian2 master), implement single precision from brian2CUDA side such that it works if the brian2 preference works and add a warning/error until brian2 has merged the float32_support branch.

from brian2cuda.

moritzaugustin avatar moritzaugustin commented on June 11, 2024

ensure that our templates always use type from user preference (including random number generator, sizeof() etc.)

from brian2cuda.

moritzaugustin avatar moritzaugustin commented on June 11, 2024

find a reasonable solution to get float32 branch from brian2 that allows syncing to the brian2 master updates easily

from brian2cuda.

moritzaugustin avatar moritzaugustin commented on June 11, 2024

lets discuss the failing tests situation when everything is implemented and (seems to be) working

from brian2cuda.

moritzaugustin avatar moritzaugustin commented on June 11, 2024

compare also visually with examples cpp vs cuda

from brian2cuda.

denisalevi avatar denisalevi commented on June 11, 2024

Just saw this comment on the timestep function implementation. Potential rounding error problems for single precision floats. We should think about that.

from brian2cuda.

moritzaugustin avatar moritzaugustin commented on June 11, 2024

seems like in brian-team/brian2#981 Marcel described by the remark that timestep and related quantities always should be doubles even in single precision mode, this seems very reasonable and to be followed

from brian2cuda.

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.