synesthesiam / docker-mozillatts

Docker image for Mozilla TTS server
MIT License
182 stars 36 forks source link

noavx flag appears to still use avx code? #17

Open MarkinBrisbane opened 3 years ago

MarkinBrisbane commented 3 years ago

Hi @synesthesiam (Michael), I stumbled across your work whilst trying to learn more about AI/TTS so eagerly tried to run it in docker which lives in a guest on my mini-vm server which has a Celeron J4105 processor. I followed the directions to use the synesthesiam/mozillatts:en-noavx tag which results in the container loading and the webserver running (ports mapped 5002:5002).

Not long after I enter some text and select "Speak" it returns Error: Failed to fetch

The container then shows as stopped (I am lazy and use portainer)

Container status: Stopped for 25 minutes with exit code 132

End of log file: [INFO] * Running on http://0.0.0.0:5002/ (Press CTRL+C to quit) [INFO] 192.168.1.110 - - [17/Feb/2021 05:46:48] "GET / HTTP/1.1" 200 - [INFO] Synthesizing (4 char(s))... [INFO] initializing backend espeak-1.48.03 /run.sh: line 3: 6 Illegal instruction (core dumped) bin/python3 -m tts_web "$@"

synesthesiam commented 3 years ago

Hi, @MarkinBrisbane. Thanks for giving it a try!

I've tried and (so far) failed to build PyTorch without AVX instructions. I thought I had succeeded originally because the -noavx versions ran much slower on my CPU (with AVX), but when I finally tried it on a system without AVX (Pentium G440) it still crashed.

I spent a week trying various build options, both for PyTorch's setup.py and for its underlying CMake build. No matter what I try, I can't seem to stop the compiler from inserting AVX instructions somewhere. I've even built it on the Pentium G440, and it still adds them!

If anyone has any ideas, I'd love to hear them :)

MarkinBrisbane commented 3 years ago

I did some quick googling and it appears there have been some updates on it here: https://github.com/pytorch/pytorch/issues/43300

I'm not too familiar with how it all hangs together to understand if that is "the answer" or not sorry