Not plain-text I hope. Was this extracted directly from providers? Given the fact that people reuse passwords, it should be easy to construct a larger db theoretically. But this number is mind-boggling.
Might have to look at specific lib implementations, but I'd guess that mostly gpu calls from python are actually happening in c++ land. And internally a lib might be using synchronize calls where needed.
When you call a cuda method, it is launched asynchronously. That is the function queues it up for execution on gpu and returns.
So if you need to wait for an op to finish, you need to `synchronize` as shown above.
`get_current_stream` because the queue mentioned above is actually called stream in cuda.
If you want to run many independent ops concurrently, you can use several streams.
Benchmarking is one use case for synchronize. Another would be if you let's say run two independent ops in different streams and need to combine their results.
Btw, if you work with pytorch, when ops are run on gpu, they are launched in background. If you want to bench torch models on gpu, they also provide a sync api.
I'd imagine that Meta is trying to avoid an AI / LLM monopoly from happening as the primary goal.
They suffered when Apple was a gateway to their service for ios users and decided to shut their access to user data off.
And AI is clearly going to be used widely to aid in content generation if not doing entirely. Also they tried jumping on the chatbot hype with M or something. That didn't pan out as well.
By opening up AI, they would enable tools that allow users to pump out more content easily and spend more time in app.
Getting the goodwill of dev community is a bonus.
A brilliant move from Meta.