Code Monkey home page Code Monkey logo

Comments (14)

kuelumbus avatar kuelumbus commented on September 1, 2024 1

Ok. I see. Just to clarify. The M1 processor is supported, but you were thinking of native M1 ARM builds (because they would be faster?). The last time I was trying to compile native M1 builds, I ran into building issues while copying the libs into the wheels. It seemed very poorly supported at this time by the building system (this is not an RDKit issue). This was a while ago. I can give it another shot soon.

from rdkit-pypi.

marcosfelt avatar marcosfelt commented on September 1, 2024 1

I just got an M1 Mac and having the native build would help a lot since it allows us to continue to use poetry.

from rdkit-pypi.

RobinFrcd avatar RobinFrcd commented on September 1, 2024 1

Support for Linux aarch64 would be really great too! 👍

from rdkit-pypi.

wshayes avatar wshayes commented on September 1, 2024 1

@kuelumbus Thanks for sharing - I looked through the arm64 branch, and you are several orders of magnitude more a computer wizard than I am :) I'm happy to help with anything that I can, but I'm not sure what help I'd be.

I really appreciate your building rdkit-pypi as it makes it really easy to work with rdkit (at least until I switched over to an M1 Mac).

from rdkit-pypi.

kuelumbus avatar kuelumbus commented on September 1, 2024

Sure. But can't you use the normal Mac builds on M1 processors? I thought MacOS has some kind of emulator to make intel builds work on the ARM architecture.

from rdkit-pypi.

sinwoobang avatar sinwoobang commented on September 1, 2024

@kuelumbus Fortunately, it works fine on M1 using Rosetta 2.
However, I think that M1 native support will be the key in the near future and it might be easier than what you think.
RDKit may support it officially soon, then all we got to do is just in adding the ARM builder to the workflow.

from rdkit-pypi.

sinwoobang avatar sinwoobang commented on September 1, 2024

FYI, I have tried building it on ARM64 using Github Actions, and here is the result.

https://github.com/sinwoobang/rdkit-pypi/runs/4831213184?check_suite_focus=true#step:4:15982

It has got failed. I haven't checked it in detail though.

from rdkit-pypi.

wshayes avatar wshayes commented on September 1, 2024

@kuelumbus I just tried building on Github Actions using Mac ARM64 for python 3.10 on a fork of your code and it seemed to build successfully: https://github.com/wshayes/rdkit-pypi/runs/5081181000?check_suite_focus=true

Is this turned off because it was failing or due to the inability to test Mac ARM64 builds on the Mac Intel build platform? There was a failure due to a bad hash value in @sinwoobang build (just above) for a Google Font but that's been fixed in master.

from rdkit-pypi.

kuelumbus avatar kuelumbus commented on September 1, 2024

@wshayes Thanks for your help. If you check the log file and the produced wheel file of your build, you can see that it was not successful. You are building x86_64 and not aarch64 wheels. Github has currently no aarch64 runners and the difficulty is to instruct all compilers to cross-compile aarch64. I am working on this. I think I have it almost solved. Homebrew is currently the problem. Check out the arm64 branch.

Same problem for @sinwoobang 's try by the way.

from rdkit-pypi.

kuelumbus avatar kuelumbus commented on September 1, 2024

And tests are disabled by cibuildwheel for aarch64 because (again) Github runners are x86_64.

from rdkit-pypi.

kuelumbus avatar kuelumbus commented on September 1, 2024

I think I finally managed to build an arm64 wheel for MacOS. Can someone please test if it works on a Mac M1 machine? I will add it to PyPi if it's confirmed to work.

You would need to download the artifact from https://github.com/kuelumbus/rdkit-pypi/actions/runs/1802926874, unzip, and install the wheel with something like python3.8 -m pip install ./rdkit_pypi-2021.9.4-cp38-cp38-macosx_11_0_arm64.whl. If possible, do this in a clean python environment. The wheel only works for python 3.8.

And then just maybe run python3.8 -c "from rdkit import Chem; print(Chem.MolToMolBlock(Chem.MolFromSmiles('C1CCC1')))" and see if this is successful.
Thanks.

from rdkit-pypi.

kuelumbus avatar kuelumbus commented on September 1, 2024

The artifact at https://github.com/kuelumbus/rdkit-pypi/actions/runs/1803078991 has arm64 wheels for python 3.8, 3.9 and 3.10.

from rdkit-pypi.

wshayes avatar wshayes commented on September 1, 2024

Hi @kuelumbus I downloaded both artifacts (3.8 and the combined with 3.8-3.10. I've tested 3.8 and 3.10 and they both install and work great for the test run above.

Congrats and thanks on getting this working - I can tell from the commits it was not easy.

from rdkit-pypi.

kuelumbus avatar kuelumbus commented on September 1, 2024

Yeah, building arm64 (same for linux) builds on Github Actions is a mess currently. I hope they will soon improve this. Thanks for your help. I will push the builds to PyPi soon.

from rdkit-pypi.

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.