Giter VIP home page Giter VIP logo

Comments (5)

maleadt avatar maleadt commented on May 23, 2024

Great write-up, thanks.

Replace libcmt with a pure Julia implementation

Although I'd very much like a native FFI, aren't we going to be running into the same memory-management problems then, and wouldn't we avoid those by using metalcpp? Or can you parse that info from the headers?
Of course, C++ FFI is probably much harder to accomplish than ObjC FFI.

add metalcpp alongside cmt

You mean, as an alternative back-end for Metal.jl? Which wrapping solution would you propose to use for that? CxxWrap.jl is pretty laborious, and Cxx.jl isn't functional.

Probably before spending too much time on revamping libcmt it could be useful to agree a scope for Metal.jl.

Although the focus is currently on compute, as you probably noticed by the bits of Metal I didn't care to wrap in libcmt or the MTL wrappers, I see no problem in adding more broad functionality to Metal.jl. The scope should be to offer Julia support for whatever the Metal libraries have to offer, or at least the bits that somebody cared to wrap and test. For me, that's only the compute parts, but feel free to work on other areas.

from metal.jl.

habemus-papadum avatar habemus-papadum commented on May 23, 2024

Thanks for reading! I will add a PR that concretely tries to clarify in code some of the confusing points of my writeup.

from metal.jl.

maleadt avatar maleadt commented on May 23, 2024

With #117 merged, this should now be much easier to contribute to. In that PR, I've just copied whatever memory management we were doing, so those points remain. The Clang generator is also still very relevant, although we could probably get most of the benefits already by just having it generate enum definitions instead of the whole Objective-C call signatures (which are both difficult to generate, and might still evolve in ObjectiveC.jl).

@habemus-papadum Since you have a better understanding of the exact memory management semantics in ObjectiveC, feel free to propose changes on that front! I don't have plans for any other large-scale refactors right now, so hopefully we can stabilize the interface a bit.

from metal.jl.

habemus-papadum avatar habemus-papadum commented on May 23, 2024

Sounds good -- I was going to write up (& work on) a proposal for a clang-based MacOS Framework to Julia package generator. It would discuss memory management, testing strategy, syntax, api availability, edge cases, etc -- I think it is better suited to start that conversation in Objective-C.jl. If you agree, I think we close this issue as complete, and revisit in Metal.jl after a generator exists.

from metal.jl.

maleadt avatar maleadt commented on May 23, 2024

Fine for me.

from metal.jl.

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.