Code Monkey home page Code Monkey logo

Comments (7)

lightsighter avatar lightsighter commented on August 16, 2024

That change will break other things. The code should never be invoking the general forms of serialize and deserialize for any of the bit mask types. Notice the explicit specializations of the serialize and deserialize methods in legion_utilities.h. Check to make sure that your compiler is picking them up. Another thing to check is that your compiler is providing the SSE2 macro which protects the explicit specializations. If it's not then we need to understand why (I'm guessing you're not using a very old processor that doesn't have SSE2 instructions).

from legion.

spad12 avatar spad12 commented on August 16, 2024

Yeah I figured that the change would break other things, but it seemed to work for short term. I see a specialization of serialize and deserialize for SSEBitMask through a typedef of: "typedef SSEBitMask<MAX_FIELDS> FieldMask;", but there is no specialization for the two level bit mask, SSETLBitMask<size_t>. Yes the compiler is setting the SSE2 macro. It would appear that the appropriate fix would to be a specialization of serialize and deserialize for NodeMask, which is based on the two-level bit mask.

from legion.

lightsighter avatar lightsighter commented on August 16, 2024

I'm not sure I know what you mean by a typedef. Look at this template specialization:

https://github.com/StanfordLegion/legion/blob/master/runtime/legion_utilities.h#L1187

The compiler should be invoking that function whenever it needs to serialize a SSETLBitMask.

from legion.

lightsighter avatar lightsighter commented on August 16, 2024

Also, where do you see NodeMask still being used. I realize the typedefs are still there, but everything should have been switched over to NodeSets now (with the minor exception of one case in the low-level runtime which doesn't get serialized or deserialized anyway).

from legion.

spad12 avatar spad12 commented on August 16, 2024

Ahh, my version of legion_utilities.h must be out of date, as that file
looks very different from the version I've got. The typedefs I am referring
to are found in legion_types.h, lines 386 - 449, where FieldMask and
NodeMask are set based on the instruction set. The version of
legion_utilities.h that I have has Serializer::serialize, and
Deserializer::deserialize specialized on FieldMask, but not NodeMask, and
does not include instruction-set-macro based specializations.

On Thu, May 14, 2015 at 12:45 PM, Mike Bauer [email protected]
wrote:

I'm not sure I know what you mean by a typedef. Look at this template
specialization:

https://github.com/StanfordLegion/legion/blob/master/runtime/legion_utilities.h#L1187

The compiler should be invoking that function whenever it needs to
serialize a SSETLBitMask.


Reply to this email directly or view it on GitHub
#9 (comment)
.

from legion.

lightsighter avatar lightsighter commented on August 16, 2024

Ah, that makes sense. I was pretty sure I fixed those issues a long time ago.

from legion.

spad12 avatar spad12 commented on August 16, 2024

Ok, my bad.

On Thu, May 14, 2015 at 12:52 PM, Mike Bauer [email protected]
wrote:

Ah, that makes sense. I was pretty sure I fixed those issues a long time
ago.


Reply to this email directly or view it on GitHub
#9 (comment)
.

from legion.

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.