Conversation
|
Ok, will do that to test asap |
|
I've installed the docker, will wait for Sam to make the adjsutement in the run_sorter command because otherwise, as far as i understood, you are telling me that such a command will not work, will it? Will have a look meanwhile. Once this is working, I can relaunch evertyhing and have all sorters for the paper |
|
@yger I can also give it a try on monday, but let's wait for Sam and ask him if he likes the approach. You know he can be difficult :P |
|
Currently, with a naive run (and the new docker built, with only 7.5Go instead of 12Go), I still have errors docker.errors.ContainerError: Command 'sh -c "pip install --upgrade --force MEArec && pip install --upgrade --force https://github.com/samuelgarcia/spikeinterface/archive/big_refactoring.zip && pip install --upgrade --force https://github.com/NeuralEnsemble/python-neo/archive/master.zip && python /sorting_output_folder/in_docker_sorter_script.py && chown 1001:1001 -R /sorting_output_folder/sorting_yass_docker"' in image 'spikeinterface/yass:latest' returned non-zero exit status 1: b'Traceback (most recent call last):\n File "/sorting_output_folder/in_docker_sorter_script.py", line 17, in \n verbose=True, raise_error=True, **sorter_params)\n File "/home/si/miniconda3/lib/python3.7/site-packages/spikeinterface/sorters/runsorter.py", line 73, in run_sorter_local\n output_folder = SorterClass.initialize_folder(recording, output_folder, verbose, remove_existing_folder)\n File "/home/si/miniconda3/lib/python3.7/site-packages/spikeinterface/sorters/basesorter.py", line 110, in initialize_folder\n output_folder.mkdir(parents=True, exist_ok=True)\n File "/home/si/miniconda3/lib/python3.7/pathlib.py", line 1268, in mkdir\n self._accessor.mkdir(self, mode)\nPermissionError: [Errno 13] Permission denied: '/sorting_output_folder/sorting_yass_docker'\n' |
|
But I guess this might be because I did not pass the extra argument you mentioned. I'll have a look today at the core of spikeinterface to see how I can pass them |
|
@yger can you try this SI PR? SpikeInterface/spikeinterface#195 |
|
My bad. Now I have this error with your PR Traceback (most recent call last): During handling of the above exception, another exception occurred: Traceback (most recent call last): Will try to update the nvidia drivers and see if this is the problem |
|
answer is nope. I have a GPU, recognized by nvidia-smi command, but don't know how to pass it to the docker image obvisouly... |
|
@yger if you run this |
|
Im' not a docker expert.... But if I do I got the same error immediatly docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]. Maybe I should rebuilt everthing? |
|
My bad, I found the solution I think, it was related to the docker install, and not to spikeinterface. Now it seems to work. Next step is then simply to have a run_sorter command that will take into account the docker images. Or is it already the case? I'll check |
|
And of course, as usual, I spoke too soon. This is the next error, that happened after a while, so docker image was properly launched docker.errors.ContainerError: Command 'sh -c "pip install --upgrade --force MEArec && pip install --upgrade --force https://github.com/SpikeInterface/spikeinterface/archive/master.zip && pip install --upgrade --force https://github.com/NeuralEnsemble/python-neo/archive/master.zip && python /sorting_output_folder/in_docker_sorter_script.py && chown 1001:1001 -R /sorting_output_folder/sorting_yass_docker"' in image 'spikeinterface/yass:latest' returned non-zero exit status 1: b'Traceback (most recent call last):\n File "/sorting_output_folder/in_docker_sorter_script.py", line 17, in \n verbose=True, raise_error=True, **sorter_params)\n File "/home/si/miniconda3/lib/python3.7/site-packages/spikeinterface/sorters/runsorter.py", line 74, in run_sorter_local\n output_folder = SorterClass.initialize_folder(recording, output_folder, verbose, remove_existing_folder)\n File "/home/si/miniconda3/lib/python3.7/site-packages/spikeinterface/sorters/basesorter.py", line 111, in initialize_folder\n output_folder.mkdir(parents=True, exist_ok=True)\n File "/home/si/miniconda3/lib/python3.7/pathlib.py", line 1268, in mkdir\n self._accessor.mkdir(self, mode)\nPermissionError: [Errno 13] Permission denied: '/sorting_output_folder/sorting_yass_docker'\n' |
|
Yes this is the same erro I got...I think that the problem is that I install miniconda and related packages from a non-root user: https://github.com/SpikeInterface/spikeinterface-dockerfiles/blob/yass_update/yass/Dockerfile#L18-L38 I don't have time today but next week I'll try to install everything directly in root. Or if you want to play around with it Pierre you can give it a try! Let me know :) |
|
@yger @samuelgarcia after the last commit the YASS docker seems to work! :) You can just build it from the folder ( |
|
Great ! Looking forward to try that next week. Sam, can you merge Alessio's PR into my branch? |
Updates
Notes
docker run --gpus all -it --entrypoint /bin/bash yass:2.0.0--gpus allensures the GPU(s) are used correctly in the container--entrypoint /bin/bashis needed to run the entrypoint script, which activates the right environment@yger can you test this? @samuelgarcia for SI docker runs, I suggest we add a class variables
docker_requires_gpuanddocker_requires_entrypointflags to modify the docker commands. Should be straightforward (https://docker-py.readthedocs.io/en/stable/containers.html)