658 karma · joined November 19, 2007
GA: "I found 3 locations, which one?"
Me: "The closest one"
GA: "I found 3 locations, which one?"
...
Along the way, I've been struggling with a question and I hope someone can help me understand how to go about this: how would you build a model that does more than one NLP task? For a simple classifier like input: text (a tweet) and output: text (an emotion), you can fine-tune an existing classifier on such a data set. But, how would you build a model that does NER and sentiment analysis? E.g. input: text (a Yelp review of a restaurant) and output: list of (entity, sentiment) tuples (e.g. [("tacos", "good"), ("margaritas", "good"), ("salsa", "bad")]). If you have a data set structured this way, and want to fine-tune a model, how does that model know how to make use of a Python list of tuples?
Not a fan even in today's world. Example:
The house next to mine sold for $300k 2y ago. Those owners put about $50k into renovations and sold 1y later for $450k. The current owner did nothing (didn't even mow the lawn!) and 6m later decided to pack up and move across country for a job. He put the house on the market for $650k. It's beyond insulting. That house is going to sit on the market for a long time unless he is willing to make no money or even lose money on the overall transaction.
If the peripheral issues a memory write, that location in the CPU cache must be invalidated so a CPU memory read of the location does not return an old/stale value.
In my own experimentation (non real-world use case) on a very specific system, I was surprised by the rate of peripheral read requests that resulted in snoop hits where the value would be returned from CPU cache (instead of from DDR PHY controller). The base case was surprisingly low. Modifying the experiment to have the CPU continuously access the memory (read accesses) while the CPU-peripheral interaction was taking place resulted in much much higher snoop hit rates. The overall performance difference between the two cases was not as big as I would have hoped at all. Perhaps the value being returned from DDR PHY controller was not as slow as I would have expected (some unknown/unexpected behavior caching/bypassing in the DDR controller?)--again, this was not a use case that had real-world memory accesses...
A language keyword for "please don't take it from cache" is tricky because it would be an incredibly low low low level specifier intended to be used for performance reasons in a system that is very complex to reason about performance. Maybe having more knobs could help (much easier to use this language specifier rather than having to write code to have the CPU continuously access the memory hoping that will keep it in cache), but I think this could get into the realm that people get distracted by performance and just start doing things in the name of performance without having proper controls and measurements in place for assisting in understanding what may be happening in the system.
Instructions related to the memory model exist for correctness. Memory prefetch instructions are just suggestions for an already sophisticated memory unit. Memory QoS can be thought of as having an impact on performance, but it is a much higher level solution aimed at partitioning of resources.
It's not just Finance but other industries have this culture as well. I suspect it manifests in an environment that is perceived to be hyper competitive--any perceived advantage regardless of where it came from or how differentiated it is, is held closely and over-weighed if proper metrics aren't in place to continue pushing for improvement.
I would say that the importance is in the correctness of the algorithm that implements the shared memory synchronization.
Lowering the algorithm/code to architecture instructions that enforce memory ordering is trivial at that point. So what if it means a fence instruction isn't needed on x86 but it is on arm64 at some particular point in the code.
WFH is over folks.
Joking aside, that's awesome, and I hope some flexibility remains for all. Especially for those with little kids and two working parents.
I used to love drinking. I still do, and probably always will. It may break your heart and drive you crazy to kill something you love. But reconciling the cognitive dissonance is worth it. Have honest conversations with yourself, for however long it takes..
For me, I love my kids my wife and physical training more than drinking. So I don't buy alcohol anymore when grocery shopping and I recognize and avoid social situations that are primarily centered around drinking--there are plenty of other opportunities to connect with people that do not involve drinking. I am also OK with knowing that some people simply do not understand this--it's all good, and I don't care.