Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for apple Arm M1 machines? #43

Closed
AndyRPH opened this issue May 22, 2021 · 8 comments
Closed

Support for apple Arm M1 machines? #43

AndyRPH opened this issue May 22, 2021 · 8 comments
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed pending-release Available in development, but not yet in stable release.

Comments

@AndyRPH
Copy link

AndyRPH commented May 22, 2021

Add support for chia running M1 native arm code on apple silicon?

@guydavis guydavis self-assigned this May 23, 2021
@guydavis guydavis added the enhancement New feature or request label May 23, 2021
@guydavis guydavis removed their assignment May 23, 2021
@guydavis
Copy link
Owner

Sounds cool. Not sure I'd know where to start though. I only have an old 2018 Mac Mini in the house. Pull requests are welcome!

@Mearman
Copy link

Mearman commented May 23, 2021

I don't have an arm chip to test it on but making multi-arch Docker images isn't too much hassle. For the M1, you'd just have to target arm64.

https://www.docker.com/blog/multi-arch-images/
https://betterprogramming.pub/setting-up-a-multi-arch-docker-build-with-circleci-and-alpine-for-your-apple-m1-ba739ef1f754

@guydavis guydavis added the help wanted Extra attention is needed label May 27, 2021
@AndyRPH
Copy link
Author

AndyRPH commented Jul 11, 2021

I've got an M1 Mac and happy to do some testing if someone gets the ball rolling that way.

@guydavis
Copy link
Owner

Hi! For those with Apple M1 systems, please give the latest ghcr.io/guydavis/machinaris:develop image a try. As of latest build, the arm64 architecture is enabled, but I don't have any hardware to try running it. Here's the details on GHCR and DockerHub.

Please let me know what Machinaris worker mode you choose to test with. For example, will this only work as a Harvester? Will you be able to plot with Chia and/or Madmax plotters? Can you run the Machinaris fullnode (default mode) with all services?

Let me know how things go. In particular, please provide the logs. Thanks!

@AndyRPH
Copy link
Author

AndyRPH commented Jul 24, 2021

Interesting:

docker: Error response from daemon: create ~/.machinaris: "~/.machinaris" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.                                       
See 'docker run --help'. 

Easy enough to adjust the path, but then I get:

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

My fault, followed install instructions without realizing I needed to pull the development branch.

@AndyRPH
Copy link
Author

AndyRPH commented Jul 25, 2021

Up and running:

  1. it shows a single pool, I've got my plots divided into 3 pools. How do I get it to reflect that?

  2. plotting, is it using an M1 compiled madmax? Apparently it's substantially faster to use madmax on M1 machines using the INTEL binary, not the ARM binary. I think the way blake3 is implemented on M1 is more inefficient than using blake3 compiled for x86 and then letting apple's rosetta2 do its magic. So for now, I'm not plotting with this, just farming.

It would be nice to plot with this once plotman handles removing solo plots to make room for pooled plots. I can plot a k32 in 78-82 minutes on the M1 using the x86 version of madmax. (Cutting the threads in half and running two instances in parallel even staggered doesn't increase the yield of plots per 24h)

@guydavis
Copy link
Owner

Up and running:

Great!

  1. it shows a single pool, I've got my plots divided into 3 pools. How do I get it to reflect that?

As an advanced user with multiple keys/pools, you'll want to use the CLI to execute your chia config commands where key/wallet selection is required. Should only be required for config, as behind the scenes Machinaris is just a WebUI in-front of the stock Chia binaries doing the farming.

  1. plotting, is it using an M1 compiled madmax? Apparently it's substantially faster to use madmax on M1 machines using the INTEL binary, not the ARM binary. I think the way blake3 is implemented on M1 is more inefficient than using blake3 compiled for x86 and then letting apple's rosetta2 do its magic. So for now, I'm not plotting with this, just farming.

Interesting. Thanks for that feedback.

It would be nice to plot with this once plotman handles removing solo plots to make room for pooled plots. I can plot a k32 in 78-82 minutes on the M1 using the x86 version of madmax. (Cutting the threads in half and running two instances in parallel even staggered doesn't increase the yield of plots per 24h)

Plotman has a replot function currently under review.

@guydavis guydavis self-assigned this Jul 27, 2021
@guydavis guydavis added the pending-release Available in development, but not yet in stable release. label Jul 27, 2021
@guydavis
Copy link
Owner

Closing as released in v0.5.2 now. Thanks to all for the help testing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed pending-release Available in development, but not yet in stable release.
Projects
None yet
Development

No branches or pull requests

3 participants