Precise-runner failure after mycroft update


I recently updated mycroft on linux. Precise will fail shortly after starting mycroft. I have some linux skills ( not expert ) and I tracked it down to the tensorflow library. It was complaing about an illegal opcode. After trying a rebuild without success I installed mycroft on a different computer where it worked. Since both computers were using the same distribution I concluded it was something peculiar to one machine.

After some googling I found something about precise and tensorflow using the AVX instruction which is not supported on older CPUs. This seems to fit my situation.

How do I get the previous version of .mycroft/precise/precise-engine/


You’d have to recompile tensorflow on said machine. See I believe you’ll want tf 1.13.1.


I think the pip install might be the way to go.
Compiling from source requires the Bazel tool. Also the build instructions assume that you are building for a Cuda GPU.


When configuring the build, it will ask if you want to use cuda (and several other things). You can hit no on those and it will build without. Yes, requires bazel, you can download that fairly easily.

If you don’t have avx on your x86 cpu, TF stopped making builds for those last year. Some celerons and pentiums don’t have avx enabled on them, which means you have to roll your own.


With the pip3 install I descended into dependency hell with complaints about my version of proto-buf. The oldest version of tensflow that pip3 found was 1.13.1.
If I did roll my own will I still run into the same dependency issue?

BTW running AMD Athlon II X4


There’s an easy way to find out.

Protobuf isn’t too difficult to install, if you do end up needing that.


I’ll give it a try. Will dev_setup destroy my work?


Separate things.

Build the pip wheel for tf, then you can use that in the venv.


I’m a python noob. The existing wheels ( assuming files suffixed .whl ) are in ~/.cache not in ~/mycroft-core/.venv.


I built and installed a new tensorflow wheel. Precise no longer fails.
Took a loooong time.