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/libtensorflow_framework.so?
You’d have to recompile tensorflow on said machine. See https://github.com/MycroftAI/mycroft-precise/issues/44 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?
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.
That’s going to be a major pain in the arse for people who like me have Mycroft on a subsidiary system as “a solution looking for a problem”.
Is the rebuild procedure described in an FAQ somewhere?
It’s covered in the tensorflow documentation.
Just a thought,
Would a solution for those of us that have several older computers laying around, with CPU’s that don’t support the new tenserflow, to develop a “client” that can connect to a central Mycroft server. Such as this developed by @JarbasAl. Not sure if that is feasible or not, but maybe?
Have you run into the same problem?
What hardware are you running Mycroft on?
I run Mycroft on several machines. A couple of Pi’s, they work well, a newer MSI laptop, which works well, and then I see what else it can run on. The machine that is having issues is an Athlon II mentioned in this post. I even have Mycroft on an old P4 32 bit machine. Which other than being slow, works.
No, but I anticipate that I will as soon as I put Mycroft back on the
Thinkpad T61 that I upgraded to Debian “Buster” a few days ago since
“avx” doesn’t show up in /proc/cpuinfo output… in fact of the
miscellaneous systems around here I don’t see it on anything.