For those who are considering to get a M1 Mac, PsychoPy runs fine under Rosetta 2. So far, I’ve not noticed any issues. All runs fine and fast.
Thank you for the report! I bet I’m not the only one who was wondering about that.
Me too. For those interested, here is the result of running the sysinfo.py
script, showing that it is treating the CPU as if it was Intel but the GPU is the M1:
System info:
Darwin-20.1.0-x86_64-i386-64bit
macOS 10.16 running on x86_64
Python info
/Applications/PsychoPy.app/Contents/MacOS/python
3.6.8 (v3.6.8:3c6b436a57, Dec 24 2018, 02:04:31)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
numpy 1.19.1
scipy 1.4.1
matplotlib 3.3.1
pyglet 1.5.10
pyo 1.0.2
PsychoPy 2020.2.10
have shaders: True
OpenGL info:
vendor: Apple
rendering engine: Apple M1
OpenGL version: 2.1 Metal - 70.12.7
(Selected) Extensions:
True GL_ARB_multitexture
True GL_EXT_framebuffer_object
True GL_ARB_fragment_program
True GL_ARB_shader_objects
True GL_ARB_vertex_shader
True GL_ARB_texture_non_power_of_two
True GL_ARB_texture_float
False GL_STEREO
max vertices in vertex array: 1048575
I can’t seem to get any output from PsychoPy’s benchmark wizard unfortunately.
@Michael is your sysinfo.py
output on Big Sur 11.01? I noticed the output on my M1 Mac shows a newer version of OpenGL on Big Sur 11.1.
PsychoPy benchmark issue is related to Big Sur (?) as it fails on both Intel and M1 Macs.
System info:
Darwin-20.2.0-x86_64-i386-64bit
macOS 10.16 running on x86_64
Python info
/Applications/PsychoPy.app/Contents/MacOS/python
3.6.8 (v3.6.8:3c6b436a57, Dec 24 2018, 02:04:31)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
numpy 1.19.1
scipy 1.4.1
matplotlib 3.3.1
pyglet 1.5.10
pyo 1.0.2
PsychoPy 2020.2.10
have shaders: True
OpenGL info:
vendor: Apple
rendering engine: Apple M1
OpenGL version: 2.1 Metal - 71.0.7
(Selected) Extensions:
True GL_ARB_multitexture
True GL_EXT_framebuffer_object
True GL_ARB_fragment_program
True GL_ARB_shader_objects
True GL_ARB_vertex_shader
True GL_ARB_texture_non_power_of_two
True GL_ARB_texture_float
False GL_STEREO
max vertices in vertex array: 1048575
Short update regarding conda
environments
While there has been some progress getting PsychoPy to run natively on M1, this solution seems to require a fair amount of hacking around, and not everything works. Continuing to run PsychoPy through Rosetta still seems to be the easiest solution as of now (though I cannot comment on performance for running real experiments; my interest here is for teaching and development).
However, short tip for anyone trying to install PsychoPy through a conda
environment on an M1 mac: To run via Rosetta, you will need to make sure you’re using an x86_64 version of conda (e.g. here) in a terminal configured to run Rosetta. You can do this by following these instructions, duplicating your Terminal application, renaming, then changing the renamed terminal to run via Rosetta. You can check by typing arch
, which should return i386
, not arm64
.
Then you can install PsychoPy via the relevant environment file.