Closed JRMeyer closed 4 years ago
The release notes have a Supported Platforms section which indicates that AVX is required, among other things.
Maybe there should also be a mention in the repo docs?
I agree. I was actively looking for system requirements and I didn't find them until you told me where to look because it never occurred to me to check the release notes.
Also, it could be a little more clear.
I think this means I can use it on my Athlon II X2 270 (predates AVX/FMA) as long as I pick the version which will hand off to my GeForce GTX750 (compute capability 5.0), but I shouldn't feel so un-confident in that assessment. (For all I know the "with a modern CPU" refers to the AVX/FMA requirement in both cases and you just didn't repeat it. I've seen people do that before.)
- Linux x86 64 bit with a modern CPU (Needs at least AVX/FMA)
- Linux x86 64 bit with a modern CPU + NVIDIA GPU (Compute Capability at least 3.0, see NVIDIA docs)
I think this means I can use it on my Athlon II X2 270 (predates AVX/FMA) as long as I pick the version which will hand off to my GeForce GTX750 (compute capability 5.0), but I shouldn't feel so un-confident in that assessment. (For all I know the "with a modern CPU" refers to the AVX/FMA requirement in both cases and you just didn't repeat it. I've seen people do that before.)
I don't understand your question. Are you asking if the GPU builds are also dependant on AVX/FMA ?
1. I _am_ wondering that. 2. I'm suggesting that the system requirements should be made more clear, because it's unclear whether the AVX/FMA requirement is in addition to "a modern CPU" (not needed for GPU builds) or the definition of "a modern CPU" (needed for GPU builds).
Well, I guess a PR from you rewording that is useful because for us it is trivial that "modern CPU" is the AVX/FMA contraint, and this you need it also for GPU builds.
It's a matter of perspective. Ever since the race to keep a PC sufficiently performant for non-game tasks relaxed, "modern CPU" has stopped being obvious... especially for Linux users. I think we only have one machine in the whole house with AVX but, from how the machines perform the desired tasks, they certainly still feel modern.
(To be honest, I was still thinking of AVX as "that Intel thing that arrived on AMD products recently enough that requiring it would be like selling a game that only runs on nVidia GPUs.")
As for the PR, are you asking me to modify the README to add the requirements or is there a way to modify Releases metadata through PRs that I'm unaware of?
(To be honest, I was still thinking of AVX as "that Intel thing that arrived on AMD products recently enough that requiring it would be like selling a game that only runs on nVidia GPUs.")
AVX has been on AMD CPUs for years: when we verified the requirements, it was introduced in 2011 for Intel (SandyBridge I think) and AMD (Bulldozer as much as I can tell).
As for the PR, are you asking me to modify the README to add the requirements or is there a way to modify Releases metadata through PRs that I'm unaware of?
README, not the release notes.
AVX has been on AMD CPUs for years: when we verified the requirements, it was introduced in 2011 for Intel (SandyBridge I think) and AMD (Bulldozer as much as I can tell).
There's a reason I said "still thinking of". When you're on the last pre-AVX AMD generation and the rest of the family has slower CPUs, regardless of generation, it skews your perception.
README, not the release notes.
Thanks. I'm not sure when I'll get to it, but I'll try not to make it too long.
@ssokolow Do you have a wording suggestion, so that we can make the documentation elss ambigous?
Working from these phrasings and trying to retain its current concision...
Linux x86 64 bit with a modern CPU (Needs at least AVX/FMA) Linux x86 64 bit with a modern CPU + NVIDIA GPU (Compute Capability at least 3.0, see NVIDIA docs)
...maybe this.
Linux x86 64 bit with an AVX/FMA-capable CPU Linux x86 64 bit with an AVX/FMA-capable CPU + NVIDIA GPU (Compute Capability at least 3.0)
Working from these phrasings and trying to retain its current concision...
Linux x86 64 bit with a modern CPU (Needs at least AVX/FMA) Linux x86 64 bit with a modern CPU + NVIDIA GPU (Compute Capability at least 3.0, see NVIDIA docs)
...maybe this.
Linux x86 64 bit with an AVX/FMA-capable CPU Linux x86 64 bit with an AVX/FMA-capable CPU + NVIDIA GPU (Compute Capability at least 3.0)
1. It's shorter. (The existing one word-wraps in the comment preview while this doesn't. 2. It avoids the ambiguity of saying "a modern CPU" in both but allowing the interpretation that the CUDA requirement replaces the AVX/FMA requirement. 3. It takes advantage of how hyperlinks are used on sites like Wikipedia. (i.e. "Click here to learn about Compute Capability") 4. It just generally avoids the duplication of saying "a modern CPU, meaning a CPU with ..." or "Compute Capability, and here's a hyperlink" when you can just say "a CPU with ..." or hyperlink the "Computer Capability" to begin with.
Happy to review a PR with those wording :)
I'll see what I can do. The main holdup in providing a PR of any kind has been that I've been having trouble making time for it on my end. Things just keep coming up and, when I do find time, it's been pushed to near the back of my priority-sorted TODO queue.
Still having trouble making time but I thought you might want to know that, if I'm understanding things correctly, Intel's preparing to release a brand new processor line without AVX.
(Their Lakefield Hybrid processor (ie. big.LITTLE for x86) will be using Tremont and Sunny Cove cores and, from what I read, it seems they'll be turning off AVX and beyond on the Sunny Cove side, rather than adding them to the Tremont side, in order to ensure the OS can migrate processes safely between them.)
Still having trouble making time but I thought you might want to know that, if I'm understanding things correctly, Intel's preparing to release a brand new processor line without AVX.
That's unfortunate, but it's a specific set of devices, we can expect that people trying to run on those are knowledgeable enough to rebuild without AVX support. Though I don't know how good performance might be then.
Wait... AVX isn't a hard dependency? I'd have tried building this from source months ago if I'd known my Athlon II X2 270 + GeForce GTX750 setup wasn't inherently incompatible.
Is that something I missed when looking at the docs or just missing?
AVX isn't a hard dependency?
It's what we target for prebuilt binaries, but it should work without as long as TensorFlow works without AVX (which should still be the case).
Thanks @kdavis-mozilla you saved my day, I kept getting 'DLL load failed' from cmd or Illegal instruction ('core' dumped) from Ubuntu after installing deepspeech and trying to run it. At the end of the day, after checking is AVX enable by hwinfo software, I realize my computer cannot develop deepspeech, and after installing to another computer, worked like a charm.
There's a known issue that I've just run into (on a chromebook) and many others ran into (both here and on discourse).
If you're using an old / cheap CPU without AVX support, running deepspeech will result in:
This should be added to the docs somewhere... maybe a "hardware requirements" section?