1,856 karma · joined September 24, 2014
For a quick tl;dr: D-Wave computers can speed up certain optimization problems, but more than a few times it's been in doubt if they provide an advantage over classical computers or not (notice that a few times they compared against single threaded systems).
[0] https://en.wikipedia.org/wiki/D-Wave_Systems#Computer_system...
Edit: for context, I'm referring to D-Wave, that some years ago said they had broken the 1000-qubit mark, but their systems aren't generic quantum computers, but rather computers tham implement quantum annealing.
As this was a group project, there were other hands on deck. One weekend I caught a nasty cold and I couldn't assist the weekly meeting to work on the project. Monday comes and we have to show our advances. The code was butchered. It took me a day to fix what had been broken (and keeping egos at bay, it would've been easier to just throw everything away and implement things from my last stable version).
Now I can fire up python, import numpy and scipy, and make far more complex simulations in a couple of minutes and a few lines of code. Sure, back then python and numpy did exist, I just didn't know about them. But you know what didn't exist 10-15 years ago? Pytorch, TensorFlow, JAX and all the deep learning ecosystem (probably scikit-learn did exstist, it's been around forever!). Thanks to those, I can program/train deep learning algorithms for which I probably wouldn't be able to code the lower-level abstractions to make them work. JAX comes with a numpy that runs on hardware "for free" (and there was PyCUDA before that if you had a compatible GPU).
That's the programmer productivity you're not seeing. Sure, these are very specific examples, but we have many more building blocks available to make interesting things without having to worry about the lower layers.
You can also complain about Electron being a bloated layer, and that's OK. There's your comparisson about how Spotify is slow and Winamp is/was fast.
I agree that the software layer has become slow, crufy, bloated, etc. But it's still cheaper to get faster hardware (or wait a bit for it, see M1, Alder Lake, Zen 3, to name a few, and those are getting successors later on this year) than to get a good programmer to optimize your code.
And I know that we'd get much better performance out of current (and probably future) hardware if we had more optimized software, but it's rare to see companies and projects tackle on such optimization efforts.
I do agree that we'd get fantastic performance out of our systems if we had the important layers optimized like this (or more), but it seems few (if any) have been pushing in that direction.
[0] https://pypi.org/project/tensorflow-directml/
[1] https://docs.microsoft.com/en-us/windows/ai/directml/gpu-ten...
Even those layers and layers don't _have to_ slow things down. Check the refterm "debacle" ([2] for the context, [0, 1] as Muratori's answer to it). It's just the way things are usually programmed doesn't care about performance and how fast things really can be. I sometimes wonder in we're not due for a massive round of optimization on a couple of the layers that we're used to using/depend on.
[0] https://www.youtube.com/watch?v=hxM8QmyZXtg
You know where else I see this pattern? Digital forensics, my area of work. People have been selling snake oil all around for years, and know lawyers, attorneys and judges (in general, with some god particular exceptions) believe in whatever they've been seeing in CSI, or their "IT guy" convinced them as possible. Who cares that I'm one renowned expert in the field? _Their guy_ said this thing was possible, so I must be lying!
Even then, you're not turning off half the cores:
* Area wise, 4 E-cores use as much die space as 1 P-core.
* Thread wise, turning off the E-cores brings you from 24 threads down to 16 threads.
* I didn't see the PS3 emulator benchmark, but you are telling me that they got a speedup.
* There are some anecdotal accounts ("hardware influencers", YouTube channels, etc) about P-cores being the main driver for gaming performance, hence why these sources mainly recommend the 12400 processor with no E-cores as a price/performance sweet spot.
* Of course, not everything is gaming, and depending on what you do with your computer(s), what will work better.
All in all, I'm more interested in the Celeron/Pentiums which will be Gracemont only (E-cores) and what kind of performance, battery life they get from them. I have an old (2018) sub-notebook that houses an N4000 Celeron (that'd be Goldmont+), and it was surprisingly good for answering emails, web browsing and watching online video. Abysmall performance if you tried to do anything that required math with it (10x to 100x slower than an i5 from the same time) but apparently they've ironed out all those things and those little cores can get in the same ballpark performance, at a much lower power envelope.
I don't know if it was super good (Linus Torvalds certainly was loud against it, and from his POV, his critic makes lots of sense), but I run some numeric code from time to time that _in theory_ could benefit from it. So it's a bit of shame that it won't be supported in future products? Let's see what AMD does about it on Zen 4 and if they manage to force Intel back to it, if only for competitions sake.
[0] https://travisdowns.github.io/blog/2020/08/19/icl-avx512-fre...
But as someone already pointed out, my main issue was understand the "International" (the I from ITAR) as meaning that it was a treaty signed by many countries, when it actually means "exporting from the US to International markets".
So during 2020 we moved into a model where we recorded the lectures for students to watch on their own time, and then they'd have a questions-only class (or so they were told). This turned out to get 80-90% of the students to actually view the material before class, and then they'd ask questions about what they didn't understand. On a few difficult topics, we ended up having yet another lecture (but focused on the parts they had trouble following).
On some occasions where they didn't engage with many questions (I think it was the first few classes under this model, which was novel to the students) we the teachers picked up on doing a quick recap and focusing on what we knew beforehand tends to be hard to understand, and engaged them in the class (questions, explain the concepts themselves, etc).
Here's my take: it takes a lot of effort to do this, from recording the material beforehand, to "lying" that the class will be questions-only for clearing up (and we know we'll end up explaining yet again if they don't bring questions), to actively engaging and changing the pace of the lectures/classes.
Because of all this effort, out of 5 different courses I teach, I only managed to pull this in 1, and we're still tweaking a lot of content to make it work better under this model. But we're planning to keep it even after the restrictions are gone (we're still not giving in-person classes at my university, in theory they'll be back for 2022).
[0] RPi: https://www.phoronix.com/scan.php?page=article&item=raspberr...
[1] M1: https://www.phoronix.com/scan.php?page=article&item=apple-ma...
* Energy decline is accelerating.
* Perf-per-watt is stagntting (hence the comparisson of RPi @ 28nm vs M1 @ 5nm).
* This trend leads to economic decline (Note: I don't understand why, maybe it's explained but I didn't get it).
* Eventually hardware won't be replaceable.
* Software should be improved to get better efficiency (Note: I'm not sure this is a claim made by OP, but it's something I understood).
Edit: having taken the time to summarize what I understood from the comment, I must say I don't quite agree. The RPi vs M1 comparisson seems way way off, they both have a similar power envelope but the M1 has about 10x better results in various benchmarks. I don't agree that hardware won't be replaceable (save for a civilization shattering event, which is not what we're discussing here).
I do believe software _could_ be more optimized, but then again I'm not sure that's a point OP was making (they did mention something about "software gatekeeping" which I took that way, probably misunderstood what they really meant). Now that I've thought about this some more, this is probably something I conflated into OPs post based on my opinions.
I'm not quite sure what to think about energy decline. I think they meant about using more energy for things that used to take less energy before? If that is the correct interpretation, I'm not sure what we're talking about. On micro scales (eg: computers) I don't think that holds, but maybe it is happening on macro scales (eg: large industries). But even for macro scales, I think there's been a shift to efficiency, if only to reduce energy costs. Then again, that's not an area where I have the faintest idea, so maybe I'm blatantly wrong and OP is right.
> Meanwhile, sponsorships are at 13% of the (not terribly ambitious) goal of $6k/month
The answer would then be: "because I have to keep another job to pay the bills" then? Hope you can get to your goal ASAP. Going by stupidly quick math, you have 12k stars for gesim alone, and that boils down that if every star on github payed 50 cents you'd already be there. I know that starring doesn't mean anything other than "hey, this looks interesting!", but then again 50 cents is probably cheap enough for a majority of those "stars" that they wouldn't even notice.
Also: thanks for creating and maintaining gensim!
I've been programming in python for almost 15 years and I don't know all the functions/classes/attributes of any module in the standard library probably. What I do know is that if I'm on a vanilla python shell I can type `help(module)` and I'll get that list in the shell directly, and even `help(module.function)` will give me enough context most of the time that I won't need to go online either.
However, as my daily shell, I use IPython, on which I have smart autocomplete that inspects the modules for me by just typing `module.`, hit tab and BAM! All the things inside the module pop up before me to explore. Something looks about what I need? I add a ? at the end an press enter, so `module.function?` will show me the docstring, nicely formatted with the signture (the same thing the built-in `help()` does).
So the online docs, for python, rest on an entirely different level. But sure, coming from other languages it may be weird not having what you're used to. It's part of the languages culture.