Docker Issues on Apple M2 Chip

Hi,

I’m using Docker Desktop on a MacBook Pro with the M2 chip. It works, but barely, and is at least 10x slower than running directly on my machine. From what I can gather from online research and the warning at build time, the image needs to be built using the platform linux/arm64/v8 - so I built the image locally by changing the makefile build command to (docker buildx build --platform=linux/arm64/v8 --build-arg CPU_OR_GPU=${CPU_OR_GPU} -t ${LOCAL_IMAGE} runtime). It builds an image locally without any warnings, but does not change the performance. Further research seems to indicate that the base image needs to be built to support the new platform in order for it to work (Using Docker on Apple Silicon - Ginkgo Bioworks)

Is there anything you can do to provide a Docker image for the platform=linux/arm64/v8?

Thanks

Hi @jimking100,

The exact image that is used by the hosted infrastructure is prebuilt and publicly available. You can pull it using the make pull recipe.

Note that local images, if you have built any, take precedence in the other Makefile commands, so you may have to specify the image when using other make commands like make test-submission, e.g., SUBMISSION_IMAGE=petsprize.azurecr.io/petsprize-competition:cpu-latest. Official images are tagged with -latest and local images are tagged with -local.

Hi,
I believe it is pre-built for an intel chip - that is the problem. The pre-built and publicly available image needs to be rebuilt for an arm64 chip, I don’t believe I have the ability to build that original image. As it stands the current image is unusable on a Mac - it doesn’t work at all for the federated submission.

This is the warning I receive using the pre-built image (the local image has been deleted):
WARNING: The requested image’s platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

Hi @jimking100,

Unfortunately, we don’t have any direct support for Apple M1 processors / arm64 architectures. The hardware being used in the hosted infrastructure is Intel x86_64 / amd64. If you aren’t able to find workarounds, then you may consider getting access to amd64 hardware, such as cloud virtual machines.

Hi,
I believe I have a workaround that will work, I’ve set up a testing harness that mimics the Docker image, but obviously can’t match it exactly, I then work out the last issues in the submission testing you’ve opened up - it took 3 tries to get the central submission correct, so I’ll probably have a few more submission testing attempts than other competitors, hopefully you’ll bear with me on that.