PsychoPy on M1 Macs

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.

1 Like

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.

1 Like

@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.

2 Likes