Chegg wasn't a victim — it was a middleman profiting from locked-up educational content and exploiting students’ needs. ChatGPT didn't "lure" users; it provided a superior, accessible alternative, democratizing learning rather than hiding it behind paywalls. The argument against AI due to resource usage is selectively blind to the inefficiencies of legacy systems like Chegg. Calling this hype is like dismissing the internet as a fad — it’s a failure of imagination. Disruption always displaces incumbents, but clinging to outdated, exploitative models is far worse than embracing a tool that genuinely empowers users.
They had no real original content of their own, just worked solutions to homework problems they pulled from textbooks. They were good at SEO and would appear at the top. You clicked on it because it lied to you: showing you part of the content you wanted. Just enough for the search engine preview. That probably boosted them further, wasting more time by others tricked by the same fake results.
To see the rest of the answer, they wanted you to pay money and hope it was what you wanted. Who would subscribe to that other than students desperate for homework answers?
Then ChatGPT comes in without any of the scammy tactics. Sure, it's often wrong, but so are Chegg and Quora.
Considering that each kernel / kernel size is usually custom tuned on NVIDIA, I'd say no. Working in this field at several different companies, there are likely thousands of hand-tuned variations of a simple GEMM kernel. Each one required an engineer to look at specifically, even if they're all variations on a common theme.
As far as I know (and again, I work in the field of AI compilers), we're still a ways off from complete end-to-end generation of highly optimized kernels. If you want it to go fast, you need to write it by hand [1], and then test and validate.
Moreover, chip makers are constantly adding new features (Tensor Cores in NVIDIA for example), so the compiler is always playing catch up and at some point an engineer has to sit down (likely a team of them) and think 'what's the best way to exploit this hardware functionality for software performance?'. Then they have to test and validate that, and then either write a kernel, or attempt to put that know-how into a compiler.
Multiply this times the number of kernels in a typical suite, and... yeah.
And that was my point about herculean effort on modern chips. Assembly language isn't just the old 'Add register 1 and 2 and dump in R3' anymore. It's 'Use this instruction to access memory in this way, so that it's in a compatible format for the next instruction' and 'oh yeah, make sure your memory synchronization primitives are such that the whole thing is coherent'. Good luck!
Even going one step up into a higher-level language, you have to know how the kernel gets compiled to make it worthwhile. Again, it is trivial to write a correct opencl matrix multiply, but that's never going to be the highest performance. You have to know the hardware intimately. This is where having the software co-designed with hardware is very important. Basically, every AI chipmaker of any importance does this, including the startups, like Groq and Cerebras.
[1] A lot of kernels share basic patterns, so its not as hard as it sounds, but definitely requires engineering effort to get the design right.
> Considering that each kernel / kernel size is usually custom tuned on NVIDIA, I'd say no. Working in this field at several different companies, there are likely thousands of hand-tuned variations of a simple GEMM kernel. Each one required an engineer to look at specifically, even if they're all variations on a common theme.
Lol that's absolutely not true. What you're describing is literally impossible for any company that has more than one product family on the market since each product has different scratch sizes, number of vector registers, data types supported/emulated etc.
Outside of trade show demos, kernels are codegened. What is true is there are recurring "themes/patterns" that are handled by engineers for a class of products. Lately this is flash attention...
> Again, it is trivial to write a correct opencl matrix multiply, but that's never going to be the highest performance.
I guess you work at AMD. The reason AMD ships a whole bunch of binary kernels is not because someone tuned/designed each one but because AMD doesn't have a PTX/SASS equivalent. So each kernel has to be compiled at build time for each device (it's also why they can't have LTS support for architectures).
> outside of trade show demos, kernels are condegened. What is true is there are recurring "themes/patterns" that are handled by engineers for a class of products. Lately this is flash attention
I never said they weren't using code generation. I said that each one requires a manual tune. You will set various parameters, determine if the generated code does well enough and then if there's performance to squeeze out, you modify the code generator.
They require one person or team to engineer and then a whole bunch of people to use...? That doesn't resemble in the least what you were describing where each kernel is hand-tuned for each shape and device. But please do continue to insist you're still somehow right
Sigh. I use to be an engineering manager for a kernels team. I think I know what I'm talking about. Yes, each kernel is paid individual attention to even if many are basically the same and require little rework. It's a lot of work. Now I work as an ic in the same field . I don't need to insist I'm right because it's what I do all day
I work in DB kernels, everything gets hand tuned as there is economic reason for hand tuning it. The expectation in many of these systems is that there are no wasted cycles. You can codegen a decent kernel, but then someone will find a better approach - do you want the slower version of the product, or the faster one?
You can see this in action with matrix math libraries, folks have been hand tuning those for decades at this point.
Your claim is that there are automated methods (which I mentioned in my original post) to manage the complexity. My claim is that it requires a large team of engineers working on it. I'm not really sure what you think you've refuted.
1000 engineers don’t automatically crank out 50x more code than 20 engineers. But GP is just saying there are a lot of subcomponents involved that each need major engineering effort dedicated to them.
I see it less as an engineering problem and more as a market problem. AMD stuff has existed, it’s the market that doesn’t see a point in it, and at this point, even feature parity or CUDA compatibility for that matter won’t make a huge dent. People will just keep using what they know and are recommended.
It’s more amazing to me that NVDA is so intensely inflated by this LLM hype wave. I find it genuinely scary to think about what’s going to happen when 95+% of AI slopware startups fold. Nvidia won’t be the only company financially impacted. Our entire economy runs on fads.
Your conclusion does not follow from your premise. AI moderation should easily catch the worst offenders and the most obvious ones. The examples you gave easily stand out from non-offensive content and are easy to catch with high confidence. So, human moderators will have to look at where AI has low confidence classifying the content. In fact, AI will reduce the likelihood of human moderators ever seeing traumatic content.
So what? Maybe there would have been multiple island nations, maybe they all would have seen other countries and joined hands together. Why should the Dutch get any say in what modern Indonesia should look like?
Same goes for the parent comment about India. The decline of the Mughal empire and the possibility of multiple states arising instead of an unified India doesn't justify the British colonialism and in no way absolves them of their atrocities.
As someone who loves Typescript, the first chapter of your book deeply resonated with me. Good data representations and data types that encode meaning can eliminate entire classes of bugs by making invalid states unrepresentable, and I wish more languages emphasized and supported these principles.
I agree with what you are saying, but I find it interesting that physics can also predict properties of planets, stars, and galaxies interacting over cosmic distances. At that scale, you can zoom out and reduce the complexity again back to a handful of rules.
This depends on how many digits of accuracy you are looking for. With living things, we care more than with hot rocks, because the entropy gradients are so much higher.
It's not doable because your current location needs to be in the center of the screen in north up mode but can be placed lower in regular mode. Also the non square aspect ratio of the phone screen means that you don't get the same field of view in all four directions.
Buying handcrafted artisan stuff is a luxury few can afford. I come from a poor family and I was always grateful for mass produced mediocre stuff that we could actually afford.
Sure but the same optimizations that bring the costs down, bring down the average laborers value.
I'm not saying that things were sunshine and rainbows pre-industrialization, but there's some level of analysis to be done on the durability and value of a handcrafted piece of clothing, the care that goes into maintaining it, the value of a local economy, and the other side where you're forced to buy cheap items that degrade at a far faster rate.
If a town's local businesses are put out by a new walmart's ability to carry low prices, does the town truly come out ahead with those low prices? Or does Walmart simply extract more money from the town than it returns, leaving the town worse off?
Those optimizations increase the value of labor by greatly increasing the amount of output per unit of labor. Do you understand how much wealthier the modern worker is than the pre Industrial Revolution peasant?
It's always interesting to see the default argument of "u dont like it? just be homeless".
Where does that come from? I see it all the time. It's like there's zero ability to step outside the black and white. Either you must be totally onboard with the current system and not question the negative aspects, or you must live without dignity in the streets.
What I'm saying is we really don't need to be working 40+hrs/week in order to enjoy these advancements. People don't need to be made homeless in order for scientists who research these medicines to be paid peanuts.
“They had time” is such an amusing, and inaccurate, assertion. Toil was a very real, everyday thing. The only way to avoid toil was to be on one’s deathbed.
That’s a good point. What’s always been strange to me is why we as a community allow this. We should boycott the Walmarts and Devins of the world. Drive them out of business by voting with our dollars.
Handcrafted artisinal stuff is a luxury because that's the only niche that makes economic sense for it now, given mass production and other recent developments (too lazy to list, sorry).
Consider how you can't really get by in most of America without a car because we designed our cities to require them. It would be a mistake to conclude that, because life is harder in a car-optimized society without a car, society must be better off optimizing for cars.
The capitalist system keeps you poor by design. And you feed the system by purchasing the mass produced garbage. Sure, it is nice to afford stuff when poor, but we don't need to live in a society where being poor is common, or where mass produced garbage is the default option for most.
Please describe the alternative. "Mass produced garbage" is exactly how we are able to feed the world. It's not some sort of conspiracy, just scarcity.
There are size limits when deploying on serverless or edge infrastructure so developers have to care about that. The providers also typically charge by compute seconds * memory consumed so a larger executable costs real money as well.
Some serverless use cases work like you say, but Docker-based options such as AWS ECS, Docker-based Lambda functions, or Kubernetes would all commonly make use of compiled options