ajayjain
ajayjain on Hacker News
I'm one of the team members at Genmo that worked on Mochi 1. Let me know if you have questions :)
Genmo | Senior Engineer | San Francisco, CA | Full-Time | *[
https://genmo.ai](https://genmo.ai/)*
Genmo is a vertically integrated AI company pushing the boundaries of what's possible with visual generative models.
Our team is building a future where people and AI collaborate seamlessly to create diverse modalities such as images, videos and more—breaking down the barriers between creative verticals. We're the folks who made diffusion models work, and created the first text-to-3D foundation models.
You can play an instrumental role in our mission to build cutting-edge technology, and radically different user interfaces, with an ambitious long-term vision of establishing Creative General Intelligence.
We’re hiring for several roles:
- Founding Full Stack Engineer - Next.js, Tailwind CSS, React
- Founding Infrastructure Engineer - GCP, AWS, Kubernetes
- Founding Data Engineer - data collation for foundation models
- Research Scientists - LLM and diffusion model training
Join us if you have a passion for AI and are ready to help shape the future of creative tech!
Reach out to me at ajay[at]genmo.ai
Hi @sirianth, this is Ajay. Are you talking about the
https://ajayj.com/dreamfields colab? Feel free to dm me on Twitter (@ajayj_) or email me if you're facing bugs. Dependencies keep shifting, really should have pinned versions originally...
Hi! Ajay here. Correct, our shading model doesn't compute intersections, since that's a bit challenging with a NeRF scene representation.
Zooming in, their map reports that vaccination rates in 94707 are now over 100% -- it's the gray region north of UC Berkeley. Perhaps folks are commuting in to 94707 to receive doses?
Yep! You got the motivation exactly right. The goal is automatic program "rejuvenation" w/o all the engineering and maintenance costs. Revectorization in the compiler allows programmers to capture much of the performance gain possible with wider instruction sets without having to write and maintain multiple code paths. It can be a big pain to understand and rewrite this vector code -- especially if it's in some external library or another team's code. But agreed that some really nice results are possible with the right engineering such as in parsing.
Do the binaries really get into the 200 MB range from different code paths, or is that due to data?
Thanks! The tests were run on a single thread since the source kernels & test programs were single threaded. It was important for us to find the largest possible instruction graphs to revectorize at a time so that the whole kernel or most of the kernel runs with the target instruction set. If our search terminated early due to e.g. a pair of low-width instructions that the pass didn't know how to merge, there's a performance loss, so we spent quite a bit of time to synthesize comprehensive lookup tables and implement shuffle merging and reductions. My impression is that kernels running exclusively AVX512 rather than interleaved scalar/low width code generally perform better than the low width code even with downclocking, but please let me know if that's not the case.
We originally ran experiments on a multisocket lab server which should have a faster clock, but I don't have a record of the specs. That server did fine for SSE to AVX2 conversion, but didn't support AVX512 so we ultimately used Google Cloud VMs.
Two years ago, I wrote an LLVM compiler pass that automatically upgrades SSE or AVX-2 code to AVX-512 when those instructions are available. It's helpful for getting performance gains for hand engineered code that you don't want to touch. We saw some good gains on integer workloads (unpacking, useful for databases - something I'd call "regular code"): 1.16x speedup going from SSE to AVX-2, and 1.43x speedup going from SSE to AVX-512. Even better speedups are available for FP workloads, though hand-writing the AVX-512 version can work a lot better since programmers can exploit the full range of new instructions available in AVX.
https://www.nextgenvec.org/
https://arxiv.org/abs/1902.02816
I'm one of the authors of this paper, feel free to ask questions.
Posted by
ajayjain on Monday June 22, 2020 @11:34AM
from the hojonathanho.github.io dept.
Loss aversion tells us that gains and losses have different emotional impact. In particular, perceived losses supposedly have a strong negative impact on people. [1] If Lyft employees value their shares at the IPO price, they might be feeling a loss all the way from 72 to 61.
[1] https://link.springer.com/chapter/10.1057/9781137544254_13
In some recent work from my group [1], we reduce the complexity of keeping up with new SIMD ISAs by retargeting code between generations. For example, a compiler pass can take code written to target SSE2 (with intrinsics) and emit AVX-512 - it auto-vectorizes hand-vectorized code. With a more capable compiler, if the ISA grows in complexity, programmers and users of libraries get speedups without rewriting their code or relying on scalar auto-vectorization. However, the x86 ISA growth certainly pushed some complexity on us as compiler writers - we had to write a pass to retarget instructions!
[1] https://www.nextgenvec.org/#revec
Posted by
ajayjain on Wednesday June 08, 2016 @12:47AM
from the getmdl.io dept.
I used this article (and some other pieces) to help with some robotics research in Python a few months ago. Behavior trees are fantastic abstractions that definitely simplify FSM code, but I found that working within the constraints of decorators could really complicate behavior architectures that can instead be implemented more linearly. Specifically, I wanted to have an overall obstacle avoidance behavior separated from individual movements, but ended up implementing an obstacle avoidance function library totally separate from the BT.
In a sense, it's the replacement that someone who has their bike stolen is paying for, not the original. If it gets stolen, you'd need to get a ride home, find a new bike without transportation for a bit, and put in a decent amount of time and money to fix a bicycle at that price.
When I make a message, the URL seems to use zeroclipboard for Flash based click-to-copy, but I have Flash blocked with an extension and click to play. It would be nice if the message URL could be manually selected, like with bitly.
Where the percentage correct is significantly below 50%, it seems like there are very widespread myths being accepted, possibly dangerously. Malaysia scored 8% and Russia scored 18% on the second to last question (Antibiotics kill viruses as well as bacteria) - that's scary to me from a public health standpoint.
Posted by
ajayjain on Friday February 14, 2014 @08:45PM
from the blogs.denverpost.com dept.
Many apps use several of these business models at the same time - buy in game currency with money or watch in game sponsorships to earn it, then use that currency to buy virtual items.
What does %% do? The documentation says: a %% b is the same as (a % b + b) % b, but what is the difference between "true mathematical modulo" and the standard modulo?
"against the development, use or distribution of Open Source Software or Home-Grown Systems to the extent that such Open Source Software and Home-Grown Systems are not Bundled with proprietary software"
Competitors are not protected by this pledge.
One of the Windows 8 improvements is with the default file copy/move, and I no longer use TerraCopy. There are a bunch of under-the-hood/utility improvements outside the aesthetic.
I'm not too familiar with Python, but this is case sensitive unlike benhoyt's examples. Would this be case insensitive?
lines = [line for line in open("bible.txt")]
words = [word.lower() for line in lines for word in line.split()]
counts = {word:0 for word in words}
for word in words:
counts[word] += 1
A quote from that link:
"So where the hated Stasi surveillance was a building in area, the NSA surveillance today is an entire continent."
And:
"As a final note, the word Stasi was a contraction of the East German surveillance agency’s full name, Ministerium für Staatssicherheit. It translates to National Security Agency."
(Google translate says Ministry of State Security).
In the French revolution, the group pretty much playing the role of government during the Reign of Terror with many beheadings every day was called the Committee of Public Safety. The original or supposed reason these organizations claim to exist seems to be a justification to claim power and rights from the population.
Very cool, I might use one of these! The email with the download link was marked as spam by gmail, so you might have to do a search in:anywhere.
Some other free themes: http://wrapbootstrap.com (I'm not affiliated, just love their stuff). They have less files and a compiled css file for their themes.
Seems Gmail tabs don't work with multiple inboxes, but I've set it up. I guess I'll have to be more liberal with unsubscribing without emails being sorted into tabs.
I'm currently a sophomore in APCS after taking a year of the base Java class. Both focus on the language for the most part. In APCS, ~60% of the material is Java OOP, as in specifics behavior when overriding methods, static vs instance, interfaces etc. 20-25% is control structures, syntax etc, and in first semester we've covered basic sorts, built in arrays and ArrayLists. I believe in second semester we talk about elementary data structures like linked lists and _maybe_ binary trees after the AP exam (the class is structured around CollegeBoard's AP exam).
Since there is already a Java class on campus, I think the AP class should focus more on language independent CS concepts. At least half of our final and tests are problems about determining what is printed by an obfuscated Java program to test knowledge of how edge cases are handled.
Posted by
ajayjain on Thursday November 21, 2013 @10:18PM
from the corlan.org dept.