#8869 closed defect (fixed)
RFE: include Metal acceleration in 1.6
Reported by: | Tristan Croll | Owned by: | pett |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Performance | Version: | |
Keywords: | Cc: | chimerax-programmers | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: macOS-12.5.1-arm64-arm-64bit ChimeraX Version: 1.6rc202303282219 (2023-03-28 22:19:26 UTC) Description I realise this might be a little late to make the ChimeraX 1.6 release, but the attached files add Metal support to OpenMM (see https://github.com/philipturner/openmm-metal/commits?author=philipturner). On my M1 Pro I don't quite see the 2-4x speedup claimed, but it's still appreciable (about 64% faster for the "isolde demo crystal_intro" test case on the standard "Highest/Slowest" simulation fidelity/speed setting, falling to 35% for the "Lowest/Fastest" setting). Enough to make a substantial difference in usability on these machines. I've compiled it for both arm64 and x86_64 and combined into universal binaries. All that you'd need to do is copy them into the lib/plugins directory. There should be no harm in doing so - if it fails to load for any reason, OpenMM will just treat the new plugin as if it's not there. The new platform is called "HIP" right now, but will be renamed to "Metal" in the future (see the README on the GitHub for the reason). OpenGL version: 4.1 Metal - 76.3 OpenGL renderer: Apple M1 Pro OpenGL vendor: Apple Python: 3.9.11 Locale: en_GB.UTF-8 Qt version: PyQt6 6.4.2, Qt 6.4.2 Qt runtime version: 6.4.3 Qt platform: cocoa Hardware: Hardware Overview: Model Name: MacBook Pro Model Identifier: MacBookPro18,1 Chip: Apple M1 Pro Total Number of Cores: 10 (8 performance and 2 efficiency) Memory: 32 GB System Firmware Version: 7459.141.1 OS Loader Version: 7459.141.1 Software: System Software Overview: System Version: macOS 12.5.1 (21G83) Kernel Version: Darwin 21.6.0 Time since boot: 69 days 22:27 Graphics/Displays: Apple M1 Pro: Chipset Model: Apple M1 Pro Type: GPU Bus: Built-In Total Number of Cores: 16 Vendor: Apple (0x106b) Metal Family: Supported, Metal GPUFamily Apple 7 Displays: Color LCD: Display Type: Built-in Liquid Retina XDR Display Resolution: 3456 x 2234 Retina Main Display: Yes Mirror: Off Online: Yes Automatically Adjust Brightness: Yes Connection Type: Internal Installed Packages: alabaster: 0.7.13 appdirs: 1.4.4 appnope: 0.1.3 asttokens: 2.2.1 Babel: 2.12.1 backcall: 0.2.0 beautifulsoup4: 4.11.2 blockdiag: 3.0.0 build: 0.10.0 certifi: 2021.10.8 cftime: 1.6.2 charset-normalizer: 3.1.0 ChimeraX-AddCharge: 1.5.9 ChimeraX-AddH: 2.2.3 ChimeraX-AlignmentAlgorithms: 2.0.1 ChimeraX-AlignmentHdrs: 3.3.1 ChimeraX-AlignmentMatrices: 2.1 ChimeraX-Alignments: 2.9.3 ChimeraX-AlphaFold: 1.0 ChimeraX-AltlocExplorer: 1.0.3 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.1 ChimeraX-Atomic: 1.43.10 ChimeraX-AtomicLibrary: 10.0.6 ChimeraX-AtomSearch: 2.0.1 ChimeraX-AxesPlanes: 2.3.2 ChimeraX-BasicActions: 1.1.2 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 2.1.2 ChimeraX-BondRot: 2.0.1 ChimeraX-BugReporter: 1.0.1 ChimeraX-BuildStructure: 2.8 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.2.2 ChimeraX-ButtonPanel: 1.0.1 ChimeraX-CageBuilder: 1.0.1 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.3.2 ChimeraX-ChangeChains: 1.0.2 ChimeraX-CheckWaters: 1.3.1 ChimeraX-ChemGroup: 2.0.1 ChimeraX-Clashes: 2.2.4 ChimeraX-Clipper: 0.20.0 ChimeraX-ColorActions: 1.0.3 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.5.3 ChimeraX-CommandLine: 1.2.5 ChimeraX-ConnectStructure: 2.0.1 ChimeraX-Contacts: 1.0.1 ChimeraX-Core: 1.6rc202303282219 ChimeraX-CoreFormats: 1.1 ChimeraX-coulombic: 1.4.2 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0.1 ChimeraX-DataFormats: 1.2.3 ChimeraX-Dicom: 1.2 ChimeraX-DistMonitor: 1.4 ChimeraX-DockPrep: 1.1.1 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ESMFold: 1.0 ChimeraX-FileHistory: 1.0.1 ChimeraX-FunctionKey: 1.0.1 ChimeraX-Geometry: 1.3 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.1.1 ChimeraX-Hbonds: 2.4 ChimeraX-Help: 1.2.1 ChimeraX-HKCage: 1.3 ChimeraX-IHM: 1.1 ChimeraX-ImageFormats: 1.2 ChimeraX-IMOD: 1.0 ChimeraX-IO: 1.0.1 ChimeraX-ISOLDE: 1.6.dev1 ChimeraX-ItemsInspection: 1.0.1 ChimeraX-Label: 1.1.7 ChimeraX-ListInfo: 1.1.1 ChimeraX-Log: 1.1.5 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.8.2 ChimeraX-Map: 1.1.4 ChimeraX-MapData: 2.0 ChimeraX-MapEraser: 1.0.1 ChimeraX-MapFilter: 2.0.1 ChimeraX-MapFit: 2.0 ChimeraX-MapSeries: 2.1.1 ChimeraX-Markers: 1.0.1 ChimeraX-Mask: 1.0.2 ChimeraX-MatchMaker: 2.0.12 ChimeraX-MDcrds: 2.6 ChimeraX-MedicalToolbar: 1.0.2 ChimeraX-Meeting: 1.0.1 ChimeraX-MLP: 1.1.1 ChimeraX-mmCIF: 2.12 ChimeraX-MMTF: 2.2 ChimeraX-Modeller: 1.5.9 ChimeraX-ModelPanel: 1.3.7 ChimeraX-ModelSeries: 1.0.1 ChimeraX-Mol2: 2.0 ChimeraX-Mole: 1.0 ChimeraX-Morph: 1.0.2 ChimeraX-MouseModes: 1.2 ChimeraX-Movie: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nifti: 1.0 ChimeraX-NRRD: 1.0 ChimeraX-Nucleotides: 2.0.3 ChimeraX-OpenCommand: 1.10.1 ChimeraX-PDB: 2.7 ChimeraX-PDBBio: 1.0 ChimeraX-PDBLibrary: 1.0.2 ChimeraX-PDBMatrices: 1.0 ChimeraX-PickBlobs: 1.0.1 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.1 ChimeraX-PubChem: 2.1 ChimeraX-QScore: 1.0 ChimeraX-ReadPbonds: 1.0.1 ChimeraX-Registration: 1.1.1 ChimeraX-RemoteControl: 1.0 ChimeraX-RenderByAttr: 1.1 ChimeraX-RenumberResidues: 1.1 ChimeraX-ResidueFit: 1.0.1 ChimeraX-RestServer: 1.1 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 3.0 ChimeraX-RotamerLibsDunbrack: 2.0 ChimeraX-RotamerLibsDynameomics: 2.0 ChimeraX-RotamerLibsRichardson: 2.0 ChimeraX-SaveCommand: 1.5.1 ChimeraX-SchemeMgr: 1.0 ChimeraX-SDF: 2.0.1 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0.1 ChimeraX-SelInspector: 1.0 ChimeraX-SeqView: 2.8.3 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0.1 ChimeraX-Shortcuts: 1.1.1 ChimeraX-ShowSequences: 1.0.1 ChimeraX-SideView: 1.0.1 ChimeraX-Smiles: 2.1 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.10.2 ChimeraX-STL: 1.0.1 ChimeraX-Storm: 1.0 ChimeraX-StructMeasure: 1.1.2 ChimeraX-Struts: 1.0.1 ChimeraX-Surface: 1.0.1 ChimeraX-SwapAA: 2.0.1 ChimeraX-SwapRes: 2.2.1 ChimeraX-TapeMeasure: 1.0 ChimeraX-Test: 1.0 ChimeraX-Toolbar: 1.1.2 ChimeraX-ToolshedUtils: 1.2.1 ChimeraX-Topography: 1.0 ChimeraX-Tug: 1.0.1 ChimeraX-UI: 1.28.4 ChimeraX-uniprot: 2.2.2 ChimeraX-UnitCell: 1.0.1 ChimeraX-ViewDockX: 1.2 ChimeraX-VIPERdb: 1.0 ChimeraX-Vive: 1.1 ChimeraX-VolumeMenu: 1.0.1 ChimeraX-VTK: 1.0 ChimeraX-WavefrontOBJ: 1.0 ChimeraX-WebCam: 1.0.2 ChimeraX-WebServices: 1.1.1 ChimeraX-Zone: 1.0.1 colorama: 0.4.6 comm: 0.1.3 contourpy: 1.0.7 cxservices: 1.2.2 cycler: 0.11.0 Cython: 0.29.33 debugpy: 1.6.6 decorator: 5.1.1 docutils: 0.19 executing: 1.2.0 filelock: 3.9.0 fonttools: 4.39.3 funcparserlib: 1.0.1 grako: 3.16.5 h5py: 3.8.0 html2text: 2020.1.16 idna: 3.4 ihm: 0.35 imagecodecs: 2022.2.22 imagesize: 1.4.1 importlib-metadata: 6.1.0 ipykernel: 6.21.1 ipython: 8.10.0 ipython-genutils: 0.2.0 ipywidgets: 8.0.6 jedi: 0.18.2 Jinja2: 3.1.2 jupyter-client: 8.0.2 jupyter-core: 5.3.0 jupyterlab-widgets: 3.0.7 kiwisolver: 1.4.4 line-profiler: 4.0.2 lxml: 4.9.2 lz4: 4.3.2 MarkupSafe: 2.1.2 matplotlib: 3.6.3 matplotlib-inline: 0.1.6 msgpack: 1.0.4 nest-asyncio: 1.5.6 netCDF4: 1.6.2 networkx: 2.8.8 nibabel: 5.0.1 nptyping: 2.5.0 numexpr: 2.8.4 numpy: 1.23.5 openvr: 1.23.701 packaging: 21.3 ParmEd: 3.4.3 parso: 0.8.3 pep517: 0.13.0 pexpect: 4.8.0 pickleshare: 0.7.5 Pillow: 9.3.0 pip: 23.0 pkginfo: 1.9.6 platformdirs: 3.2.0 prompt-toolkit: 3.0.38 psutil: 5.9.4 ptyprocess: 0.7.0 pure-eval: 0.2.2 pycollada: 0.7.2 pydicom: 2.3.0 Pygments: 2.14.0 pynrrd: 1.0.0 PyOpenGL: 3.1.5 PyOpenGL-accelerate: 3.1.5 pyparsing: 3.0.9 pyproject-hooks: 1.0.0 PyQt6-commercial: 6.4.2 PyQt6-Qt6: 6.4.3 PyQt6-sip: 13.4.1 PyQt6-WebEngine-commercial: 6.4.0 PyQt6-WebEngine-Qt6: 6.4.3 python-dateutil: 2.8.2 pytz: 2023.3 pyzmq: 25.0.2 qtconsole: 5.4.0 QtPy: 2.3.1 RandomWords: 0.4.0 requests: 2.28.2 scipy: 1.9.3 setuptools: 67.4.0 setuptools-scm: 7.0.5 sfftk-rw: 0.7.3 six: 1.16.0 snowballstemmer: 2.2.0 sortedcontainers: 2.4.0 soupsieve: 2.4 sphinx: 6.1.3 sphinx-autodoc-typehints: 1.22 sphinxcontrib-applehelp: 1.0.4 sphinxcontrib-blockdiag: 3.0.0 sphinxcontrib-devhelp: 1.0.2 sphinxcontrib-htmlhelp: 2.0.1 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 1.0.3 sphinxcontrib-serializinghtml: 1.1.5 stack-data: 0.6.2 tables: 3.7.0 tcia-utils: 1.2.0 tifffile: 2022.10.10 tinyarray: 1.2.4 tomli: 2.0.1 tornado: 6.2 traitlets: 5.9.0 typing-extensions: 4.5.0 urllib3: 1.26.15 wcwidth: 0.2.6 webcolors: 1.12 wheel: 0.38.4 wheel-filename: 1.4.1 widgetsnbextension: 4.0.7 zipp: 3.15.0 File attachment: openmm_metal.zip
Attachments (1)
Change History (8)
by , 3 years ago
Attachment: | openmm_metal.zip added |
---|
comment:1 by , 3 years ago
Cc: | added |
---|---|
Component: | Unassigned → Performance |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → RFE: include Metal acceleration in 1.6 |
comment:2 by , 3 years ago
This should be assigned to someone else if it is for the chimerax 1.6 release since I am on vacation.
follow-up: 2 comment:3 by , 3 years ago
Owner: | changed from | to
---|
Consensus is that it seems harmless enough. I'll see what I can do.
comment:4 by , 3 years ago
So they don't need symbolic links from the sibling 'lib' directory like other OpenMM libraries (e.g. lib/libOpenMMOpenCL.dylib -> plugins/libOpenMMOpenCL.dylib)?
comment:5 by , 3 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Okay, I dropped the libs into plugins. I hope those links I mentioned aren't needed, because I didn't add them.
comment:6 by , 3 years ago
To be honest, as far as I'm aware *none* of the symlinks from lib to lib/plugins are needed. Just tested by deleting lib/libOpenMMOpenCL.dylib on my Mac, and the OpenCL platform still works fine. Anyway, thanks heaps for putting this in - really tips ISOLDE over the boundary from "barely" to "really quite comfortably" useful on the Mac (newer machines, at least - I don't have an Intel one to test on). On Thu, Apr 20, 2023 at 11:49 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote:
follow-up: 6 comment:7 by , 3 years ago
Thanks for keeping on top of things and finding this nice improvement.
Note:
See TracTickets
for help on using tickets.
Added by email2trac