Comments (14)
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.
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.
Support for Linux aarch64 would be really great too! 👍
from rdkit-pypi.
@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.
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.
@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.
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.
@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.
@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.
And tests are disabled by cibuildwheel for aarch64 because (again) Github runners are x86_64.
from rdkit-pypi.
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.
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.
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.
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)
- No Mac M1 wheels for `<2021.9.4` HOT 8
- cibuildwheel fails on dev laptop due to use of CIBW_BUILD in setup.py HOT 5
- cannot import name 'rdFreeSASA' from 'rdkit.Chem' HOT 1
- ImportError: No module named rdkit HOT 3
- Rename rdkit-pypi to rdkit; avoid conflicts with conda HOT 14
- Update repo about HOT 1
- `Contrib` folder missing HOT 5
- Python 3.11 wheels
- Turn on RDK_BUILD_XYZ2MOL_SUPPORT HOT 4
- PyPI Release for 3.11 support HOT 2
- SystemError: initialization of rdchem raised unreported exception HOT 5
- Python 3.11 support on PyPI comes with RDKit release 2022.9.2 HOT 3
- Set upper bound for numpy version HOT 2
- libXrender.so.1 not available HOT 1
- Musl linux wheels are missing HOT 4
- Version mismatch due to setuptools cutting trailing zeros? HOT 2
- Missing/invalid X11 libraries dependencies for libcairo on GNU/Linux HOT 4
- Installation on raspberry pi bullseye failed HOT 12
- Wheels for pyodide/pyscript HOT 9
- `rdkit.rdBase.boostVersion` is empty string in latest release installed from PyPI using pip HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rdkit-pypi.