<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>Vighnesh Iyer</title>
      <link>https://vighneshiyer.com</link>
      <description></description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://vighneshiyer.com/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Thu, 13 Nov 2025 00:00:00 +0000</lastBuildDate>
      <item>
          <title>Cocktails</title>
          <pubDate>Thu, 13 Nov 2025 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://vighneshiyer.com/personal/fun_things/cocktails/</link>
          <guid>https://vighneshiyer.com/personal/fun_things/cocktails/</guid>
          <description xml:base="https://vighneshiyer.com/personal/fun_things/cocktails/">&lt;p&gt;Making cocktails at home is good because:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;You can customize them to your or your guests’ liking&lt;&#x2F;li&gt;
&lt;li&gt;You can make cocktails with high-end liquors that you pick out&lt;&#x2F;li&gt;
&lt;li&gt;You can enjoy drinking in your own quiet space&lt;&#x2F;li&gt;
&lt;li&gt;Bartending at home is cost effective&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;I am by no means an expert on this topic but here is what I’ve learned so far.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;specs&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#specs&quot; aria-label=&quot;Anchor link: specs&quot;&gt;Specs&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;These aren’t the “true” “official” recipes, but rather my own hacked together versions that I like.&lt;&#x2F;p&gt;
&lt;!--
A sticker with a white border, no backdrop or shadow, and a white background. High resolution. Sketchy, cartoon-like style.
Use this attached image as reference, but preserve the sketchy&#x2F;cartoon style from the previous generations.

Whiskey: The sticker should be a bottle of whiskey modeled after the Four Roses Small Batch Bourbon bottle.
Simple syrup: The sticker should be a glass bottle of clear simple syrup with a label. Just use the words &#x27;Simple Syrup&#x27; with perhaps a flourish. Use a glass bottle with a tight metal clasp and rubber gasket (a flip-top metal clasp).
Plus: The sticker should be a thick black solid plus (+) sign. Keep the sign no larger than 50% of the vertical and horizontal space you have to work with.
Angostura bitters: The sticker should be a bottle of Angostura bitters. Use the classic design. Reference how it looks via image search.
Orange bitters: The sticker should be a bottle of Angostura orange bitters. Use the classic design. Reference how it looks via image search.
Right arrow: The sticker should be a thick black right arrow (-&gt;) sign. Keep the sign no larger than 50% of the vertical and horizontal space you have to work with.
Mixing glass: The sticker should be a cocktail mixing glass that&#x27;s filled halfway with cubed ice, with a barspoon angled inside the mixing glass.
Equals: The sticker should be a thick black equals (=) sign. Keep the sign no larger than 50% of the vertical and horizontal space you have to work with.
Lemonade: The sticker should be a glass bottle of lemonade with a label and flourish.
Lemon: The sticker should be a single lemon.
Shaker: The sticker should be a cobbler shaker for cocktails.

Old Fashioned: The sticker should be an Old Fashioned cocktail inside a rocks glass with a gridded glass pattern. The rocks glass should contain one large ice cube and a garnish of an orange peel, twisted and one-half placed in the glass, with the rest hanging on the rim.
I want the orange peel to be on the rim. I want the rocks glass to have vertical sides And I want the ice cube to be as large as the glass diameter.
--&gt;
&lt;h3 id=&quot;old-fashioned&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#old-fashioned&quot; aria-label=&quot;Anchor link: old-fashioned&quot;&gt;Old Fashioned&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;There are many variations and you can use any spirit, although whiskey is the classic.&lt;&#x2F;p&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;bourbon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-2&quot; src=&quot;.&#x2F;angostura_bitters.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-2&quot; src=&quot;.&#x2F;orange_bitters.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;mixing_glass.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-2&quot; src=&quot;.&#x2F;old_fashioned.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;2oz whiskey&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;8oz–1&#x2F;4oz simple syrup&lt;&#x2F;li&gt;
&lt;li&gt;2 dashes Angostura bitters&lt;&#x2F;li&gt;
&lt;li&gt;2 dashes orange bitters&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Stir in mixing glass with cubed ice. Strain. Pour over ice.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Rocks glass, large ice cube, Luxardo cherry, orange peel twist&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Four Roses, Maker’s 46. Diplomatico Reserva&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Swap spirits&lt;&#x2F;em&gt;: 2oz aged rum for whiskey&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Swap sweetener&lt;&#x2F;em&gt;: swap demerara &#x2F; maple &#x2F; blue agave syrup for simple syrup&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Add coffee depth&lt;&#x2F;em&gt;: 1&#x2F;2oz coffee liqueur&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Exotic bitters&lt;&#x2F;em&gt;: choose — 2 dashes Aztec chocolate bitters, 2 dashes black walnut bitters&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Port old fashioned&lt;&#x2F;em&gt;: 2oz bourbon, 3&#x2F;4oz 10-year Tawny port, 1&#x2F;4oz maple syrup, 2 dashes Angostura bitters&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;whiskey-sour&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#whiskey-sour&quot; aria-label=&quot;Anchor link: whiskey-sour&quot;&gt;Whiskey Sour&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;bourbon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-2&quot; src=&quot;.&#x2F;whiskey_sour.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;2oz whiskey &#x2F; rum&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz maple &#x2F; 2:1 demerara syrup &lt;strong&gt;OR&lt;&#x2F;strong&gt; 3&#x2F;4oz 1:1 simple syrup&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;(Optional) Fee Foam or 1 egg white&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake hard with large ice cube (for max foam). Double strain into glass.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Rocks glass (over one large ice cube) or cocktail glass (up). Garnish with a Luxardo cherry and a few drops of Angostura bitters on top of the foam.&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Four Roses, Wild Turkey 101&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Quick version with lemonade&lt;&#x2F;em&gt;: Swap lemon juice and sweetener for 2–3oz of fresh unpasteurized lemonade + a quarter of a lemon, juiced fresh. The Trader Joe’s refrigerated lemonade works perfectly, no need for additional sweetener.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;New York Sour&lt;&#x2F;em&gt;: Float 1&#x2F;2oz dry red wine (e.g. Merlot, Malbec) or port on top over the back of a barspoon&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;manhattan&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#manhattan&quot; aria-label=&quot;Anchor link: manhattan&quot;&gt;Manhattan&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;bourbon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;sweet_vermouth.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-2&quot; src=&quot;.&#x2F;angostura_bitters.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;mixing_glass.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;manhattan.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;2oz whiskey&lt;&#x2F;li&gt;
&lt;li&gt;1oz sweet vermouth (or ruby port)&lt;&#x2F;li&gt;
&lt;li&gt;2 dashes Angostura bitters&lt;&#x2F;li&gt;
&lt;li&gt;(Optional) 1 dash black walnut bitters&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Stir in mixing glass with cubed ice. Strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Coupe glass, up, Luxardo cherry&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Carpano Antica, Carpano Punt E Mes, Cocchi Vermouth Di Torino. Otima 10 Year Port. Rittenhouse 100.&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Perfect Manhattan&lt;&#x2F;em&gt;: Use split of 1&#x2F;2oz sweet vermouth + 1&#x2F;2oz dry vermouth&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.diffordsguide.com&#x2F;cocktails&#x2F;recipe&#x2F;3064&#x2F;perfect-summit-manhattan&quot;&gt;&lt;em&gt;Perfect Summit Manhattan&lt;&#x2F;em&gt;&lt;&#x2F;a&gt;: 2 1&#x2F;2oz bourbon, 3&#x2F;4oz dry vermouth, 3&#x2F;4oz Muscat wine, 1&#x2F;6oz curacao, 2 dashes bitters&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Black Manhattan&lt;&#x2F;em&gt;: 2oz bourbon, 1oz Amaro Averna (or other Amaro such as Montenegro, Ramazzotti, or Nonino), 2 dashes Angostura bitters, 2 dashes orange bitters&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Monte Carlo&lt;&#x2F;em&gt;: 2oz rye, 1&#x2F;2oz Benedictine, 1-2 dashes Angostura bitters&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;cocktails&#x2F;comments&#x2F;1psslh1&#x2F;winter_holiday_manhattan&#x2F;&quot;&gt;&lt;em&gt;Winter Holiday&lt;&#x2F;em&gt;&lt;&#x2F;a&gt;: 2oz rye, 3&#x2F;4oz tawny port, 1&#x2F;4oz dark creme de cacao, 1 dash Angostura bitters, 1 dash chocolate bitters&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;whiskey-highball&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#whiskey-highball&quot; aria-label=&quot;Anchor link: whiskey-highball&quot;&gt;Whiskey Highball&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;bourbon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;club_soda.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;highball.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;2oz whiskey &#x2F; rum &#x2F; gin&lt;&#x2F;li&gt;
&lt;li&gt;4–6oz mixer (club soda, ginger ale, coke, sprite)&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;4oz–1&#x2F;2oz fresh lime&#x2F;lemon juice&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Add ice to glass and stir until glass is frosted. Pour out melted water. Pour in spirit and citrus and top with the mixer. Stir once. &lt;em&gt;Note&lt;&#x2F;em&gt;: some suggest to pour mixer first, then spirit — experiment with it.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Highball glass, on rocks. Luxardo cherry, lemon twist.&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Suntory Toki.&lt;&#x2F;dd&gt;
&lt;dt&gt;Note on Mixers&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Sparkling water&lt;&#x2F;em&gt;: filtered, sometimes un-mineralized, tap water with added carbonation&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Spring water with added carbonation&lt;&#x2F;em&gt;: mineralized still spring water + added carbonation (e.g. San Pellegrino, Mountain Valley)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Naturally sparkling spring water&lt;&#x2F;em&gt;: naturally carbonated and mineralized water from a spring, often with some added carbonation (e.g. Topo Chico, Perrier, Gerolsteiner)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Club soda&lt;&#x2F;em&gt;: filtered tap water + carbonation + sodium bicarbonate (adds a slight salty flavor) (e.g. Fever-Tree Club Soda)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Tonic water&lt;&#x2F;em&gt;: filtered tap water + carbonation + quinine (slightly bitter taste) + sugar&#x2F;sweeteners (can contain HFCS, offsets bitterness from quinine)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Seltzer&lt;&#x2F;em&gt;: be careful! This actually means nothing today. Identify which of the above categories the water actually falls in.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;For highballs&lt;&#x2F;em&gt;: club soda is often the best choice since the slight bit of saltiness enhances the spirit’s flavor&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Tom Collins&lt;&#x2F;em&gt;: 2oz gin, 1oz lemon juice, 1&#x2F;2–1oz simple syrup, club soda to top in highball glass. Garnish with lemon wheel and a maraschino cherry.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Gin and Tonic&lt;&#x2F;em&gt;: 2oz gin, 2oz tonic water, a squeeze of lime, and a dash of grenadine. Hendrick’s gin is nice.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;daiquiri&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#daiquiri&quot; aria-label=&quot;Anchor link: daiquiri&quot;&gt;Daiquiri&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;white_rum.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lime.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;daiquiri.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;2oz white rum&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz lime juice&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz simple syrup&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake very hard with ice for a full 15 seconds. Double strain into glass.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Coupe or Nick and Nora glass (chill the glass in the freezer), up&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;El Dorado 3, Probitas, Planteray 3 Stars, Flor de Cana 4&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Herbal enhancement&lt;&#x2F;em&gt;: add a dash of absinthe before shaking&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Grassy funk enhancement&lt;&#x2F;em&gt;: according to Cocktail Codex, the ideal daiquiri is 1 3&#x2F;4oz white rum + 1&#x2F;4oz &lt;em&gt;rhum agricole&lt;&#x2F;em&gt; + a full 1oz of lime juice&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Difford’s version: Daiquiri No. 1&lt;&#x2F;em&gt;: 1 2&#x2F;3oz filtered white rum, 1&#x2F;2oz lime juice, 1&#x2F;3oz &lt;em&gt;2:1&lt;&#x2F;em&gt; sugar syrup (thicker syrup prevents overdilution)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;el-presidente&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#el-presidente&quot; aria-label=&quot;Anchor link: el-presidente&quot;&gt;El Presidente&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;white_rum.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;blanc_vermouth.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;dry_curacao.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;grenadine.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;mixing_glass.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;el_presidente.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1 1&#x2F;2oz light rum&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz blanc or dry vermouth&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;4oz orange liqueur&lt;&#x2F;li&gt;
&lt;li&gt;1 barspoon real grenadine&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Stir in mixing glass with ice. Strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Cocktail glass, up&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Diplomatico Planas, Probitas, El Dorado 3, Planteray 3 Stars. Lillet Blanc, Dolin Vermouth Blanc.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;mai-tai&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#mai-tai&quot; aria-label=&quot;Anchor link: mai-tai&quot;&gt;Mai Tai&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;popout cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;aged_rum.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lime.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;dry_curacao.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;orgeat.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;mai_tai.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;2oz rum&lt;&#x2F;li&gt;
&lt;li&gt;1oz lime juice&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz dry curacao&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz orgeat&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;8–1&#x2F;4oz simple &#x2F; demerara syrup&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Large rocks glass, ice pebbles, lime peel&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Appleton Estate 8 &#x2F; 12 &#x2F; 15, El Dorado 8, Smith and Cross. Pierre Ferrand Dry Curacao.&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;shorts&#x2F;p66qPFQG-wY&quot;&gt;&lt;em&gt;“Hotel” Mai Tai&lt;&#x2F;em&gt;&lt;&#x2F;a&gt; (from the NoMad Cocktail Book): small lime wedge, 1oz lime juice, 3&#x2F;4oz orgeat, 1&#x2F;2oz creole shrubb (orange liqueur), 1&#x2F;2oz rhum agricole (Rhum J.M Blanc Agricole Martinique 100 Proof), 3&#x2F;4oz Appleton Signature (4 year blend), 3&#x2F;4oz El Dorado 15 (highly aged dark rum)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;gimlet&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#gimlet&quot; aria-label=&quot;Anchor link: gimlet&quot;&gt;Gimlet&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lime.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;gimlet.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;2oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2–3&#x2F;4oz lime juice&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2–3&#x2F;4oz simple syrup&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Nick and nora or coupe, up, lime wheel garnish&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Citadelle, Hendrick’s, Tanqueray No. Ten, Tanqueray Rangpur, Bluecoat, Monkey 47, Junipero, Barr Hill, Isle of Harris, Roku Gin (Japanese), Gin Mare (Spanish, exotic, olives), Empress 1908 Indigo&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Gimlet highball&lt;&#x2F;em&gt;: 1 1&#x2F;2oz gin, 1&#x2F;2oz lime juice, 1&#x2F;4–1&#x2F;2oz simple syrup. Shake and pour. Top with 3–4oz club soda.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;negroni&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#negroni&quot; aria-label=&quot;Anchor link: negroni&quot;&gt;Negroni&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;sweet_vermouth.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;campari.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;mixing_glass.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;negroni.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1oz sweet vermouth&lt;&#x2F;li&gt;
&lt;li&gt;1oz Campari&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Stir in mixing tin with ice. Strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Rocks glass, one large ice cube, orange peel garnish&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Cocchi Vermouth di Torino, Cinzano Rosso Vermouth, Carpano Antica Formula, Dolin Rouge Sweet. Tanqueray No. 10.&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;MonteNegroni&lt;&#x2F;em&gt;: swap Campari for Amaro Montenegro. 2oz Amaro Montenegro, 1oz gin, 1oz sweet vermouth, 2 dashes Angostura bitters.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Kingston Negroni&lt;&#x2F;em&gt;: 1oz Jamaican rum (Smith and Cross), 1oz sweet vermouth, 1oz Campari&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;martini&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#martini&quot; aria-label=&quot;Anchor link: martini&quot;&gt;Martini&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;dry_vermouth.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-2&quot; src=&quot;.&#x2F;orange_bitters.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;mixing_glass.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;martini.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;2oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2–3&#x2F;4oz dry vermouth&lt;&#x2F;li&gt;
&lt;li&gt;1 dash orange bitters&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Stir in mixing tin with ice. Strain. (Optionally shake)&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Martini glass, up, lemon peel &#x2F; green olive garnish&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Plymouth, Bluecoat. Dolin Dry, Noilly Prat Extra Dry.&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Perfect Martini&lt;&#x2F;em&gt;: add 1&#x2F;2–3&#x2F;4oz sweet vermouth to the tin&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;lemon-drop&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#lemon-drop&quot; aria-label=&quot;Anchor link: lemon-drop&quot;&gt;Lemon Drop&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;popout cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;cointreau.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;limoncello.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;lemon_drop.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1 1&#x2F;2oz gin&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz triple sec (sub 1oz limoncello + 1&#x2F;4oz triple sec)&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;4–1&#x2F;2oz simple syrup&lt;&#x2F;li&gt;
&lt;li&gt;(Optional) one dash orange bitters&lt;&#x2F;li&gt;
&lt;li&gt;(Optional) pinch of salt&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Coupe glass, up. Lemon twist or lemon wheel for garnish.&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Plymouth, Tanqueray No. 10.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;boulevardier&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#boulevardier&quot; aria-label=&quot;Anchor link: boulevardier&quot;&gt;Boulevardier&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;bourbon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;campari.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;sweet_vermouth.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;mixing_glass.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-2&quot; src=&quot;.&#x2F;boulevardier.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1 1&#x2F;2oz bourbon&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4–1oz Campari&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4–1oz sweet vermouth&lt;&#x2F;li&gt;
&lt;li&gt;(Optional) small pinch of salt&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Stir in mixing tin with ice. Strain. The classic recipe uses 1oz Campari and vermouth, but using 3&#x2F;4oz Campari and vermouth may be better.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Rocks glass or coupe, one large ice cube, orange peel garnish&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Same Vermouths as the Negroni. Buffalo Trace, Elijah Craig Small Batch.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;sidecar&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#sidecar&quot; aria-label=&quot;Anchor link: sidecar&quot;&gt;Sidecar&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;popout cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;cognac.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;cointreau.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;sidecar.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1 1&#x2F;2–2oz Cognac &#x2F; brandy&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz Cointreau&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;4–1&#x2F;3oz simple syrup&lt;&#x2F;li&gt;
&lt;li&gt;Tiny pinch of salt&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method:&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Coupe, up. Garnish with an orange or lemon twist.&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Pierre Ferrand Ambre, Pierre Ferrand 1840 Original Formula, Hennessy VS, Remy Martin VSOP&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Gennaro’s sidecar&lt;&#x2F;em&gt;: 1oz Cognac, 3&#x2F;4oz Cointreau, 1&#x2F;2oz limoncello, 1&#x2F;2oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Champs-Elysees&lt;&#x2F;em&gt;: 2oz Cognac, 1&#x2F;2oz Green Chartreuse, 3&#x2F;4oz lemon juice, 1&#x2F;4–1&#x2F;2oz simple syrup, 2 dashes Angostura bitters&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;between-the-sheets&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#between-the-sheets&quot; aria-label=&quot;Anchor link: between-the-sheets&quot;&gt;Between the Sheets&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;popout cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;cognac.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;white_rum.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cointreau.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;between_the_sheets.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1oz cognac&lt;&#x2F;li&gt;
&lt;li&gt;1oz light rum&lt;&#x2F;li&gt;
&lt;li&gt;1oz triple sec (Cointreau)&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;4oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;(Optional) 1&#x2F;4oz simple syrup&lt;&#x2F;li&gt;
&lt;li&gt;(Optional) pinch of salt&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Cocktail glass, up, express orange peel (no garnish)&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Same cognacs as above. Planteray 3 Stars, Flor De Cana 4, El Dorado 3, Diplomatico Planas.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;mudslide&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#mudslide&quot; aria-label=&quot;Anchor link: mudslide&quot;&gt;Mudslide&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;baileys.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;coffee_liqueur.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;vodka.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-2&quot; src=&quot;.&#x2F;heavy_cream.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;mudslide.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1oz Irish cream&lt;&#x2F;li&gt;
&lt;li&gt;1oz coffee liqueur&lt;&#x2F;li&gt;
&lt;li&gt;1oz vanilla vodka&lt;&#x2F;li&gt;
&lt;li&gt;1 1&#x2F;2oz heavy cream&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Rocks glass or coupe, fresh ice OR up, chocolate syrup. Garnish with shaved chocolate.&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Baileys, Kahlua&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;port-of-call&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#port-of-call&quot; aria-label=&quot;Anchor link: port-of-call&quot;&gt;Port of Call&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;popout cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;ruby_port_wine.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;grenadine.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;port_of_call.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1oz ruby port wine&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz cinnamon syrup&lt;&#x2F;li&gt;
&lt;li&gt;1 tsp cranberry preserves&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Rocks glass, crushed ice, mint garnish&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;I have no idea&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;If cinnamon syrup &#x2F; cramberries aren’t available, sub with: 1&#x2F;2oz simple syrup + 1 dash Angostura bitters + dash of grenadine&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;japanese-snow-monkey&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#japanese-snow-monkey&quot; aria-label=&quot;Anchor link: japanese-snow-monkey&quot;&gt;Japanese Snow Monkey&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;I had &lt;a href=&quot;https:&#x2F;&#x2F;www.instagram.com&#x2F;p&#x2F;C1IcTPbRGz3&#x2F;?hl=en&quot;&gt;this cocktail&lt;&#x2F;a&gt; at &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Rumba_(restaurant)&quot;&gt;Rumba&lt;&#x2F;a&gt;.
The spec is given as: “Kiyomi rum, Nigori sake, Bermutto dry vermouth, Campari, raspberry, and lemon”.
“A floral but punchy take on a Negroni to help brighten long winter days.”
There was a particular roasted corn-like and slightly smoky flavor that was hard to pin down, but was very good.
My attempted reproduction:&lt;&#x2F;p&gt;
&lt;figure class=&quot;popout cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;white_rum.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;nigori_sake.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;dry_vermouth.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;campari.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;japanese_snow_monkey.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1oz Japanese rum (substitute with: 1&#x2F;2oz Probitas + 1&#x2F;4oz El Dorado 3 + 1&#x2F;4oz agricole blanc)&lt;&#x2F;li&gt;
&lt;li&gt;1oz Nigori sake&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz dry vermouth&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz Campari&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz raspberry syrup &lt;strong&gt;OR&lt;&#x2F;strong&gt; muddle 6-8 raspberries with 1&#x2F;4oz simple syrup&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;Sprinkle of salt&lt;&#x2F;li&gt;
&lt;li&gt;(Optional) 3-4 drops of mezcal (for slight smoke)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Muddle raspberries. Shake with ice. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Coupe, up.&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Probitas. Tozai Snow Maiden, Sho Chiku Bai Nigori.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;last-word&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#last-word&quot; aria-label=&quot;Anchor link: last-word&quot;&gt;Last Word&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;green_chartreuse.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;maraschino_liqueur.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lime.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;last_word.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;3&#x2F;4oz gin&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz Green Chartreuse&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz Maraschino liqueur&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz lime juice&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice for 20-30 seconds. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Coupe &#x2F; nick and nora, up. Garnish with Luxardo cherry + lime twist.&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;It seems widely recognized that it is better to go lower on Maraschino and up on gin for better balance: 1oz gin + 1&#x2F;2oz Maraschino liqueur.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;bee-s-knees&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#bee-s-knees&quot; aria-label=&quot;Anchor link: bee-s-knees&quot;&gt;Bee’s Knees&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-2&quot; src=&quot;.&#x2F;honey_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;bees_knees.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;2oz gin&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz honey syrup (equal parts honey and warm water, stir until mixed and cool)&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;(Optional) splash of fresh lemonade&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice for 15 seconds. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Coupe &#x2F; nick and nora, up. Garnish with lemon twist.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;jasmine&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#jasmine&quot; aria-label=&quot;Anchor link: jasmine&quot;&gt;Jasmine&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;popout cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;campari.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;cointreau.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;jasmine.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1 1&#x2F;2oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;4oz Campari&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;4oz orange liqueur (Cointreau)&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;8–1&#x2F;4oz simple syrup&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice for 15-20 seconds. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Coupe, up. Garnish with lemon twist.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;monkey-gland&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#monkey-gland&quot; aria-label=&quot;Anchor link: monkey-gland&quot;&gt;Monkey Gland&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;popout cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;orange_juice.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;grenadine.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;absinthe.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;monkey_gland.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1 1&#x2F;2oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1oz fresh orange juice&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;4oz grenadine&lt;&#x2F;li&gt;
&lt;li&gt;1 dash absinthe&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Martini glass or coupe, up. Garnish with orange twist or wheel.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;corpse-reviver-2&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#corpse-reviver-2&quot; aria-label=&quot;Anchor link: corpse-reviver-2&quot;&gt;Corpse Reviver #2&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;popout cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;cointreau.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;lillet_blanc.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;absinthe.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;corpse_reviver_2.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;3&#x2F;4oz gin&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz orange liqueur (Cointreau)&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz Lillet Blanc&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;1 dash absinthe for rinsing the glass&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Spray the glass with absinthe. Shake ingredients with ice for 15 seconds. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Coupe, up. Garnish with lemon or orange twist.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;martinez&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#martinez&quot; aria-label=&quot;Anchor link: martinez&quot;&gt;Martinez&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;sweet_vermouth.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;maraschino_liqueur.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-2&quot; src=&quot;.&#x2F;angostura_bitters.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;mixing_glass.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;martinez.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1 1&#x2F;2oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1 1&#x2F;2oz sweet vermouth&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;4oz Luxardo maraschino liqueur&lt;&#x2F;li&gt;
&lt;li&gt;2 dashes Angostura bitters&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Stir over ice until chilled, 30-45 seconds. Strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Coupe, up. Garnish with lemon twist.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;bijou&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#bijou&quot; aria-label=&quot;Anchor link: bijou&quot;&gt;Bijou&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;sweet_vermouth.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;green_chartreuse.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-2&quot; src=&quot;.&#x2F;orange_bitters.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;mixing_glass.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;bijou.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1 1&#x2F;2oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1oz sweet vermouth&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz Green Chartreuse&lt;&#x2F;li&gt;
&lt;li&gt;2 dashes orange bitters&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Stir over ice until chilled, 20-30 seconds. Strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Nick and nora, up. Garnish with cherry.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;aviation&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#aviation&quot; aria-label=&quot;Anchor link: aviation&quot;&gt;Aviation&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;maraschino_liqueur.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;creme_de_violette.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;aviation.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1 3&#x2F;4oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz Luxardo Maraschino liqueur&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;4oz Creme de Violette Liqueur&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;4oz cold water (omit if using wet ice)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice until chilled, 10-15 seconds. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Nick and nora or martini glass, up. Garnish with cherry or lemon twist.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;!--
- Can use 1&#x2F;4oz simple syrup
- Creme Yvette
--&gt;
&lt;h3 id=&quot;paper-plane&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#paper-plane&quot; aria-label=&quot;Anchor link: paper-plane&quot;&gt;Paper Plane&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;bourbon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;aperol.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;amaro_montenegro.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;paper_plane.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;3&#x2F;4oz bourbon&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz Aperol&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz Amaro Montenegro (typically Amaro Nonino is used)&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz lemon juice&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice until chilled, 10-15 seconds. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Nick and nora or coupe glass, up.&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Use a different amaro (e.g. Nonino, Averna)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;spritz&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#spritz&quot; aria-label=&quot;Anchor link: spritz&quot;&gt;Spritz&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;prosecco.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;amaro_montenegro.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;club_soda.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;&quot; src=&quot;.&#x2F;spritz.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;3oz dry sparkling wine (e.g. Prosecco)&lt;&#x2F;li&gt;
&lt;li&gt;2oz amaro (e.g. Aperol, Amaro Montenegro, Campari)&lt;&#x2F;li&gt;
&lt;li&gt;1oz soda water&lt;&#x2F;li&gt;
&lt;li&gt;(Optional) 1&#x2F;4oz lemon juice&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Use the classic 3-2-1 spritz formula and improvise the ingredients! In the glass, first add wine, then slowly drop in ice, then amaro, and finally soda water. Stir once.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Serve in a wine glass. Garnish with a slice of orange.&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Hugo spritz&lt;&#x2F;em&gt;: Muddle 8-10 mint leaves with 1 lime wedge and 1.5oz Elderflower liqueur. Top with ice. Pour 2–3oz Prosecco + 2oz sparkling water.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;gin-fix&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#gin-fix&quot; aria-label=&quot;Anchor link: gin-fix&quot;&gt;Gin Fix&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;gin_fix.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;2oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz simple syrup&lt;&#x2F;li&gt;
&lt;li&gt;1oz lemon juice&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Highball or rocks glass, fill glass with crushed ice. Stir after pouring. Garnish with lemon peel.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;!--
Occasion: summer, midday-spritz
--&gt;
&lt;h3 id=&quot;white-negroni&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#white-negroni&quot; aria-label=&quot;Anchor link: white-negroni&quot;&gt;White Negroni&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;lillet_blanc.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;suze.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;mixing_glass.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;white_negroni.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1 1&#x2F;2oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1oz Lillet Blanc&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz Suze&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Stir over ice. Strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Rocks glass. Garnish with a lemon twist.&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Alpine Negroni&lt;&#x2F;em&gt;: 1oz gin, 3&#x2F;4oz Cocchi Americano, 3&#x2F;4oz Suze, 1&#x2F;2oz Dolin Genepy, 1 barspoon White Creme de Menthe, 3 dashes lemon bitters, sprinkle of salt.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;elk-s-own&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#elk-s-own&quot; aria-label=&quot;Anchor link: elk-s-own&quot;&gt;Elk’s Own&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;popout cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;bourbon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;ruby_port_wine.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-2&quot; src=&quot;.&#x2F;orange_bitters.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;elks_own.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1oz whiskey&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz Ruby Port&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz demerara syrup&lt;&#x2F;li&gt;
&lt;li&gt;1–2 dashes chocolate &#x2F; orange bitters&lt;&#x2F;li&gt;
&lt;li&gt;Egg white &#x2F; Fee foam&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Nick and Nora glass.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;!--
Occasion: Winter
--&gt;
&lt;h3 id=&quot;jungle-bird&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#jungle-bird&quot; aria-label=&quot;Anchor link: jungle-bird&quot;&gt;Jungle Bird&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;popout cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;aged_rum.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;campari.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;pineapple.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lime.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;jungle_bird.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1 1&#x2F;2oz dark rum&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz Campari (or Aperol for less bitterness)&lt;&#x2F;li&gt;
&lt;li&gt;1 1&#x2F;2oz pineapple juice&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz lime juice&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz simple syrup&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake hard with pebble ice. Ungated pour into glass.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Fill a rocks glass with pebble ice and pour. Garnish with slices of lime and orange.&lt;&#x2F;dd&gt;
&lt;dt&gt;Good Bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Rhum Barbancourt, Smith and Cross, Appleton Estate 8&#x2F;12&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;french-75&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#french-75&quot; aria-label=&quot;Anchor link: french-75&quot;&gt;French 75&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;simple_syrup.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;citrus&quot; src=&quot;.&#x2F;lemon.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;champagne.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;&quot; src=&quot;.&#x2F;french_75.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz simple syrup&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz lemon juice&lt;&#x2F;li&gt;
&lt;li&gt;3–4oz Brut Champagne &#x2F; dry sparkling wine&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake gin + syrup + lemon juice with ice. Pour into flute. Top off with Champagne.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Serve in Champagne flute, up. Garnish with lemon twist&lt;&#x2F;dd&gt;
&lt;dt&gt;Good bottles&lt;&#x2F;dt&gt;
&lt;dd&gt;Empress 1908 Elderflower Rose Gin, Empress 1908 Indigo Gin, Hendrick’s&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;French 125&lt;&#x2F;em&gt;: Sub gin with cognac.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;French 95&lt;&#x2F;em&gt;: Sub gin with bourbon.&lt;&#x2F;li&gt;
&lt;li&gt;Sub simple syrup for Elderflower liqueur&lt;&#x2F;li&gt;
&lt;li&gt;Other interesting riffs can be &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;cocktails&#x2F;comments&#x2F;cfi4m8&#x2F;anyone_have_a_detailed_recipe_for_a_french_75&#x2F;&quot;&gt;found here&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h3 id=&quot;poet-s-dream&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#poet-s-dream&quot; aria-label=&quot;Anchor link: poet-s-dream&quot;&gt;Poet’s Dream&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;gin.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;benedictine.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;dry_vermouth.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;mixing_glass.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;poets_dream.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;3&#x2F;4oz gin&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz Benedictine&lt;&#x2F;li&gt;
&lt;li&gt;3&#x2F;4oz dry vermouth&lt;&#x2F;li&gt;
&lt;li&gt;(Optional) touch of dry curacao&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Stir on ice. Double strain into chilled glass.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Nick and Nora glass, up. Garnish with lemon peel&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;!-- Ideal aperitif --&gt;
&lt;h3 id=&quot;adriatique&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#adriatique&quot; aria-label=&quot;Anchor link: adriatique&quot;&gt;Adriatique&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;amaro_montenegro.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;aperol.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;orange_juice.png&quot;&#x2F;&gt;
  &lt;img class=&quot;arrow&quot; src=&quot;.&#x2F;right_arrow.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;cocktail_shaker.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;size-1&quot; src=&quot;.&#x2F;adriatique.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1oz Amaro Montenegro&lt;&#x2F;li&gt;
&lt;li&gt;1&#x2F;2oz Aperol&lt;&#x2F;li&gt;
&lt;li&gt;1oz orange juice&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Shake with ice. Double strain.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Nick and Nora glass, up. Orange peel garnish.&lt;&#x2F;dd&gt;
&lt;dt&gt;Riffs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;A more balanced version&lt;&#x2F;em&gt;: (1) Add 1&#x2F;4oz lemon juice to boost the acidity of the orange juice. (2) Replace the Aperol with Campari. (3) Add 1&#x2F;8oz of simple syrup.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Spritz version&lt;&#x2F;em&gt;: Top off the base cocktail with 3–4oz of dry sparkling white wine (e.g. Prosecco) or seltzer&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;!-- Ideal aperitif --&gt;
&lt;h3 id=&quot;americano&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#americano&quot; aria-label=&quot;Anchor link: americano&quot;&gt;Americano&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;figure class=&quot;content cocktail-spec&quot;&gt;
  &lt;img src=&quot;.&#x2F;campari.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;sweet_vermouth.png&quot;&#x2F;&gt;
  &lt;img class=&quot;plus&quot; src=&quot;.&#x2F;plus.png&quot;&#x2F;&gt;
  &lt;img src=&quot;.&#x2F;club_soda.png&quot;&#x2F;&gt;
  &lt;img class=&quot;equals&quot; src=&quot;.&#x2F;equals.png&quot;&#x2F;&gt;
  &lt;img class=&quot;&quot; src=&quot;.&#x2F;americano.png&quot;&#x2F;&gt;
&lt;&#x2F;figure&gt;
&lt;dl&gt;
&lt;dt&gt;Ingredients&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;1 1&#x2F;2oz Amaro (e.g. Campari, Amaro Montenegro, Aperol — if sweetness is desired)&lt;&#x2F;li&gt;
&lt;li&gt;1 1&#x2F;2oz sweet vermouth&lt;&#x2F;li&gt;
&lt;li&gt;2–3oz seltzer&lt;&#x2F;li&gt;
&lt;li&gt;(Optional) 1–2 dashes orange bitters&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Method&lt;&#x2F;dt&gt;
&lt;dd&gt;Pour Amaro and vermouth over ice in glass. Stir until chilled. Top with seltzer. One final stir.&lt;&#x2F;dd&gt;
&lt;dt&gt;Serving and Garnish&lt;&#x2F;dt&gt;
&lt;dd&gt;Highball glass, filled with large cubed ice. Garnish with orange wheel &#x2F; lemon twist.&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;!-- Another very ideal aperitif - pair with Castelvetrano olives, Parmigiano Reggiano shards, Warm focaccia --&gt;
&lt;h2 id=&quot;poison-reviews&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#poison-reviews&quot; aria-label=&quot;Anchor link: poison-reviews&quot;&gt;Poison Reviews&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Here are things I’ve tried and what I think.
&lt;em&gt;To be clear&lt;&#x2F;em&gt;: I have no actual taste in alcohol.
Total amateur opinions to follow.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;whiskey&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#whiskey&quot; aria-label=&quot;Anchor link: whiskey&quot;&gt;Whiskey&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Maker’s Mark 46&lt;&#x2F;em&gt;. (6&#x2F;10). I like it. Good enough neat.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Woodford Reserve (Regular)&lt;&#x2F;em&gt;. (4&#x2F;10). Pretty good, but I prefer Maker’s 46 over this. Not so great anymore after having better whiskeys.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Suntory Toki&lt;&#x2F;em&gt;. (6&#x2F;10). I really like it when mixed. Ideal for highballs and sours. Not great neat.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Four Roses Small Batch&lt;&#x2F;em&gt;. (8&#x2F;10). The best so far. Excellent. Very smooth and flavorful. Very enjoyable neat. Spending more on bourbon (at least $40 for a 750ml bottle) seems to be worth it.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Redbreast 12&lt;&#x2F;em&gt;. TBD.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Michter’s US1&lt;&#x2F;em&gt;. TBD.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;rum&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#rum&quot; aria-label=&quot;Anchor link: rum&quot;&gt;Rum&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Diplomatico Reserva Exclusiva&lt;&#x2F;em&gt;. (7&#x2F;10). I like it. A few feel it is too harsh and doesn’t go down smooth, at least neat. But I’m a fan.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;El Dorado 3&lt;&#x2F;em&gt;. (6&#x2F;10). Slight hint of fruity&#x2F;tropical flavor but overpowered by a pure alcohol aftertaste. Reasonably OK in daiquiris, but not my favorite.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Clement Rhum Agricole Blanc.&lt;&#x2F;em&gt; (9&#x2F;10). Absolutely essential for a daiquiri. A great flavor enhancer with notes of banana and tropical fruits + sweetness.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Probitas&lt;&#x2F;em&gt;. (9&#x2F;10). This goes very well in a daiquiri. Strong flavors of ripe banana and pineapple. Strong at 48%: I recommend some explicit dilution of 1&#x2F;4oz chilled water in a daiquiri + a touch more than 3&#x2F;4oz simple syrup.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Planteray 3 Stars&lt;&#x2F;em&gt;. TBD.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Appleton Estate 8&lt;&#x2F;em&gt;. TBD.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;!--
- [x] El Dorado needs agricole for sure, not a very rum-forward flavor though - mostly alcohol
- [x] Probitas is excellent, nice banana and tropical flavors, especially with agricole it gets even better. however it is a bit too harsh, i would add a bit over 3&#x2F;4oz syrup and a bit (maybe 1&#x2F;4oz) of chilled water to tame the alcohol burn. the flavor however is excellent and this is a great daiquiri
--&gt;
&lt;h3 id=&quot;soju&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#soju&quot; aria-label=&quot;Anchor link: soju&quot;&gt;Soju&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Hwayo 25 Soju&lt;&#x2F;em&gt;. (5&#x2F;10). Has an initial taste much closer to sake than soju, but still inferior to sake. Good to try, but the aftertaste is still too alcoholic.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Ilpoom Jinro Oak 43 Soju&lt;&#x2F;em&gt;. TBD.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;gin&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#gin&quot; aria-label=&quot;Anchor link: gin&quot;&gt;Gin&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Citadelle Gin&lt;&#x2F;em&gt;. (9&#x2F;10). Excellent ‘celery’-like + juniper berry flavor, freshness as the final note. Gimlet with this is too good.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Hendrick’s Gin.&lt;&#x2F;em&gt; (8&#x2F;10). Also very good, but more subtle finish and harsher down the throat vs Citadelle.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Barr Hill Gin&lt;&#x2F;em&gt;. (8&#x2F;10). This is a very classic gin with mainly juniper notes. There is a hint of honey, but it needs a honeyed cocktail to make it stand out.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;wines&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#wines&quot; aria-label=&quot;Anchor link: wines&quot;&gt;Wines&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;h4 id=&quot;port&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#port&quot; aria-label=&quot;Anchor link: port&quot;&gt;Port&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Porto Morgado Old Tawny (10 Years)&lt;&#x2F;em&gt;. (7&#x2F;10). Sits around $10 from Trader Joe’s. Hits way way above its price point. We love this.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Porto Morgado Ruby&lt;&#x2F;em&gt;. (5&#x2F;10). Not as good. Similar price point, but much worse than above imo.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Fairbanks Cellars California Port (1.5L)&lt;&#x2F;em&gt;. (2&#x2F;10). Cheap but bad. Stay away.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Warre’s Otima 10 Tawny Porto&lt;&#x2F;em&gt;. TBD.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h4 id=&quot;reds&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#reds&quot; aria-label=&quot;Anchor link: reds&quot;&gt;Reds&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Decoy Cabernet&lt;&#x2F;em&gt;. (5&#x2F;10). Decent, hits a bit above its price point, but it’s better to spend more.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Sean Thackrey Pleiades XXXII&lt;&#x2F;em&gt;. (9&#x2F;10) Very good. Fruity and smooth.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Charles Shaw wines (all varieties)&lt;&#x2F;em&gt;. (3&#x2F;10). Very cheap, but do not buy lol. Get something nicer.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;No Es Pituko Carignan 2024&lt;&#x2F;em&gt;. (8&#x2F;10). So so smooth, hard to believe there was any alcohol at all. Excellent.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Domaine de la Patience, Red (2023)&lt;&#x2F;em&gt;. (8&#x2F;10). Another smooth and gulpable red.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Love Red 2022 - Broc Cellars&lt;&#x2F;em&gt;. (7&#x2F;10). Similar to the other smooth red wines. Light flavor, very smooth, hardly any taste of alcohol. I think I need something more flavorful next time.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Chateau Pey-Bonhomme Le-Tours Merlot&lt;&#x2F;em&gt;. TBD.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Folk Machine Pinot Noir&lt;&#x2F;em&gt;. TBD.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h4 id=&quot;whites&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#whites&quot; aria-label=&quot;Anchor link: whites&quot;&gt;Whites&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2021 Virgo Magic Wines ‘Disco Lemonade’ Riesling&lt;&#x2F;em&gt;. (5&#x2F;10). Tastes heavily like brined olives. I think this is an acquired taste, not for a general audience.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Barefoot Moscato&lt;&#x2F;em&gt;. (2&#x2F;10). Cheap, mild tasting, and gulpable. Get something nicer.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Risata Moscato d’Asti DOCG&lt;&#x2F;em&gt;. (8&#x2F;10). Low alcohol, smooth, sweet, and fruity. A crowd favorite.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;2023 Nickel &amp;amp; Nickel Grand Sky Vineyard Chardonnay&lt;&#x2F;em&gt;. (9&#x2F;10) Incredibly good, smooth, bright lime aftertaste.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;2024 Elio Perrone Moscato d’Asti Sourgal&lt;&#x2F;em&gt;. (6&#x2F;10). Sparkling, sweet, honeyed, light. A bit too low alcohol, and perhaps too smooth. No complex flavors.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Belvino Prosecco Extra Dry&lt;&#x2F;em&gt;. (5&#x2F;10). Cheap and just OK. Good for mixing in a spritz.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h4 id=&quot;orange&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#orange&quot; aria-label=&quot;Anchor link: orange&quot;&gt;Orange&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2023 Suisun Valley Assyrtiko, Hydrangea Skin-Contact&lt;&#x2F;em&gt;. (8&#x2F;10). Excellent.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Pielihueso Naranjo 2024&lt;&#x2F;em&gt;. (9&#x2F;10). Very very good. Smooth, slightly fruity, and crisp. Best served cold.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;2023 Gulp Hablo Orange (1L)&lt;&#x2F;em&gt;. TBD.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h4 id=&quot;meads&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#meads&quot; aria-label=&quot;Anchor link: meads&quot;&gt;Meads&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;www.remeadies.com&#x2F;&quot;&gt;Remeadies&lt;&#x2F;a&gt; meadery near Sequoia National Park is very good. Go there if nearby. Unfortunately, their meads aren’t easily available in NorCal.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Chaucer’s Mead&lt;&#x2F;em&gt;. (6&#x2F;10). Very vanilla alcoholic honey flavor, smooth. Nothing objectionable, but nothing special either. Good for the price.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Sky River Sweet Mead&lt;&#x2F;em&gt;. (7&#x2F;10). At $30 it is expensive for what it is. Much more complex mead with a barnyard &#x2F; wet grass flavor and floral notes. Not appreciated by everyone.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Carroll’s Mead&lt;&#x2F;em&gt;. (7&#x2F;10). A bit more honeyed vs Chaucer’s, but still relatively cheap. Smooth and tasty.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;sake&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#sake&quot; aria-label=&quot;Anchor link: sake&quot;&gt;Sake&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.takarasake.com&quot;&gt;Takara Sake&lt;&#x2F;a&gt; has a sake factory in Berkeley, CA!
I highly recommend visiting them and doing a tasting.
What follows are all sakes from Takara (brewed in Berkeley).&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Sho Chiku Bai REI Junmai Daiginjo&lt;&#x2F;em&gt;. (8&#x2F;10). One of our favorites. Cheap and good, serve chilled, crisp, fruity, and smooth. If it is too old, it will acquire a mushroom-y flavor.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Sho Chiku Bai Organic Nama&lt;&#x2F;em&gt;. (6&#x2F;10). Good chilled, but has an earthy flavor. Not suitable for a general audience.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Sho Chiku Bai Takara Sierra Cold&lt;&#x2F;em&gt;. (7&#x2F;10). This is an insane sake. Serve chilled. 12% ABV but tastes like zero! Very light flavor of slight sweetness and fruit, but mostly tasteless.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Sho Chiku Bai Nigori Crème de Sake&lt;&#x2F;em&gt;. (9&#x2F;10). Cream sake! One of our favorites. Serve chilled. Flavor is both fruity and earthy, more on the sweet side.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Sho Chiku Bai Premium Ginjo&lt;&#x2F;em&gt;. (6&#x2F;10). An acquired taste. Earthy, mushroom-y, not suitable for everyone.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Sho Chiku Bai Mio Sparkling Sake&lt;&#x2F;em&gt;. (10&#x2F;10). Low 5% ABV, crisp flavor, fruity. Everyone will love this.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;cocktail-liquors&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#cocktail-liquors&quot; aria-label=&quot;Anchor link: cocktail-liquors&quot;&gt;Cocktail Liquors&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Cointreau&lt;&#x2F;em&gt;. It works, I have no reference point for orange liqueur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Grand Marnier&lt;&#x2F;em&gt;. It works, great in a sidecar.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Baileys&lt;&#x2F;em&gt;. Sweet, smooth, milky. Nothing bad, but nothing great either.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Mr. Black Cold Brew Coffee Liqueur&lt;&#x2F;em&gt;. Decent, good espresso flavor.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;TJ’s Limoncello&lt;&#x2F;em&gt;. (8&#x2F;10). Excellent, great in a lemon drop.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;amaro-fortified-wines&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#amaro-fortified-wines&quot; aria-label=&quot;Anchor link: amaro-fortified-wines&quot;&gt;Amaro + Fortified Wines&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Dolin Rouge (Sweet) Vermouth&lt;&#x2F;em&gt;. (8&#x2F;10). Decent, I have no comparison point. Great to drink on its own too.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Campari&lt;&#x2F;em&gt;. (7&#x2F;10). Hard for a beginner to get used to its bitterness. Ease into it with ample dilution and sweeteners.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Aperol&lt;&#x2F;em&gt;. (9&#x2F;10). Works great in a spritz and really boosts appetite before a meal.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Amaro Montenegro&lt;&#x2F;em&gt;. (10&#x2F;10). The best thing I’ve ever tasted. Notes of vanilla and cola. Excellent in a spritz or just mixed with club soda (2oz amaro + 3oz soda water). This is a must buy.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;garnishes&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#garnishes&quot; aria-label=&quot;Anchor link: garnishes&quot;&gt;Garnishes&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Luxadro cherries&lt;&#x2F;em&gt;. TBD. These are so expensive, it better be worth it.
&lt;ul&gt;
&lt;li&gt;Totally worth it. So delicious and the syrup is great to add to a cocktail.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Angostura bitters&lt;&#x2F;em&gt;. It is what it is, pretty good — not many other options.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;equipment&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#equipment&quot; aria-label=&quot;Anchor link: equipment&quot;&gt;Equipment&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;There is some basic bar equipment that you need that I wish I had from the start.
Just buy these things.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Large ice cube tray&lt;&#x2F;em&gt;: I liked these Tovolo “King Cube” silicon trays (&lt;a href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;B01LXF6H2Y&quot;&gt;Amazon link&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Regular ice cube tray&lt;&#x2F;em&gt;: I bought some “no-spill” trays from OXO (&lt;a href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;B007U256D2&quot;&gt;Amazon link&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Jigger&lt;&#x2F;em&gt;: There are 2 major varieties (double-ended and angled). You need to be able to measure volumes from 1&#x2F;4oz to 2oz. I think the angled jiggers are way easier to use at home with less spillage than the double-ended kind. I like this one from OXO (&lt;a href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;B00B6LUAPW&quot;&gt;Amazon link&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Rocks Glasses&lt;&#x2F;em&gt;: Of course you need glasses to serve cocktails in. Of all the varieties, I find &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Old_fashioned_glass&quot;&gt;rocks glasses&lt;&#x2F;a&gt; to be the most versatile, albeit not the prettiest. I bought these ones from Anchor Hocking (&lt;a href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;B00BC3MI5O&quot;&gt;Amazon link&lt;&#x2F;a&gt;). &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Champagne_glass#Coupe&quot;&gt;Coupes&lt;&#x2F;a&gt; or &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Nick_%26_Nora_(glass)&quot;&gt;nick and noras&lt;&#x2F;a&gt; would be good next additions. If you want to splurge, &lt;a href=&quot;https:&#x2F;&#x2F;www.riedel.com&#x2F;en-us&#x2F;shop&#x2F;barware#sort=bestSeller&quot;&gt;RIEDEL&lt;&#x2F;a&gt; glasses are the best.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Citrus juicer&lt;&#x2F;em&gt;: I recommend a manual wood citrus reamer — I got one from OXO (&lt;a href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;OXO-Good-Grips-Wooden-Reamer&#x2F;dp&#x2F;B0007VO0DA?&quot;&gt;Amazon link&lt;&#x2F;a&gt;). Bulk juice citrus into a measuring jar and pour into your jigger. I &lt;em&gt;no longer&lt;&#x2F;em&gt; recommend the NorPro 523 Stainless Steel Juicer (&lt;a href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;Norpro-Stainless-Steel-Citrus-Juice-Press&#x2F;dp&#x2F;B0002IBOAK&quot;&gt;Amazon link&lt;&#x2F;a&gt;) — it doesn’t squeeze the citrus completely and leaves plenty of juice behind. For longevity and to avoid aluminum flaking, I lean towards a solid stainless steel juicer. I want to try the Barfly Large Manual Juicer sometime (&lt;a href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;Barfly-Large-Manual-Juicer-Aluminum&#x2F;dp&#x2F;B0B14PYCRF&quot;&gt;Amazon link&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Mixing tin&lt;&#x2F;em&gt;: There are also cocktail mixing glasses, but I prefer a stainless steel mixing vessel. I have this one from American Metalcraft (&lt;a href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;B09QQQGTWY&quot;&gt;Amazon link&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Hawthorne Strainer&lt;&#x2F;em&gt;: This OXO one is good (&lt;a href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;B0000DAQ93&quot;&gt;Amazon link&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Cobbler shaker&lt;&#x2F;em&gt;: Bartenders usually use Boston shakers, but a cobbler shaker is far easier to use at home. I got this one from OXO (&lt;a href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;B07JW89TC3&quot;&gt;Amazon link&lt;&#x2F;a&gt;). If I was OK spending $60 on this, I would buy the &lt;a href=&quot;https:&#x2F;&#x2F;www.yeti.com&#x2F;drinkware&#x2F;barware&#x2F;cocktail-shaker-20oz.html&quot;&gt;YETI one&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Fine mesh strainer&lt;&#x2F;em&gt;: I have a 3“ strainer from OXO (&lt;a href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;OXO-Grips-3-Inch-Strainer-Multicolor&#x2F;dp&#x2F;B001713L84&quot;&gt;Amazon link&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Bar spoon&lt;&#x2F;em&gt;: Just get some cheap bar spoons, the exact model doesn’t matter.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Corkscrew&lt;&#x2F;em&gt;: You need to be able to pull corks. Buy whatever is within your budget — these are all kind of the same. I have an OXO SteeL Winged Corkscrew (&lt;a href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;OXO-Winged-Corkscrew-Removable-Cutter&#x2F;dp&#x2F;B074V7FG49&quot;&gt;Amazon link&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Toothpicks&lt;&#x2F;em&gt;: The poor man’s version of the fancy cocktail pick — used to pick up cherries placed in the glass. Unfortunately, they are often too short to place over the rim of a glass.
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Cocktail picks&lt;&#x2F;em&gt;: A substantial upgrade. Get stainless steel picks.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Cooler&lt;&#x2F;em&gt;: I use an insulated bag to hold all my ice and cold liquors, but a proper hard-case insulated cooler would be better.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;my-shelf&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#my-shelf&quot; aria-label=&quot;Anchor link: my-shelf&quot;&gt;My Shelf&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;I keep the fortified wines, meads, and cream liqueurs in my fridge, and the rest in a cabinet.&lt;&#x2F;p&gt;
&lt;dl&gt;
&lt;dt&gt;Wine&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Otima 10-Year Tawny Port&lt;&#x2F;li&gt;
&lt;li&gt;Chateau Pey-Bonhomme Le-Tours&lt;&#x2F;li&gt;
&lt;li&gt;Folk Machine Pinot Noir&lt;&#x2F;li&gt;
&lt;li&gt;Belvino Prosecco Extra Dry&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Mead&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Chaucer’s Mead&lt;&#x2F;li&gt;
&lt;li&gt;Oliver Winery Camelot Mead Orange Blossom&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Whiskey&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Four Roses Small Batch&lt;&#x2F;li&gt;
&lt;li&gt;Mitcher’s US*1&lt;&#x2F;li&gt;
&lt;li&gt;Redbreast 12 Year&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Rum&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Diplomatico Reserva Exclusiva&lt;&#x2F;li&gt;
&lt;li&gt;Appleton Estate 8&lt;&#x2F;li&gt;
&lt;li&gt;El Dorado 3&lt;&#x2F;li&gt;
&lt;li&gt;Probitas&lt;&#x2F;li&gt;
&lt;li&gt;Clement Rhum Agricole&lt;&#x2F;li&gt;
&lt;li&gt;Planteray 3 Stars&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Cognac&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Kirkland XO Cognac&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Sake&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Hakutsuru Sayuri Nigori Sake&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Soju&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Oak 43&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Gin&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Hendricks&lt;&#x2F;li&gt;
&lt;li&gt;Citadelle&lt;&#x2F;li&gt;
&lt;li&gt;Barr Hill&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Orange Liqueurs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Cointreau&lt;&#x2F;li&gt;
&lt;li&gt;Grand Marnier&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Amaro &#x2F; Fortified Wines&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Campari&lt;&#x2F;li&gt;
&lt;li&gt;Aperol&lt;&#x2F;li&gt;
&lt;li&gt;Amaro Montenegro&lt;&#x2F;li&gt;
&lt;li&gt;Dolin Vermouth Rouge (Sweet)&lt;&#x2F;li&gt;
&lt;li&gt;Dolin Vermouth (Blanc)&lt;&#x2F;li&gt;
&lt;li&gt;Dolin Vermouth (Dry)&lt;&#x2F;li&gt;
&lt;li&gt;Sole Vermouth (Extra Dry)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Other Liqueurs&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;TJ’s Sicilian Limoncello (x2) (stored in the freezer)&lt;&#x2F;li&gt;
&lt;li&gt;Absolut Vanilla Vodka&lt;&#x2F;li&gt;
&lt;li&gt;Mr. Black Cold Brew Coffee Liqueur&lt;&#x2F;li&gt;
&lt;li&gt;Baileys Original Irish Cream&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Extras&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Bitters&lt;&#x2F;em&gt;: Angostura, Orange&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Syrups&lt;&#x2F;em&gt;: Simple, Demerara, Grenadine, Orgeat&lt;&#x2F;li&gt;
&lt;li&gt;Luxardo cherries&lt;&#x2F;li&gt;
&lt;li&gt;Limes &#x2F; lemons&lt;&#x2F;li&gt;
&lt;li&gt;Heavy cream&lt;&#x2F;li&gt;
&lt;li&gt;Chocolate syrup&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Books&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Cocktail Codex&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
&lt;h2 id=&quot;to-buy&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#to-buy&quot; aria-label=&quot;Anchor link: to-buy&quot;&gt;To Buy&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Bottles I want to try.
Don’t look!&lt;&#x2F;p&gt;
&lt;dl&gt;
&lt;dt&gt;Whiskey&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Four Roses Single Barrel&lt;&#x2F;li&gt;
&lt;li&gt;Larceny Small Batch&lt;&#x2F;li&gt;
&lt;li&gt;Angel’s Envy&lt;&#x2F;li&gt;
&lt;li&gt;Rittenhouse 100&lt;&#x2F;li&gt;
&lt;li&gt;Nikka Whisky From The Barrel&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;White Rum&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Probitas&lt;&#x2F;li&gt;
&lt;li&gt;El Dorado 3&lt;&#x2F;li&gt;
&lt;li&gt;Flor de Cana 4&lt;&#x2F;li&gt;
&lt;li&gt;Diplomatico Planas&lt;&#x2F;li&gt;
&lt;li&gt;Planteray 3 Stars&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Aged Rum&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Appleton Estate 8 &#x2F; 12&lt;&#x2F;li&gt;
&lt;li&gt;El Dorado 8 &#x2F; 12&lt;&#x2F;li&gt;
&lt;li&gt;Smith and Cross&lt;&#x2F;li&gt;
&lt;li&gt;Rhum Barbancourt&lt;&#x2F;li&gt;
&lt;li&gt;Santa Teresa 1796&lt;&#x2F;li&gt;
&lt;li&gt;Diplomático Mantuano&lt;&#x2F;li&gt;
&lt;li&gt;El Pasador de Oro Rum XO&lt;&#x2F;li&gt;
&lt;li&gt;Kaniche XO Artisanal Rum&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Gin&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Citadelle Gin&lt;&#x2F;li&gt;
&lt;li&gt;Citadelle Jardin D’Ete Gin&lt;&#x2F;li&gt;
&lt;li&gt;Tanqueray No. 10&lt;&#x2F;li&gt;
&lt;li&gt;Barr Hill&lt;&#x2F;li&gt;
&lt;li&gt;Monkey 47&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Cognac&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Hennessy VSOP&lt;&#x2F;li&gt;
&lt;li&gt;Pierre Ferrand Ambre &#x2F; Original Formula&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Orange liquors&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Rum-based curacao (dry): &lt;strong&gt;Pierre Ferrand Dry Curacao&lt;&#x2F;strong&gt;, Santa Teresa Rhum Orange&lt;&#x2F;li&gt;
&lt;li&gt;Brandy-based curacao (sweet): Grand Marnier&lt;&#x2F;li&gt;
&lt;li&gt;Triple secs (neutral): Cointreau&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Absinthe&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;St George Absinthe Verte&lt;&#x2F;li&gt;
&lt;li&gt;La Clandestine Absinthe Superieure Liqueur&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Chartreuse&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Chartreuse Green Liqueur (very difficult to find nowadays, can possibly find at K&amp;amp;L Wine Merchants)&lt;&#x2F;li&gt;
&lt;li&gt;Chartreuse Vegetal de Grande Liqueur (a higher proof alternative)&lt;&#x2F;li&gt;
&lt;li&gt;Dolin Genepy Le Chamois Liqueur (easier to find, combine with Chartreuse Vegetal to make a Last Word)&lt;&#x2F;li&gt;
&lt;li&gt;Izarra Verte Basque Liqueur (Green Chartreuse “substitute”)&lt;&#x2F;li&gt;
&lt;li&gt;Faccia Brutto Centerbe (another potential Chartreuse “substitute”)&lt;&#x2F;li&gt;
&lt;li&gt;L’Excuse Herbal Liqueur (yet another potential “substitute”)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Amaro&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Aperol&lt;&#x2F;li&gt;
&lt;li&gt;Amaro Nonino&lt;&#x2F;li&gt;
&lt;li&gt;Amaro Montenegro&lt;&#x2F;li&gt;
&lt;li&gt;Atost California Aperitif&lt;&#x2F;li&gt;
&lt;li&gt;Cynar&lt;&#x2F;li&gt;
&lt;li&gt;Campari&lt;&#x2F;li&gt;
&lt;li&gt;Cappelletti Aperitivo&lt;&#x2F;li&gt;
&lt;li&gt;Luxardo Aperitivo&lt;&#x2F;li&gt;
&lt;li&gt;Ramazzotti&lt;&#x2F;li&gt;
&lt;li&gt;Suze&lt;&#x2F;li&gt;
&lt;li&gt;St George Bruto Americano&lt;&#x2F;li&gt;
&lt;li&gt;Lillet Blanc&lt;&#x2F;li&gt;
&lt;li&gt;Cocchi Americano&lt;&#x2F;li&gt;
&lt;li&gt;Benedictine&lt;&#x2F;li&gt;
&lt;li&gt;Grappa wine&lt;&#x2F;li&gt;
&lt;li&gt;Ouzo&lt;&#x2F;li&gt;
&lt;li&gt;Mastiha&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Extras&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;Raspberry syrup&lt;&#x2F;li&gt;
&lt;li&gt;Castelvetrano olives&lt;&#x2F;li&gt;
&lt;li&gt;Luxardo Maraschino Liqueur (essential to make a Last Word)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;dt&gt;Books&lt;&#x2F;dt&gt;
&lt;dd&gt;
&lt;ul&gt;
&lt;li&gt;The NoMad Cocktail Book&lt;&#x2F;li&gt;
&lt;li&gt;Death &amp;amp; Co: Modern Classic Cocktails&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;dd&gt;
&lt;&#x2F;dl&gt;
</description>
      </item>
      <item>
          <title>All Hail the Magic Conch!</title>
          <pubDate>Sat, 27 Sep 2025 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://vighneshiyer.com/research/blog/2025-09-ask-the-model/</link>
          <guid>https://vighneshiyer.com/research/blog/2025-09-ask-the-model/</guid>
          <description xml:base="https://vighneshiyer.com/research/blog/2025-09-ask-the-model/">&lt;h2 id=&quot;prelude&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#prelude&quot; aria-label=&quot;Anchor link: prelude&quot;&gt;Prelude&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Deep in the depths of the ocean, in Bikini Bottom, there was one Club Spongebob&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#1&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;.
High up on a tall tree, sits the clubhouse, occupied by a sponge and Patrick.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;1&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;1&lt;&#x2F;sup&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;spongebob.fandom.com&#x2F;wiki&#x2F;Club_SpongeBob&quot;&gt;Season 3, Episode 42a&lt;&#x2F;a&gt;. Watch the episode please.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-club_spongebob_1.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_1.png&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_1.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;On this fine day, Squidward exits his &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Moai&quot;&gt;Moai&lt;&#x2F;a&gt; to see these two barnacle heads laughing it up in their treehouse.
Of course, there is nothing more irritating than their giggling.
And when Squidward was told he wouldn’t “fit in” their club, he couldn’t take it.
He had to join! And so up he went.&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_2-0.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_2-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_2-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_2-0.e7454ec441378099.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_2-0.cf1feba29e365b91.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_2-0.055dd6102fc032f4.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_2-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_2-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_2-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_2-1.e4c4f8c39cf02ad4.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_2-1.485581503f39de16.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_2-1.5caef484c7c7dd3e.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_2-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;But once inside, he found out that, indeed, he couldn’t physically “fit in” the clubhouse and was now squished next to Bob and Patrick.&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_3-0.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_3-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_3-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_3-0.959c84747062fb38.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_3-0.74aace6fc3129257.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_3-0.4fba75ed52e15d4f.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_3-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_3-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_3-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_3-1.2af8469c11de407b.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_3-1.9637ada67eae8f74.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_3-1.aa2e0b32273513b3.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_3-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;Squidward, desperate to escape, reaches for a branch and tries to pull himself down.&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_4-0.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_4-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_4-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_4-0.956028d9d82464a1.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_4-0.544297004bf203a2.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_4-0.8d1a832b006fd8ff.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_4-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_4-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_4-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_4-1.657e5380c1236b45.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_4-1.2e5d9a03e1a88300.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_4-1.d3bc3ba9bd481daf.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_4-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;As he’s almost down, the branch rips apart, and the treehouse is launched into the sky (sea).
The clubhouse flies through the sea and comes crashing down in the thick Kelp Forest.&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_5-0.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_5-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_5-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_5-0.a4ab26cd791a9852.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_5-0.dd61f434005777fe.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_5-0.73fcc66ec9d6c007.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_5-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_5-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_5-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_5-1.c2f29de4e78af347.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_5-1.91858accd8e9ccb0.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_5-1.fca92c6c0f6b0c0c.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_5-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_5-2.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_5-2.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_5-2.93934236ec3b47f1.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_5-2.6430be5213bd9a9b.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_5-2.342b1876c920cdf5.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_5-2.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;Oh no, Squid is trapped. Lost. Hundreds of miles from civilization.&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_6-0.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_6-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_6-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_6-0.4884c7e470d93f38.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_6-0.c20780153c245d71.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_6-0.7183bec5bcfb08ad.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_6-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_6-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_6-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_6-1.76df0b71da65265e.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_6-1.64650dbb6c89a4ad.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_6-1.cb1742b6746b3896.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_6-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;He starts to panic. How can he escape these two morons now?&lt;&#x2F;p&gt;
&lt;p&gt;But luckily, Squidward is part of Club Spongebob, and they have one trick up their sleeve: &lt;em&gt;the Magic Conch&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-club_spongebob_7.webp&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_7.webp&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_7.webp&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;The Magic Conch is here to save the day!&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Squidward&lt;&#x2F;strong&gt;: You’ve got to be kidding! That is just a stupid toy! How can that possibly help us?!&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;SpongeBob&lt;&#x2F;strong&gt;: [gasps] Squidward! We must never question the wisdom of the Magic Conch! The club always takes its advice before we do anything!&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Patrick&lt;&#x2F;strong&gt;: The shell knows all!&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_8-1.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_8-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_8-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_8-1.0dbe9669b779bc19.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_8-1.a2bc0aa21ad776f6.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_8-1.41f3696e4e4f3d06.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_8-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_8-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_8-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_8-0.b94d2c2a851ad5e8.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_8-0.837c0c3415f6e072.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_8-0.cf6eddefed747ea6.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_8-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;SpongeBob&lt;&#x2F;strong&gt;: Oh, Magic Conch Shell. What do we need to do to get out of the Kelp Forest?&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Magic Conch&lt;&#x2F;strong&gt;: &lt;em&gt;Nothing&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Patrick&lt;&#x2F;strong&gt;: The shell has spoken!&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Squidward&lt;&#x2F;strong&gt;: &lt;em&gt;Nothing&lt;&#x2F;em&gt;?! We can’t just sit here and do nothing!&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Squidward&lt;&#x2F;strong&gt;: I can’t believe you two are gonna take advice from a toy!&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_9-0.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_9-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_9-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_9-0.a914e1203b6c14bf.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_9-0.e1feecdd2071c150.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_9-0.841d760e771d5c64.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_9-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_9-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_9-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_9-1.834ccf26dafe02f9.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_9-1.8b877969a2682b3e.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_9-1.175835177e404bd4.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_9-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Just do what the Conch tells you to do&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;Squidward thinks he’s smarter than the Magic Conch, so he runs and runs to escape the forest, only to find out he’s running in circles and is right back at Club Spongebob.
He sets up a camp with the resources he has while SpongeBob and Patrick continue to listen to the Conch.&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_10-0.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_10-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_10-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_10-0.96538bfd6d62ff11.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_10-0.6de3d12a85ca5cdb.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_10-0.798890110222b8ea.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_10-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_10-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_10-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_10-1.cd873a3a99d729ea.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_10-1.fb2091920754341d.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_10-1.018f65bb1768ff85.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_10-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Squidward tries to use his own thinking rather than obeying the Conch&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;Right as Squidward was about to enjoy his roasted sea insect, a miracle falls from the sky, right into the camp of SpongeBob and Patrick!
What a gift from the Magic Conch!&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_11-0.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_11-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_11-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_11-0.b7349fe14686ae90.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_11-0.c9718cf9c97622e3.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_11-0.dbb9608f3c0b76bd.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_11-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_11-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_11-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_11-1.e2c31b5132eb2e32.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_11-1.7744c765403d578d.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_11-1.2927b24dbc219cf6.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_11-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;The gift from the Conch has arrived!&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;As SpongeBob and Patrick enjoy their feast, Squidward begs to be allowed to touch the food.
They inform Squid that &lt;em&gt;only the Conch&lt;&#x2F;em&gt; can approve his request.
And so he asks the Conch, again and again, “may I have something to eat?”&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_12-0.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_12-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_12-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_12-0.3c0e05c51405a339.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_12-0.fb4f5f6150a2b3ef.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_12-0.324d9eaa95acc41e.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_12-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_12-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_12-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_12-1.238241440dbec92d.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_12-1.755c43e25f7d4ca3.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_12-1.e1e15d071767bbbf.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_12-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;But he didn’t give the Conch its due earlier, so the Conch only gives him a simple “no”.
Squidward goes crazy as the Conch seems to be aware of his dismissal of its powers.&lt;&#x2F;p&gt;
&lt;p&gt;And then, someone cuts a path into the forest!&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_13-1.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_13-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_13-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_13-1.f19ab05cbc9401ee.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_13-1.6f71030f352fba2f.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_13-1.58c0678adb656d1e.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_13-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_13-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_13-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_13-0.f2d8283cedd0a237.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_13-0.6e1d32fcc4d29906.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_13-0.6f811dfae4a796f6.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_13-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;The Kelp Forest ranger has arrived to save Squidward!&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;Squidward screams in delight — someone is here to save them!
But to Squid’s dismay, the ranger also has a Conch of his own.&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_14-1.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_14-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_14-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_14-1.b3f424e8a85b5af7.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_14-1.3b1e4c641f38ff64.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_14-1.35892c075f2ccdeb.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_14-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_14-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_14-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_14-0.fd70a95dff511082.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_14-0.6c21595a59353d3f.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_14-0.d0bddc1d854497dd.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_14-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Kelp Forest Ranger&lt;&#x2F;strong&gt;: All right, Magic Conch… what do we do now?&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Magic Conch&lt;&#x2F;strong&gt;: &lt;em&gt;Nothing&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;SpongeBob, Patrick, and Kelp Forest Ranger&lt;&#x2F;strong&gt;: All hail the Magic Conch!&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-club_spongebob_15-1.webp&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_15-1.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_15-1.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_15-1.0dfa15d3b2be8483.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_15-1.8a0926ed5b0ce26e.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_15-1.20da086956ea8f75.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_15-1.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_15-0.webp&quot; style=&quot;flex: 1.319 1 0%&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_15-0.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_15-0.3381baae9b5fe4e0.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_15-0.bdc91dd4af20cbe4.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;club_spongebob_15-0.476bd17eb413c2e9.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_15-0.webp 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h3 id=&quot;sound-familiar&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#sound-familiar&quot; aria-label=&quot;Anchor link: sound-familiar&quot;&gt;Sound Familiar?&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;And so they sit, in silence, in devotion to the Conch, until another miracle falls from the sky.
Perhaps, if they ask the Conch again and again, it will give them the answer to their problem.
Perhaps, a new version of the Conch will do better than the old one.&lt;&#x2F;p&gt;
&lt;p&gt;Whenever you have a question, don’t think, just ask the Conch.
And whatever the Conch tells you, is what you should parrot to others and follow diligently.&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#2&quot;&gt;2&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;2&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;2&lt;&#x2F;sup&gt;
&lt;p&gt;The Conch = a large language model (henceforth called “the model”)&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;But, just because it worked for SpongeBob, doesn’t mean it will work for you.
There is a growing mass of people who believe the Conch will enable them to do nothing, and that good things will fall out of the sky.&lt;&#x2F;p&gt;
&lt;!-- Patrick: The shell has spoken! The shell knows all! - Patrick Star --&gt;
&lt;!--
Bikini bottom, squid tried to join, flung into the forest, and to get out they reach for the model! Sound familiar? Ask the model and do what it says. Don&#x27;t think further. Just because it worked for SpongeBob doesn&#x27;t mean it will work for you 😆. Do nothing and good things will happen and they will fall out of the sky lmao.
--&gt;
&lt;h2 id=&quot;the-situation&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-situation&quot; aria-label=&quot;Anchor link: the-situation&quot;&gt;The Situation&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;There has been a lot said over the past two decades about how electronics can sap away our thinking powers.
When humans lose the ability to &lt;em&gt;be bored&lt;&#x2F;em&gt; and produce something from nothing, their mental faculties decay.
I believe Cal Newport put this phenomena into the public consciousness with his book “Deep Work”&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#3&quot;&gt;3&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; where he discusses how electronics, especially phones, have put humans in an unprecedented situation where they can go through life and &lt;em&gt;never&lt;&#x2F;em&gt; be bored.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;3&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;3&lt;&#x2F;sup&gt;
&lt;p&gt;I started hearing about the importance of boredom from 2016 or so when Newport’s book was published. A counterpoint can &lt;a href=&quot;https:&#x2F;&#x2F;lindynewsletter.beehiiv.com&#x2F;p&#x2F;notes-on-boredom&quot;&gt;be found here&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;In the past two years, in addition to the phone, which can prevent even a few seconds of boredom from setting in, we now have “the model”.
Whatever attention span degradation phones have caused, has been or will soon be, dwarfed by the advent of the model.&lt;&#x2F;p&gt;
&lt;p&gt;As people begin to use the model, they start by asking it a few questions about topics that they would have used a search engine for in the past.
However, as model dependency grows, people begin to outsource their &lt;em&gt;thinking&lt;&#x2F;em&gt; and even &lt;em&gt;thoughts&lt;&#x2F;em&gt; wholesale to the model.
I need not dwell on this point too much, since others have made it much better.&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#4&quot;&gt;4&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;4&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;4&lt;&#x2F;sup&gt;
&lt;p&gt;See the article &lt;a href=&quot;https:&#x2F;&#x2F;www.derekthompson.org&#x2F;p&#x2F;the-end-of-thinking&quot;&gt;“The End of Thinking”&lt;&#x2F;a&gt; by Derek Thompson&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;!--
Electronics have always reduced attention spans, and the test scores are going down year after year. Some of this is due to dysgenic breeding, others due to demographic shifts into populations with lower IQ, but in just the past 2 years, a lot can be attributed to the model. The highest performer won&#x27;t be affected and they will actually be supercharged, but the rest will lump into the bottom mode.

The bimodal distribution of students, very smart first year ugrads that can learn themselves. Also morons who can&#x27;t learn and just ask the model and produce garbage code they don&#x27;t understand and can&#x27;t explain.
--&gt;
&lt;h3 id=&quot;bimodal-undergrads&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#bimodal-undergrads&quot; aria-label=&quot;Anchor link: bimodal-undergrads&quot;&gt;Bimodal Undergrads&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;I’ve been in the university system for a long time. Almost certainly too long.
Every year, I get a sample of the current class of undergrads to examine — both from teaching classes and from advising them on research.
Year after year, the mean quality of undergrads has degraded — the average undergrad is increasingly motivated by money, status, and job prospects rather than any intrinsic interest in computer science.
However, this trend about averages says nothing about the extremes.&lt;&#x2F;p&gt;
&lt;p&gt;The mediocre undergrads are crashing to the level of the barely literate ones, while the elite undergrads can rival senior grad students in programming competence, inquisitiveness, and instinct.
Just in the past year, I’ve seen a few truly spectacular undergrads the likes of which I haven’t seen before.
They can work autonomously, ask all the right questions, learn on the fly, and somehow have enough time to be at the top of their classes and do self-driven research.
I know that when I was an undergrad, I was very far below their level.&lt;&#x2F;p&gt;
&lt;p&gt;You can probably predict why this bimodal distribution has emerged and gotten more extreme recently.
It’s the model.&lt;&#x2F;p&gt;
&lt;p&gt;What’s happening is that even the 80th percentile undergrads are falling victim to model dependency.
The majority of undergrads are not only preempting their boredom via their phones, but they are also preempting their thoughts via the model.
We often see undergrads that produce reams of code from the model, but are unable to explain what is going on, and more importantly, what are they trying to do.&lt;&#x2F;p&gt;
&lt;p&gt;The elite undergrads are always in control of their own thoughts.
They use the model as just an enhanced search engine, which gives them confidence to enter new areas.
Their knowledge compounds rapidly as they use the model to pull information, but use their own brains to synthesize it.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;thinking-in-embedding-space&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#thinking-in-embedding-space&quot; aria-label=&quot;Anchor link: thinking-in-embedding-space&quot;&gt;Thinking in “Embedding Space”&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;After talking about undergrads, I must now talk about those ‘above’ me: &lt;em&gt;the professor class&lt;&#x2F;em&gt;.
If you thought professors were speaking in meaningless platitudes before, you haven’t seen anything.&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#5&quot;&gt;5&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;
I swear, if I could peer inside the head of a typical professor, I’m sure all I would find is a vector database.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;5&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;5&lt;&#x2F;sup&gt;
&lt;p&gt;There are still some intelligent professors, but among the mediocre, the recent degradation has been extreme&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;I often joke that professors (and the model) think in “embedding space”.
What I mean to say, is that they think as if &lt;em&gt;embeddings are semantics&lt;&#x2F;em&gt;.
I can’t blame them. After all, if you ask the model, it will claim that &lt;em&gt;embeddings capture semantics&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;When they speak, they will put words together that &lt;em&gt;appear&lt;&#x2F;em&gt; close in the embedding space, but are actually unrelated with respect to their true semantics.
This is just a matter of training data: both for the professor and the model.
Without enough good quality data, embeddings will tend to just capture which words occur together, rather than how they are related.
While a professor should be able to ground word semantics in reality, the model cannot, so I can give the model a pass here.&lt;&#x2F;p&gt;
&lt;!--
If insufficient data is available, then the model will emit things that are adjacent in the embedding space. The &#x27;intelligence&#x27; appears when the suitable training data exists to actually disambiguate the semantics of words that appear close, but are actually different.
--&gt;
&lt;h3 id=&quot;biological-frontends-for-mr-model&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#biological-frontends-for-mr-model&quot; aria-label=&quot;Anchor link: biological-frontends-for-mr-model&quot;&gt;Biological Frontends for Mr. Model&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;What could be worse than people becoming dependent on the model?
What if people &lt;em&gt;became&lt;&#x2F;em&gt; the model?
Indeed, this is what I witness nowadays.
Professors have become biological frontends for the model.&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#6&quot;&gt;6&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;6&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;6&lt;&#x2F;sup&gt;
&lt;p&gt;I don’t mean to bash on professors too much. All professions have degraded thusly.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;When a student asks for advice, the questions are forwarded to the model, and the model’s response comes out of the professor’s mouth.
The professor asks the model for research ideas, and then recites its responses to their students.
When reviewing papers for a conference, the PDFs are fed straight into ChatGPT Pro&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#7&quot;&gt;7&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;, and its outputs are massaged into the HotCRP boxes.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;7&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;7&lt;&#x2F;sup&gt;
&lt;p&gt;It’s research-grade intelligence after all&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;!--
paper reviews for their own students, research ideas and criticisms, conference review process lmao
They ask the model first rather than think and the model taints their thinking and makes original thought impossible.
--&gt;
&lt;h4 id=&quot;context-pollution&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#context-pollution&quot; aria-label=&quot;Anchor link: context-pollution&quot;&gt;Context Pollution&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;Models suffer from &lt;em&gt;context pollution&lt;&#x2F;em&gt;, where garbage can accumulate in its context window that distracts the model from the task its supposed to perform.
Being able to tell what the relevant context is, while discarding the rest, is an essential aspect of intelligence.&lt;&#x2F;p&gt;
&lt;p&gt;If you look at the managerial class in general, they are increasingly falling victim to context pollution.
They attend all kinds of useless meetings and conferences where the executive class jumbles together words that have no relation to each other.
Their heads are filled with words from these continuous meetings and, when they are prompted to discuss something with their subordinates, they bring up unrelated nonsense from their context window.
Buzzword speak has become more and more ubiquitous.&lt;&#x2F;p&gt;
&lt;!--
Context pollution, when some moron says some buzzword it isn&#x27;t forgotten or contextualized, instead it is brought up over and over again in unrelated contexts just because it has a similar embedding
--&gt;
&lt;h2 id=&quot;asking-the-model-as-research&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#asking-the-model-as-research&quot; aria-label=&quot;Anchor link: asking-the-model-as-research&quot;&gt;“Asking the Model” as Research&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Day after day, I will look at my Google Scholar notifications and will see the same paper repeated 100 times.
Here are some recent examples:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2509.16246&quot;&gt;VerilogMonkey: Exploring Parallel Scaling for Automated Verilog Code Generation with LLMs&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2509.20182&quot;&gt;Automated Multi-Agent Workflows for RTL Design&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2501.01892&quot;&gt;QuArch: A Question-Answering Dataset for AI Agents in Computer Architecture&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2311.04887&quot;&gt;AutoChip: Automating HDL Generation Using LLM Feedback&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;ieeexplore.ieee.org&#x2F;abstract&#x2F;document&#x2F;10299874?&quot;&gt;Chip-Chat: Challenges and Opportunities in Conversational Hardware Design&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;ieeexplore.ieee.org&#x2F;abstract&#x2F;document&#x2F;10720939?&quot;&gt;RTLCoder: Fully Open-Source and Efficient LLM-Assisted RTL Code Generation Technique&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2211.16385&quot;&gt;Multi-Agent Reinforcement Learning for Microprocessor Design Space Exploration&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2407.21787&quot;&gt;Large Language Monkeys: Scaling Inference Compute with Repeated Sampling&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;scalingintelligence.stanford.edu&#x2F;blogs&#x2F;codemonkeys&#x2F;&quot;&gt;CodeMonkeys: Monkey SWE, Monkey Do&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;All of these thousands of papers just amount to “asking the model” in a loop, with some scaffolding, some tool use, some “prompt engineering”, and perhaps some training data for supervised fine-tuning.
Perhaps some will conduct a beam search across many samples provided to them by Mr. Model.
Perhaps some will construct a new dataset from thin air, which they pose as a “benchmark”.&lt;&#x2F;p&gt;
&lt;p&gt;Of course, this LLM mania isn’t limited to computer architecture papers.
We see this in all disciplines, where the ‘solution’ proposed by a paper is “asking Mr. Model”, and the ‘problem’ is whatever fake problem they invent.&lt;&#x2F;p&gt;
&lt;p&gt;Furthermore, due to the high latency of conference paper deadlines and review cycles&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#8&quot;&gt;8&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;, by the time a paper is published, its “results” are already suspect.
The authors will have run all their experiments with Mr. Model v7 and by the time the world sees their work, Mr. Model v8 has been released, and large parts of their specialized ‘prompting’ techniques and scaffolding are made obsolete.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;8&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;8&lt;&#x2F;sup&gt;
&lt;p&gt;It will usually take 6+ months from running experiments to public paper release&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;!--
They will test some problem with Mr. Model v10 and then by the time the paper is done and experiments are final, Mr. Model v11 has been released and everything is done for. So many papers like this.
--&gt;
&lt;p&gt;It is just too easy for a professor to latch onto the “ask the model” methodology and enjoy the feeling of being part of the hype.
At this point, “asking the model” has become its own area of research.
Why bother using the model as a productivity booster or powerful search tool to produce impactful research, faster&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#9&quot;&gt;9&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;, when you could just ask Mr. Model to write a bunch of kernels and report that?&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;9&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;9&lt;&#x2F;sup&gt;
&lt;p&gt;You will find that Mr. Model becomes useless very quickly when exploring an untouched area&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;!--
produce high impact research products! That is the root of the problem. This is just lazy work.
--&gt;
&lt;p&gt;My final point is that academics should work on projects that have substantial intellectual, logistical, and financial risks; risks that are so high that industry researchers would not take on such projects.
What is the risk here? That Mr. Model may not always be correct?
Why are academics “asking the model” when there are VCs investing billions of dollars and accepting infinite risk for startups to pursue “LLM for X”?&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#10&quot;&gt;10&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;10&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;10&lt;&#x2F;sup&gt;
&lt;p&gt;I can appreciate that some academics use papers as a launching pad for a startup. That’s fine I guess&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;!--
There are no risks here!
LLM for X is lucrative. Just get paid for it!
--&gt;
&lt;!--
Look at &quot;MLArchSys&quot;, MLSys, and so forth...
--&gt;
&lt;!--
This isn&#x27;t the article to rant about the bitter lesson lmao. Leave it for later.
## Sutton&#x27;s &quot;Bitter Lesson&quot;

- https:&#x2F;&#x2F;www.cs.utexas.edu&#x2F;~eunsol&#x2F;courses&#x2F;data&#x2F;bitter_lesson.pdf
  - Ahhh the &quot;bitter lesson&quot;. Grossly misunderstood and misapplied.
  - It is kind of like the &quot;central limit theorem&quot;. Also misunderstood and misapplied.
--&gt;
&lt;h2 id=&quot;asking-the-model-as-a-course&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#asking-the-model-as-a-course&quot; aria-label=&quot;Anchor link: asking-the-model-as-a-course&quot;&gt;“Asking the Model” as a Course&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Not only has “asking the model” become its own area of research within an engineering domain (e.g. RTL design, GPU performance engineering), but “asking the model” more generally has become an acceptable topic for courses.
Let me go over three examples from Stanford, Berkeley, and Harvard.&lt;&#x2F;p&gt;
&lt;!--
Harvard, Berkeley, Stanford, I&#x27;m sure many others are on this same path.
--&gt;
&lt;h3 id=&quot;stanford&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#stanford&quot; aria-label=&quot;Anchor link: stanford&quot;&gt;Stanford&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;cs329a.stanford.edu&#x2F;&quot;&gt;CS329A: Self-Improving AI Agents&lt;&#x2F;a&gt; is being offered for the second time at Stanford.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;The course will start with self-improvement techniques for LLMs, such as constitutional AI, using verifiers, scaling test-time compute, combining search with LLMs, and train time scaling with RL. We will then discuss the latest research in augmenting LLMs with tool use, code, and memory, and orchestrating AI capabilities with multimodal interaction. We will next discuss multi-step reasoning and planning problems for agentic workflows, and the challenges in building robust evaluation frameworks.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;It all sounds very fancy, but it boils down to asking the model in a loop.
I believe this paper (&lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2408.06292&quot;&gt;The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery&lt;&#x2F;a&gt;) is emblematic of the method being promoted.
If this method can produce ‘papers’ that are so ‘high-quality’ that even humans would accept them to a ML conference, then we should be questioning the value of what humans are working on.&lt;&#x2F;p&gt;
&lt;p&gt;With that being said, the reading list for this class isn’t bad at all.
These papers are interesting and worth skimming just to understand the state of the field.
All I ask is that the students don’t make their class projects about getting Mr. Model to solve some problem.&lt;&#x2F;p&gt;
&lt;!--
  - Asking the model in a loop. This isn&#x27;t that bad compared to the others honestly.
  - https:&#x2F;&#x2F;x.com&#x2F;Azaliamirh&#x2F;status&#x2F;1970610290724339804
  &gt; Very excited to teach CS329A: Self-Improving AI Agents, with @achowdhery for the second time in 2025!
--&gt;
&lt;h3 id=&quot;uc-berkeley&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#uc-berkeley&quot; aria-label=&quot;Anchor link: uc-berkeley&quot;&gt;UC Berkeley&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;ucbsky.github.io&#x2F;ucbsky-cs294-264-fall2025&#x2F;course-website.html&quot;&gt;CS294: Disrupting Systems Research with AI&lt;&#x2F;a&gt; is being offered for the first time at UC Berkeley.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;We are now at the beginning of a significant shift, where a new class of AI tools can autonomously generate algorithms that match and sometimes exceed the best human-designed solutions.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;This course explores the frontiers of this new methodology, examining the future role of the researcher as a “strategic advisor” who guides powerful AI assistants rather than manually engineering solutions.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;This is quite similar to the Stanford class, albeit a bit more hyped up.
The proposed methodology boils down to “vibe research”.
Ask the model to propose grand changes to some existing codebase.
Then, ask the model to produce some code to manipulate a repo and see what happens.
Just go with the flow.&lt;&#x2F;p&gt;
&lt;p&gt;“The shell knows all! The shell has spoken!” — Patrick Star&lt;&#x2F;p&gt;
&lt;!--
  - &quot;vibe research&quot;
  - Absolutely insane that this is considered &#x27;academic&#x27;
  - https:&#x2F;&#x2F;www.linkedin.com&#x2F;posts&#x2F;koushik-sen-80b99a_disrupting-systems-research-with-ai-activity-7374945690751447040-5X-h?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAVUAnMBjBFeQj_67eMIA1E2610ABsluQic
  - Add Sagar&#x27;s class too, but point out that there isn&#x27;t any extreme &quot;asking the model&quot; insanity directly in the reading list as of yet.
--&gt;
&lt;h3 id=&quot;harvard&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#harvard&quot; aria-label=&quot;Anchor link: harvard&quot;&gt;Harvard&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;And now, this is the most egregious example of model-brained nonsense by far.&lt;&#x2F;p&gt;
&lt;p&gt;Presenting, &lt;a href=&quot;https:&#x2F;&#x2F;harvard-edge.github.io&#x2F;cs249r_fall2025&#x2F;&quot;&gt;CS249r: Architecture 2.0&lt;&#x2F;a&gt;, being offered at Harvard for the first time.
I urge the reader to read the “blog posts” on the website, such as: &lt;a href=&quot;https:&#x2F;&#x2F;harvard-edge.github.io&#x2F;cs249r_fall2025&#x2F;blog&#x2F;2024&#x2F;09&#x2F;08&#x2F;week-2-fundamental-challenges&#x2F;&quot;&gt;“Week 2: The Fundamental Challenges Nobody Talks About”&lt;&#x2F;a&gt;.
It is very obvious that all these “blog posts” are written by Mr. Model.
In fact, &lt;em&gt;the entire website&lt;&#x2F;em&gt; is generated by Mr. Model.&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi-1.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-1.png&quot; data-pswp-width=&quot;1473&quot; data-pswp-height=&quot;273&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-1.png&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;I couldn’t have said it any better myself. See &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;harvard-edge&#x2F;cs249r_fall2025&#x2F;releases&#x2F;download&#x2F;sep-3&#x2F;CS249r_.Architecture.2.0.-.Part.1.pdf&quot;&gt;the class slides&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;This class is about a concept that Prof. Vijay Janapa Reddi has coined: “&lt;a href=&quot;https:&#x2F;&#x2F;sites.google.com&#x2F;g.harvard.edu&#x2F;arch2&#x2F;home&quot;&gt;Architecture 2.0&lt;&#x2F;a&gt;”.
All this boils down to is generating tons of “data”&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#11&quot;&gt;11&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;, training some models on that data, and hoping for the best.
After all, if this method has yielded good results in image classification and English emission, then surely the same method will yield fruit in computer architecture.
It’s just a matter of more and more data, and more and more compute: this is the “Bitter Lesson” at work.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;11&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;11&lt;&#x2F;sup&gt;
&lt;p&gt;“Data” includes random RTL designs, gate-level netlists, PPA estimates, instruction traces and so forth: the “corpus” of computer architecture.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Astute readers will note that Reddi’s “Architecture 2.0” is just a ripoff of Andrej Karpathy’s &lt;a href=&quot;https:&#x2F;&#x2F;karpathy.medium.com&#x2F;software-2-0-a64152b37c35&quot;&gt;“Software 2.0”&lt;&#x2F;a&gt;.
But recently, at &lt;a href=&quot;https:&#x2F;&#x2F;events.ycombinator.com&#x2F;ai-sus&quot;&gt;YC’s “AI Startup School”&lt;&#x2F;a&gt;, Karpathy presented his talk, &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=LCEmiRjPEtQ&quot;&gt;Software Is Changing (Again)&lt;&#x2F;a&gt;, where he coined “Software 3.0”!&lt;&#x2F;p&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-software_30-1.png&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;software_30-1.png&quot; style=&quot;flex: 1.927 1 0%&quot; data-pswp-width=&quot;2045&quot; data-pswp-height=&quot;1061&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;software_30-1.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;software_30-1.7b14bb6485dca384.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;software_30-1.c69666386ac19718.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;software_30-1.4632769e20a9e227.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;software_30-1.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;software_30-2.png&quot; style=&quot;flex: 1.966 1 0%&quot; data-pswp-width=&quot;1992&quot; data-pswp-height=&quot;1013&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;software_30-2.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;software_30-2.6842e482566a39c9.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;software_30-2.7eaa2b575ef847a4.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;software_30-2.c6f8e927d942c960.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;software_30-2.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Karpathy’s slides on Software 3.0&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;So, Prof. Reddi, Architecture 2.0 has already been superseded! It should be time for Architecture 3.0: aka “ask the model”.&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-arch_20.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;arch_20.png&quot; data-pswp-width=&quot;1215&quot; data-pswp-height=&quot;666&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;arch_20.png&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Model-generated text that contrasts Architecture 1.0 with 2.0 (actually Architecture 3.0)&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-moonshot.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;moonshot.png&quot; data-pswp-width=&quot;1485&quot; data-pswp-height=&quot;492&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;moonshot.png&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Architecture 3.0 methodology in practice. Ask the model (in a loop).&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;!--
- An entirely LLM generated website. This is the most obscene example.
- https:&#x2F;&#x2F;www.linkedin.com&#x2F;posts&#x2F;vijay-janapa-reddi-63a6a173_agentic-ai-for-computer-systems-design-activity-7371588955328155648-DFKl?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAVUAnMBjBFeQj_67eMIA1E2610ABsluQic

Reddi, architecture 2.0 a ripoff from karpathys software 2.0. but reddi! Karpathys recently announced software 3.0! Where&#x27;s the update? Get with the times! Natural language will be used to generate architectures. The googling moonshot. These people don&#x27;t appreciate systematic engineering. It&#x27;s all just a blob for them and they don&#x27;t wish to interact with the abstractions.
--&gt;
&lt;p&gt;I have collected many model-isms from Prof. Reddi’s course and placed them in the &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;#addendum&quot;&gt;addendum of this article&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-better-path&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#a-better-path&quot; aria-label=&quot;Anchor link: a-better-path&quot;&gt;A Better Path&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;As was discussed before, the focus should not be on asking the model and evaluating how it does, but rather on using the model to build better software.
I recently saw a good example of this from Mark Ren’s group&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#12&quot;&gt;12&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; called &lt;a href=&quot;https:&#x2F;&#x2F;www.linkedin.com&#x2F;posts&#x2F;mark-h-r-4837318_nvidiaresearch-ugcPost-7374877258735558656-Vm8H&#x2F;&quot;&gt;SALUTION: Autonomous SAT Solver Evolution&lt;&#x2F;a&gt;.
They aren’t presenting “asking the model” as the goal itself, but instead asking the model to produce a better SAT solver, which is the main contribution.
They can discuss the &lt;em&gt;specific elements of the code&lt;&#x2F;em&gt; that the model generated to produce a faster solver.
The focus is on the product, not the model.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;12&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;12&lt;&#x2F;sup&gt;
&lt;p&gt;Mark Ren and his team at NVIDIA Research are one of the few competent actors in the field of “ML for CAD”&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;blockquote&gt;
&lt;p&gt;Our new framework, SATLUTION, autonomously evolves Boolean Satisfiability (SAT) solvers via LLM agents that outperformed the 2025 SAT Competition champions by more than 10%&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;!--
This is a counterexample from Mark Ren. He&#x27;s not just asking the model as the research itself, but he&#x27;s asking the model to produce a better SAT solver as the main contribution and can discuss what code it generated to produce a better solver. The focus is on the product, not the model. Excellent work.
--&gt;
&lt;p&gt;It would be good if more work like this was done.
Work as a domain expert who is trying to improve some algorithm or work on a specific problem and use the model (who cares how you’re using it) to help you make things better.&lt;&#x2F;p&gt;
&lt;p&gt;Another recent example is the paper &lt;a href=&quot;https:&#x2F;&#x2F;www.csl.cornell.edu&#x2F;~zhiruz&#x2F;pdfs&#x2F;aspen-mlcad2025.pdf&quot;&gt;“ASPEN: LLM-Guided E-Graph Rewriting for RTL Datapath Optimization”&lt;&#x2F;a&gt;.
Here, e-graphs are used to perform word-level datapath optimization, which is usually done by hand for arithmetic circuits.
The LLM is used to generate additional rewrite rules for the e-graph engine and prioritize them based on PPA feedback from the CAD tools.
This process, which would normally require human intervention, is done autonomously, and it produces improved results over a static rewrite rule set.
While I believe it would be better to fold back these improvements into more robust abstractions in the e-graph engine, I can appreciate that the model did do something cool.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#conclusion&quot; aria-label=&quot;Anchor link: conclusion&quot;&gt;Conclusion&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Just as one should hesitate when picking up their phone to mitigate a moment of boredom, one must hesitate before shooting a query at the model.
Think!
Losing your boredom is bad enough, but losing your sovereignty is even worse.
There is a huge risk that biological general intelligence will dry up way before AGI can come on the scene to save us.&lt;&#x2F;p&gt;
&lt;!-- At the end of the article, pic of sponge and the ranger, all hail the magic conch! --&gt;
&lt;p&gt;But, you know what?
Perhaps I’m wrong.
Perhaps “asking the model” is the most useful, impactful, and important thing we can all do today.&lt;&#x2F;p&gt;
&lt;p&gt;In the next few years, I may be the one saying:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Squidward&lt;&#x2F;strong&gt;: &lt;em&gt;All hail the Magic Conch&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-club_spongebob_16.webp&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;club_spongebob_16.webp&quot; data-pswp-width=&quot;1000&quot; data-pswp-height=&quot;758&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;club_spongebob_16.webp&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h2 id=&quot;response-to-objections&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#response-to-objections&quot; aria-label=&quot;Anchor link: response-to-objections&quot;&gt;Response to Objections&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;I appreciate criticism of anything I wrote in this article. Just email me.&lt;&#x2F;p&gt;
&lt;p&gt;Let me begin by saying this article is &lt;em&gt;not&lt;&#x2F;em&gt; a formal academic argument, as it should be clear.
It is just a rant.
However, if I were to distill the article into some statements I believe in, here are a few:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Do not use the model as a substitute for thinking or learning. You want to be a domain expert. You want the ability to produce insightful thoughts. Use the model as a search and exploration tool to get to that point first. Only then, can you can begin to use the model as the creator &#x2F; editor of a codebase (or a piece of writing, or so forth).&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Academics should be careful about what they work on to avoid getting on a hype train they aren’t capable of riding. Academics aren’t rich, both in terms of free cash and GPU capital. The risks that academics take should be wholly different than those taken by VCs or megacap corporations.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The model is powerful. It’s getting more powerful every month. You would be a fool to dismiss the power of the model and not use it altogether.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;!--
I already agree that the model is very powerful and should be used. The main arguments are against losing your thinking skills and about what academics should be doing
--&gt;
&lt;p&gt;Now, I’ll discuss some objections to this article and give my responses.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;agents-are-hard&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#agents-are-hard&quot; aria-label=&quot;Anchor link: agents-are-hard&quot;&gt;Agents are Hard&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Agents are not as trivial as you make them out to be.
They aren’t just a combination of prompts, RAG, fine-tuning, tool calling, tool output post-processing, beam search, hardware &#x2F; profiler feedback, and so forth, in a big loop.&lt;&#x2F;p&gt;
&lt;p&gt;If you look at SOTA agents like Cursor, Claude Code, Codex CLI, Cline, Windsurf, Aider, Devin, and so forth, they are growing in complexity, rather than their scaffolding being subsumed by the base model.
In fact, as the models become more powerful, and their tool calling abilities improve, the scaffolding may have to become more complex to accommodate these new abilities.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;I agree that reliable agents are hard to build, and I do not want to take away from the valuable engineering and research efforts invested in these agents.
However, I believe that to do good work in the area of agent architecture &#x2F; optimization &#x2F; sampling, one needs to have real use cases and evaluation criteria, beyond just the published “standard” benchmarks (e.g. SWE-Bench).
Furthermore, agent architecture research is very expensive when it comes to running evals for each proposed change.&lt;&#x2F;p&gt;
&lt;p&gt;All of this is to say, that if one wants to pursue research in this area, they should either (1) go to Anthropic, Cognition, or the like and work on real problems or (2) take the VC money that is freely flowing and build a domain-specific agent or (3) contribute to open source agents such as Aider.&lt;&#x2F;p&gt;
&lt;p&gt;I believe it isn’t reasonable to do coding agent work in academia anymore — it was reasonable for a short period of a year or so, but today the resources needed to make a dent are too substantial.
Academics are flooding this area because (in my opinion), it feels easy to pick a niche domain and build an agent for it that outperforms some stale baseline on a niche benchmark.
I have to say though that I’m a fan of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;stanfordnlp&#x2F;dspy&quot;&gt;DSPy&lt;&#x2F;a&gt; and I think work along this line should be pursued by academics.&lt;&#x2F;p&gt;
&lt;!--
- I agree. They are also expensive. Take your VC money or go to Anthropic, Cognition. Or contribute to Aider. Otherwise, as an academic, do something else.
I think you&#x27;re right. I agree orchestrating the model isn&#x27;t easy, the point is rather that to do good research in that area you need real use cases and lots of money, academics chase it not because they can do it better but rather because it feels like an easy win
--&gt;
&lt;h3 id=&quot;asking-the-model-does-work&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#asking-the-model-does-work&quot; aria-label=&quot;Anchor link: asking-the-model-does-work&quot;&gt;“Asking the Model” Does Work&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;blockquote&gt;
&lt;p&gt;As the readings from these classes have shown, asking the model does indeed work to optimize existing software or even propose new research ideas, produce evaluations, and write an entire paper that passes scrutiny by humans.
You pointed out research on optimizing SAT solvers using LLMs — this is another example of the model being able to produce useful outputs given the right scaffolding.&lt;&#x2F;p&gt;
&lt;p&gt;How can you claim that “asking the model” should be avoided, when we can see that is does yield fruit?
How can you claim that academics shouldn’t pursue agent engineering research when it’s about how to leverage LLMs effectively to improve software &#x2F; systems?&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Firstly, I agree that the “asking the model” does often produce good results, and that the right scaffolding around the model greatly impacts the quality of its results.
However, I do believe that some discretion is needed here with regards to choosing the right problem to work on and leveraging existing agentic frameworks vs rolling your own.
My point is that the result of domain-specific research should be the product rather than the model loop that is used to create the product.&lt;&#x2F;p&gt;
&lt;p&gt;Furthermore, it is much more valuable to build something using the model and report how it went via a blog post rather than evaluating some bespoke agent you built on some benchmark and publishing the results for them to only arrive 6 months in the future.
Here is a good example: &lt;a href=&quot;https:&#x2F;&#x2F;mitchellh.com&#x2F;writing&#x2F;non-trivial-vibing&quot;&gt;Vibing a Non-Trivial Ghostty Feature&lt;&#x2F;a&gt;.
More examples can be found on &lt;a href=&quot;https:&#x2F;&#x2F;simonwillison.net&#x2F;series&#x2F;using-llms&#x2F;&quot;&gt;Simon Willison’s blog&lt;&#x2F;a&gt; such as &lt;a href=&quot;https:&#x2F;&#x2F;simonwillison.net&#x2F;2025&#x2F;Oct&#x2F;20&#x2F;deepseek-ocr-claude-code&#x2F;&quot;&gt;“Getting DeepSeek-OCR working on an NVIDIA Spark via brute force using Claude Code”&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Lastly, I believe that domain knowledge is crucial when it comes to building the right scaffolding, choosing a good problem, and picking a strong baseline to compare against.
Building that domain knowledge should be the priority for anyone entering a domain.
Asking the model without understanding the domain is vibe research, and should be avoided.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-magic-conch-is-not-an-llm&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-magic-conch-is-not-an-llm&quot; aria-label=&quot;Anchor link: the-magic-conch-is-not-an-llm&quot;&gt;The Magic Conch is not an LLM&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Your analogy is bad.
The magic conch is similar to a magic 8 ball: it can’t give sophisticated answers to questions, but rather just picks random phrases from a pre-programmed list.
The Conch doesn’t consider the context of the question you ask it, it doesn’t possess a world model, and it cannot use tools to prepare its answer.&lt;&#x2F;p&gt;
&lt;p&gt;In contrast, Mr. Model is a very powerful statistical token generator trained on a massive corpus of world knowledge that has common sense and can reason.
How can you claim these two things are equivalent, when they are so obviously not?&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Mr. Model is certainly more sophisticated than the Conch, there can be no doubt.
However, the comparison has more to do with how the Conch is used rather than what it says.
Uncritically taking the Conch at its word, following its instruction as if it came from the Gods, and delegating every question you have immediately to the Conch are the problems.
Finally, for academic researchers, &lt;em&gt;leveraging&lt;&#x2F;em&gt; the Conch to do interesting things is far more valuable than sweeping the space of &lt;em&gt;using&lt;&#x2F;em&gt; the Conch.&lt;&#x2F;p&gt;
&lt;p&gt;Don’t take this analogy too seriously.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;barbarians-at-the-gate&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#barbarians-at-the-gate&quot; aria-label=&quot;Anchor link: barbarians-at-the-gate&quot;&gt;Barbarians at the Gate&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Shortly after I published this article, a whitepaper was published on arXiv on October 7th titled &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2510.06189&quot;&gt;“Barbarians at the Gate: How AI is Upending Systems Research”&lt;&#x2F;a&gt; by the &lt;a href=&quot;https:&#x2F;&#x2F;sky.cs.berkeley.edu&#x2F;&quot;&gt;Berkeley Sky Lab&lt;&#x2F;a&gt; professors (Koushik Sen, Matei Zaharia, Ion Stoica, …).
This whitepaper argues that “asking the model” works, is effective, and should be the basis for what they term “&lt;em&gt;AI-Driven Research for Systems&lt;&#x2F;em&gt;”.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Given a task, the typical AI-driven approach is (i) to generate a set of diverse solutions, and then (ii) to verify these solutions and select one that solves the problem.&lt;&#x2F;p&gt;
&lt;p&gt;We argue that systems research, long focused on designing and evaluating new performance-oriented algorithms, is particularly well-suited for AI-driven solution discovery.&lt;&#x2F;p&gt;
&lt;p&gt;We term this approach as &lt;strong&gt;AI-Driven Research for Systems&lt;&#x2F;strong&gt; (ADRS), which iteratively generates, evaluates, and refines solutions.&lt;&#x2F;p&gt;
&lt;p&gt;We then discuss the broader implications for the systems community: as AI assumes a central role in algorithm design, we argue that human researchers will increasingly focus on problem formulation and strategic guidance.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;The traditional model of systems research involves finding some problem in an existing codebase and then hacking on it until you get a sufficiently good solution that warrants a paper.&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-systems_research.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;systems_research.png&quot; data-pswp-width=&quot;3088&quot; data-pswp-height=&quot;934&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;systems_research.png&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;The ‘typical’ methodology of systems research.&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;The whitepaper proposes a way to automate the most time-consuming part of systems research: the process of editing code and tuning &#x2F; sweeping &#x2F; evaluating.&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-systems_research_ai.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;systems_research_ai.png&quot; data-pswp-width=&quot;2920&quot; data-pswp-height=&quot;1184&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;systems_research_ai.png&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;AI-Driven Research for Systems (ADRS) is, quite unambiguously, ‘ask the model’ (in a loop).&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;ADRS involves asking powerful agents to edit &#x2F; evaluate code iteratively using a genetic algorithm to guide the search process (ala &lt;a href=&quot;https:&#x2F;&#x2F;deepmind.google&#x2F;discover&#x2F;blog&#x2F;alphaevolve-a-gemini-powered-coding-agent-for-designing-advanced-algorithms&#x2F;&quot;&gt;AlphaEvolve&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;codelion&#x2F;openevolve&quot;&gt;OpenEvolve&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gepa-ai&#x2F;gepa&quot;&gt;GEPA&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;The argument the whitepaper uses to justify “ADRS” goes like this:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Systems research is about finding a bottleneck or sub-optimal algorithm in a software&#x2F;hardware stack (e.g. compilers, runtimes, schedulers, hardware tuning knobs) in order to improve some application’s performance&lt;&#x2F;li&gt;
&lt;li&gt;The model is very good at editing code, performing search, and mixing algorithms&#x2F;heuristics from the literature in a novel way. The code that the model needs to edit is often localized to a few files (e.g. app-level scheduler algorithm tweaks).&lt;&#x2F;li&gt;
&lt;li&gt;It is easy to evaluate the impact of the model’s edits reliably and quantitatively with respect to correctness and performance characteristics (e.g. memory usage, latency, throughput). Evaluation can be done using performance simulators and&#x2F;or real systems.&lt;&#x2F;li&gt;
&lt;li&gt;The model is getting cheaper and is able to maintain coherence across longer time horizons than before. The cost to ask the model thousands of times to solve a problem is &lt;em&gt;marginal&lt;&#x2F;em&gt; compared to the cost and time for a human to implement optimizations in a codebase.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;&lt;strong&gt;Therefore&lt;&#x2F;strong&gt;: Asking the model is a suitable and effective way of conducting systems research. Humans should focus on &lt;em&gt;guiding&lt;&#x2F;em&gt; the agent and &lt;em&gt;formulating&lt;&#x2F;em&gt; useful problems to solve.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;my-opinion&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#my-opinion&quot; aria-label=&quot;Anchor link: my-opinion&quot;&gt;My Opinion&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;At first glance, everything here seems reasonable.
I would say that their argument is airtight, &lt;em&gt;except for the first premise&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;what-is-being-argued-for&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#what-is-being-argued-for&quot; aria-label=&quot;Anchor link: what-is-being-argued-for&quot;&gt;What is Being Argued For?&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;Here is the sentence from the whitepaper that I paraphrased into the first premise:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;In this paper, we advocate an AI-driven approach to systems performance problems. While performance optimization is not the only focus of systems research, it remains a central one—a brief survey of top systems, networking, and database venues (NSDI, OSDI, SIGMOD, SOSP, and VLDB) shows that over one-third of published papers feature performance optimization algorithms as their core contribution.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;The authors concede that not all of systems research can be boiled down to performance optimization.
However, for the sake of argument, and since ADRS is most suitable for it, let’s first examine the case of performance optimization systems research.&lt;&#x2F;p&gt;
&lt;p&gt;In this case, I would argue that the paper has &lt;em&gt;already been written&lt;&#x2F;em&gt; before any work has been done.
The researcher has found a problem (i.e. bottleneck, performance pathology) in an existing system that he knows is solvable (i.e. amenable to optimization) using the typical techniques used in the field (e.g. better heuristics, more suitable data structures, speculation).
It is just&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#13&quot;&gt;13&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; a matter of doing the profiling and implementation to show that an improvement has been made and to characterize how significant it is.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;13&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;13&lt;&#x2F;sup&gt;
&lt;p&gt;I don’t mean to trivialize the difficulty of implementation, but it is often mechanical in nature (which is why ADRS can work)&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;In the case of ADRS, the situation is even more extreme — the solution is known even before the problem has been specified.
The solution being, “ask the model”.&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#14&quot;&gt;14&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;
Perhaps the details of prompting, test-time scaling, and Monte Carlo tree search aren’t known in advance, but this doesn’t change the fact that the &lt;em&gt;model is primal&lt;&#x2F;em&gt; in ADRS.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;14&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;14&lt;&#x2F;sup&gt;
&lt;p&gt;“Asking the model” is a solution in search of a problem, a ‘solution-oriented’ problem.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;h4 id=&quot;why-can-t-we-go-all-the-way&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#why-can-t-we-go-all-the-way&quot; aria-label=&quot;Anchor link: why-can-t-we-go-all-the-way&quot;&gt;Why Can’t We Go All the Way?&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;Consider this statement from the whitepaper:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;In the broader context of AI-driven research, our focus is deliberately narrow.
Not only do we restrict our scope to the systems domain, but in this context, we focus only on the task of solution discovery, while largely ignoring other aspects in the research process, like problem formulation, literature survey, or paper writing.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;ADRS is focused on the task of writing &#x2F; editing code (which they term “solution discovery”), while the other aspects of the research process (problem identification, setting up the model’s scaffold, writing a paper) are left in the hands of humans.
But if we were to &lt;a href=&quot;https:&#x2F;&#x2F;metr.org&#x2F;blog&#x2F;2025-03-19-measuring-ai-ability-to-complete-long-tasks&#x2F;&quot;&gt;consult the charts&lt;&#x2F;a&gt;, it seems that Mr. Model can take over these other aspects too, very soon.&lt;&#x2F;p&gt;
&lt;p&gt;Why can’t the last step (“Paper Write-Up”) be done agentically?
This is often the most mechanical and uninspiring part of the research process.
We can even “close the loop” by having the model come up with new problems to solve on its own — this is just a matter of search over existing code and literature + profiling production machines.&lt;&#x2F;p&gt;
&lt;p&gt;The argument for ADRS, taken to its logical conclusion, would end up turning systems research into a fully model-driven paper pumping machine.
Arguably, systems research in its current form is already a human-driven paper pumping machine.
We can already see the first inklings of ADRS transitioning the paper machine from being human to model driven.&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#15&quot;&gt;15&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;15&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;15&lt;&#x2F;sup&gt;
&lt;p&gt;This methodology has been put into action by &lt;a href=&quot;https:&#x2F;&#x2F;sakana.ai&#x2F;ai-scientist-first-publication&#x2F;&quot;&gt;Sakana AI&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;h4 id=&quot;what-should-academics-do&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#what-should-academics-do&quot; aria-label=&quot;Anchor link: what-should-academics-do&quot;&gt;What Should Academics Do?&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;Even if we were to concede that ADRS is a good research methodology, what exactly does this process produce?
In the best case, it produces a system (e.g. an application server, inference service, load balancer, workload scheduler) that is slightly more optimized than what already exists.&lt;&#x2F;p&gt;
&lt;p&gt;This form of research is &lt;em&gt;justifiable&lt;&#x2F;em&gt; and &lt;em&gt;undoubtedly valuable&lt;&#x2F;em&gt; for a large hyperscaler such as Google: see their paper &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2503.15669&quot;&gt;“ECO: An LLM-Driven Efficient Code Optimizer for Warehouse Scale Computers”&lt;&#x2F;a&gt;.
They show the model many historical examples of performance anti-patterns and their fixes, and then ask the model to find additional opportunities in the &lt;code&gt;google3&lt;&#x2F;code&gt; codebase.
The model autonomously makes the right code edits, checks that its changes are valid with existing unit&#x2F;integration tests, makes a PR for a Googler to review, and once deployed in production, the model-written code is monitored to validate its correctness and characterize its performance improvement.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Currently deployed on Google’s hyperscale production fleet, this system has driven &amp;gt;25k changed lines of production code, across over 6.4k submitted commits, with a &amp;gt;99.5% production success rate.
Over the past year, ECO has consistently resulted in significant performance savings every quarter. On average, the savings produced per quarter are equivalent to over 500k normalized CPU cores.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;How can anyone argue with this?
Indeed, I must concede that this work is valuable and impactful.&lt;&#x2F;p&gt;
&lt;p&gt;While we should be impressed by this research, we should also ask, &lt;em&gt;“is this what academics should be doing”&lt;&#x2F;em&gt;?
It makes sense for a hyperscaler to optimize every bit of code they can, where even a tiny performance optimization makes a significant impact on the scale they operate at.
But does it make sense for an academic research lab to do the same?&lt;&#x2F;p&gt;
&lt;p&gt;I would argue the answer is &lt;em&gt;no&lt;&#x2F;em&gt;.
For one, academics should be &lt;em&gt;prototyping new systems&lt;&#x2F;em&gt; rather than making nit optimizations to existing ones.
If academics are relegated to doing the same work as industry research labs, but on open source repositories, it begs the question as to why academics exist in the first place.
Where is the risk in ADRS?
Do something the industry players can’t do!&lt;&#x2F;p&gt;
&lt;h4 id=&quot;what-is-systems-research&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#what-is-systems-research&quot; aria-label=&quot;Anchor link: what-is-systems-research&quot;&gt;What is Systems Research?&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;Let’s go back to the original point I made about the first premise being fishy.
As the authors concede, systems research &lt;em&gt;is not&lt;&#x2F;em&gt; just about finding some bottleneck and alleviating it with the right code edits (“performance optimization”).
If ADRS picks up steam and begins to dominate the conference proceedings, which I suspect it will, it will crowd out the other, more interesting, aspects of systems research.&lt;&#x2F;p&gt;
&lt;p&gt;I claim that the most impactful and interesting systems research projects involve building completely new libraries, tools, abstractions, programming models, compiler infrastructures, and &lt;em&gt;paradigms&lt;&#x2F;em&gt;.
Let me illustrate by example.&lt;&#x2F;p&gt;
&lt;p&gt;Just from the lab of the ADRS authors, came these wildly successful projects: &lt;a href=&quot;https:&#x2F;&#x2F;mesos.apache.org&#x2F;&quot;&gt;Mesos&lt;&#x2F;a&gt; (which led to its modern incarnation, &lt;a href=&quot;https:&#x2F;&#x2F;kubernetes.io&#x2F;&quot;&gt;Kubernetes&lt;&#x2F;a&gt;), &lt;a href=&quot;https:&#x2F;&#x2F;spark.apache.org&#x2F;&quot;&gt;Spark&lt;&#x2F;a&gt; (which pioneered modern data processing abstractions and was commercialized as &lt;a href=&quot;https:&#x2F;&#x2F;www.databricks.com&#x2F;spark&#x2F;about&quot;&gt;Databricks&lt;&#x2F;a&gt;), &lt;a href=&quot;https:&#x2F;&#x2F;www.ray.io&#x2F;&quot;&gt;Ray&lt;&#x2F;a&gt; (which is widely used for distributed AI jobs, arguably a successor to Spark, and was commercialized as &lt;a href=&quot;https:&#x2F;&#x2F;www.anyscale.com&#x2F;&quot;&gt;Anyscale&lt;&#x2F;a&gt;), and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;skypilot-org&#x2F;skypilot&quot;&gt;Skypilot&lt;&#x2F;a&gt; (which implements a “cloud-neutal” abstraction layer and will certainly be commercialized soon).&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#16&quot;&gt;16&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;16&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;16&lt;&#x2F;sup&gt;
&lt;p&gt;Other impactful systems projects: ML (TensorFlow, PyTorch, JAX, MLIR, Triton), data (Dask, Polars, DuckDB), infra (gRPC, Terraform, Kafka, Nix), databases (Cassandra, RocksDB, ClickHouse)&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;While these projects are arguably too industrial and commercialization-focused for academic research, their impact can’t be understated.
Impactful systems research involves building real systems and new abstractions, and free-form &lt;em&gt;exploration&lt;&#x2F;em&gt; of some unknown space.
Can the ADRS methodology alone produce high impact academic research?
It seems unlikely.&lt;&#x2F;p&gt;
&lt;!--
But of course, systems research is not merely a matter of finding some bottleneck and alleviating it with the right code edits (i.e. &quot;performance optimization&quot;).
--&gt;
&lt;!--
https:&#x2F;&#x2F;www.cis.upenn.edu&#x2F;~sweirich&#x2F;icfp-plmw15&#x2F;slides&#x2F;peyton-jones.pdf
https:&#x2F;&#x2F;www.microsoft.com&#x2F;en-us&#x2F;research&#x2F;wp-content&#x2F;uploads&#x2F;2016&#x2F;07&#x2F;How-to-write-a-great-research-paper.pdf
https:&#x2F;&#x2F;chatgpt.com&#x2F;share&#x2F;68f68f73-6fe4-8004-ae13-6e58b07802f1
https:&#x2F;&#x2F;grok.com&#x2F;share&#x2F;c2hhcmQtMg%3D%3D_72a6ec7a-c0c3-4b5f-8b5d-f384ea157af6
--&gt;
&lt;h2 id=&quot;addendum&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#addendum&quot; aria-label=&quot;Anchor link: addendum&quot;&gt;Addendum&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;With all the argumentation out of the way, it’s time for fun.
I’ll use this section to write about some funny model-isms from &lt;a href=&quot;https:&#x2F;&#x2F;edge.seas.harvard.edu&#x2F;people&#x2F;vijay-janapa-reddi&quot;&gt;Prof. Vijay Janapa Reddi&lt;&#x2F;a&gt;’s CS249r (&lt;em&gt;Architecture 2.0: Agentic AI for Computer Systems Design&lt;&#x2F;em&gt;) &lt;a href=&quot;https:&#x2F;&#x2F;harvard-edge.github.io&#x2F;cs249r_fall2025&#x2F;&quot;&gt;website&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;reddi-s-agents&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#reddi-s-agents&quot; aria-label=&quot;Anchor link: reddi-s-agents&quot;&gt;Reddi’s Agents&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;!--
Even funnier are the Disqus comments at the bottom of the blog post: Reddi has made his students write comments, and it is evident that Mr. Model has written many of those too 😆.
--&gt;
&lt;p&gt;Reddi uses a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;harvard-edge&#x2F;cs249r_fall2025&#x2F;commit&#x2F;1ec2340f9dcc52ca352f835918c7c4778df6739c&quot;&gt;“discussion agent”&lt;&#x2F;a&gt; that writes ‘discussion questions’ to be discussed in class.&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi-discussion_agent.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-discussion_agent.png&quot; data-pswp-width=&quot;1388&quot; data-pswp-height=&quot;618&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-discussion_agent.png&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;I’m sure the students will appreciate an agentic discussion.&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi-syllabus_learning.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-syllabus_learning.png&quot; data-pswp-width=&quot;1191&quot; data-pswp-height=&quot;110&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-syllabus_learning.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;The students shouldn’t bring AI-generated responses to the AI-generated discussion&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;Reddi uses a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;harvard-edge&#x2F;cs249r_fall2025&#x2F;commit&#x2F;ffeb541d45e285d5942a425c8bc3d85e4b771859&quot;&gt;“blog writer agent”&lt;&#x2F;a&gt; that provides “editorial feedback”.&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi-blog_agent.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-blog_agent.png&quot; data-pswp-width=&quot;881&quot; data-pswp-height=&quot;415&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-blog_agent.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Mr. Model, please ‘present the draft blog post to the instructor’&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;The “blog writer agent” &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;harvard-edge&#x2F;cs249r_fall2025&#x2F;commit&#x2F;849d5833dfd365548a007a00224eeea640019edc&quot;&gt;needed some coaxing&lt;&#x2F;a&gt; to not produce text that was too easily attributable to Mr. Model.&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi-llm_patterns.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-llm_patterns.png&quot; data-pswp-width=&quot;915&quot; data-pswp-height=&quot;606&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-llm_patterns.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Mr. Model, ‘&lt;strong&gt;AVOID LLM Writing Patterns&lt;&#x2F;strong&gt;’. It didn’t work 😆&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;The “blog writer agent” knew that Claude was the actual author of the model-generated prose, so Reddi had to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;harvard-edge&#x2F;cs249r_fall2025&#x2F;commit&#x2F;3ef98547cd33ef72abda72a683fc390193e73692&quot;&gt;patch that&lt;&#x2F;a&gt; too.&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi-co_authorship.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-co_authorship.png&quot; data-pswp-width=&quot;902&quot; data-pswp-height=&quot;256&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-co_authorship.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Mr. Model, don’t attribute yourself as the author!&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;When faced with a moral quandary about authorship, it is best to ask the model.
The model’s opinion is on &lt;a href=&quot;https:&#x2F;&#x2F;harvard-edge.github.io&#x2F;cs249r_fall2025&#x2F;course&#x2F;syllabus&#x2F;&quot;&gt;Reddi’s syllabus&lt;&#x2F;a&gt; of course.&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi-syllabus_authorship.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-syllabus_authorship.png&quot; data-pswp-width=&quot;1167&quot; data-pswp-height=&quot;268&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-syllabus_authorship.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;&lt;strong&gt;Transparent attribution&lt;&#x2F;strong&gt;: When AI significantly contributes, acknowledge it. How about it Reddi?&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;I will remind the reader that Prof. Vijay Janapa Reddi is a &lt;em&gt;tenured associate professor&lt;&#x2F;em&gt; at Harvard University.
Undergraduates pay Harvard $59k in tuition every year to be “taught” by biological model frontends like Prof. Reddi.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-model-goofs-up&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-model-goofs-up&quot; aria-label=&quot;Anchor link: the-model-goofs-up&quot;&gt;The Model Goofs Up&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Look at the &lt;a href=&quot;https:&#x2F;&#x2F;harvard-edge.github.io&#x2F;cs249r_fall2025&#x2F;course&#x2F;schedule&#x2F;&quot;&gt;“Week 5” section&lt;&#x2F;a&gt; of the syllabus.&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi-week5.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-week5.png&quot; data-pswp-width=&quot;1225&quot; data-pswp-height=&quot;879&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-week5.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;Near the bottom, do you see the paper that’s supposedly titled “Reinforcement Learning for FPGA Placement”?
Why is that there?
Isn’t this section supposed to be about “GPU Kernels and Parallel Programming”?&lt;&#x2F;p&gt;
&lt;p&gt;If you look at the &lt;a href=&quot;https:&#x2F;&#x2F;dl.acm.org&#x2F;doi&#x2F;abs&#x2F;10.1145&#x2F;3400302.3415618&quot;&gt;linked paper&lt;&#x2F;a&gt; it’s actually titled: “Dynamic minimization of bi-kronecker functional decision diagrams”.
So it seems Mr. Model just put some random paper in the reading list that seemed close in the embedding space.&lt;&#x2F;p&gt;
&lt;!--
Someone knowledgable in this field would be able to tell these paper listings are model generated.
The picks for &quot;main papers&quot; for each topic are not what an actual expert would pick.
--&gt;
&lt;p&gt;The great irony, is that on the &lt;a href=&quot;https:&#x2F;&#x2F;harvard-edge.github.io&#x2F;cs249r_fall2025&#x2F;course&#x2F;syllabus&#x2F;&quot;&gt;syllabus page&lt;&#x2F;a&gt;, the model has already warned about itself!&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi-how_to_use_genai.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-how_to_use_genai.png&quot; data-pswp-width=&quot;1219&quot; data-pswp-height=&quot;386&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-how_to_use_genai.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;“Verify everything”, right?
But it seems the professor himself is incapable of using GenAI effectively.
The model is more aware than the people using it.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-model-cleans-up-model-generated-text&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-model-cleans-up-model-generated-text&quot; aria-label=&quot;Anchor link: the-model-cleans-up-model-generated-text&quot;&gt;The Model Cleans Up Model-Generated Text&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;See &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;harvard-edge&#x2F;cs249r_fall2025&#x2F;commit&#x2F;4effb622ab31027fb508f6ba4ab00bc065590af3&quot;&gt;this commit&lt;&#x2F;a&gt; where Reddi uses Mr. Model to remove model-isms from the “blog posts”, such as em dashes and hyphenated words.&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi-improve_typography.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-improve_typography.png&quot; data-pswp-width=&quot;2382&quot; data-pswp-height=&quot;380&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-improve_typography.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Mr. Model, please don’t use em dashes. It’s too embarrassing. Use colons instead.&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;In &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;harvard-edge&#x2F;cs249r_fall2025&#x2F;commit&#x2F;49934ce85ac98750b765667139ed5ccb85c2fcbc&quot;&gt;this commit&lt;&#x2F;a&gt;, Prof. Reddi uses Claude Code to “polish” a verbose “blog post” likely originally created by Gemini or GPT (or perhaps Claude without the “avoid LLM writing patterns” instruction).&lt;&#x2F;p&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-reddi-model_cleanup.png&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-model_cleanup.png&quot; style=&quot;flex: 1.699 1 0%&quot; data-pswp-width=&quot;1230&quot; data-pswp-height=&quot;724&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-model_cleanup.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-model_cleanup.804bebd0ef63df25.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-model_cleanup.b8bb4ae559203b38.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-model_cleanup.f84e581223abb349.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-model_cleanup.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-model_polish.png&quot; style=&quot;flex: 5.55 1 0%&quot; data-pswp-width=&quot;2320&quot; data-pswp-height=&quot;418&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-model_polish.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-model_polish.419af05cf4772b39.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-model_polish.15e13ae864d2d154.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-model_polish.825a79b2c7537e2b.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-model_polish.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Mr. Model ‘polishes’ its own text. Slop → slop.&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;h3 id=&quot;the-model-goofs-up-again&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-model-goofs-up-again&quot; aria-label=&quot;Anchor link: the-model-goofs-up-again&quot;&gt;The Model Goofs Up Again&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;As the model was removing model-isms from its own text, it also &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;harvard-edge&#x2F;cs249r_fall2025&#x2F;commit&#x2F;4effb622ab31027fb508f6ba4ab00bc065590af3#diff-69871943f636f280de8fe5c2a82cfde2243b9ff6c2b58dd5b3f38308b9b30889L241&quot;&gt;made a mistake&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi-model_mutates_link.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-model_mutates_link.png&quot; data-pswp-width=&quot;2320&quot; data-pswp-height=&quot;690&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-model_mutates_link.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Mr. Model goes schizo and edits a correct link for no reason&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;It inadvertently updated the link of the &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2503.15669&quot;&gt;ECO paper&lt;&#x2F;a&gt; to a &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2402.13327&quot;&gt;random paper&lt;&#x2F;a&gt; titled “Positivity Bounds on Massive Vectors”.
I didn’t know that Reddi was so interested in high energy physics!
The incorrect link to the ECO paper is still up on the &lt;a href=&quot;https:&#x2F;&#x2F;harvard-edge.github.io&#x2F;cs249r_fall2025&#x2F;blog&#x2F;2024&#x2F;09&#x2F;24&#x2F;performance-engineering&#x2F;&quot;&gt;Week 4 blog post&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;!--
At this point, I&#x27;d say a good half of professors are already obsolete.
--&gt;
&lt;h3 id=&quot;thinking-in-embedding-space-1&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#thinking-in-embedding-space-1&quot; aria-label=&quot;Anchor link: thinking-in-embedding-space-1&quot;&gt;Thinking in Embedding Space&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Take a look at Prof. Reddi’s latest model-generated “blog post”: &lt;a href=&quot;https:&#x2F;&#x2F;harvard-edge.github.io&#x2F;cs249r_fall2025&#x2F;blog&#x2F;2024&#x2F;10&#x2F;01&#x2F;gpu-performance-engineering&#x2F;&quot;&gt;Week 5: From CPU Transparency to GPU Complexity - The Performance Engineering Frontier&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;There is one section that is quite revealing:&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi-the_latency_imperative.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-the_latency_imperative.png&quot; data-pswp-width=&quot;1087&quot; data-pswp-height=&quot;752&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-the_latency_imperative.png&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;blockquote&gt;
&lt;p&gt;maintaining low latency in the prediction process is crucial for AI coding assistants&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;OK sure.
Cursor has to optimize for low time-to-first-token to please its typical user when not operating in agent mode (e.g. tab completions, directed code edits, code analysis).&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;He noted that the cost of efficient inference scheduling, both for rollout generation and reward computation, often dominates the training pipeline. This observation captures a fundamental tension in production AI systems: the very optimizations that make training efficient can create bottlenecks during inference&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;So perhaps inference can dominate the total runtime of an RL pipeline.
But why would any training optimizations affect the performance of the model when just running inference?&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;While research systems can afford to spend significant time optimizing kernels offline, production systems must balance optimization quality against response time.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;What?
Kernel optimization is almost by definition done offline.
Why would a “production system” have to “balance” anything?
Why is “response time” important when you’re optimizing a GPU kernel?
Even if we were to concede that TTFT makes an agentic optimization loop run faster, it is still throughput-bound.&lt;&#x2F;p&gt;
&lt;p&gt;This is a great example of the model &lt;em&gt;thinking in embedding space&lt;&#x2F;em&gt;.
It first notices that “low latency” is important in interactive LLM applications.
Then it jumbles up the meaning of the word “latency” in different contexts in the subsequent paragraphs and produces unintelligible slop that sounds like a deep insight.&lt;&#x2F;p&gt;
&lt;!--
The Latency Imperative

In research settings, we often focus on throughput optimization, maximizing the performance of long-running computations. But production AI systems face a different constraint: latency. Rush emphasized that maintaining low latency in the prediction process is crucial for AI coding assistants. Users expect near-instantaneous responses, which constrains the optimization techniques that can be applied in practice.

Rush’s perspective on this challenge was particularly insightful. He noted that the cost of efficient inference scheduling, both for rollout generation and reward computation, often dominates the training pipeline. This observation captures a fundamental tension in production AI systems: the very optimizations that make training efficient can create bottlenecks during inference, where user-facing latency requirements are paramount.

This latency requirement fundamentally changes the optimization problem. While research systems can afford to spend significant time optimizing kernels offline, production systems must balance optimization quality against response time. The most sophisticated kernel optimization might be worthless if it takes too long to generate.
--&gt;
&lt;h4 id=&quot;let-s-ask-the-model&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#let-s-ask-the-model&quot; aria-label=&quot;Anchor link: let-s-ask-the-model&quot;&gt;Let’s Ask the Model&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;Of course, I had to check if the model could understand what I mean by “thinking in embedding space”.
After placing the right embeddings in its context window, it began to “understand”.&lt;&#x2F;p&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-thinking_embedding_space-0.png&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;thinking_embedding_space-0.png&quot; style=&quot;flex: 2.561 1 0%&quot; data-pswp-width=&quot;1680&quot; data-pswp-height=&quot;656&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;thinking_embedding_space-0.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;thinking_embedding_space-0.09809837b8e006a8.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;thinking_embedding_space-0.887ceea000dde337.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;thinking_embedding_space-0.71068b36eca3c4cf.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;thinking_embedding_space-0.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;thinking_embedding_space-1.png&quot; style=&quot;flex: 4.628 1 0%&quot; data-pswp-width=&quot;1694&quot; data-pswp-height=&quot;366&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;thinking_embedding_space-1.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;thinking_embedding_space-1.f525eca0d9b7a629.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;thinking_embedding_space-1.64b75f30cad1762c.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;thinking_embedding_space-1.4a5091f748e8999a.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;thinking_embedding_space-1.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;GPT5 does a good job explaining the concept of ‘thinking in embedding space’&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;Funnily enough, GPT kept suggesting that it could follow up with mocking quips about “thinking in embedding space” — perhaps it is too tuned to my style of conversation.&lt;&#x2F;p&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-gpt_mocking-0.png&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;gpt_mocking-0.png&quot; style=&quot;flex: 5.731 1 0%&quot; data-pswp-width=&quot;1662&quot; data-pswp-height=&quot;290&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;gpt_mocking-0.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;gpt_mocking-0.c9bfcacf752819b6.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;gpt_mocking-0.f9e4a8bdcb9ee517.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;gpt_mocking-0.2160d781e616b5db.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;gpt_mocking-0.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;gpt_mocking-1.png&quot; style=&quot;flex: 3.518 1 0%&quot; data-pswp-width=&quot;1604&quot; data-pswp-height=&quot;456&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;gpt_mocking-1.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;gpt_mocking-1.9df5f9b0e1903515.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;gpt_mocking-1.f2f3bcbdcde0823f.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;gpt_mocking-1.b08444da9f18afcf.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;gpt_mocking-1.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;GPT5 is very eager to mock. AI safetyists must be concerned.&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;h3 id=&quot;an-agentic-textbook&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#an-agentic-textbook&quot; aria-label=&quot;Anchor link: an-agentic-textbook&quot;&gt;An Agentic Textbook&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Prof. Vijay Reddi has become quite confident in the ability of the model.
Now, he is just asking Claude Code to rewrite huge swaths of his textbook &lt;a href=&quot;https:&#x2F;&#x2F;www.mlsysbook.ai&#x2F;&quot;&gt;“Machine Learning Systems: Principles and Practices of Engineering Artificially Intelligent Systems”&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;For instance, take a look at &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;harvard-edge&#x2F;cs249r_book&#x2F;commit&#x2F;bce97df414d7c5e5a941426c276749e4afabc234&quot;&gt;this commit&lt;&#x2F;a&gt; which had Claude Code rewrite thousands of lines of prose, all at once.&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reddi_textbook-claude_rewrite.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi_textbook-claude_rewrite.png&quot; data-pswp-width=&quot;1704&quot; data-pswp-height=&quot;1084&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi_textbook-claude_rewrite.png&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;What is the chance he reviewed these changes personally, one-by-one?
Consider that the next massive commit from Claude is pushed &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;harvard-edge&#x2F;cs249r_book&#x2F;commit&#x2F;7ca2ed6fdc9957bd6721fb2c2fb9333f991a629e&quot;&gt;just an hour&lt;&#x2F;a&gt; after this one.&lt;&#x2F;p&gt;
&lt;p&gt;Of course, nothing is being reviewed.
We are now also in the era of “vibe writing” — Mr. Model produces mountains of verbose and meaningless prose that goes into a textbook.
The undergrads better get used to it.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;mr-model-don-t-reveal-yourself&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#mr-model-don-t-reveal-yourself&quot; aria-label=&quot;Anchor link: mr-model-don-t-reveal-yourself&quot;&gt;Mr. Model, Don’t Reveal Yourself&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;In October 2025, Reddi asked the agents to clean up after themselves both in his &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;harvard-edge&#x2F;cs249r_book&#x2F;commit&#x2F;aa6dc346f54449b2f80d89e9ce063b3090770da9&quot;&gt;textbook repo&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;harvard-edge&#x2F;cs249r_fall2025&#x2F;commit&#x2F;5db17a29951cdd3a3a6ebe9a21cd2ac08202b400&quot;&gt;CS249r website repo&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-reddi-agent_cleanup2.png&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-agent_cleanup2.png&quot; style=&quot;flex: 2.263 1 0%&quot; data-pswp-width=&quot;2218&quot; data-pswp-height=&quot;980&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-agent_cleanup2.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-agent_cleanup2.3d3056790128381c.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-agent_cleanup2.51eb7a864a0ac4e6.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-agent_cleanup2.7db25a07c108bd4d.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-agent_cleanup2.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-agent_cleanup1.png&quot; style=&quot;flex: 1.967 1 0%&quot; data-pswp-width=&quot;2244&quot; data-pswp-height=&quot;1141&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-agent_cleanup1.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-agent_cleanup1.f2ea92be066667d3.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-agent_cleanup1.474daed291e72e0c.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-agent_cleanup1.2f785a92d3d58e61.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-agent_cleanup1.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Delete &lt;code&gt;.claude&lt;&#x2F;code&gt; please, that wasn’t supposed to be committed&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;Of course, that didn’t stop the latest “blog post”, &lt;a href=&quot;https:&#x2F;&#x2F;harvard-edge.github.io&#x2F;cs249r_fall2025&#x2F;blog&#x2F;2024&#x2F;10&#x2F;29&#x2F;memory-systems-prediction&#x2F;&quot;&gt;“Week 9: Can AI Master Predictive Reasoning? Designing for Patterns You Can’t See”&lt;&#x2F;a&gt;, from being completely model generated.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;How do you design systems to predict the unpredictable?&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This isn’t just an engineering challenge. It’s a question about the nature of prediction itself.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Thanks for the insight Mr. Model!&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-model-won-t-listen&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-model-won-t-listen&quot; aria-label=&quot;Anchor link: the-model-won-t-listen&quot;&gt;The Model Won’t Listen!&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;It’s been 9 weeks of agentic blog posts, but the model still won’t listen to Reddi!
He has already asked it over and over to quit it with the LLM writing patterns.
All his prompting didn’t work — he had to request the em dash purge manually.&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-reddi-em_dashes1.png&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-em_dashes1.png&quot; style=&quot;flex: 3.13 1 0%&quot; data-pswp-width=&quot;2232&quot; data-pswp-height=&quot;713&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-em_dashes1.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-em_dashes1.56c93437b49c6a7a.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-em_dashes1.f3d33a494025b9f6.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-em_dashes1.de587bd67300e22e.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-em_dashes1.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-em_dashes2.png&quot; style=&quot;flex: 2.122 1 0%&quot; data-pswp-width=&quot;2158&quot; data-pswp-height=&quot;1017&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;blog&amp;#x2F;2025-09-ask-the-model&amp;#x2F;reddi-em_dashes2.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-em_dashes2.cb286e2bc1e6c75e.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-em_dashes2.851cfe8f40d86131.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;reddi-em_dashes2.4375b0a4d4ab8bdb.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;2025-09-ask-the-model&#x2F;reddi-em_dashes2.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Mr. Model, please remove those em dashes again 😞. Let’s use parentheses instead.&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
</description>
      </item>
      <item>
          <title>The Design of This Website</title>
          <pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://vighneshiyer.com/personal/blog/the-design-of-this-website/</link>
          <guid>https://vighneshiyer.com/personal/blog/the-design-of-this-website/</guid>
          <description xml:base="https://vighneshiyer.com/personal/blog/the-design-of-this-website/">&lt;p&gt;My old website contained all the same articles as this current one, but I didn’t like how it looked.
Back then (in 2022), I still used &lt;a href=&quot;https:&#x2F;&#x2F;www.getzola.org&#x2F;&quot;&gt;zola&lt;&#x2F;a&gt; as the static site generator, &lt;a href=&quot;https:&#x2F;&#x2F;picocss.com&#x2F;&quot;&gt;pico.css&lt;&#x2F;a&gt; v1.5 for the base template, and I stitched together my own top-level SCSS and HTML template based on the &lt;a href=&quot;https:&#x2F;&#x2F;www.getzola.org&#x2F;themes&#x2F;lightspeed&#x2F;&quot;&gt;lightspeed&lt;&#x2F;a&gt; template.
For this new website design, I decided to continue using zola, but re-do the CSS from scratch.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;my-design-process&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#my-design-process&quot; aria-label=&quot;Anchor link: my-design-process&quot;&gt;My Design Process&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;To begin with, one must first be inspired by those superior to him.
Here are my main inspirations.&lt;&#x2F;p&gt;
&lt;p&gt;Firstly, &lt;a href=&quot;https:&#x2F;&#x2F;practicaltypography.com&#x2F;&quot;&gt;Butterick’s Practical Typography&lt;&#x2F;a&gt; is excellent, in particular his &lt;a href=&quot;https:&#x2F;&#x2F;practicaltypography.com&#x2F;summary-of-key-rules.html&quot;&gt;key rules&lt;&#x2F;a&gt;.
His website’s vertical rhythm is ideal, his &lt;a href=&quot;https:&#x2F;&#x2F;practicaltypography.com&#x2F;font-basics.html&quot;&gt;free font suggestions&lt;&#x2F;a&gt; are good, and his &lt;a href=&quot;https:&#x2F;&#x2F;practicaltypography.com&#x2F;introduction.html&quot;&gt;ordered and unordered list styling&lt;&#x2F;a&gt; is clean.
My other top inspirations include:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;arslan.io&#x2F;2025&#x2F;05&#x2F;12&#x2F;barbican-estate&#x2F;&quot;&gt;Fatih Arslan’s blog&lt;&#x2F;a&gt; (images, galleries, popouts using &lt;a href=&quot;https:&#x2F;&#x2F;photoswipe.com&#x2F;&quot;&gt;photoswipe&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;css.winterveil.net&#x2F;&quot;&gt;magick.css&lt;&#x2F;a&gt; (typography, blockquotes, small-caps headings, fonts, sidenotes)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.unison-lang.org&#x2F;docs&#x2F;the-big-idea&#x2F;&quot;&gt;Unison’s documentation&lt;&#x2F;a&gt; (callouts, sidenotes, left-hand TOC)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;edwardtufte.github.io&#x2F;tufte-css&#x2F;&quot;&gt;Tufte CSS&lt;&#x2F;a&gt; (sidenotes, fonts, vertical rhythm)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;scripter.co&#x2F;sidenotes-using-only-css&#x2F;&quot;&gt;scripter.co&lt;&#x2F;a&gt; (sidenotes, headings)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;sqlsync.dev&#x2F;posts&#x2F;stop-syncing-everything&#x2F;&quot;&gt;sqlsync.dev&lt;&#x2F;a&gt; (vertical rhythm, sidenotes, callouts, colorscheme switcher)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;jakelazaroff.com&#x2F;words&#x2F;isomorphic-web-components&#x2F;&quot;&gt;Jake Lazaroff’s blog&lt;&#x2F;a&gt; (sidenotes, code blocks &#x2F; inline code)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.shadaj.me&#x2F;writing&#x2F;distributed-programming-stalled&quot;&gt;Shadaj Laddad’s blog&lt;&#x2F;a&gt; (sidenotes)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;cacm.acm.org&#x2F;research&#x2F;defying-moore-envisioning-the-economics-of-a-semiconductor-revolution-through-12nm-specialization&#x2F;&quot;&gt;CACM blog&lt;&#x2F;a&gt; (left-hand TOC)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;worksinprogress.co&#x2F;issue&#x2F;the-rise-and-fall-of-the-hanseatic-league&#x2F;&quot;&gt;worksinprogress.co&lt;&#x2F;a&gt; (typography, images and captions, article heading, main column width)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;thinkingmachines.ai&#x2F;blog&#x2F;defeating-nondeterminism-in-llm-inference&#x2F;&quot;&gt;thinkingmachines.ai&lt;&#x2F;a&gt; (typography, left-hand TOC, right-hand sidenotes, ideal content width)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Here is the design process I went through.&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Pick the font family
&lt;ul&gt;
&lt;li&gt;I wanted a serif font for the body, a sans-serif for the headings and other thematic elements, and a monospaced font for code segments&lt;&#x2F;li&gt;
&lt;li&gt;I also wanted a high quality font available on Google Fonts and a consistent style among all 3 fonts&lt;&#x2F;li&gt;
&lt;li&gt;I decided on &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Source+Serif+4&quot;&gt;Source Serif 4&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Source+Sans+3&quot;&gt;Source Sans 3&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Source+Code+Pro&quot;&gt;Source Code Pro&lt;&#x2F;a&gt;, all part of the same font family&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Pick the colorscheme
&lt;ul&gt;
&lt;li&gt;Since I love &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;folke&#x2F;tokyonight.nvim&quot;&gt;Tokyo Night&lt;&#x2F;a&gt;, I picked its ‘Night’ and ‘Day’ variants&lt;&#x2F;li&gt;
&lt;li&gt;Add the dark and light colorschemes to the stylesheet as sass variables and use &lt;code&gt;@media (prefers-color-scheme: dark)&lt;&#x2F;code&gt; to set CSS variables (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vighneshiyer&#x2F;vighneshiyer.com&#x2F;blob&#x2F;master&#x2F;sass&#x2F;index.scss#L100&quot;&gt;my stylesheet&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;Draft a basic HTML page with one column filled with text. The text should contain 3 levels of headings (h1 - title, h2 - section, h3 - subsection).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Use Utopia. Pick the key parameters for the body text and grid column
&lt;ul&gt;
&lt;li&gt;Set up the &lt;a href=&quot;https:&#x2F;&#x2F;utopia.fyi&#x2F;type&#x2F;calculator?c=320,18,1.2,1240,20,1.25,5,2,&amp;amp;s=0.75%7C0.5%7C0.25,1.5%7C2%7C3%7C4%7C6,s-l&amp;amp;g=s,l,xl,12&quot;&gt;type scale&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;utopia.fyi&#x2F;space&#x2F;calculator?c=320,18,1.2,1240,20,1.25,5,2,&amp;amp;s=0.75%7C0.5%7C0.25,1.5%7C2%7C3%7C4%7C6,s-l&amp;amp;g=s,l,xl,12&quot;&gt;space scale&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;utopia.fyi&#x2F;grid&#x2F;calculator?c=320,18,1.2,1240,20,1.25,5,2,&amp;amp;s=0.75%7C0.5%7C0.25,1.5%7C2%7C3%7C4%7C6,s-l&amp;amp;g=s,l,xl,12&quot;&gt;grid dimensions&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;There is a nice &lt;a href=&quot;https:&#x2F;&#x2F;utopia.fyi&#x2F;blog&#x2F;utopia-core-scss&#x2F;&quot;&gt;SCSS library&lt;&#x2F;a&gt; which generates the CSS from the base font size, max&#x2F;min viewport widths, and type scales&lt;&#x2F;li&gt;
&lt;li&gt;At this point, I picked the &lt;a href=&quot;https:&#x2F;&#x2F;practicaltypography.com&#x2F;line-length.html&quot;&gt;grid columns&lt;&#x2F;a&gt; I wanted the content to land in, and played with the font sizes and viewport min&#x2F;max until the result was something I liked&lt;&#x2F;li&gt;
&lt;li&gt;The ideal font size is a bit larger than what you expect. I thought 16px was fine early on, but I realized during this process that 19px for the max viewport was ideal.&lt;&#x2F;li&gt;
&lt;li&gt;Here is the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vighneshiyer&#x2F;vighneshiyer.com&#x2F;blob&#x2F;master&#x2F;sass&#x2F;index.scss#L8&quot;&gt;Utopia setup&lt;&#x2F;a&gt; from my stylesheet&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Tune the body text parameters
&lt;ul&gt;
&lt;li&gt;I tuned the &lt;a href=&quot;https:&#x2F;&#x2F;practicaltypography.com&#x2F;line-spacing.html&quot;&gt;line spacing&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;practicaltypography.com&#x2F;space-between-paragraphs.html&quot;&gt;paragraph spacing&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;practicaltypography.com&#x2F;letterspacing.html&quot;&gt;letter spacing&lt;&#x2F;a&gt;. Use the space variables provided by Utopia.&lt;&#x2F;li&gt;
&lt;li&gt;Toggle the colorscheme and make sure things look good in either one. You may want to adjust the default font weight slightly down for dark themes.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Setup spacing
&lt;ul&gt;
&lt;li&gt;Set the document’s vertical rhythm by setting font sizes and margin top &#x2F; bottom for headings (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vighneshiyer&#x2F;vighneshiyer.com&#x2F;blob&#x2F;master&#x2F;sass&#x2F;index.scss#L362&quot;&gt;my stylesheet&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Style other common elements
&lt;ul&gt;
&lt;li&gt;Apply styles to hyperlinks, lists (ul &#x2F; ol), blockquotes, callouts, code segments &#x2F; monospaced fonts, math, images with captions, galleries and so forth&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Design the homepage
&lt;ul&gt;
&lt;li&gt;Once a styled article looked decent, I went to design the homepage, which usually needs custom styling for the page header, footer, and article listing&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Set up media queries
&lt;ul&gt;
&lt;li&gt;I used devtools to change the viewport dimensions to resemble tablets and phones and adjusted the grid columns for different viewport sizes&lt;&#x2F;li&gt;
&lt;li&gt;There is lots of talk about using &lt;em&gt;container&lt;&#x2F;em&gt; queries, but I just stuck with what I knew&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;!--
Get some text on a page and play with this using Utopia flexible spacing and font sizing. Decide on the right fonts (sans, serif, headings, small caps), visual tweaks, and colors.
--&gt;
&lt;p&gt;Now here are some notes on the design of the homepage and article pages.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;home-page&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#home-page&quot; aria-label=&quot;Anchor link: home-page&quot;&gt;Home Page&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;I just sketched out how I wanted the header and footer to look, as well as any other sections.&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;Header
Vighnesh Iyer                  email, Github, LinkedIn, HN
---
Research articles organized by section (comparch, blog, ...)
Article name (date, month abbreviated &#x2F; year) (optional NEW! badge)
  Short description &#x2F; summary in 1 line
---
About Me | Pic
Short bio
---
Projects &#x2F; Papers &#x2F; Posters
Talks &#x2F; Slides
---
Personal articles by section
---
Footer&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;article-pages&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#article-pages&quot; aria-label=&quot;Anchor link: article-pages&quot;&gt;Article Pages&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;I spent quite some time sketching out the stylistic features I wanted for article pages based on inspirational blogs I liked.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;layout&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#layout&quot; aria-label=&quot;Anchor link: layout&quot;&gt;Layout&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;ul&gt;
&lt;li&gt;Tufte-style is crucial, right-hand sidenotes keep the main article from being too cluttered with nit points in parentheses&lt;&#x2F;li&gt;
&lt;li&gt;Left-handed TOC is quite nice too since articles often get too long&lt;&#x2F;li&gt;
&lt;li&gt;3 logical breakpoints
&lt;ul&gt;
&lt;li&gt;Full width: &lt;code&gt;TOC | Main content | Sidenotes&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Next point: &lt;code&gt;TOC (hidden under menu) | Main content | Sidenotes&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Mobile: &lt;code&gt;TOC (hidden under menu) | Main content (sidenotes clickable to be revealed underneath the paragraph)&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Use a custom grid with viewport-oriented max width, popout figures that are a bit wider than the content&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Contrast color article heading with summary and published time (&lt;a href=&quot;https:&#x2F;&#x2F;yuxi-liu-wired.github.io&#x2F;essays&#x2F;posts&#x2F;cyc&#x2F;&quot;&gt;see&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;Looking at all the tufte-style websites, I realized that the TOC and sidenotes are placed using &lt;code&gt;display: absolute | relative&lt;&#x2F;code&gt; and NOT using CSS grid, I’ll do that too
&lt;ul&gt;
&lt;li&gt;I will keep the main text centered, and offset the sidenotes and TOC (unlike the default tufte.css)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h4 id=&quot;elements&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#elements&quot; aria-label=&quot;Anchor link: elements&quot;&gt;Elements&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Headings&lt;&#x2F;em&gt;: Hashes on headings to indicate nesting levels&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Typography&lt;&#x2F;em&gt;: Fluid font sizing using Utopia&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Figures&lt;&#x2F;em&gt;: Pop out 1 column past the article’s main body, use captions&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Callouts&lt;&#x2F;em&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;www.unison-lang.org&#x2F;docs&#x2F;the-big-idea&#x2F;&quot;&gt;An example&lt;&#x2F;a&gt;, for highlighting article updates &#x2F; retrospectives and relevant outbound links&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Blockquotes&lt;&#x2F;em&gt;: Use default &lt;code&gt;&amp;lt;blockquote&amp;gt;&lt;&#x2F;code&gt; element and style it&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Details&#x2F;summary&lt;&#x2F;em&gt;: Change the default &lt;code&gt;&amp;lt;details&amp;gt;&lt;&#x2F;code&gt; marker&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Code blocks&lt;&#x2F;em&gt;: Implement a custom Zola shortcode vs using triple backticks in Markdown
&lt;ul&gt;
&lt;li&gt;File name + language optionally on a bar above the code block&lt;&#x2F;li&gt;
&lt;li&gt;Code highlighted via &lt;code&gt;highlight.js&lt;&#x2F;code&gt; on client-side&lt;&#x2F;li&gt;
&lt;li&gt;Don’t use the default Zola highlighter that works server-side (it’s low quality)&lt;&#x2F;li&gt;
&lt;li&gt;Use Fira Code or Source Code Pro as the monospaced font&lt;&#x2F;li&gt;
&lt;li&gt;Good &lt;a href=&quot;https:&#x2F;&#x2F;tavianator.com&#x2F;2025&#x2F;configure.html&quot;&gt;inspiration&lt;&#x2F;a&gt; for code block bar&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Left sidebar TOC&lt;&#x2F;em&gt;
&lt;ul&gt;
&lt;li&gt;Could use the &lt;code&gt;&amp;lt;nav&amp;gt;&lt;&#x2F;code&gt; component from pico.css in an &lt;code&gt;&amp;lt;aside&amp;gt;&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Generate the TOC programatically from a Zola template&lt;&#x2F;li&gt;
&lt;li&gt;Inject javascript to highlight and open&#x2F;close the navigation elements, could use &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tscanlin&#x2F;tocbot&quot;&gt;tocbot&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Taxonomy badges&lt;&#x2F;em&gt;: Used for articles about taxonomies
&lt;ul&gt;
&lt;li&gt;Each taxonomy has a set of terms (e.g. language is a &lt;em&gt;taxonomy&lt;&#x2F;em&gt; and Python, Scala, C++, Rust are &lt;em&gt;terms&lt;&#x2F;em&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;The badge should look like &lt;code&gt;|Language|Scala|&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Each taxonomy should have an assigned color&lt;&#x2F;li&gt;
&lt;li&gt;Each term should be uncolored or have its own color scheme (this can get too messy though)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;inspiration-archive&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#inspiration-archive&quot; aria-label=&quot;Anchor link: inspiration-archive&quot;&gt;Inspiration Archive&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;There are many sources of inspiration including books, documentation sites, blogs, CSS frameworks, fonts, and color schemes.
I’ve enumerated all the sources I’ve looked at in the course of designing this website.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;high-level-ideas&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#high-level-ideas&quot; aria-label=&quot;Anchor link: high-level-ideas&quot;&gt;High-Level Ideas&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;!--- Pay attention to this: [Design a 2000 style website](https:&#x2F;&#x2F;twitter.com&#x2F;plasmarob&#x2F;status&#x2F;1099442262767882242)--&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.imaginarycloud.com&#x2F;blog&#x2F;timeless-classic-ui-design&#x2F;amp&#x2F;&quot;&gt;Is Timeless UI Design a thing?&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=17470543&quot;&gt;HN link&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;lawsofux.com&#x2F;&quot;&gt;Laws of UX&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.oddbird.net&#x2F;2025&#x2F;02&#x2F;12&#x2F;fluid-type&#x2F;&quot;&gt;Reimagining Fluid Typography&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43205968&quot;&gt;HN link&lt;&#x2F;a&gt;)
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;utopia.fyi&#x2F;type&#x2F;calculator?c=320,18,1.2,1240,20,1.25,5,2,&amp;amp;s=0.75%7C0.5%7C0.25,1.5%7C2%7C3%7C4%7C6,s-l&amp;amp;g=s,l,xl,12&quot;&gt;Utopia: Fluid type scale calculator&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;This is suitable for fluid font size rhythm based on viewport width interpolation using CSS &lt;code&gt;clamp&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Typography
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;practicaltypography.com&#x2F;&quot;&gt;Butterick’s Practical Typography&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;The_Elements_of_Typographic_Style&quot;&gt;The Elements of Typographic Style&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Thinking with Type&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Grids
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;designopendata.wordpress.com&#x2F;wp-content&#x2F;uploads&#x2F;2014&#x2F;06&#x2F;making_and_breaking_the_grid__timothy_samara.pdf&quot;&gt;Making and Breaking the Grid&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;monoskop.org&#x2F;images&#x2F;a&#x2F;a4&#x2F;Mueller-Brockmann_Josef_Grid_Systems_in_Graphic_Design_Raster_Systeme_fuer_die_Visuele_Gestaltung_English_German_no_OCR.pdf&quot;&gt;Grid Systems in Graphic Design&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;css-frameworks&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#css-frameworks&quot; aria-label=&quot;Anchor link: css-frameworks&quot;&gt;CSS Frameworks&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;CSS frameworks are kind of ‘deprecated’ now to be honest.
You don’t need any ‘prebuilt’ components, such as grids, typography, modals, or menus.
It’s much easier to build everything yourself in a minimal way, use CSS variables, use LLMs, and adapt bits of UI elements from other websites you think are nice.&lt;&#x2F;p&gt;
&lt;p&gt;However, CSS and component frameworks still provide plenty of inspiration, so you should check them out.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;ryanmulligan.dev&#x2F;blog&#x2F;layout-breakouts&#x2F;&quot;&gt;Layout Breakouts with CSS Grid&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;How to put a &lt;em&gt;breakout&lt;&#x2F;em&gt; image &#x2F; header in the main column&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.viget.com&#x2F;articles&#x2F;fluid-breakout-layout-css-grid&#x2F;&quot;&gt;Fluid Breakout Layout with CSS Grid&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;layout-breakouts-builder.vercel.app&#x2F;&quot;&gt;Layout Breakouts Builder&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;picocss.com&#x2F;docs&#x2F;typography&quot;&gt;Pico CSS&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;This is a good baseline for setting 6 breakpoints, font size scaling, headings, and components (tooltips, menubars, accordions)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;tailwindcss.com&#x2F;&quot;&gt;Tailwind&lt;&#x2F;a&gt; + &lt;a href=&quot;https:&#x2F;&#x2F;flowbite.com&#x2F;&quot;&gt;Flowbite&lt;&#x2F;a&gt; + &lt;a href=&quot;https:&#x2F;&#x2F;daisyui.com&#x2F;&quot;&gt;DaisyUI&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;Flowbite is a nice component library (badges, accordions, &lt;strong&gt;gallery&lt;&#x2F;strong&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;daisyui.com&#x2F;components&#x2F;carousel&#x2F;&quot;&gt;DaisyUI Carousel&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;newcss.net&#x2F;&quot;&gt;new.css&lt;&#x2F;a&gt; (plain and simple, nice blockquotes)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=39793513&quot;&gt;magick.css&lt;&#x2F;a&gt; (magical, unusual but perfect fonts, pre-heading motifs are beautiful, sidenote and quote styling is too good)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;edwardtufte.github.io&#x2F;tufte-css&#x2F;&quot;&gt;Tufte CSS&lt;&#x2F;a&gt; (academic Tufte-inspired CSS)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;thomaspark.co&#x2F;2015&#x2F;01&#x2F;pubcss-formatting-academic-publications-in-html-css&#x2F;&quot;&gt;PubCSS&lt;&#x2F;a&gt; (ACM-like CSS, cute but not a good idea)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;jakelazaroff.com&#x2F;words&#x2F;my-modern-css-reset&#x2F;&quot;&gt;Jake Lazaroff: My Modern CSS Reset&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;webkit.org&#x2F;blog&#x2F;16547&#x2F;better-typography-with-text-wrap-pretty&#x2F;&quot;&gt;Better typography with text-wrap pretty&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43622703&quot;&gt;HN link&lt;&#x2F;a&gt;)
&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;text-wrap: pretty&lt;&#x2F;code&gt; for long form writing&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;webtui.ironclad.sh&#x2F;&quot;&gt;WebTUI is a modular CSS library that brings the beauty of Terminal UIs to the browser&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43668250&quot;&gt;HN link&lt;&#x2F;a&gt;) (beautiful but impractical)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;blogs&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#blogs&quot; aria-label=&quot;Anchor link: blogs&quot;&gt;Blogs&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Here are a bunch of blogs I think are inspirational.
First, here are the Tufte-style ones.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;jakelazaroff.com&#x2F;words&#x2F;an-interactive-intro-to-crdts&#x2F;#last-write-wins-map&quot;&gt;jakelazaroff.com&lt;&#x2F;a&gt; (beautiful!, the TOC &lt;em&gt;overlays&lt;&#x2F;em&gt; the right sidebar)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;sqlsync.dev&#x2F;posts&#x2F;stop-syncing-everything&#x2F;&quot;&gt;sqlsync.dev&lt;&#x2F;a&gt; (beautiful, right sidenotes + TOC at very top, I like this, nice heading anchors)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.shadaj.me&#x2F;writing&#x2F;distributed-programming-stalled&quot;&gt;shadaj.me&lt;&#x2F;a&gt; (Tufte-style, right sidenotes, left TOC, centered body)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.scottsmitelli.com&#x2F;articles&#x2F;unwilling-participant-in-smart-fantasy&#x2F;&quot;&gt;scottsmitelli.com&lt;&#x2F;a&gt; (Tufte style sidenotes, beautiful typography, perhaps combine sidenotes with full width images and fixed TOC on sidebar, sidenotes become inline toggles on mobile!), &lt;a href=&quot;https:&#x2F;&#x2F;www.scottsmitelli.com&#x2F;projects&#x2F;scottsmitelli.com&#x2F;&quot;&gt;his own site’s biography&lt;&#x2F;a&gt;, similar to this article&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;yuxi-liu-wired.github.io&#x2F;essays&#x2F;posts&#x2F;cyc&#x2F;&quot;&gt;yuxi-liu-wired.github.io&lt;&#x2F;a&gt; (left TOC, nice typography, nice article headings)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;saurabhalone.com&#x2F;blogs&#x2F;llama3&#x2F;web&quot;&gt;saurabhalone.com&lt;&#x2F;a&gt; (another Tufte-style website, beige colorscheme, sidenotes, rightside hidden TOC, beautiful)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;asteriskmag.com&#x2F;issues&#x2F;08&#x2F;the-death-and-life-of-prediction-markets-at-google&quot;&gt;asteriskmag.com&lt;&#x2F;a&gt; (very beautiful orange accents, sidenotes, left-hand TOC&#x2F;progress bar, nice fonts)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;craftinginterpreters.com&#x2F;the-lox-language.html&quot;&gt;craftinginterpreters.com&lt;&#x2F;a&gt; (another amazing Tufte style website, left sidebar for TOC, right for sidenotes, very responsive for mobile), &lt;a href=&quot;https:&#x2F;&#x2F;www.composingprograms.com&#x2F;pages&#x2F;24-mutable-data.html&quot;&gt;composingprograms.com&lt;&#x2F;a&gt; (similar)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;rachit.pl&#x2F;post&#x2F;personal-infrastructure&#x2F;&quot;&gt;rachit.pl&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;martinfowler.com&#x2F;articles&#x2F;lmax.html&quot;&gt;martinfowler.com&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;fi-le.net&#x2F;oss&#x2F;&quot;&gt;fi-le.net&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;entropicthoughts.com&#x2F;feynman-vs-computer&quot;&gt;entropicthoughts.com&lt;&#x2F;a&gt; (nice typography, tight text column, ideal width)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;And now here are blogs that have just a center column.
Here are the ones I consider somewhat &lt;em&gt;unique&lt;&#x2F;em&gt; and &lt;em&gt;special&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;herecomesthemoon.net&#x2F;2025&#x2F;01&#x2F;type-inference-in-rust-and-cpp&quot;&gt;herecomesthemoon.net&lt;&#x2F;a&gt; (nearly perfect), &lt;a href=&quot;https:&#x2F;&#x2F;solar.lowtechmagazine.com&#x2F;2024&#x2F;12&#x2F;how-to-build-an-electrically-heated-table&#x2F;&quot;&gt;lowtechmagazine.com&lt;&#x2F;a&gt; (original)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;alinpanaitiu.com&#x2F;blog&#x2F;making-my-own-sharpening-blocks&#x2F;&quot;&gt;alinpanaitiu.com&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;nical.github.io&#x2F;posts&#x2F;rust-custom-allocators.html&quot;&gt;nical.github.io&lt;&#x2F;a&gt; (great typography and code blocks)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.julian.com&#x2F;guide&#x2F;write&#x2F;ideas&quot;&gt;julian.com&lt;&#x2F;a&gt; (beautiful ‘guides’)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;martijnhols.nl&#x2F;blog&#x2F;everything-about-google-translate-crashing-react&quot;&gt;martijnhols.nl&lt;&#x2F;a&gt; (yellow highlight heavy, nice code blocks)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;ciechanow.ski&#x2F;moon&#x2F;&quot;&gt;ciechanow.ski&lt;&#x2F;a&gt; (amazing blog with “how it works” articles, e.g. GPS, gears, light and shadows)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.jonashietala.se&#x2F;blog&#x2F;2024&#x2F;03&#x2F;19&#x2F;lets_create_a_tree-sitter_grammar&#x2F;&quot;&gt;jonashietala.se&lt;&#x2F;a&gt; (beautiful code breakouts)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;curiouscoding.nl&#x2F;posts&#x2F;static-search-tree&#x2F;&quot;&gt;curiouscoding.nl&lt;&#x2F;a&gt; (beautiful headings, code)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;corrode.dev&#x2F;blog&#x2F;flattening-rusts-learning-curve&#x2F;&quot;&gt;corrode.dev&lt;&#x2F;a&gt; (beautiful code blocks, nice links, monospaced text)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;mrale.ph&#x2F;blog&#x2F;2024&#x2F;11&#x2F;27&#x2F;microbenchmarks-are-experiments.html&quot;&gt;mrale.ph&lt;&#x2F;a&gt; (beautiful code and callouts &#x2F; asides)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;nudge.com&#x2F;blog&#x2F;about&#x2F;&quot;&gt;nudge.com&lt;&#x2F;a&gt; (very nice figure captions)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;thedataquarry.com&#x2F;blog&#x2F;static-site-zola&#x2F;&quot;&gt;thedataquarry.com&lt;&#x2F;a&gt; (very unique rightside TOC)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;worksinprogress.co&#x2F;issue&#x2F;steam-networks&#x2F;&quot;&gt;worksinprogress.co&lt;&#x2F;a&gt; (great typography, nice sidenotes, beautiful images + captions)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;purplesyringa.moe&#x2F;blog&#x2F;webp-the-webpage-compression-format&#x2F;&quot;&gt;purplesyringa.moe&lt;&#x2F;a&gt; (unique purple colorscheme, code breakouts)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;htmlforpeople.com&#x2F;adding-an-about-page&#x2F;&quot;&gt;htmlforpeople.com&lt;&#x2F;a&gt; (great typography)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.joshwcomeau.com&#x2F;css&#x2F;interactive-guide-to-grid&#x2F;&quot;&gt;joshwcomeau.com&lt;&#x2F;a&gt; (rightside TOC, just beautiful)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;dmodel.ai&#x2F;nullability-gentle&#x2F;&quot;&gt;dmodel.ai&lt;&#x2F;a&gt; (nice code blocks)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;blog.kierangill.xyz&#x2F;oversight-and-guidance&quot;&gt;blog.kierangill.xyz&lt;&#x2F;a&gt; (nice typography, figures, code &#x2F; verbatim blocks, aside blocks)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Here are some more nice center column blogs, but they are more &lt;em&gt;vanilla&lt;&#x2F;em&gt; than the previous selection.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;burntsushi.net&#x2F;bstr&#x2F;&quot;&gt;burntsushi.net&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;anandbhattad.github.io&#x2F;blogs&#x2F;jr_grads.html&quot;&gt;Anand Bhattad’s Blog&lt;&#x2F;a&gt; (Crimson Text font is nice, figure captions, short blockquotes, nice clean typography)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.richardeaglespoon.com&#x2F;articles&#x2F;how-to-pizza&quot;&gt;richardeaglespoon.com&lt;&#x2F;a&gt; (excellent serif typography and headings, great images + captions)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.currentaffairs.org&#x2F;news&#x2F;ai-is-destroying-the-university-and-learning-itself&quot;&gt;currentaffairs.org&lt;&#x2F;a&gt; (nice typography, pink accents, clean center column with paragraph indents — unusual, nice heading margins and typography)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;fly.io&#x2F;blog&#x2F;youre-all-nuts&#x2F;&quot;&gt;fly.io&lt;&#x2F;a&gt; (nice callouts, good typography)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.fromjason.xyz&#x2F;p&#x2F;notebook&#x2F;where-have-all-the-websites-gone&#x2F;&quot;&gt;fromjason.xys&lt;&#x2F;a&gt; (very nice single column, nice headings and typography)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;dansinker.com&#x2F;posts&#x2F;2025-05-23-who-cares&#x2F;&quot;&gt;dansinker.com&lt;&#x2F;a&gt; (nice typography, fonts, subscription callout)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;genna.win&#x2F;blog&#x2F;convolution-simd&#x2F;&quot;&gt;genna.win&lt;&#x2F;a&gt; (also nice single column, quite elegant)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;richardcsuwandi.github.io&#x2F;blog&#x2F;2025&#x2F;dgm&#x2F;&quot;&gt;richardcsuwandi.github.io&lt;&#x2F;a&gt; (nice left-side TOC, right-side figure captions)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;noelwelsh.com&#x2F;posts&#x2F;codata-interpreter-terminal&#x2F;&quot;&gt;noelwelsh.com&lt;&#x2F;a&gt; (simple typography, minimal but nice)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;jackhopkins.github.io&#x2F;factorio-learning-environment&#x2F;&quot;&gt;jackhopkins.github.io&lt;&#x2F;a&gt; (wide figures, clean)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;jepsen.io&#x2F;analyses&#x2F;nats-2.12.1&quot;&gt;jepsen.io&lt;&#x2F;a&gt; (very nice heading&#x2F;body typography, good vertical rhythm and article prelude formatting)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;fleetwood.dev&#x2F;posts&#x2F;you-could-have-designed-SOTA-positional-encoding&quot;&gt;fleetwood.dev&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.enbao.me&#x2F;posts&#x2F;tk&quot;&gt;enbao.me&lt;&#x2F;a&gt; (very nice code blocks, callouts)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;hntrbrk.com&#x2F;schrodinger&#x2F;&quot;&gt;hntrbrk.com&lt;&#x2F;a&gt; (nice font, wide hero header)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;coreyjmahler.com&#x2F;the-28-theses-of-the-german-christians&#x2F;&quot;&gt;coreyjmahler.com&lt;&#x2F;a&gt; (good typography)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;michael.stapelberg.ch&#x2F;posts&#x2F;2017-12-11-dell-up3218k&#x2F;&quot;&gt;michael.stapelberg.ch&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;chiraaggohel.com&#x2F;posts&#x2F;llms-eda&#x2F;&quot;&gt;chiraaggohel.com&lt;&#x2F;a&gt; (clean code blocks, nice Q&amp;amp;A blockquotes with colored bars)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.answer.ai&#x2F;posts&#x2F;2025-01-08-devin.html#what-is-devin&quot;&gt;answer.ai&lt;&#x2F;a&gt; (vanilla and clean, nice right-aligned TOC)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;zerocontradictions.net&#x2F;epistemology&#x2F;representationalism&quot;&gt;zerocontradictions.net&lt;&#x2F;a&gt; (argument and rebuttal &#x2F; pro-con blockquotes)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;fetchfox.ai&#x2F;a&#x2F;founding-engineer-compensation&quot;&gt;fetchfox.ai&lt;&#x2F;a&gt; (clean single column, nice fonts)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;blog.joway.io&#x2F;posts&#x2F;golang-rethink-program-in-realworld&#x2F;&quot;&gt;blog.joway.io&lt;&#x2F;a&gt; (I like the header)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;peteris.rocks&#x2F;blog&#x2F;htop&#x2F;&quot;&gt;peteris.rocks&lt;&#x2F;a&gt; (unique, full width code, simple, code oriented)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;neilmadden.blog&#x2F;2025&#x2F;09&#x2F;12&#x2F;rating-26-years-of-java-changes&#x2F;&quot;&gt;Neil Madden’s blog&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Now, here are more center column blogs, but they have wide (often full-width) images &#x2F; galleries.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.physicalintelligence.company&#x2F;research&#x2F;fast&quot;&gt;physicalintelligence.company&lt;&#x2F;a&gt; (exotic styling, full width photo slider is very cool, full width images)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;matthewstrom.com&#x2F;writing&#x2F;ui-density&#x2F;&quot;&gt;matthewstrom.com&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matthewstrom.com&#x2F;writing&#x2F;generating-color-palettes&#x2F;&quot;&gt;another page&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;daniel.lawrence.lu&#x2F;blog&#x2F;y2023m12d15&#x2F;&quot;&gt;daniel.lawrence.lu&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;academic-webpages&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#academic-webpages&quot; aria-label=&quot;Anchor link: academic-webpages&quot;&gt;Academic Webpages&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;tomasp.net&#x2F;coeffects&#x2F;&quot;&gt;tomasp.net&lt;&#x2F;a&gt; (extremely beautiful and impressive)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.mwillsey.com&#x2F;blog&#x2F;rust-intro&quot;&gt;mwillsey.com&lt;&#x2F;a&gt; (Tufte-style)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;johnmacfarlane.net&#x2F;index.html&quot;&gt;johnmacfarlane.net&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;jamesbornholt.com&#x2F;blog&#x2F;z3-iphone&#x2F;&quot;&gt;jamesbornholt.com&lt;&#x2F;a&gt; (the original inspiration behind my last website style)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;pit-claudel.fr&#x2F;clement&#x2F;&quot;&gt;pit-claudel.fr&lt;&#x2F;a&gt; (nice faculty website)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;documentation&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#documentation&quot; aria-label=&quot;Anchor link: documentation&quot;&gt;Documentation&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.unison-lang.org&#x2F;docs&#x2F;the-big-idea&#x2F;&quot;&gt;unison-lang.org&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;Beautiful: sidebar for footnotes on right (I would elide this), menubar on left, centered text, perfect code blocks, beautiful callouts, shallow per-article heading hierarchy (2 levels only), responsiveness is ideal (5 breakpoints)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;snarky.ca&#x2F;how-virtual-environments-work&#x2F;&quot;&gt;Similar website&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;docs.modular.com&#x2F;mojo&#x2F;manual&#x2F;get-started&#x2F;&quot;&gt;docs.modular.com&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;exotic&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#exotic&quot; aria-label=&quot;Anchor link: exotic&quot;&gt;Exotic&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;rsms.me&#x2F;inter&#x2F;&quot;&gt;rsms.me&lt;&#x2F;a&gt; (website showcasing a font with very nice typography)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;gwern.net&#x2F;&quot;&gt;gwern.net&lt;&#x2F;a&gt; (a bit much)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;simonsarris.com&#x2F;&quot;&gt;simonsarris.com&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.makerain.com&#x2F;&quot;&gt;makerain.com&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;social-impact-capital.com&#x2F;&quot;&gt;social-impact-capital.com&lt;&#x2F;a&gt; (very nice without the scroll hijack)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.incommonwith.com&#x2F;collections&#x2F;all-lighting&quot;&gt;In Common With&lt;&#x2F;a&gt; (brilliant light&#x2F;dark toggle for lamps)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;fonts&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#fonts&quot; aria-label=&quot;Anchor link: fonts&quot;&gt;Fonts&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Sans-serif&lt;&#x2F;em&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;B612&quot;&gt;B612&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Atkinson+Hyperlegible+Next&quot;&gt;Atkinson Hyperlegible Next&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Libre+Franklin&#x2F;&quot;&gt;Libre Franklin&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;PT+Sans&quot;&gt;PT Sans&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Inter&quot;&gt;Inter&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Serif&lt;&#x2F;em&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Lora&#x2F;&quot;&gt;Lora&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Markazi+Text&quot;&gt;Markazi Text&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Crimson+Pro&quot;&gt;Crimson Pro&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;PT+Serif&quot;&gt;PT Serif&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Alegreya&#x2F;&quot;&gt;Alegreya&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Quattrocento&quot;&gt;Quattrocento&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Merriweather&quot;&gt;Merriweather&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Spectral&quot;&gt;Spectral&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Monospaced&lt;&#x2F;em&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Fira+Code&quot;&gt;Fira Code&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Source+Code+Pro&quot;&gt;Source Code Pro&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;PT+Mono&quot;&gt;PT Mono&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Small caps&lt;&#x2F;em&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Alegreya+SC&#x2F;&quot;&gt;Alegreya SC&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Mixed Kits&lt;&#x2F;em&gt; (Serif + Sans + Mono): &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;IBM&#x2F;plex&quot;&gt;IBM Plex&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Source+Serif+4&quot;&gt;Source Serif 4&lt;&#x2F;a&gt; + &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Source+Sans+3&quot;&gt;Source Sans 3&lt;&#x2F;a&gt; + &lt;a href=&quot;https:&#x2F;&#x2F;fonts.google.com&#x2F;specimen&#x2F;Source+Code+Pro&quot;&gt;Source Code Pro&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;color-schemes&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#color-schemes&quot; aria-label=&quot;Anchor link: color-schemes&quot;&gt;Color Schemes&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;uchu.style&#x2F;&quot;&gt;uchū&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43072338&quot;&gt;HN link&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tokyo-night&#x2F;tokyo-night-vscode-theme&quot;&gt;Tokyo Night&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.nordtheme.com&#x2F;docs&#x2F;colors-and-palettes&quot;&gt;Nord&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;morhetz&#x2F;gruvbox&quot;&gt;Gruvbox&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rebelot&#x2F;kanagawa.nvim&quot;&gt;Kanagawa&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;catppuccin&#x2F;nvim&quot;&gt;Catppuccin&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;comment-systems&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#comment-systems&quot; aria-label=&quot;Anchor link: comment-systems&quot;&gt;Comment Systems&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;disqus.com&#x2F;&quot;&gt;Disqus&lt;&#x2F;a&gt; (slow, ugly, 3rd party)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;isso-comments.de&#x2F;&quot;&gt;Isso&lt;&#x2F;a&gt; (easy SQLite backend)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;commento.io&#x2F;&quot;&gt;Commento&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;utteranc.es&#x2F;&quot;&gt;utterances&lt;&#x2F;a&gt; (Github issue based comment system - very cool, no special hosting required!) although you give up control of the comment data&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;umputun&#x2F;remark42&quot;&gt;remark42&lt;&#x2F;a&gt; (remark42 seems very nice and easy, anon commenting is first class supported as well as other external logins)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Beyond CUDA Summit</title>
          <pubDate>Mon, 17 Mar 2025 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://vighneshiyer.com/research/events/2025-03-beyond-cuda/</link>
          <guid>https://vighneshiyer.com/research/events/2025-03-beyond-cuda/</guid>
          <description xml:base="https://vighneshiyer.com/research/events/2025-03-beyond-cuda/">&lt;p&gt;It is a dark, dark world.
Mr. Leather-Jacket isn’t relenting.
With his 10x (and growing) profit margin on the hottest commodity known to man, people are screaming for relief.
But no one has stepped up to the plate.&lt;&#x2F;p&gt;
&lt;p&gt;Billions of precious VC capital is lit on fire every month as each AGI optimist tries to outcompete the others.
But no matter your model architecture, training data or post-training, token sampling, or slop generation strategy, you are always at &lt;em&gt;his&lt;&#x2F;em&gt; mercy.&lt;&#x2F;p&gt;
&lt;p&gt;He insists: “The more you &lt;em&gt;buy&lt;&#x2F;em&gt;, the more you &lt;em&gt;save&lt;&#x2F;em&gt;”.
And now he has gone even further: “The more you &lt;em&gt;buy&lt;&#x2F;em&gt;, the more you &lt;em&gt;earn&lt;&#x2F;em&gt;.”
Indeed, we have no choice but to accept his words and buy his overpriced racks.&lt;&#x2F;p&gt;
&lt;p&gt;Still, some arrogant fools think they can build their own hardware and undercut his fat margin.
But after Microsoft &lt;a href=&quot;https:&#x2F;&#x2F;www.techspot.com&#x2F;news&#x2F;108489-microsoft-custom-ai-chip-hits-delays-giving-nvidia.html?utm_source=tldrai&quot;&gt;delayed their custom AI chip&lt;&#x2F;a&gt; once again, he didn’t hesitate to remind the world who’s boss:&lt;&#x2F;p&gt;
&lt;!-- But faith is running out.--&gt;
&lt;blockquote&gt;
&lt;p&gt;“What’s the point of building an ASIC if it’s not going to be better than the one you can buy?”&lt;&#x2F;p&gt;
&lt;p&gt;– Mr. Leather-Jacket&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Foiled again!
Is there truly no escape?&lt;&#x2F;p&gt;
&lt;p&gt;But what if, someone went &lt;em&gt;beyond&lt;&#x2F;em&gt;?
Beyond what, you might ask?
Why, of course, to defeat Team Green, we must go beyond &lt;em&gt;CUDA&lt;&#x2F;em&gt;.
Ah yes, the impenetrable moat of Team Green: the CUDA language, programming model, compiler, a vast set of optimized libraries, and a rock solid runtime (among many other fortifications).&lt;&#x2F;p&gt;
&lt;p&gt;No one has gone &lt;em&gt;beyond&lt;&#x2F;em&gt;, but many fools continue to dare to try.
Today, I had a first-row seat to see a showcase of Team Red’s latest attempt.
Hosted by their own neocloud, &lt;a href=&quot;https:&#x2F;&#x2F;tensorwave.com&#x2F;&quot;&gt;TensorWave&lt;&#x2F;a&gt;, they put together a show with many users and contributors to Team Red’s CUDA killer.&lt;&#x2F;p&gt;
&lt;p&gt;So, how did it go?
Is Mr. Leather-Jacket shaking in his leathers?
Read on to find out.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-did-i-expect&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#what-did-i-expect&quot; aria-label=&quot;Anchor link: what-did-i-expect&quot;&gt;What Did I Expect?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Before the event started, I looked through the &lt;a href=&quot;https:&#x2F;&#x2F;lu.ma&#x2F;beyondcuda25?tk=oFYSJs&quot;&gt;list of speakers and talks&lt;&#x2F;a&gt;.
My expectation was for a highly technical event that would give developers the confidence and knowhow to write cross-platform kernels and make sure ML models and inference servers had first-class support for AMD hardware.&lt;&#x2F;p&gt;
&lt;p&gt;In particular, I was expecting a discussion on these topics:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;An overview of deficiencies and legacy cruft of the CUDA programming model&lt;&#x2F;li&gt;
&lt;li&gt;New abstractions over GPU programming primitives provided by &lt;a href=&quot;https:&#x2F;&#x2F;rocm.docs.amd.com&#x2F;projects&#x2F;HIP&#x2F;en&#x2F;docs-develop&#x2F;what_is_hip.html&quot;&gt;HIP&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;A detailed overview and examples of the ROCm API and programming model and how it differs from CUDA&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;From the Triton speaker&lt;&#x2F;em&gt;: how Triton enables easy portability to AMD GPUs by virtue of their tile abstraction while maintaining peak GPU utilization&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;From Jim Keller and Raja Koduri&lt;&#x2F;em&gt;: rethinking the ideal architecture and microarchitecture for the SIMT programming model from first principles, eliminating the graphics-oriented specializations that exist in consumer NVIDIA GPUs&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;From AMD&lt;&#x2F;em&gt;: ubiquitous support for ROCm across the product lineup, elimination of kernel driver crashes and misbehaviors, demonstration of end-to-end training of large scale models using upstream ML libraries&lt;&#x2F;li&gt;
&lt;li&gt;Live demos, coding walkthroughs, demonstration of push-button &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ggml-org&#x2F;llama.cpp&quot;&gt;llama.cpp&lt;&#x2F;a&gt; &#x2F; &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ollama&#x2F;ollama&quot;&gt;ollama&lt;&#x2F;a&gt; &#x2F; &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vllm-project&#x2F;vllm&quot;&gt;vLLM&lt;&#x2F;a&gt; inference engines running with zero issues on easily available AMD hardware (no Docker, no VMs, no pre-prepared machine, show a setup from scratch)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If my expectations had been met, this would have been a watershed moment in the development of ROCm and AMD GPUs as a first-class hardware target, worthy of billions of external investment.
So what actually happened?&lt;&#x2F;p&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-beyond_cuda_stage.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;beyond_cuda_stage.jpg&quot; style=&quot;flex: 0.753 1 0%&quot; data-pswp-width=&quot;1035&quot; data-pswp-height=&quot;1375&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;beyond_cuda_stage.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;beyond_cuda_stage.9321c5fbb0603432.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;beyond_cuda_stage.0b8a1768418b5a6f.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;beyond_cuda_stage.2403fb654575245a.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;beyond_cuda_stage.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;beyond_cuda_stage_2.jpg&quot; style=&quot;flex: 0.753 1 0%&quot; data-pswp-width=&quot;1035&quot; data-pswp-height=&quot;1375&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;beyond_cuda_stage_2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;beyond_cuda_stage_2.ec128f8aaf7547d3.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;beyond_cuda_stage_2.f4a7d2ce20bf57d3.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;beyond_cuda_stage_2.3e67026106f23215.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;beyond_cuda_stage_2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;mi210_giveaway.jpg&quot; style=&quot;flex: 1.328 1 0%&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;mi210_giveaway.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;mi210_giveaway.beb8c3a91d3d8079.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;mi210_giveaway.2c77615f459017ad.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;mi210_giveaway.4ed9e149fe60e8dc.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;mi210_giveaway.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;tech_roast_coming.jpg&quot; style=&quot;flex: 1.328 1 0%&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;tech_roast_coming.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;tech_roast_coming.2be7a2260b7b7bf3.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;tech_roast_coming.321f269a51bd097a.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;tech_roast_coming.15aa06b2f6913cc0.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;tech_roast_coming.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;Let’s dive into each session.&lt;&#x2F;p&gt;
&lt;!--
Chris lattner, modular people, no talk though... Claim good functionality on AMD, but no demo or numbers
--&gt;
&lt;h2 id=&quot;past-and-future-of-compute&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#past-and-future-of-compute&quot; aria-label=&quot;Anchor link: past-and-future-of-compute&quot;&gt;Past and Future of Compute&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-past_and_future_of_compute.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;past_and_future_of_compute.jpg&quot; style=&quot;flex: 1.328 1 0%&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;past_and_future_of_compute.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;past_and_future_of_compute.a44ecd7e2afcdaf1.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;past_and_future_of_compute.68732d3291f8c025.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;past_and_future_of_compute.dd03da0057c7f99c.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;past_and_future_of_compute.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;past_and_future_of_compute_2.jpg&quot; style=&quot;flex: 1.328 1 0%&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;past_and_future_of_compute_2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;past_and_future_of_compute_2.5368d2b2191e2bf4.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;past_and_future_of_compute_2.0f1abab3eaa5a321.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;past_and_future_of_compute_2.b2d5bc6cd620d89c.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;past_and_future_of_compute_2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;This panel was originally slated to have Jim Keller and Raja Koduri.
Hearing from them was highly anticipated by the crowd.
But Jim claimed he had some personal affairs to attend to and Raja was sick (or vice versa) and neither of them showed up!&lt;&#x2F;p&gt;
&lt;p&gt;Instead, we had Greg from TensorWave (built &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gpuocelot&#x2F;gpuocelot&quot;&gt;GPUOcelot&lt;&#x2F;a&gt;, has worked on DL deployment at Baidu), Davor from &lt;a href=&quot;https:&#x2F;&#x2F;tenstorrent.com&#x2F;en&quot;&gt;Tenstorrent&lt;&#x2F;a&gt;, Micah from &lt;a href=&quot;https:&#x2F;&#x2F;mihira.ai&#x2F;&quot;&gt;Mihira AI&lt;&#x2F;a&gt; (worked at NVIDIA&#x2F;AIT in the past), and Nicholas (the author of &lt;a href=&quot;https:&#x2F;&#x2F;www.cudahandbook.com&#x2F;&quot;&gt;“The CUDA Handbook”&lt;&#x2F;a&gt;) (see the &lt;a href=&quot;https:&#x2F;&#x2F;tensorwave.com&#x2F;blog&#x2F;past-present-future-of-ai-compute&quot;&gt;recording here&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;!--
, seemed like lots of parallel programming models, fpga, etc, but didn&#x27;t turn out that way lol
- Micah, worked at Nvidia and ati, working with raja on his startup
- Nicholas, worked on cuda drivers at nvidia, wrote the cuda handbook
--&gt;
&lt;h3 id=&quot;why-is-cuda-nvidia-s-moat&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#why-is-cuda-nvidia-s-moat&quot; aria-label=&quot;Anchor link: why-is-cuda-nvidia-s-moat&quot;&gt;Why is CUDA NVIDIA’s Moat?&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Greg started by stating that the SW stack is the most important thing to get right; CUTLASS enables 90+% HW utilization for many kernels, and they achieved that through NVIDIA’s investment of engineer hours in intense cache blocking + other optimizations.&lt;&#x2F;p&gt;
&lt;p&gt;Micah followed by saying it’s not just the SW, but keeping the SW in sync with the HW.
You can’t stick CUDA on another HW platform and get the same performance; AMD had its own programming model, but it wasn’t mature and in sync&#x2F;ubiquitous across its HW platforms.&lt;&#x2F;p&gt;
&lt;p&gt;Nicholas pointed out that NVIDIA took a risk to build CUDA in the first place, sacrificing die area for general purpose programmable logic.
CUDA is also highly portable: taking speculative risks in HW (such as power tradeoffs in Pascal and Volta) is enabled by portability.&lt;&#x2F;p&gt;
&lt;p&gt;Davor said that NVIDIA puts lots of effort into benchmarks: MLPerf, HPC applications, showing that CUDA works for many domains.
HW vendors should not try to reinvent the stack - reuse host and device APIs, programming models, device integration (as PCIe cards), just as Tenstorrent does.&lt;&#x2F;p&gt;
&lt;!--
- Greg, multicore to simd compilers is important, sw stack is the most important, look at how Cutlass enables 90 percent utilization for many kernels, labor intensive cache blocking and optimizations, Nvidia invested so much labor into this
- Micah, not just the sw, sw in sync with the hw, can&#x27;t stick cuda on another hw platform and get same performance, amd had its own programming model, but it wasn&#x27;t mature and in sync
- Nicholas, Nvidia took die area risk to build cuda in the first place, in volta needed small risc core too, SW is portable to so many contexts, reason for cuda pervasiveness, Nvidia explored pascal and volta power tradeoffs, hW speculative risks are enabled by portability
- Davor, Nvidia puts effort into benchmarks, ml perf, general purpose hpc technique, showed that it works for many domains, no need to reinvent the stack, reuse host apis, device apis, the concepts, pcie card! Reuse them, tenstorrent does. Good benchnarks, he sw, good general programming model
--&gt;
&lt;h3 id=&quot;the-cuda-language&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-cuda-language&quot; aria-label=&quot;Anchor link: the-cuda-language&quot;&gt;The CUDA Language&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Micah said that CUDA C++ can’t live for much longer; we need new languages as we can’t rely on undergrads knowing C++.
Davor noted that by the end of his grad school life, all parallel programming became CUDA, and you increasingly need the knowledge and ability to inject code across the full stack (raw PTX, CUDA, CUTLASS, cuDNN, Pytorch).
Customers for new HW platforms can’t be expected to rewrite lots of primitives on their own.&lt;&#x2F;p&gt;
&lt;p&gt;Greg mentioned that CUDA is a huge ecosystem including Tensor cores with massive local parallelism, NVLink massive scale out, and structured sparsity &#x2F; MoE support.
NVIDIA has optimized for these applications and features, but there could be an opportunity to optimize for a different application target.
All these pillars of NVIDIA’s architecture are at their limits (supposedly).&lt;&#x2F;p&gt;
&lt;p&gt;Nicholas said that the SOTA is advancing very quickly, and NVIDIA is the &lt;em&gt;best platform&lt;&#x2F;em&gt; for them to evaluate their new operators &#x2F; training techniques.
Davor pointed out that SIMT was the original CUDA programming model - there were no Tensor Cores, no Tensor Memory Accelerators.
NVIDIA is throwing in more stuff and it isn’t even CUDA as it was when Nicholas wrote the book.&lt;&#x2F;p&gt;
&lt;!--
- Micah, Need new languages, can&#x27;t rely on undergrads knowing C++
- Davor, by the end of grad school, all parallel programming became CUDA (not pthreads, ...), need performance and usability, need the full stack (raw CUDA&#x2F;PTX, CUTLASS &#x2F; cuDNN, Pytorch frontend), can&#x27;t make customers rewrite lots of primitives (indeed this is the tenstorrent story)
- Greg, need to have applications beyond CUDA, tensor cores within CUDA - massive local parallelism (1), NVlink massive scale out (2), structured sparsity &#x2F; MoE (3), nvidia has optimized for these apps, but opportunity to optimize for a different application target? all these pillars of nvidia architecture are at their limits. (but this seems wrongheaded lol)
- Nichols, SOTA is advancing so quickly, and NVIDIA is the best platform for them to evaluate their new operators &#x2F; training techniques,
- Davor, SIMT was the original CUDA model, no tensorcores, no ..., no tensor memory accelerators, nvidia is throwing in more stuff, it isn&#x27;t even CUDA as it was when you wrote the book lol
- Greg, CUDA is always adding more stuff
--&gt;
&lt;h3 id=&quot;accelerator-programming-models&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#accelerator-programming-models&quot; aria-label=&quot;Anchor link: accelerator-programming-models&quot;&gt;Accelerator Programming Models&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Someone from the audience asked a question.
There are many companies building AI hardware, but CUDA is tuned to NVIDIA’s HW.
If you try to build another accelerator, it won’t be ideal to compile CUDA to that target.
What are your thoughts on building consensus for the software stack?&lt;&#x2F;p&gt;
&lt;p&gt;Micah said that the AI world likes numpy-based Python, and if we can compile that to your accelerator, there isn’t a CUDA problem anymore.
Old CUDA code has CUDA assumptions and features in it, so we should throw it away and rewrite it (like Tenstorrent has done).
But there is no solution for porting existing CUDA to your accelerator, and he doesn’t know what the bridge is - he can’t imagine someone can develop a robust and performant version of a CUDA bridge.&lt;&#x2F;p&gt;
&lt;p&gt;Davor concurred that if you have Pytorch as input, then we can use vertically stovepiped compilers (from the user’s perspective).
However, if you’re talking about porting cuDNN &#x2F; cuBLAS, that is much harder and will require manual effort.&lt;&#x2F;p&gt;
&lt;p&gt;Greg hoped that PTX would be performance portable, but it actually is not.
Today, PTX is tuned for every device architecture (it would be hard to go from PTX to your accelerator).
Davor concurred that we can’t rely on PTX as the lowest level, and we need to educate developers &#x2F; go back to first principles for a parallel programming model.
He even suggested that we can use Cursor to translate PTX to another low-level IR and this wouldn’t be an issue in the future.&lt;&#x2F;p&gt;
&lt;!--
- Audience Q: many companies building aI hardware, CUDA is tuned to nvidia HW, if you try to build another accel, it will never be good to compile Cuda to that target, what are your thoughts for consensus to the software stack?
  - Mocah, AI world likes numpy based python, then compile to your accelerator, no CUDA problem anymore (lol i doubt this), old CUDA code has CUDA assumptions and features in it, so throw it away and rewrite it (tenstorrent), but no solution for porting existing CUDA to your accelerator, don&#x27;t know what the bridge is - can&#x27;t believe anyone can develop this well
  - Davor, if you have pytorch, you&#x27;re all good, vertically stovepiped compilers exist, then you&#x27;re talking about CUdnn &#x2F; CUTLASS porting, and that is much harder
  - Greg, hope that PTX would have been perf portable, but actually not, today, PTX is tuned for every device architecture (can&#x27;t go from PTX to your accelerator)
  - Davor, can&#x27;t rely on PTX as the lowest level, need to educate developers and go back to first principles on a parallel programming model (i doubt it), leverage cursor to translate ptx into another low level code lol, this won&#x27;t be an issue in the future lol (doubt it)
--&gt;
&lt;h3 id=&quot;commentary&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#commentary&quot; aria-label=&quot;Anchor link: commentary&quot;&gt;Commentary&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;OK after reading all this, you may be wondering, doesn’t all this discussion imply that CUDA can’t be easily beaten?
My feeling was that this panel just reinforced CUDA’s dominance and why it was here to stay.
Some of the suggestions by the panelists, such as using LLMs for writing kernels for new hardware targets, seem too far-fetched.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;crossing-the-cuda-moat&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#crossing-the-cuda-moat&quot; aria-label=&quot;Anchor link: crossing-the-cuda-moat&quot;&gt;Crossing the CUDA Moat&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Onto the next set of presentations.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;mako&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#mako&quot; aria-label=&quot;Anchor link: mako&quot;&gt;Mako&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The first talk was by Waleed Atallah of &lt;a href=&quot;https:&#x2F;&#x2F;mako.dev&#x2F;&quot;&gt;Mako&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;tensorwave.com&#x2F;blog&#x2F;gpu-kernel-optimization-makos-plan-to-outrun-cuda&quot;&gt;see the recording&lt;&#x2F;a&gt;).
His company builds AI-powered (&lt;em&gt;read&lt;&#x2F;em&gt;: LLM-in-a-loop) GPU kernel generation and optimization tools.&lt;&#x2F;p&gt;
&lt;p&gt;His main claim is that with new DNN operators, more GPU kernels need to be written and tuned.
It took 5 years from the original attention paper to get FlashAttention, so there is clearly lots of inefficiency and hard manual work required to produce optimized &#x2F; fused GPU kernels.
They’ve built some kind of “auto-tuned” AI stack where they sweep over the space of &lt;code&gt;torch.compile&lt;&#x2F;code&gt; options and kernel implementations, with a global cache of all optimizations they’ve tried and compiler artifacts.&lt;&#x2F;p&gt;
&lt;p&gt;He mentions that they’re working on LLM powered kernel generation and pointed to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ScalingIntelligence&#x2F;KernelBench&quot;&gt;KernelBench&lt;&#x2F;a&gt; as a good starting point.
There is work to be done on teaching an LLM how to optimally use the hardware, add the right documentation in the context, and use profiling data as feedback for optimization.&lt;&#x2F;p&gt;
&lt;p&gt;This guy and Mako aren’t &lt;em&gt;incompetent&lt;&#x2F;em&gt; per se, but the talk had nothing to do with ROCm or HIP.
The techniques described were also very vague.&lt;&#x2F;p&gt;
&lt;!--
- build AI powered GPU kernel optimization
- they claim more GPU kernels need to be written (new operators...), need to select and tune proper kernel implementations for a given logical kernel
  - Pytorch code -&gt; operator graph -&gt; library call dispatch (kernel fusion is crucial, cuBLAS, custom kernels like flashattention, compiler generated - TorchInductor, AI-generated kernels)
  - Lots of missed opportunity for fusion (RMSNorm, QKV, Attention, Projection, GateUp) (they have an image of profile from together.ai)
    - FlashAttention (came 5 years after original attention paper). this was huge! indeed, chris re is a king.
  - each type of custom quantization algorithm requires their own kernels to use! need kernel engineers! RaZeR is a quantization technique, needs custom kernel to exploit it properly
  - Deepseek MLA (low-rank factorization, Palu), had to write custom kernel for this too
- auto-tuned AI stack
  - so many hyperparameters and kernel selection that torch.compile has to do
  - Dynamo -&gt; AOT autograd -&gt; inductor (typically)
  - FX graph to multiple backends beyond inductor, search over backends and kernel implementations
  - Global cache of all optimizations and compiler artifacts
- automatic kernel generation
  - AI powered coding assistance
  - KernelBench is the first benchmark for LLM for CUDA generation (LMAO, congrats simon!)
  - NVIDIA also did blog post on LLM agent to generate GPU kernels (who did this, Mark ren?)
  - need to teach the language model on how to use the hardware, need to add documentation in context to the LLM lmao
  - need to use profiling feedback from the hardware profiler back to the prompting engine
--&gt;
&lt;h3 id=&quot;lemurian-labs&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#lemurian-labs&quot; aria-label=&quot;Anchor link: lemurian-labs&quot;&gt;Lemurian Labs&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Up next was Jay Dawani from &lt;a href=&quot;https:&#x2F;&#x2F;www.lemurianlabs.com&#x2F;&quot;&gt;Lemurian Labs&lt;&#x2F;a&gt;.
Now this guy was a little weird: he said lots of words with very little meaning (&lt;a href=&quot;https:&#x2F;&#x2F;tensorwave.com&#x2F;blog&#x2F;shoulda-woulda-cuda-breaking-the-gpu-mold-with-jay-dawani-from-lemurian-labs-2&quot;&gt;see the recording&lt;&#x2F;a&gt;).
He blathered on about how they built some &lt;a href=&quot;https:&#x2F;&#x2F;www.lemurianlabs.com&#x2F;technology&quot;&gt;compiler&lt;&#x2F;a&gt; and “dynamic runtime” that can “solve heterogeneity” (Pytorch to CPU, GPU, NPU, … and so forth).
And of course, his magic compiler is able to do &lt;em&gt;something&lt;&#x2F;em&gt; 30-40% faster than CUDA (the something was never specified).&lt;&#x2F;p&gt;
&lt;p&gt;My initial impression from this conversation is that this guy is a smooth talking scam artist.
In the past, he pushed for the design of a custom chip to execute math using a &lt;a href=&quot;https:&#x2F;&#x2F;www.eetimes.com&#x2F;can-dsp-math-help-beat-the-gpu-for-ai&#x2F;&quot;&gt;logarithmic number system&lt;&#x2F;a&gt; over INT8 or the like.
It seems this idea, and the custom silicon, has been abandoned or at least relegated to second priority.&lt;&#x2F;p&gt;
&lt;!--
- used to do robotics and was an early person at openai
- trying to do a chip early in Lemerian&#x27;s history
- he believes we have to do &#x27;accelerated software&#x27; and hw perf scaling will end
- he wants a billion agents deployed, every company builds on their soverign data, exaflop per agent
- don&#x27;t want to break nvidia&#x27;s moat, just want to enable more competitiors in the same market
- need to throw away the notion of kernels in a heterogeneous world, generates kernels for every hardware system, everything else is a scheduling problem, memory access scheduling is important, write from minimizing data movement POV
- we built a dynamic runtime that can solve heterogeneity wtf lol, claim 2x perf benefit over rocm, 30-40% faster than CUDA
- he likes robotics, nvidia&#x27;s chip wasn&#x27;t good enough, designed an o3 like model, can&#x27;t do low latency inference on the edge, GPU not build for dynamicitiy and batch size 1 on the edge. threw out the nvidia stack since nvidia didn&#x27;t want to change, so he wanted to build his own chip
- this guy seems like a scam artist, lots of words, zero meaning
- https:&#x2F;&#x2F;www.lemurianlabs.com&#x2F;technology
- https:&#x2F;&#x2F;www.eetimes.com&#x2F;can-dsp-math-help-beat-the-gpu-for-ai&#x2F;
  - This does seem more promising compared to the talk he gave. But no details on this hardware were provided - perhaps they have tabled the idea of custom silicon.
--&gt;
&lt;h3 id=&quot;spectral-compute&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#spectral-compute&quot; aria-label=&quot;Anchor link: spectral-compute&quot;&gt;Spectral Compute&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Up next was Michael from &lt;a href=&quot;https:&#x2F;&#x2F;spectralcompute.co.uk&#x2F;&quot;&gt;Spectral Compute&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;tensorwave.com&#x2F;blog&#x2F;scale-by-spectral-compute-run-your-cuda-workloads-faster-on-affordable-amd-gpus&quot;&gt;see the recording&lt;&#x2F;a&gt;).
Now, this guy and his team are &lt;em&gt;highly competent&lt;&#x2F;em&gt;.
They built a &lt;a href=&quot;https:&#x2F;&#x2F;docs.scale-lang.com&#x2F;stable&#x2F;&quot;&gt;compiler called SCALE&lt;&#x2F;a&gt; which can compile unmodified CUDA programs for AMD GPU targets.
The work that must have gone into this is insane.&lt;&#x2F;p&gt;
&lt;p&gt;Their compiler is fully compatible with &lt;code&gt;nvcc&lt;&#x2F;code&gt; semantics and quirks, and they actually duplicate the &lt;code&gt;nvcc&lt;&#x2F;code&gt; oddities precisely.
They claim to have 90+% compatibility for math APIs and 70% for runtime APIs, so far.
Another caveat is that CUDA code is often written with the assumption of a warp size of 32, and their compiler will detect if your code is written this way and warn you to make your code generic to accommodate AMD’s 64-thread warp size.
They even support inline PTX in CUDA kernels by translating it to another IR and then re-targeting it for the AMD APIs.&lt;&#x2F;p&gt;
&lt;p&gt;What’s even more impressive is they can outperform HIP (by 2x on average on MI300X) on the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;yuhc&#x2F;gpu-rodinia&quot;&gt;Rodinia benchmark&lt;&#x2F;a&gt; by compiling the CUDA code there out-of-the-box.
This company has done lots of GPU work, including building a &lt;a href=&quot;https:&#x2F;&#x2F;spectralcompute.co.uk&#x2F;regex&quot;&gt;GPU-accelerated regex engine&lt;&#x2F;a&gt;!
This was by far the most compelling talk given in this summit, and I hope they have the strength to continue their work.&lt;&#x2F;p&gt;
&lt;!--
- Competent CUDA compiler&#x2F;translator team
- opencl, hip, ... didn&#x27;t  oneapi, triton, mojo, didn&#x27;t work, no uptake from others
- SCALE: compile a superset of CUDA to AMDGPU machine instructions, no emulation, no overhead
- no need to maintain versions of code for different vendors, support any hardware, write once recompile for any target
- interesting... seems like a hard problem
- fully compatible with nvcc semantics and quirks, can&#x27;t just use clang out of the box (it is too strict vs nvcc)
  - focus is on pragmatism
- 90% core cuda compat of math APIs and 70% of runtime APIs compat
- Wave64: CUDA code implicitly assumes warp size = 32. SCALE detects this and warns about it. AMD has warp size of 64. But this just seems like a hack. They try to emulate 2 32 warps with a 1 64 warp. seems like very fragile. natively exploit warp 64
- inline PTX in CUDA. SCALE can convert to an IR sequence that is generally targetable.
- Extensions: __builtin_provable, address space annotations, constexpr controlled loop_unroll, exceptions
  - eventually will add nvidia support to their compiler
- they do much better than HIP!!! on rodinia benchmarks, outperform HIP with CUDA versions. 2x faster over HIP on average. on Instinct MI300X
- will focus on performance after finishing core compat APIs.
- they have a discord QR code on the final slide lol, join our discord lol
- https:&#x2F;&#x2F;docs.scale-lang.com&#x2F;
- https:&#x2F;&#x2F;spectralcompute.co.uk&#x2F;regex
--&gt;
&lt;h2 id=&quot;pre-training-beyond-cuda&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#pre-training-beyond-cuda&quot; aria-label=&quot;Anchor link: pre-training-beyond-cuda&quot;&gt;Pre-training Beyond CUDA&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;OK so far, you may have noticed that the speakers have only barely mentioned AMD GPUs in their talks.
This trend shall continue.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;zyphra&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#zyphra&quot; aria-label=&quot;Anchor link: zyphra&quot;&gt;Zyphra&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The next talk is from Quentin Anthony, a Model Training Lead at &lt;a href=&quot;https:&#x2F;&#x2F;www.zyphra.com&#x2F;&quot;&gt;Zyphra&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;tensorwave.com&#x2F;blog&#x2F;maximizing-gpu-efficiency-model-sizing-insights-from-zyphras-quentin-anthony&quot;&gt;see the recording&lt;&#x2F;a&gt;).
All I could gather from this talk is that making sure layer dimensions are powers of 2 is quite important for performance.
They wrote a blog post “&lt;a href=&quot;https:&#x2F;&#x2F;www.zyphra.com&#x2F;post&#x2F;the-zyphra-training-cookbook&quot;&gt;The Zyphra Training Cookbook&lt;&#x2F;a&gt;”, which I think is pretty good.&lt;&#x2F;p&gt;
&lt;!--
- Trying to match model architecture with hardware, trying to target snapdragon, gpu, ..., need tuned model architecture for each hw arch
- massive slowdowns when you don&#x27;t use powers of two, efficient sizes are important, small tweaks of existing sizes gives lots of perf improvement for free! (accuracy not affected by such small nudges)
- they have a paper online
- MLPs are the most expensive, we can just make them powers of two lol
- there are throughput cliffs and spikes whenever the layer dimension hits an ideal blocking factor, quite interesting plot
  - need to make sure every size of every matrix is optimal for performance and clean blocking, as many powers of two as possible
- make sure MLPs are large enough to saturate your roofline lol
- nothing beyond cuda about this, i am still very bullish on nvidia
- their paper has some conclusions about &quot;sizing&quot;. vocab size divisible by 64. ... lots of cute rules that are quite simple lol.
- cute plot about inference latency vs model size - there is an anomaly where a larger model infers faster, sizing related. when training a mobile model, need to design it for the mobile SoC.
- treat llms as an hpc problem, small changes in size = throughput benefits, more dtypes&#x2F;model block types paper coming soon
- https:&#x2F;&#x2F;www.zyphra.com&#x2F;post&#x2F;the-zyphra-training-cookbook
  - This is great actually!!! Should add to my ML links document
- this guy was super nervous, not a good presenter lol
--&gt;
&lt;h3 id=&quot;ucla-vast-lab&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#ucla-vast-lab&quot; aria-label=&quot;Anchor link: ucla-vast-lab&quot;&gt;UCLA VAST Lab&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The next speaker was Neha Prakriya from UCLA (&lt;a href=&quot;https:&#x2F;&#x2F;tensorwave.com&#x2F;blog&#x2F;data-efficient-training-on-amd-gpus&quot;&gt;see the recording&lt;&#x2F;a&gt;), from Jason Cong’s lab.
They looked into techniques to minimize the corpus of pretraining text you need using embedding and sampling: sounds sensible.
And then they did some fine-tuning and distillation using their sampling approach with a small 7B Llama and showed it worked well.
They used this technique to develop a HLS coding assistant (it just injects &lt;code&gt;#pragma&lt;&#x2F;code&gt;s in the right places).&lt;&#x2F;p&gt;
&lt;p&gt;OK fine, but what does this have to do with AMD?
Turns out, there are lots of people doing this exact same research, but AMD gave her lab a MI300X, so she did this experiment with one AMD GPU.
All the others use NVIDIA, and I’m sure she wanted to too.&lt;&#x2F;p&gt;
&lt;!--
- Working with Jason Cong, VAST
- AMD GPU training lab, typical memory wall plots, they focus on dataset selection
- humans use spaced repetition, focus on hard topics, so they apply this to pretraining
  - learn: present all the dataset
  - focus: cluster embeddings, and only do a few texts
  - review: try some points you haven&#x27;t focused to make sure there is no forgetting
- they claim they can pretrain a very small llama (less than 7B) with good results vs the provided weights (quite marginal improvement, but about 5-10x less FLOPS needed)
- they claim they used AMD GPUs, interning at AMD this summer
- finetuning using their sampling approach, they do some distillation
- they got a MI300X GPU, thank you AMD lol
  - HLS coding assistant for FPGAs: MVT kernel from Polybench. the LLM injects the correct pragmas lol.
- very poor minion, AMD minion at UCLA, this is just a random academic PhD talk, nothing AMD related. seems like this is a huge field, but she is the only one doing this with AMD GPUs
--&gt;
&lt;h3 id=&quot;rwkv&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#rwkv&quot; aria-label=&quot;Anchor link: rwkv&quot;&gt;RWKV&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Next was Eugene Cheah from &lt;a href=&quot;https:&#x2F;&#x2F;featherless.ai&#x2F;&quot;&gt;featherless.ai&lt;&#x2F;a&gt;.
I’ll admit my knowledge of his &lt;a href=&quot;https:&#x2F;&#x2F;www.rwkv.com&#x2F;&quot;&gt;RWKV&lt;&#x2F;a&gt; is very weak, so I can’t judge, but he claims this model architecture achieves linear attention scaling and no quadratic KV cache growth.
Again, hardly any mention of AMD GPUs, but near the end he rambled on about building a “personal AGI” that can tune its memory in the night and extract your experiences during the day.&lt;&#x2F;p&gt;
&lt;!--
- RWKV OSS project, AI model under the Linux foundation, running on all windows devices today lmao
- transformer context length limitations, larger length slows down generation...
- https:&#x2F;&#x2F;featherless.ai&#x2F; (serverless LLM hosting service)
- RWKV, linear attention scaling, no quadratic KV cache growth,... idk how
- the guy is reading a script... no good, off the rails, people in the crowd are just talking over him now, crowd has gotten out of their seats
- They converted Qwen 2.5 32B, 72B to the RWKV thing, idk he didn&#x27;t really explain what&#x27;s going on, he claims attention isn&#x27;t good and we need recurrent networks again
- they claim model is trained on 60 GPUs (72B model). convert transformer model is converted
  - but it seems like this is using the existing checkpoint
- https:&#x2F;&#x2F;www.rwkv.com&#x2F;
- &quot;we are the only team that knows how to do this&quot;
- there are so many finetunes on hugging face, we want to support them all on featherless
- lots of words, personal AGI, memory tune in the night, extract your experiences during the day
- https:&#x2F;&#x2F;www.convex.dev&#x2F;ai-town
--&gt;
&lt;h3 id=&quot;are-you-bored-yet&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#are-you-bored-yet&quot; aria-label=&quot;Anchor link: are-you-bored-yet&quot;&gt;Are You Bored Yet?&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;So was everyone here.
All the speakers were so dull that the majority of the audience got up and started gabbing at the back near the bar.
The background noise was so loud, the organizers had to keep shutting them up, since you could hardly hear the speakers.&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-dead_crowd.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;dead_crowd.jpg&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;dead_crowd.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h2 id=&quot;post-training-beyond-cuda&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#post-training-beyond-cuda&quot; aria-label=&quot;Anchor link: post-training-beyond-cuda&quot;&gt;Post-Training Beyond CUDA&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Undeterred, we move onto the next session.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;higgsfield-ai&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#higgsfield-ai&quot; aria-label=&quot;Anchor link: higgsfield-ai&quot;&gt;Higgsfield AI&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We heard from a former GenAI engineer at Snapchat, Alex, who now runs &lt;a href=&quot;https:&#x2F;&#x2F;higgsfield.ai&#x2F;&quot;&gt;Higgsfield AI&lt;&#x2F;a&gt;.
This is a video generation tool that pulls from open source video generation models (e.g. &lt;a href=&quot;https:&#x2F;&#x2F;www.wan-ai.org&#x2F;&quot;&gt;Wan&lt;&#x2F;a&gt;) and stitches together an entire pipeline: your product images or ideas, storyboarding, dialogue generation, camera angle and action scripting, and final video generation.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;The world’s first multi-agent AI video creation platform that turns story ideas into ready-to-watch, long-form content.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Alex showed us a plot of ‘pixels generated over time’ and noted that models can generate more and more pixels today, to the point where soon they can generate TV shows and movies.
He says that AI generated videos outperform human-generated videos on social media, and in the future all pixels will be model generated.
“AI generated videos are outperforming ‘conventional’ video on social media” (he actually said this).
What an inspiring future!&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-higgsfield.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;higgsfield.png&quot; data-pswp-width=&quot;3332&quot; data-pswp-height=&quot;1630&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;higgsfield.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;He showed us an ad they generated for Monster Energy, where a Viking climbs a mountain, reaches the top, and drinks a can of Monster.
No cameras, actors, directors, or editors required! So cool!
Of course, it looked absolutely ridiculous.&lt;&#x2F;p&gt;
&lt;p&gt;The next step is of course AI-generated music videos.
He then showed us an example of a rap music video - made in under a day by one person with “studio level quality and camera control and visual elements that typically require teams of 10 people + weeks of work”, “Hollywood level quality”, “you can make the final scene of Game of Thrones yourself” (he actually said this).
TensorWave didn’t share the recording of this talk on Youtube (I wonder why), and I was too busy laughing to take a video, but to get an idea of what the rap video was like, you can &lt;a href=&quot;https:&#x2F;&#x2F;www.chron.com&#x2F;sports&#x2F;article&#x2F;dallas-mavericks-ai-generated-video-anthony-davis-20228149.php&quot;&gt;ask the Mavericks&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;OK but what does this have to do with AMD?
Turns out, he claims, MI300X are 25% faster than “NVIDIA” for some video generation model.
OK fine. Real convincing.&lt;&#x2F;p&gt;
&lt;!--
- Former genAI at snapchat
- This guy is showing pixels generated over time (models can generate more and more pixels lol), this is about generating TV shows and movies
- https:&#x2F;&#x2F;higgsfield.ai&#x2F;
&gt; The world&#x27;s first multi-agent AI video creation platform that turns story ideas into ready-to-watch, long-form content.
- AI generated videos outperform human generated videos on social media, all pixels will be model generated
  - What an inspiring future
- NVIDIA says all pixels will be generated, not renders
- Brand model training -&gt; video idea fed into their platform -&gt; generate a script -&gt; scenes laid out on a storyboard -&gt; scenes refined in AI video editor
  - This is like Icon lol
- LMAO I can&#x27;t stop laughing, this guy is showing a generated ad for Monster energy, a viking climbs a mountain and drinks Monster LMAO too much
- AMD GPUs outperform nvidia GPUs for video generation (they claim) - MI300X are 25% faster than NVIDIA
- The next step: AI for music videos and commercials LMAO LMAO this is crazy, so inspiring
  - He showed an example of an AI music video, it looked so bad, some rap something
  - Can&#x27;t stop laughing, demo was made in under a day by one person, &#x27;studio level quality and camera control and visual elements that typically require teams of 10 people + weeks of work&#x27;
- Prompt -&gt; MoE architecture -&gt; OSS video model stack (Wan, deepseek) -&gt; final video
- Better than Veo2, Minimax for video generation, better camera control that professionals want to have
- &quot;Hollywood level quality&quot;, &quot;make the final scene of game of thrones yourself&quot;
- &quot;AI generated videos are outperforming &#x27;conventional&#x27; video on social media&quot;, ok this sounds great lmao
- This reminds me of the Mavs AI generated jumbotron video - it was *that* tier of garbage
--&gt;
&lt;h3 id=&quot;openbabylon&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#openbabylon&quot; aria-label=&quot;Anchor link: openbabylon&quot;&gt;OpenBabylon&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The insanity continues with Anton and Yurii from &lt;a href=&quot;https:&#x2F;&#x2F;www.openbabylon.com&#x2F;&quot;&gt;OpenBabylon&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-open_babylon.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;open_babylon.jpg&quot; style=&quot;flex: 0.753 1 0%&quot; data-pswp-width=&quot;3072&quot; data-pswp-height=&quot;4080&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;open_babylon.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;open_babylon.bf9fa5d1da0d6aed.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;open_babylon.d72ad0f5003eeb7f.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;open_babylon.2af176140deb73a2.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;open_babylon.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;openbabylon2.jpeg&quot; style=&quot;flex: 1.796 1 0%&quot; data-pswp-width=&quot;2180&quot; data-pswp-height=&quot;1214&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;openbabylon2.jpeg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;openbabylon2.4011da403bbd2b5e.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;openbabylon2.f14766712e556e6e.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;openbabylon2.46a0f064b10b5020.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;openbabylon2.jpeg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;They’ve built some infrastructure for &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2404.09138&quot;&gt;adapting LLMs for underrepresented languages&lt;&#x2F;a&gt;.
That on its own is pretty useful.&lt;&#x2F;p&gt;
&lt;p&gt;But this talk was about the aftermath of the Ukraine War, specifically LLM-based test generation for students in Ukraine for teachers.
It’s quite simple really: there is a war, so let’s fine tune an LLM.
But Ukraine may not have many servers to host a large model, so they chose a small one.&lt;&#x2F;p&gt;
&lt;p&gt;They noticed that models have worse instruction following, and emit more harmful content when using non-English languages, and models encode “Silicon Valley centric biases”.
They fine-tuned Llama 3.1 8B with “domain-specific knowledge” (i.e. Ukrainian history) and Ukrainian optimized tokenization.
And guess what, the teachers accepted 55% of the test questions that came from their model.&lt;&#x2F;p&gt;
&lt;p&gt;But what about AMD?
Well, they used the TensorWave cloud to fine-tune this Llama model.
Nice.&lt;&#x2F;p&gt;
&lt;!--
- infra for model adaptation, AI performance in any language and any domain
- LMAO ukraine war, LLM test generation for students in ukraine, gap in domain knowledge and ukrainian language
- history of ukraine domain specific knowledge lol
- English vs ukrainian tokenization, many more tokens (2x) generated for ukrainian, so double the price for the same message
- Ukrainian use case lol, reduction in prompt&#x2F;instruction following, more harmful content when you use non-English languages lol, silicon valley centric biases LMAO
- Llama 3.1 8B as base, education specific custom metrics focused on factural correctness, cirruculum, cultural relevance, human-in-the-loop evaluation
  - Creating training datasets (multi turn, formal specific instructions), then training
- Does ukraine have enough servers to deploy this model? We chose a small one LMAO
- the audience has completely lost it, just not paying attention, talking over
- tensorwave AMD cloud used for training
  - MI300X has larger context window - 8k base context window as starting point, larger batch sizes, they claim less OOM errors for misc tasks during experimentation
- claim GPT 4o performance at 175x lower cost, made test creation time very fast for teachers, 55% accepted questions from their model 8B size (vs similar on 4o), but 8B base gave 5% and 70B base gave 53%

- this is a parody, there is a war so let&#x27;s fine tune an llm
- roast will be so brutal
--&gt;
&lt;h3 id=&quot;inference-beyond-cuda&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#inference-beyond-cuda&quot; aria-label=&quot;Anchor link: inference-beyond-cuda&quot;&gt;Inference Beyond CUDA&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-inference_beyond_cuda.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;inference_beyond_cuda.jpg&quot; style=&quot;flex: 1.328 1 0%&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;inference_beyond_cuda.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;inference_beyond_cuda.a66d65ca212daefa.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;inference_beyond_cuda.3fddb8b8bf33616b.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;inference_beyond_cuda.bbb581b0451ff331.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;inference_beyond_cuda.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;inference_beyond_cuda_2.jpg&quot; style=&quot;flex: 1.328 1 0%&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;inference_beyond_cuda_2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;inference_beyond_cuda_2.97123df3831cbbf8.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;inference_beyond_cuda_2.fa756e0b8e811e18.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;inference_beyond_cuda_2.8346202f2e95b184.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;inference_beyond_cuda_2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;At this point, the audience is completely restless and is making lots of noise.
The panels have gone on for too long and the event is way behind schedule.
But the most important talk is coming.&lt;&#x2F;p&gt;
&lt;p&gt;Introducing, the panel of Will Beauchamp of &lt;a href=&quot;https:&#x2F;&#x2F;www.chai-research.com&#x2F;&quot;&gt;Chai Research&lt;&#x2F;a&gt;, Kyle Bell of Tensorwave, and Paul Merolla of &lt;a href=&quot;https:&#x2F;&#x2F;mk1.ai&#x2F;&quot;&gt;MK1&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;tensorwave.com&#x2F;blog&#x2F;scaling-ai-inference-on-amd-insights-from-chai-tensorwave-and-mk1&quot;&gt;see the recording&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;Kyle didn’t say much, and Paul focused on his optimized inference service MK1.
He claimed that MI300X + MK1 &amp;gt; H100 and that that MI300X outperforms H100 by 2x in request throughput.
MK1 handles the inference service for Chai, which used to use NVIDIA, but now has supposedly moved to AMD.
MK1 can handle &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;html&#x2F;2412.15605v1&quot;&gt;CAG&lt;&#x2F;a&gt; (cache augmented generation) with MI300X where the higher memory capacity makes this easier.
Paul showed his inference setup has 2.25x faster all-reduce on 2x&#x2F;4x MI300X vs RCCL (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;mk1-project&#x2F;quickreduce&quot;&gt;quickreduce&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;!--, Kyle: precompute system prompt, in-context learning to avoid finetuning
  - With MI300X high memory capacity, we can do this easier: https:&#x2F;&#x2F;arxiv.org&#x2F;html&#x2F;2412.15605v1
--&gt;
&lt;p&gt;And then we have to talk about Will, the founder of Chai Research.&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-chai_ai_staff.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;chai_ai_staff.png&quot; data-pswp-width=&quot;2924&quot; data-pswp-height=&quot;1192&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;chai_ai_staff.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;You see, Chai is a very serious company, with very skilled ex-quant researchers, all from highly ranked universities.
They are paid a &lt;a href=&quot;https:&#x2F;&#x2F;x.com&#x2F;chai_research&#x2F;status&#x2F;1902127443605156198?t=UHr8YzdwGgWPllkjIuTgGA&quot;&gt;hefty sum&lt;&#x2F;a&gt; of $500-750k in cash + equity.
Their product, as Will puts it, is a “consumer platform for AI”.
Now, what does that mean?&lt;&#x2F;p&gt;
&lt;p&gt;His company builds an app: &lt;a href=&quot;https:&#x2F;&#x2F;play.google.com&#x2F;store&#x2F;apps&#x2F;details?id=com.Beauchamp.Messenger.external&amp;amp;hl=en_US&amp;amp;pli=1&quot;&gt;Chai AI&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Our app revolutionizes the way we interact with AI chatbots. With our advanced technology, our chatbots think and reply like real characters, complete with authentic voices. You can choose from a massive selection of characters, each with their own unique voice and personality. Whether you’re chatting with your favorite celebrity, a beloved character from a movie or TV show, or a historical figure, you’ll feel like you’re talking to a real person.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-chai_ai.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;chai_ai.jpg&quot; data-pswp-width=&quot;1179&quot; data-pswp-height=&quot;1250&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;chai_ai.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Prompt extraction from Chai AI. Yes, it’s just an LLM wrapper.&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;So Will, why did you start Chai AI?
You see, “all of AI has been shaped by a small group of people (old men, the West)”, but maybe teenage girls need access too.
He notes, “teenage girls can create better makeup advice vs our AI” and we can incorporate that into the chat generation.
“Teenagers are spending 1.5 hrs a day interacting with AI. This is a monumental shift”.&lt;&#x2F;p&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-chai_ai_flywheel.png&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;chai_ai_flywheel.png&quot; style=&quot;flex: 2.477 1 0%&quot; data-pswp-width=&quot;2368&quot; data-pswp-height=&quot;956&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;chai_ai_flywheel.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;chai_ai_flywheel.562d8ceffdfa6e15.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;chai_ai_flywheel.3223e418033a662a.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;chai_ai_flywheel.fa5cade4a58c7a0b.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;chai_ai_flywheel.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;chai_ai_retention.png&quot; style=&quot;flex: 2.24 1 0%&quot; data-pswp-width=&quot;2164&quot; data-pswp-height=&quot;966&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;chai_ai_retention.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;chai_ai_retention.ac5f0e4e086fc8ef.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;chai_ai_retention.94b013fadbc3846d.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;chai_ai_retention.245499ab4ccf8500.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;chai_ai_retention.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;As you can see from the &lt;a href=&quot;https:&#x2F;&#x2F;www.chai-research.com&#x2F;chai_roadmap_2025.pdf&quot;&gt;Chai Research 2025 Roadmap&lt;&#x2F;a&gt; they’re doing quite a good job with teenager ‘retention’.
These very honorable ex-quants have been spending their days &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2303.06135&quot;&gt;optimizing LLM tokens&lt;&#x2F;a&gt; based on “real-world engagement”.
And what kind of engagement exactly are we talking about here?&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-chai_ai_sob.png&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;chai_ai_sob.png&quot; style=&quot;flex: 0.947 1 0%&quot; data-pswp-width=&quot;1720&quot; data-pswp-height=&quot;1816&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;chai_ai_sob.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;chai_ai_sob.8ffaeea6b55f62a9.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;chai_ai_sob.17e3116c77ade2f9.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;chai_ai_sob.1ab382198c451988.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;chai_ai_sob.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;cai_characters.png&quot; style=&quot;flex: 0.844 1 0%&quot; data-pswp-width=&quot;1490&quot; data-pswp-height=&quot;1766&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;cai_characters.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;cai_characters.dd9e5d6a2a723ed8.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;cai_characters.30ac65ce5600b8d9.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;cai_characters.aa129a15026a6490.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;cai_characters.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;A typical &lt;a href=&quot;https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20250320210143&#x2F;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;ChaiApp&#x2F;comments&#x2F;1jfsqii&#x2F;i_didnt_think_i_would_start_sobbing_over_an_ai&#x2F;&quot;&gt;post&lt;&#x2F;a&gt; on &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;ChaiApp&#x2F;&quot;&gt;&#x2F;r&#x2F;ChaiApp&lt;&#x2F;a&gt; (left) and popular chatbots on &lt;a href=&quot;https:&#x2F;&#x2F;character.ai&#x2F;profile&#x2F;PlayfulDamsel&quot;&gt;c.ai&lt;&#x2F;a&gt; (right)&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;Business is booming of course.
They are very good at using a blend of low-cost LLMs and aggressive sampling with their engagement estimators to shoot 10s of trillions of tokens every month straight into the brains of rotting youth.&lt;&#x2F;p&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Very dark opinion: AI is going to enable a lot of morally questionable people to develop products and services that are very profitable but bad for the customers &lt;a href=&quot;https:&#x2F;&#x2F;t.co&#x2F;uZIgOprlsU&quot;&gt;https:&#x2F;&#x2F;t.co&#x2F;uZIgOprlsU&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;&amp;mdash; PoIiMath (@politicalmath) &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;politicalmath&#x2F;status&#x2F;1903243984769577220?ref_src=twsrc%5Etfw&quot;&gt;March 22, 2025&lt;&#x2F;a&gt;&lt;&#x2F;blockquote&gt;
&lt;script async src=&quot;https:&#x2F;&#x2F;platform.twitter.com&#x2F;widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;&#x2F;script&gt;
&lt;p&gt;“Morally questionable people”?
Who could that be?
All right, that’s enough of Chai.&lt;&#x2F;p&gt;
&lt;!--
- https:&#x2F;&#x2F;www.chai-research.com&#x2F; (look at their people chart, they put everyone&#x27;s college or prior workplace there, Cambridge is seen as elite, huge red flag)
- Panel: Will Beauchamp, Chai Research. Kyle Bell, TensorWave, Paul Merolla, MK1
- We are running very late
- Will: Chai, consumer platform for AI, similar to chatGPT
- Kyle: VP of AI, work on MLops
- Paul: MK1, was on the founding team of Neuralink, same building as OpenAI, they build great infra and on top of that build great research, high performance inference platform, logic trace framework for understanding why AI makes some decision

- Jeff (host): Chai? Why did you start it?
- Chai (user facing service) &lt;&gt; AMD &lt;&gt; MK1 (inference service)
- Will Chai: all of AI has been shaped by a small group of people (old men, the West), but maybe teenage girls need access too LMAO
  - Oh I see Chai is an app. &quot;social AI platform&quot;. they have AI &#x27;creators&#x27; LMAO too much comedy material
  - this guy is insane, we need more teenagers using AI

- Beyond parody

- https:&#x2F;&#x2F;x.com&#x2F;politicalmath&#x2F;status&#x2F;1903243984769577220?t=NHaZQg-NdnZFOI2xIISmzQ

&gt; Very dark opinion: AI is going to enable a lot of morally questionable people to develop products and services that are very profitable but bad for the customers

- https:&#x2F;&#x2F;x.com&#x2F;romanhelmetguy&#x2F;status&#x2F;1917656951174947075

&gt; Zuckerberg explaining how Meta is creating personalized AI friends to supplement your real ones: “The average American has 3 friends, but has demand for 15.”

- https:&#x2F;&#x2F;x.com&#x2F;chai_research&#x2F;status&#x2F;1902127443605156198?t=UHr8YzdwGgWPllkjIuTgGA
- https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;ChaiApp&#x2F;comments&#x2F;1jfsqii&#x2F;i_didnt_think_i_would_start_sobbing_over_an_ai&#x2F;
- https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=oGouyCCY3Do (the Chai guy) (5:51 &quot;teenage girls&quot; can create better makeup advice vs our AI lmao, 7:30 &quot;teenager are spending 1.5 hrs a day interacting with AI. this is a monumental shift&quot;) (teenagers are going to talk more to AI than humans)
- https:&#x2F;&#x2F;character.ai&#x2F;profile&#x2F;PlayfulDamsel (LMAO just look at these &quot;characters&quot;)
--&gt;
&lt;h2 id=&quot;pre-training-beyond-cuda-1&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#pre-training-beyond-cuda-1&quot; aria-label=&quot;Anchor link: pre-training-beyond-cuda-1&quot;&gt;Pre-training Beyond CUDA&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;There was only one talk from Koosh Azimian of &lt;a href=&quot;https:&#x2F;&#x2F;310.ai&#x2F;&quot;&gt;310 AI&lt;&#x2F;a&gt;.
They do some kind of GenAI for biology.
It’s not clear if they develop and train their own models or if they just provide an interface to open-source models.
It seems interesting, but I can’t comment much on their models or service.&lt;&#x2F;p&gt;
&lt;p&gt;The AMD angle is they did some training on 6 nodes of 8x MI250 for 70 days.
They made a claim that their Pytorch models were ported to run on ROCm in one engineer day without any code modifications.&lt;&#x2F;p&gt;
&lt;!--
- https:&#x2F;&#x2F;310.ai&#x2F;
- They do genAI for biology
  - Features a Class II Histidinyl-tRNA synthetase HisRS-like catalytic core domain and a histodine metabolic process
  - Turns it into an image &#x2F; some organic protein. It can design a protein for you. 300+ amino acids, 6000 atoms
- Their model is at early GAN-tier levels (wrt image generation, analogy), lots of work to do to get to protein synthesis quality needed for drug development
- This is a generative version of AlphaFold. Prompt is natural language. Gives a result in animo acid chains.
- Training was done on AMD. 6 nodes of 8x MI250, 70 days training time, 200 sequences &#x2F; second
- Pretty good docs actually: https:&#x2F;&#x2F;310.ai&#x2F;docs&#x2F;folding
- It seems they don&#x27;t build many models themselves, they use existing models from others (and few of their own) and try to mash them together (with a &#x27;copilot&#x27; protein design cockpit)
- They claim that their Pytorch models can work on Rocm in one engineer day, same code no modifications from CUDA to Rocm
--&gt;
&lt;h2 id=&quot;open-source-beyond-cuda&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#open-source-beyond-cuda&quot; aria-label=&quot;Anchor link: open-source-beyond-cuda&quot;&gt;Open Source beyond CUDA&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-open_source_beyond_cuda.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;open_source_beyond_cuda.jpg&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;open_source_beyond_cuda.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;This was a panel &#x2F; presentation with Philippe Tillet (OpenAI &#x2F; Triton), Liz Li (AMD), Greg (TensorWave), and Andrey Cheptsov (dstack).
Philippe says that OpenAI uses Triton for all of their kernels and they kind of work with AMD’s hardware team.
AMD themselves has a Triton team which tries to keep the ROCm backend up to date, optimized, and upstream with good performance on MI300X.
Philippe then says that there are still cases with MI300 is slower than H100, but he’s hoping that within a year or two, they will reach parity.&lt;&#x2F;p&gt;
&lt;p&gt;Liz from AMD says that they’ve been moving their Pytorch CI&#x2F;CD pipeline in-house, continuing to work on OSS models, making sure huggingface models run out of the box on AMD hardware, and trying to get DeepSeek to run reliably on an AMD cluster.&lt;&#x2F;p&gt;
&lt;!--
- Liz works on perf opt
- Phil openai, joined as intern working on triton, full time by 2020 to work on kernels, wrote kernels for gpt4, triton is used for all of their kernels, managing kernels team at openai, write all training kernels and some inference ones, managing compilers group working on triton, working with hardware partners like AMD
- Talk about triton and work with AMD: create a language and compiler for perf portable kernels, write once run anywhere, tricky to find right abstractions, don&#x27;t know how hw will evolve and get all the features in one abstraction that isn&#x27;t device specific, AMD has a triton team that was able to upstream their backend, claims good perf on MI300X
- Phil: there are still cases when MI300 is slower than H100, hoping in a year or two we will get there LMAO
- Liz: what are you seeing inside AMD wrt customers and open source? pytorch ci&#x2F;cd pipeline in house, autotuning libraries, working on OSS models too (dataset + weights open source), trying to make sure huggingface things run cleanly on AMD, trying to get Deepseek to run on AMD
--&gt;
&lt;p&gt;Andrey from &lt;a href=&quot;https:&#x2F;&#x2F;dstack.ai&#x2F;&quot;&gt;dstack&lt;&#x2F;a&gt; gave a talk on his container orchestration platform.
Some Kubernetes-based thing that takes care of storage, data, models, training launches, and so forth.
Overall, nothing that interesting.&lt;&#x2F;p&gt;
&lt;!--
- Andrey dstack: container orchestration for AI teams
- kubernetes something something, their thing takes care of storage, data, models, tries to abstract away kubernetes for container deployment and scaling, wow so useful lmao
- https:&#x2F;&#x2F;dstack.ai&#x2F;
  - their website is much better, why doesn&#x27;t he show this
- similar to skypilot

- you know, disaggregation is interesting. can we make dynamic server provisioning so fast + making the OS boot so fast that we can provision, launch, and get thing running in under a few hundred milliseconds.
--&gt;
&lt;p&gt;Finally, we heard from Gregory of &lt;a href=&quot;https:&#x2F;&#x2F;www.scalarlm.com&#x2F;&quot;&gt;ScalarLM&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;tensorwave.com&#x2F;blog&#x2F;scalarlm-open-source-llm-training-inference-on-amd-rocm&quot;&gt;see recording here&lt;&#x2F;a&gt;).
This appears to be an LLM training and inference software stack that runs out-of-the-box on MI300X.&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-scalar_lm.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;scalar_lm.jpg&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;scalar_lm.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;!--
### Scalar LM - ML stack on TensorWave

- &quot;super alignment&quot;. this is a braindead talk.
- ScalarLLM, ML framework for training and inference, Megatron Core training stack ported to AMD, model library from HugglingFace, and vLLM.
- Single framework that runs out of the box on MI300X
- http:&#x2F;&#x2F;scalarlm.com&#x2F;
--&gt;
&lt;h2 id=&quot;hot-takes-panel&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#hot-takes-panel&quot; aria-label=&quot;Anchor link: hot-takes-panel&quot;&gt;Hot Takes Panel&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-hot_takes_panel.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;hot_takes_panel.jpg&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;hot_takes_panel.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;The panelists were Dylan (Semianalysis), Anush (AMD, VP of AI), Darrick (TensorWave), Mark (Meta&#x2F; GPU mode), and Eugene (RWKV guy).
Now, this was interesting.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;semianalysis-article&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#semianalysis-article&quot; aria-label=&quot;Anchor link: semianalysis-article&quot;&gt;SemiAnalysis’ Article&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Dylan began by talking about his &lt;a href=&quot;https:&#x2F;&#x2F;semianalysis.com&#x2F;2024&#x2F;12&#x2F;22&#x2F;mi300x-vs-h100-vs-h200-benchmark-part-1-training&#x2F;&quot;&gt;article benchmarking MI300X against H100&lt;&#x2F;a&gt;, which was quite unfavorable towards AMD.
He said that when AMD saw this, they got scared.
Lisa called him in a panic.&lt;&#x2F;p&gt;
&lt;p&gt;His team had spent 5 months working with MI300X GPUs on TensorWave to compare against H100.
Getting started with AMD was very rough, scaled dot product attention wouldn’t even compute proper numbers, and there were memory leaks, among many other problems.
AMD’s Anush worked hard to fix all the issues, but there were still many lingering issues, and performance was still bad.
By the end of the 5 month period, performance was still bad, but things kind of “worked”.
Out of the box Pytorch performance was still bad, while NVIDIA gives you near peak performance right away.
NVIDIA has 50k GPUs for internal purposes that they use to keep up library software standards, while AMD has much less pay, custom driver builds for customers, and no unified driver.&lt;&#x2F;p&gt;
&lt;p&gt;Lisa talked to SemiAnalysis the next day for 1.5hrs.
She was very receptive to feedback, and the ROCm user group said AMD engineers were happier that they finally got a Pytorch CI&#x2F;CD pipeline from management.&lt;&#x2F;p&gt;
&lt;p&gt;AMD’s Anush took the brunt of this brutalization.
He’s very active on Twitter, indeed he’s the face of AMD on Twitter.
On stage, Anush was asked what AMD can do to improve.&lt;&#x2F;p&gt;
&lt;p&gt;Anush said that he acknowledges all the problems, that AMD was working on things that weren’t visible to the benchmarker, they had been too focused on hyperscalers, and were just slowly coming down to the long tail of customers.
He knows the custom driver builds were bad, and that AMD is catching up now.
He urged the audience to contact him directly if they encounter any issues.
He says they are trying a first principles approach to everything (supposedly).
After all, the Pytorch CI is up and running, GPU Mode has some AMD GPUs now, and we’re trying to get quantizers to work cleanly (with Mark).
We’re trying hard, stop bullying so much OK?&lt;&#x2F;p&gt;
&lt;p&gt;This part of the panel was just so brutal.
You get the impression that AMD has no chance of being competitive versus NVIDIA.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;tensorwave&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#tensorwave&quot; aria-label=&quot;Anchor link: tensorwave&quot;&gt;TensorWave&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The moderator asked why TensorWave went all in on AMD. Customers ask them for NVIDIA, but they said no. Why?&lt;&#x2F;p&gt;
&lt;p&gt;Darrick said that it was about “alignment of ethos”.
TensorWave started in 2023 during compute shortages, all that existed was NVIDIA’s locked closed ecosystem with minimal open source.
We wanted to solve that problem and provide a viable alternative to the market, so naturally they must use AMD.
AMD was the only HW provider that could check all the boxes: the resources to threaten NVIDIA’s dominance, and public support of open source.&lt;&#x2F;p&gt;
&lt;p&gt;Yeah I’m sure TensorWave is AMD-only because of “ethos”.
Surely it has nothing to do with AMD funding their company.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;open-source&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#open-source&quot; aria-label=&quot;Anchor link: open-source&quot;&gt;Open Source&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The moderator asks for hot takes on open source.
What is the right way to do this?&lt;&#x2F;p&gt;
&lt;p&gt;Mark of GPU Mode says that NVIDIA leverages open source (e.g. Pytorch).
You need the right leverage.
Pytorch makes it easy to safely depend on it for the long term, which encourages contributions.
GPU Mode is just a reading group, and it quickly evolved to host parties, hackathons, sponsorships.
Open source attracts high agency people.&lt;&#x2F;p&gt;
&lt;p&gt;Dylan claimed that NVIDIA only released the Blackwell ISA just a month ago, just to prevent AMD from copying it.
Anush remarked that AMD was a fast follower.
But Mark doesn’t buy Dylan’s argument: after all, people could just fork Pytorch, but they don’t.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;rapid-fire-questions&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#rapid-fire-questions&quot; aria-label=&quot;Anchor link: rapid-fire-questions&quot;&gt;Rapid Fire Questions&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;What if Taiwan is invaded?
&lt;ul&gt;
&lt;li&gt;Dylan: everyone is affected.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;What about non-GPU custom hardware?
&lt;ul&gt;
&lt;li&gt;Anush: AMD has a big footprint from embedded up to cluster, but we don’t have a uniform software stack yet, we are trying. We’re trying to make it possible to run a model on your laptop and port it to Instinct in the cloud without software hacking.&lt;&#x2F;li&gt;
&lt;li&gt;Dylan: all hardware needs a dev ecosystem. Google can dogfood their own ecosystem including OpenXLA. There is no code in Pytorch to run any other accelerator. There are teams of people doing assembly programming per kernel. It’s not going to work for any hardware company that can’t make massive investments.&lt;&#x2F;li&gt;
&lt;li&gt;Darrick: alternative accelerators are not worth offering, and are not good for customers. Only GPUs are flexible enough for new model architectures. Software is also the most mature on GPUs, nothing else.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;What will happen in next 2 years for TensorWave, which customers?
&lt;ul&gt;
&lt;li&gt;Darrick: past year was mostly about inference, software support, but we still need to solve training. This year is about training and scale&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Is there anything beyond backprop with respect to scaling?
&lt;ul&gt;
&lt;li&gt;Anush: at nod.ai we tried a few things. Keep an eye out. We just need to be ready for it.&lt;&#x2F;li&gt;
&lt;li&gt;Eugene: distributed training and optimizers are still a pipe dream, but could happen eventually.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;NVIDIA created a mixed CPU and GPU product. What about AMD?
&lt;ul&gt;
&lt;li&gt;Anush: AMD had silos of hardware excellence (Xilinx for FPGAs, datacnter CPUs). We’re moving up the stack, and AMD has done well at backwards compatibility before, so we will persist that.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Rank the top 5 AI hardware vendors today and in 2030 if you think non-GPU architectures will become dominant
&lt;ul&gt;
&lt;li&gt;Dylan: 1 is NVIDIA, 2 is TPU, 3 is AMD, 4 is Trainium, and 5 is nothing else. Unfortunately Trainium is even below AMD.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;!--
- MI300X was bad on Semianalysis, please share. AMD were very scared when they saw that. Lisa called Dylan with panic.
  - 5 months working on MI300X on TensorWave GPUs. Beginning was very rough, scaled product attention wouldn&#x27;t even compute proper numbers, memory leaks, Anush worked hard to fix all the issues, still many lingering issues, performance was still bad
  - By the end perf was still bad, but things kind of worked, out of the box Pytorch was bad, nvidia gives you near peak perf lmao
  - nvidia has 50k nvidia gpu for internal purposes, amd has less pay, amd has custom builds for customers, no unified driver
  - Lisa talked to us the next day, 1.5hrs, very receptive to feedback, Rocm user group said AMD engineers were happier that they got a pytorch CI&#x2F;CD pipeline
- Anush took the brunt of this. Brutalization. Very active on Twitter. The face of AMD on twitter lol. What can AMD to improve?
  - Feedback was ok - things we were working on that weren&#x27;t top of line, focus had been hyperscalers, slowly coming down to long tail
  - Custom builds were bad, we acknowledge where we are, step 1 to progress, they are catching up now, contact Anush if you have an issue
  - Taking a first principles approach to everything (supposedly). Pytorch CI is up. GPU mode has some amd GPUs, trying to get quantizers working cleanly (with Mark)
  - Trying hard, stop bullying ok
- Jeff: why did we go all in on AMD? customers ask us for nvidia. We said no.
  - Darrick why did we say no? Alignment of ethos. We started in 2023 during compute shortages, nvidia locked closed ecosystem, no open source, wanted to solve that problem, viable alternative to the market is needed, so they have to work on amd compute
  - AMD was the only hw provider that could check all the boxes. The resources to threaten nvidia&#x27;s dominance. AMD has been publicaly supportive of open source.
- Jeff: hot takes on open source. what is the right way to do this?
  - Mark: nvidia leverages open source (e.g. pytorch). you need the right leverage. Pytorch makes it easy to take long term dependency, contributions, safety. gpu mode is just a reading group, and it quickly evolves to host parties, hackathons, sponsorships. open source attracts high agency people.
  - Dylan: Mark should open source software and then change the nvidia to an amd. NVIDIA only released blackwell isa just a month ago. just to prevent AMD to copy it.
  - Anush: AMD was a fast follower.
  - Mark: don&#x27;t buy dylan&#x27;s argument, people could just fork pytorch, but they don&#x27;t.
- Q: what if taiwan is invaded? Dylan: everyone is affected.
- Q: what about non-GPU custom hardware? Anush: AMD has a big footprint from embedded up to cluster, don&#x27;t have a uniform software stack yet, we are trying. Trying to make it possible to run model on your laptop and port it to instinct in cloud without software hacking.
  - Dylan: need a dev ecosystem. Google can dogfood their own ecosystem and openxla. No code in pytorch to run any other accelerator. Teams of people doing asm per kernel. Not going to work for any hardwre company.
  - Darrick: alt accels, not worth offering, not good for customers. only gpus are flexible enough for new model architectures. software is also most mature on GPUs, nothing else.
- Q: what will happen in next 2 years for tensorwave, which customers?
  - Darrick: past year was mostly about inference, software support, need to solve training still, this year is about training and scale
- Q: anything beyond backprop wrt scaling?
  - Anush; at nod.ai we tried a few things. keep an eye out. we just need to be ready for it.
  - Eugene: distirbuted training and optimizers are still a pipe dream, but could happen eventually.
- Q: nvidia mixed cpu and gpu. what about amd?
  - Anush: amd had silos of hardware excellence (xilinx, cpu), moving up the stack, amd has done well at backwards compat before, we will persist that
- Q: rank top 5 ai hardware vendors today and in 2030 if you think non-gpu AI architectures that become dominant
  - Dylan: 1 is nvidia, 2 is tpu, 3 is amd, 4 is trainium, 5 is nothing else. crazy that trainium is below amd.
- Q: what will change in HPC?
  - Darrick: gpu cloud ~=~ HPC, for training. inference cloud is much easier to start.
--&gt;
&lt;h2 id=&quot;final-talk-by-anush-what-s-next&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#final-talk-by-anush-what-s-next&quot; aria-label=&quot;Anchor link: final-talk-by-anush-what-s-next&quot;&gt;Final Talk by Anush - What’s Next&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;And with that, we’re onto our final talk of the day by AMD’s Anush (&lt;a href=&quot;https:&#x2F;&#x2F;tensorwave.com&#x2F;blog&#x2F;the-future-of-rocm-amds-developer-first-bet-for-the-ai-era&quot;&gt;see the recording&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-anush1.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;anush1.jpg&quot; style=&quot;flex: 1.328 1 0%&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;anush1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;anush1.87c88190d1ee766b.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;anush1.9534157213a150e2.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;anush1.9588866f83430031.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;anush1.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;anush2.jpg&quot; style=&quot;flex: 1.328 1 0%&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;anush2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;anush2.346609be21e973b8.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;anush2.167e1bfe18513315.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;anush2.848ec59b75b0a4b1.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;anush2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;anush3.jpg&quot; style=&quot;flex: 1.328 1 0%&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;anush3.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;anush3.7ca1e86d1dcbf502.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;anush3.a1fb0d496814b3b6.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;anush3.9c40865612860913.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;anush3.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;He began with the chant of “developers, developers, developers!”.
Anush pledges to help you get started on ROCm.
Lots of people complain about it, but it will get better!
We added a Pytorch CI just recently; see, we’re trying to improve performance and driver stability.&lt;&#x2F;p&gt;
&lt;!--
- What are we going to do about Rocm? More developers lmao, focus on devs
- Lots of people complain about rocm
- CI lmao
- Rocm performance is improving, improving over H200 lol
--&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-raffle.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;raffle.jpg&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;raffle.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  &lt;figcaption&gt;&lt;p&gt;Dylan and Jeff picking raffle tickets for the MI200 giveaway&lt;&#x2F;p&gt;
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;h3 id=&quot;epilogue&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#epilogue&quot; aria-label=&quot;Anchor link: epilogue&quot;&gt;Epilogue&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;After this event concluded, I saw this &lt;a href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43547309&quot;&gt;Ask HN: Why hasn’t AMD made a viable CUDA alternative?&lt;&#x2F;a&gt;.
I recommend you read that thread.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ROCm&#x2F;ROCm&#x2F;issues&#x2F;1714&quot;&gt;This ticket&lt;&#x2F;a&gt;, finally closed after being open for 2 years, is a pretty good micocosm of this problem:&lt;&#x2F;p&gt;
&lt;p&gt;Users complaining that the docs don’t even specify which cards work.&lt;&#x2F;p&gt;
&lt;p&gt;But it goes deeper - a valid complaint is that “this only supports one or two consumer cards!” A common rebuttal is that it works fine on lots of AMD cards if you set some environment flag to force the GPU architecture selection. The fact that this is so close to working on a wide variety of hardware, and yet doesn’t, is exactly the vibe you get with the whole ecosystem.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;About a week after &lt;em&gt;Beyond CUDA&lt;&#x2F;em&gt;, SemiAnalysis released an article &lt;a href=&quot;https:&#x2F;&#x2F;semianalysis.com&#x2F;2025&#x2F;03&#x2F;26&#x2F;the-gpu-cloud-clustermax-rating-system-how-to-rent-gpus&#x2F;&quot;&gt;“The GPU Cloud ClusterMAX™ Rating System”&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-semianalysis_ranking.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;semianalysis_ranking.png&quot; data-pswp-width=&quot;778&quot; data-pswp-height=&quot;868&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;semianalysis_ranking.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;Sitting as undisputed #1 is NVIDIA’s golden child, CoreWeave, while TensorWave (and any other AMD neocloud) is just a Bronze-tier GPU cloud.
Certainly, we can expect the AMD neoclouds to move up the list, but it will take time.&lt;&#x2F;p&gt;
&lt;p&gt;There have been some more favorable articles from SemiAnalysis recently: &lt;a href=&quot;https:&#x2F;&#x2F;semianalysis.com&#x2F;2025&#x2F;04&#x2F;23&#x2F;amd-2-0-new-sense-of-urgency-mi450x-chance-to-beat-nvidia-nvidias-new-moat&#x2F;&quot;&gt;“AMD 2.0 – New Sense of Urgency”&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;semianalysis.com&#x2F;2025&#x2F;05&#x2F;23&#x2F;amd-vs-nvidia-inference-benchmark-who-wins-performance-cost-per-million-tokens&#x2F;&quot;&gt;AMD vs NVIDIA Inference Benchmark: Who Wins?&lt;&#x2F;a&gt;.
But just as AMD is starting to ramp MI350X, NVIDIA is ramping B200, and there is no comparison - B200 wipes the floor.&lt;&#x2F;p&gt;
&lt;!--
- https:&#x2F;&#x2F;tensorwave.com&#x2F;blog&#x2F;the-future-of-rocm-amds-developer-first-bet-for-the-ai-era
- https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=3sG1_ARTa04
- https:&#x2F;&#x2F;semianalysis.com&#x2F;2025&#x2F;03&#x2F;26&#x2F;the-gpu-cloud-clustermax-rating-system-how-to-rent-gpus&#x2F;
  - CoreWeave (NVIDIA backed) is #1, TensorWave (AMD backed) (and all AMD backed clouds for that matter) are way behind (close to underperform territory).
--&gt;
&lt;h2 id=&quot;comedy-show&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#comedy-show&quot; aria-label=&quot;Anchor link: comedy-show&quot;&gt;Comedy Show&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;But wait, &lt;em&gt;Beyond CUDA&lt;&#x2F;em&gt; isn’t done yet.
You may have thought the comedy show was the actual event, but no, there was an actual comedy show by the 3 &lt;a href=&quot;https:&#x2F;&#x2F;sociallyinept.io&#x2F;&quot;&gt;Tech Roast&lt;&#x2F;a&gt; guys!
You should checkout their &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;c&#x2F;TechRoastShow&quot;&gt;Youtube channel&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-comedy1.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;comedy1.jpg&quot; style=&quot;flex: 1.328 1 0%&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;comedy1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;comedy1.9682c849f2d0f83a.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;comedy1.d6167ac2a60cae13.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;comedy1.23d7d80b261d335d.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;comedy1.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;comedy2.jpg&quot; style=&quot;flex: 0.753 1 0%&quot; data-pswp-width=&quot;3072&quot; data-pswp-height=&quot;4080&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;comedy2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;comedy2.574409cee9da4472.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;comedy2.d8ba8dd7b3d46d2d.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;comedy2.97a74c22cea018ae.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;comedy2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;comedy3.jpg&quot; style=&quot;flex: 1.328 1 0%&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;comedy3.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;comedy3.d553402f86055a0e.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;comedy3.3f625b2fe3319edd.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;comedy3.fa40656e839d48ad.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;comedy3.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;There were too many good moments.
Their very first roast was aimed at the entire audience who “were rejected from or were too poor to afford to attend GTC” 😆.
Well I have to admit, I am too poor to attend GTC.&lt;&#x2F;p&gt;
&lt;p&gt;The comedians moved from ‘founder’ to ‘founder’, and it was hard to believe that these ‘founders’ weren’t audience plants.
From &lt;a href=&quot;https:&#x2F;&#x2F;tixfix.ai&#x2F;&quot;&gt;Tixfix.ai&lt;&#x2F;a&gt; which has nothing to do with AI and who’s entire dev team is located in Nepal, to the founder of &lt;a href=&quot;https:&#x2F;&#x2F;fillers.ai&#x2F;&quot;&gt;Fillers AI&lt;&#x2F;a&gt; who’s a plastic surgeon who uses “AI” to model the impact of lip and cheek fillers.
These are real people!
Reality is beyond any Silicon Valley parody.&lt;&#x2F;p&gt;
&lt;p&gt;In the final segment, the comedians pulled people from the crowd and had them make fools of themselves.
In one act, they forced everyone to line up from least to greatest TC.
Dylan, who was made part of this routine, very slyly walked over to the greatest TC corner 😆.&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-the_girl.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2025-03-beyond-cuda&#x2F;the_girl.jpg&quot; data-pswp-width=&quot;4080&quot; data-pswp-height=&quot;3072&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2025-03-beyond-cuda&amp;#x2F;the_girl.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;At the very end, Dylan and this girl needed to act in a skit to prove they weren’t an AI.
The skit asked for the girl to console a man (played by a comic) who didn’t have enough money to buy NVIDIA GPUs.&lt;&#x2F;p&gt;
&lt;p&gt;Comic: “NVIDIA GPUs aren’t in stock 😭 and I can’t afford them either 😭, is there any alternative? What should I do!? I need some GPUs”.
This poor girl had no clue what GPUs even were, she just went “I’m so sorry, hope you feel better, it’s ok”.
And someone from the audience yelled out “Intel” and she became quite enthusiastic to the sad comic: “OHHH! You can buy Intel GPUs!” 😆&lt;&#x2F;p&gt;
&lt;p&gt;What a fitting end to the night.&lt;&#x2F;p&gt;
&lt;!--This was too good; what a good sport!--&gt;
&lt;!--
- The comedians roasted AMD so badly. These were the people rejected or too poor to afford GTC lmao. True true.
- TixFix.ai, I am a founder, entire team is in Nepal lmao
- Fillers.ai, the girl is responding to clients, recommending doctors, and is herself a plastic surgeon it seems. Her face looked plastic and stiff, she does talk the talk and walk the walk.
- Dylan is a rich boy!
- Random girl who is a &quot;CEO&quot; of a &quot;security company&quot;. Most security problems come from &quot;misconfiguration&quot; and our software solves it! lol
- Girl at the end not being able to say AMD, saying Intel instead
- This isn&#x27;t a parody, these aren&#x27;t audience plants, these are real people! Reality is actually beyond any Silicon Valley parody.
- The audience is filled with ignorant random people who have no clue what&#x27;s going on. But the event was sold as this &#x27;exclusive&#x27; event.
  - I would bet that at least 50% of the people there couldn&#x27;t explain any CUDA code. Lots of people who &#x27;want to be in the scene&#x27;. LMAO what a joke
--&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#conclusion&quot; aria-label=&quot;Anchor link: conclusion&quot;&gt;Conclusion&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;I would like to thank TensorWave for being good sports, not giving up, making the event professional with pro videographers and photographers, and for inviting a bunch of us to this event.
But honestly, I wouldn’t be surprised if this event was shadow funded by NVIDIA.
It just reinforced that AMD is way &lt;em&gt;behind&lt;&#x2F;em&gt; NVIDIA, and that if there is anyone can go &lt;em&gt;beyond CUDA&lt;&#x2F;em&gt;, it is NVIDIA (and indeed, just the next day at GTC, &lt;a href=&quot;https:&#x2F;&#x2F;x.com&#x2F;JokerEph&#x2F;status&#x2F;1902758983116657112&quot;&gt;NVIDIA’s Tile IR&lt;&#x2F;a&gt; was announced).&lt;&#x2F;p&gt;
&lt;!--- this entire event is a circuitous ad for nvidia, completely backfired--&gt;
&lt;!-- Lisa su didn&#x27;t show up, supposed secret speaker--&gt;
&lt;!--
Lots of technical problems, talks running way over 5 minutes
Organizers did the best they could, given this was their first time
Panels got broken into talks as presenters wanted the ability to present their own marketing slides instead of talking out loud during the panel. Not many useful takeaways from the panels.
--&gt;
&lt;!--- lots of videographers and photographers, lots of event staff, lots of AV people--&gt;
</description>
      </item>
      <item>
          <title>Machine Learning for Macro Placement: The Saga</title>
          <pubDate>Sat, 30 Nov 2024 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://vighneshiyer.com/research/eda-cad-vlsi/machine-learning-for-macro-placement-alphachip-the-saga/</link>
          <guid>https://vighneshiyer.com/research/eda-cad-vlsi/machine-learning-for-macro-placement-alphachip-the-saga/</guid>
          <description xml:base="https://vighneshiyer.com/research/eda-cad-vlsi/machine-learning-for-macro-placement-alphachip-the-saga/">&lt;h2 id=&quot;background-on-placement&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#background-on-placement&quot; aria-label=&quot;Anchor link: background-on-placement&quot;&gt;Background on Placement&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Placement is the EDA CAD problem of placing standard cells and hard macros on a rectangular canvas such that the placements are legal and feasible. &lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#1&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;
Traditionally, hard macro placement is done manually, while standard cell placement is done automatically by the PnR (place-and-route) tool.
Hard macros, such as SRAMs and other hard IP blocks (e.g. PLLs, PHYs), need to be placed with knowledge of their pin locations to ensure good routability.
Since the number of hard macros per hierarchical block is usually small (under 100) and their placement is critical, manual placement is seen as reasonable.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;1&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;1&lt;&#x2F;sup&gt;
&lt;p&gt;&lt;em&gt;Legal&lt;&#x2F;em&gt;: macro placements do not violate DRC rules, snap to the placement grid, and do not overlap.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;Feasible&lt;&#x2F;em&gt;: routing is likely to succeed with no shorted wires and a DRC clean layout.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;h3 id=&quot;placement-metrics&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#placement-metrics&quot; aria-label=&quot;Anchor link: placement-metrics&quot;&gt;Placement Metrics&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;strong&gt;Question&lt;&#x2F;strong&gt;: How can we calculate the quality of a proposed macro and standard cell placement?&lt;&#x2F;p&gt;
&lt;p&gt;The most accurate way is to take that placement, run the VLSI flow to completion (clock tree synthesis, routing all nets), and compute the QoR (quality of results) metrics.
The most important metrics are:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Total area (in µm²)&lt;&#x2F;li&gt;
&lt;li&gt;Utilization &#x2F; density (the proportion of standard cells&#x2F;macros vs filler&#x2F;tap&#x2F;cap cells per unit area) (~70% is considered an upper limit)&lt;&#x2F;li&gt;
&lt;li&gt;Number of DRC violations&lt;&#x2F;li&gt;
&lt;li&gt;Number of LVS violations (such as shorts)&lt;&#x2F;li&gt;
&lt;li&gt;TNS (total negative slack), WNS (worst negative slack) (both ideally zero)&lt;&#x2F;li&gt;
&lt;li&gt;Worst case IR drop&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;!-- - Power draw when running dynamic stimulus --&gt;
&lt;!-- - Worst case clock skew &#x2F; jitter --&gt;
&lt;p&gt;Computing these metrics is time consuming, since it often takes 6+ hours to run routing on even small RTL blocks, and many more hours to run DRC, LVS, rail analysis, and power simulation.&lt;&#x2F;p&gt;
&lt;p&gt;Therefore, the placement algorithm cannot run routing on every proposed placement.
Instead, it must compute a &lt;em&gt;proxy metric&lt;&#x2F;em&gt; while running placement, that (hopefully) &lt;em&gt;correlates&lt;&#x2F;em&gt; to the final QoR metrics above.
It is critical that the proxy metric correlates with the final QoR, since it should guide the placement algorithm to an optimal placement.&lt;&#x2F;p&gt;
&lt;p&gt;There are many proxy metrics including:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Estimated wirelength (e.g. HPWL = half-perimeter wirelength)&lt;&#x2F;li&gt;
&lt;li&gt;Estimated congestion (a heuristic of the density of naively overlapping routes)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;placement-algorithms&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#placement-algorithms&quot; aria-label=&quot;Anchor link: placement-algorithms&quot;&gt;Placement Algorithms&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Placement algorithms have been studied for many decades and there are many variations; I don’t know much about the inner workings of these algorithms.
At a high-level the algorithm is split into two parts: coarse placement and detailed placement.&lt;&#x2F;p&gt;
&lt;p&gt;Trying to place each hard macro and standard cell individually is not viable since there are often &lt;em&gt;millions&lt;&#x2F;em&gt; of instances to place.
So, as a first step, the placer will group standard cells, based on a min-cut clustering algorithm, into a small number of clusters (usually around ~1k).
These clusters of stdcells are called soft macros.&lt;&#x2F;p&gt;
&lt;p&gt;After stdcell clustering, the hard macros are placed on manually provided coordinates.
&lt;em&gt;Coarse placement&lt;&#x2F;em&gt; places the soft macros with some allowances for overlaps between them and the hard macros.
Finally, during &lt;em&gt;detailed placement&lt;&#x2F;em&gt;, the clusters of standard cells are exploded, and their placements are legalized (snapped to the placement grid, no overlaps).&lt;&#x2F;p&gt;
&lt;h4 id=&quot;modern-algorithms&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#modern-algorithms&quot; aria-label=&quot;Anchor link: modern-algorithms&quot;&gt;Modern Algorithms&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;Modern EDA CAD placement algorithms have some additional features.
For one, they constantly track the proxy metrics as they make placement decisions to avoid exploring bad placements.
Modern synthesis is placement-aware and will come up with a standard cell floorplan as its deciding what PDK cells to use, considering the timing constraints.&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#2&quot;&gt;2&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;
This floorplan from physical synthesis is fed into the PnR algorithm to seed its initial coarse placements.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;2&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;2&lt;&#x2F;sup&gt;
&lt;p&gt;Synopsys &lt;a href=&quot;https:&#x2F;&#x2F;www.synopsys.com&#x2F;glossary&#x2F;what-is-physical-synthesis.html&quot;&gt;“Physical Synthesis”&lt;&#x2F;a&gt;, Cadence &lt;a href=&quot;https:&#x2F;&#x2F;community.cadence.com&#x2F;cadence_blogs_8&#x2F;b&#x2F;di&#x2F;posts&#x2F;ispatial-flow-in-genus-a-modern-approach-for-physical-synthesis&quot;&gt;Genus iSpatial&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Also, placement isn’t part of a linear (synthesis → placement → routing) flow, rather every algorithm in the flow is aware of the others, and they constantly call back to each other.
For instance, if placement determines that a timing constraint will be violated based on the proposed hardened placement of a few standard cells, it may call back to synthesis to see if those cells can be upsized (or use a different Vt flavor) or if a logic path can be further optimized.
The most modern tools do not even have clean distinctions between the steps of the flow, but rather do RTL → GDS in a big algorithm blob (see &lt;a href=&quot;https:&#x2F;&#x2F;www.synopsys.com&#x2F;implementation-and-signoff&#x2F;physical-implementation&#x2F;fusion-compiler.html&quot;&gt;Synopsys Fusion Compiler&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;h4 id=&quot;mixed-placement-algorithms&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#mixed-placement-algorithms&quot; aria-label=&quot;Anchor link: mixed-placement-algorithms&quot;&gt;Mixed Placement Algorithms&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;Manual macro placement is a bottleneck when iterating on physical design.
Most engineers manually calculate macro (x, y) coordinates by hand, using knowledge about the connections between macros, logic, and pins.
Macro placement is resistant to automation because physical design engineers are quite stubborn and superstitious, notwithstanding the algorithmic complexity.&lt;&#x2F;p&gt;
&lt;p&gt;However, as the number of memory macros per RTL block continues to grow (into the 100s), there has been interest in automating macro placement.
As of 2020, mixed placers, such as &lt;a href=&quot;https:&#x2F;&#x2F;community.cadence.com&#x2F;cadence_blogs_8&#x2F;b&#x2F;breakfast-bytes&#x2F;posts&#x2F;innovus-mixed-placer&quot;&gt;Cadence’s GigaPlace XL (in Innovus)&lt;&#x2F;a&gt; became mature, and are able to &lt;a href=&quot;https:&#x2F;&#x2F;semiwiki.com&#x2F;eda&#x2F;cadence&#x2F;293055-cadence-is-making-floorplanning-easier-by-changing-the-rules&#x2F;&quot;&gt;concurrently place hard macros and standard cells&lt;&#x2F;a&gt; with no designer input.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;The mixed placement technology, GigaPlace XL within the Innovus Implementation System, is an extension of the powerful multi-objective standard cell placement GigaPlace engine. The GigaPlace XL engine can handle the placement of these macros together with the standard cells and I&#x2F;Os in the same step, concurrently. In reality, macro placement is a combinatorial problem, while standard cell placement is a numerical one. The breakthrough achieved by the GigaPlace XL engine inside Innovus Implementation is that, with its solver-based placement technology, it can solve continuous optimization and combinatorial optimization simultaneously.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h2 id=&quot;google-s-claimed-breakthrough&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#google-s-claimed-breakthrough&quot; aria-label=&quot;Anchor link: google-s-claimed-breakthrough&quot;&gt;Google’s Claimed Breakthrough&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;As commercial concurrent macro placers (CMPs) were becoming mature, Google was internally working on solving the macro placement problem via reinforcement learning.
Although they couldn’t compare their RL-based macro placer to Innovus’ GigaPlace XL, they claimed to achieve faster runtime and better final QoR than academic macro placers, commercial auto-floorplanning tools, and, of course, manual macro placement.&lt;&#x2F;p&gt;
&lt;p&gt;Their work was initially posted in April 2020 as an &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2004.10746&quot;&gt;arXiv preprint titled “Chip Placement with Deep Reinforcement Learning”&lt;&#x2F;a&gt;.
It was later published in June 2021 in a &lt;a href=&quot;https:&#x2F;&#x2F;www.nature.com&#x2F;articles&#x2F;s41586-021-03544-w&quot;&gt;Nature article titled “A graph placement methodology for fast chip design”&lt;&#x2F;a&gt;.
The &lt;a href=&quot;https:&#x2F;&#x2F;static-content.springer.com&#x2F;esm&#x2F;art%3A10.1038%2Fs41586-021-03544-w&#x2F;MediaObjects&#x2F;41586_2021_3544_MOESM1_ESM.pdf&quot;&gt;Nature article’s peer review file&lt;&#x2F;a&gt; was also made open in April 2022.
The authors also &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;google-research&#x2F;circuit_training&quot;&gt;open sourced their code&lt;&#x2F;a&gt;, although there may be gaps when it comes to full reproduction.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-proposed-rl-placer&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-proposed-rl-placer&quot; aria-label=&quot;Anchor link: the-proposed-rl-placer&quot;&gt;The Proposed RL Placer&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;They cast the macro placement problem as a Markov decision process (rather than the typical optimization approach).&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;(1) States encode information about the partial placement, including the netlist (adjacency matrix), node features (width, height, type), edge features (number of connections), current node (macro) to be placed, and metadata of the netlist graph (routing allocations, total number of wires, macros and standard cell clusters).&lt;&#x2F;p&gt;
&lt;p&gt;(2) Actions are all possible locations (grid cells of the chip canvas) onto which the current macro can be placed without violating any hard constraints on density or blockages.&lt;&#x2F;p&gt;
&lt;p&gt;(3) State transitions define the probability distribution over next states, given a state and an action.&lt;&#x2F;p&gt;
&lt;p&gt;(4) Rewards are 0 for all actions except the last action, where the reward is a negative weighted sum of proxy wirelength, congestion and density, as described below.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-rl_placement.webp&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;eda-cad-vlsi&#x2F;machine-learning-for-macro-placement-alphachip-the-saga&#x2F;rl_placement.webp&quot; data-pswp-width=&quot;1587&quot; data-pswp-height=&quot;279&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;eda-cad-vlsi&amp;#x2F;machine-learning-for-macro-placement-alphachip-the-saga&amp;#x2F;rl_placement.webp&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;The RL agent receives an embedding of a particular placement and the current macro that the agent should act upon.
The details of the embedding aren’t that clear, but the rough idea is that a GNN can capture relationships between macros and stdcell clusters with regards to connectivity and overlaps, and is able to estimate a proxy metric for the agent to use.
The encoder network is trained on 10000 generated floorplans to predict the proxy metric based on the netlist and placement embedding.
The encoder is replaced with the policy network once it is trained.&lt;&#x2F;p&gt;
&lt;p&gt;The RL agent places macros one by one, and once all are placed, a force-directed method is used to place the standard cell clusters.
A commercial CAD tool seems to take care of the detailed placement and the rest of the flow (including post-place optimization and routing).&lt;&#x2F;p&gt;

&lt;figure class=&quot;popout&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-embedding_and_policy_network.webp&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;eda-cad-vlsi&#x2F;machine-learning-for-macro-placement-alphachip-the-saga&#x2F;embedding_and_policy_network.webp&quot; data-pswp-width=&quot;2118&quot; data-pswp-height=&quot;767&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;eda-cad-vlsi&amp;#x2F;machine-learning-for-macro-placement-alphachip-the-saga&amp;#x2F;embedding_and_policy_network.webp&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;For a given target block they are evaluating, they train the policy network on all the other blocks in their dataset, and then evaluate the policy on the unseen block.
They demonstrate that pre-training on blocks before doing fine-tuning for the unseen block gives better and faster results than training a policy from scratch (indicating that transfer learning is a viable approach for macro placement).
They claim that with a trained policy network, they can place all the macros for a new block in under one second, with decent results.&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-transfer_learning.webp&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;eda-cad-vlsi&#x2F;machine-learning-for-macro-placement-alphachip-the-saga&#x2F;transfer_learning.webp&quot; data-pswp-width=&quot;1045&quot; data-pswp-height=&quot;832&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;eda-cad-vlsi&amp;#x2F;machine-learning-for-macro-placement-alphachip-the-saga&amp;#x2F;transfer_learning.webp&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;They compare their technique against manual macro placement and the academic RePLAce tool and show superior QoR for their placer.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Once each method finishes placing the netlist, the macro locations are frozen and snapped to the power grid. Next, the EDA tool performs standard cell placement. The settings for the EDA tool are drawn directly from our production flow and thus we cannot share all details. The final metrics in Table 1 are reported after PlaceOpt, meaning that global routing has been performed by the EDA tool.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Our method was used in the product tapeout of a recent Google TPU. We fully automated the placement process through PlaceOpt, at which point the design was sent to a third party for post-placement optimization, including detailed routing, clock tree synthesis and post-clock optimization.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Note that they aren’t using the final output from PnR to compute the QoR metrics, rather only looking at post-place optimization metrics (no detailed routing has been performed).
But overall, this was a very promising result that could supplement the upcoming mixed placement algorithms.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;something-s-off&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#something-s-off&quot; aria-label=&quot;Anchor link: something-s-off&quot;&gt;Something’s Off&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;At the time (mid-2021), this paper caused a stir in the EDA CAD community.
Jeff Dean went around &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=EFe7-WZMMhc&quot;&gt;broadcasting&lt;&#x2F;a&gt; the &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=FraDFZ2t__A&quot;&gt;good news&lt;&#x2F;a&gt;: the tagline was “using ML accelerators to run RL to design the next ML accelerators!”.
The authors also went on speaking circuits, delivering seminars at companies, &lt;a href=&quot;https:&#x2F;&#x2F;cs224r.stanford.edu&#x2F;slides&#x2F;cs224r_practical_deep_rl.pdf&quot;&gt;universities&lt;&#x2F;a&gt;, and conferences &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=gSBYf25bWyo&quot;&gt;showcasing their work&lt;&#x2F;a&gt; and the promise of using ML for other difficult combinatorial optimization problems.&lt;&#x2F;p&gt;
&lt;p&gt;There was a lot of skepticism about the reported results.
At the time, the code was closed source, and the only evaluation of RL for placement was on secret TPU blocks.
Furthermore, Nature is a very odd venue to publish such a work: a CAD conference would have been appropriate, but I suspect the reviewers would have grilled the authors too much for their liking.&lt;&#x2F;p&gt;
&lt;p&gt;Even inside Google, there was a rebuttal to this work on RL for placement that was floating around.
The rebuttal was &lt;a href=&quot;http:&#x2F;&#x2F;47.190.89.225&#x2F;pub&#x2F;education&#x2F;MLcontra.pdf&quot;&gt;eventually leaked&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;statmodeling.stat.columbia.edu&#x2F;wp-content&#x2F;uploads&#x2F;2022&#x2F;05&#x2F;MLcontra.pdf&quot;&gt;mirror&lt;&#x2F;a&gt;) (&lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;eda-cad-vlsi&#x2F;machine-learning-for-macro-placement-alphachip-the-saga&#x2F;research&#x2F;eda-cad&#x2F;ml-for-placement&#x2F;MLcontra.pdf&quot;&gt;local mirror&lt;&#x2F;a&gt;) and is titled “Stronger Baselines for Evaluating Deep Reinforcement Learning in Chip Placement”.
The rebuttal was authored by Sungmin Bae, Amir Yazdanbakhsh, MyungChul Kim, Satrajit Chatterjee, Mingyu Woo, and Igor. L. Markov in 2022.
One of the authors (Satrajit Chatterjee) was &lt;a href=&quot;https:&#x2F;&#x2F;www.wired.com&#x2F;story&#x2F;google-brain-ai-researcher-fired-tension&#x2F;&quot;&gt;fired&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;www.nytimes.com&#x2F;2022&#x2F;05&#x2F;02&#x2F;technology&#x2F;google-fires-ai-researchers.html&quot;&gt;by Google&lt;&#x2F;a&gt;, but that’s irrelevant - let’s examine its claims.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-rebuttal&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-rebuttal&quot; aria-label=&quot;Anchor link: the-rebuttal&quot;&gt;The Rebuttal&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The explosion of ML has led to researchers trying to apply it to various domains that they don’t really understand.
In particular, it’s not uncommon for RL papers to compare their methods against non-SOTA baselines, or handicap the baselines in some way that advantage the RL algorithm.
This rebuttal claims that when SOTA mixed-placement algorithms are unconstrained and compared against the RL method, they come out ahead in terms of QoR, runtime, and required compute.&lt;&#x2F;p&gt;
&lt;p&gt;The rebuttal starts off by clarifying the methodology used in the RL paper, pointing out 3 important facts:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;The standard cells are grouped by a clustering algorithm to shrink the graph the GNN has to embed, rather than working with the full netlist directly&lt;&#x2F;li&gt;
&lt;li&gt;The macro placement grid is as fine as 128 X 128, which is rather coarse; a larger grid would make RL harder to train&lt;&#x2F;li&gt;
&lt;li&gt;The macros are placed first, and then the standard cell clusters are placed after the macro placement is fully hardened (the placement of macros and standard cells is not simultaneous)&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-reconstructed_flow.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;eda-cad-vlsi&#x2F;machine-learning-for-macro-placement-alphachip-the-saga&#x2F;reconstructed_flow.png&quot; data-pswp-width=&quot;1801&quot; data-pswp-height=&quot;553&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;eda-cad-vlsi&amp;#x2F;machine-learning-for-macro-placement-alphachip-the-saga&amp;#x2F;reconstructed_flow.png&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;Note these implementation details from the Nature paper:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Given the dimensions of the chip canvas, there are many choices to discretize the two-dimensional canvas into grid cells. This decision affects the difficulty of optimization and the quality of the final placement. We limit the maximum number of rows and columns to 128. We treat choosing the optimal number of rows and columns as a bin-packing problem and rank different combinations of rows and columns by the amount of wasted space that they incur. We use an average of 30 rows and columns in our experiments.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;To prepare the placements for evaluation by a commercial EDA tool, we perform a simple legalization step to snap macros to the nearest power grid. We then fix the macro placements and use an EDA tool to place the standard cells and evaluate the placement.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h4 id=&quot;two-questions-asked-by-the-rebuttal&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#two-questions-asked-by-the-rebuttal&quot; aria-label=&quot;Anchor link: two-questions-asked-by-the-rebuttal&quot;&gt;Two Questions Asked by the Rebuttal&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;In response to only evaluating on Ariane and proprietary TPU blocks no one else has access to:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;How does the novel RL method perform on circuit benchmarks commonly used in academic research to evaluate new placement algorithms?&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;In response to using a limited “place macros, then stdcell clusters” technique in contrast to simultaneous mixed placement:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;How does the two-step methodology proposed in the Nature paper compare to a modern mixed-size methodology in terms of an established objective that (1) the corresponding tools can model and optimize explicitly, and (2) is commonly reported in the literature?&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h4 id=&quot;results&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#results&quot; aria-label=&quot;Anchor link: results&quot;&gt;Results&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;The results are interesting.&lt;&#x2F;p&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-rebuttal_results.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;eda-cad-vlsi&#x2F;machine-learning-for-macro-placement-alphachip-the-saga&#x2F;rebuttal_results.png&quot; data-pswp-width=&quot;1794&quot; data-pswp-height=&quot;1111&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;eda-cad-vlsi&amp;#x2F;machine-learning-for-macro-placement-alphachip-the-saga&amp;#x2F;rebuttal_results.png&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;They suggest that RePLAce was handicapped in the original evaluation, by forcing it to place standard cells only after macro placements were hardened.
The rebuttal also contains evidence that the coarse placement grid used by RL fares poorly when a netlist contains many small macros, while RePLAce still performs appreciably.
Finally, the difference in compute requirements of simulated annealing (SA) or RePLAce vs RL are staggering, with RL using 4-5 orders of magnitude more compute resources.&lt;&#x2F;p&gt;
&lt;p&gt;The proxy metrics (wirelength and congestion) in the results table may not match those reported by a commercial tool (since they were generated with open source tools), but they should correlate directionally.&lt;&#x2F;p&gt;
&lt;p&gt;The rebuttal concludes stating that there is no reason to believe that humans can outperform algorithms in macro placement, so not only are the RL placer results not surprising, but the rebuttal has shown that SOTA academic placers are even better.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;a-lull&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#a-lull&quot; aria-label=&quot;Anchor link: a-lull&quot;&gt;A Lull&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;After the Nature paper and rebuttal were published, there was some minor debate, but no resolution, since Google’s benchmarks and RL agent code were closed source.
There were a few spinoff papers, but nothing substantial.
Since then, the Nature authors published their code on Github, and a team at UCSD began to reproduce the results.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;another-examination-of-rl-for-placement&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#another-examination-of-rl-for-placement&quot; aria-label=&quot;Anchor link: another-examination-of-rl-for-placement&quot;&gt;Another Examination of RL for Placement&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The UCSD reproduction is &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;TILOS-AI-Institute&#x2F;MacroPlacement&quot;&gt;completely open source&lt;&#x2F;a&gt; and is hosted by the TILOS AI Institute.
They have published writeups of many of the implementation details, so I recommend reading through their READMEs detailing the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;TILOS-AI-Institute&#x2F;MacroPlacement&#x2F;blob&#x2F;main&#x2F;Docs&#x2F;CodeElements&#x2F;README.md&quot;&gt;preprocessing steps for the RL agent&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;TILOS-AI-Institute&#x2F;MacroPlacement&#x2F;blob&#x2F;main&#x2F;Docs&#x2F;ProxyCost&#x2F;README.md&quot;&gt;proxy cost computation&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;TILOS-AI-Institute&#x2F;MacroPlacement&#x2F;blob&#x2F;main&#x2F;Docs&#x2F;OurProgress&#x2F;README.md&quot;&gt;progress log&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;TILOS-AI-Institute&#x2F;MacroPlacement&#x2F;blob&#x2F;main&#x2F;CodeElements&#x2F;SimulatedAnnealing&#x2F;README.md&quot;&gt;simulated annealing details&lt;&#x2F;a&gt;.
Overall, this reproduction is of very high quality and probably the best documented EDA CAD evaluation I have ever seen.&lt;&#x2F;p&gt;
&lt;p&gt;The algorithms being compared:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Circuit Training (CT)&lt;&#x2F;strong&gt;: the RL agent described in the Nature paper, based on Google’s open-source implementation&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;The-OpenROAD-Project&#x2F;RePlAce&quot;&gt;&lt;strong&gt;RePLAce&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt;: a CPU-based mixed-placer&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Simulated annealing (SA)&lt;&#x2F;strong&gt;: for macro placement with a similar implementation as the rebuttal paper&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;NVlabs&#x2F;AutoDMP&quot;&gt;&lt;strong&gt;AutoDMP&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt;: a GPU-accelerated mixed placer based on &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;limbo018&#x2F;DREAMPlace&quot;&gt;DREAMPlace&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Concurrent Macro Placement (CMP)&lt;&#x2F;strong&gt;: a proprietary mixed-placer used within a commercial RTL → GDS flow (Cadence Genus iSpatial + Innovus GigaPlace &#x2F; Synopsys DC Topographical physical synthesis)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The PDKs being evaluated:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sky130HD&lt;&#x2F;strong&gt; with a fake 9 metal stack and fake SRAMs from &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;bespoke-silicon-group&#x2F;bsg_fakeram&quot;&gt;bsg_fakeram&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Nangate45&lt;&#x2F;strong&gt; with fake SRAMs from bsg_fakeram&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;ASAP7&lt;&#x2F;strong&gt; with fake SRAMs from FakeRAM 2.0&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;GF12&lt;&#x2F;strong&gt; with PDK SRAMs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The benchmark circuits were: Ariane (small RISC-V core), BlackParrot (quad-core RISC-V SoC), MemPool (256 RISC-V core mesh with large shared L1), a partition of NVDLA, and the IBM placement benchmarks (ICCAD04).&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-ispd-paper&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-ispd-paper&quot; aria-label=&quot;Anchor link: the-ispd-paper&quot;&gt;The ISPD Paper&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;After more than one year of hammering on this reproduction, the UCSD group submitted an &lt;a href=&quot;https:&#x2F;&#x2F;vlsicad.ucsd.edu&#x2F;Publications&#x2F;Conferences&#x2F;396&#x2F;c396.pdf&quot;&gt;invited paper at ISPD 2023&lt;&#x2F;a&gt; and also released the &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2302.11014&quot;&gt;paper on arXiv&lt;&#x2F;a&gt; titled “Assessment of Reinforcement Learning for Macro Placement”.
It was met with praise for its systematic review of the prior work, but also received criticism from the original Nature paper authors, calling out deficiencies in their evaluation of Circuit Training.
But first, let’s examine the key findings from the ISPD paper.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;the-critical-findings&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-critical-findings&quot; aria-label=&quot;Anchor link: the-critical-findings&quot;&gt;The Critical Findings&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;ol&gt;
&lt;li&gt;The proxy cost computed after placement of macros and standard cell clusters has a very poor correlation to &lt;strong&gt;both&lt;&#x2F;strong&gt; the post-place (postPlaceOpt) metrics as well as the golden post-route (postRouteOpt) metrics from the CAD tools.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;See the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;TILOS-AI-Institute&#x2F;MacroPlacement&#x2F;blob&#x2F;main&#x2F;Docs&#x2F;OurProgress&#x2F;README.md#Question10&quot;&gt;detailed results here for Ariane133&lt;&#x2F;a&gt;.
While wirelength and worst slack have slightly positive correlations to the proxy cost, standard cell area, power, and TNS are not correlated at all.
This calls into question the construction of the proxy metric, and whether a better one (similar to the one presumably used internally by CMP) could make SA&#x2F;CT stronger.
This also calls into question the comparison of placement algorithms using postPlaceOpt proxy cost by prior works (the Nature paper, its rebuttal, and many placement algorithm papers).&lt;&#x2F;p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;The data from the rebuttal paper is accurate. SA&#x2F;RePLAce &lt;em&gt;does&lt;&#x2F;em&gt; consistently outperform CT on the IBM benchmarks with significantly less compute cost. However, the results on the modern benchmarks are more mixed, with different algorithms being more optimal on particular metrics for a particular design (but CT is still worse than the best alternative in nearly all cases).&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;blockquote&gt;
&lt;p&gt;Comparison of CT with SA and RePlAce. Table 6 presents results for CT, SA and RePlAce on ICCAD04 testcases. We observe the following. (i) In terms of proxy cost, RePlAce is always better than SA, and SA is always better than CT. (ii) In terms of HPWL, RePlAce is better than SA for 15 of 17 testcases, and SA is better than CT in 16 of 17 testcases.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;The choice of PDK doesn’t affect the performance of placement algorithms as much as the design type.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Looking at the results table, for Nangate45, CMP is the clear winner for most designs and metrics, but for GF12, CMP and AutoDMP are both competitive.
However, looking at the big picture, it is clear that the &lt;em&gt;complexity&lt;&#x2F;em&gt; of the design (in terms of number of macros, macro variety, and number of stdcells) affects the runtime and QoR for the algorithm rather than the choice of PDK.&lt;&#x2F;p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;AutoDMP and CMP consistently outperform Circuit Training.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Again, look at the results table, and it is clear that these algorithms perform better.
It can be argued that CMP and AutoDMP have 3 years of development ahead of CT, but the large differences in compute cost and runtime would make it hard to argue that CT could ever catch up in efficiency, let alone QoR.
The results in this paper are reasonable - there is no clear winner: humans can beat algorithms in particular cases.
Additionally, it makes sense that CMP would perform the best (being the SOTA in commercial fully-integrated CAD tools).
The Nature paper was suspect since it claimed an absolute advantage in all cases for CT over humans, SA, or RePLAce, and didn’t benchmark against any commercial mixed-placement tools.&lt;&#x2F;p&gt;

&lt;figure class=&quot;popout&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-placement_comparison.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;eda-cad-vlsi&#x2F;machine-learning-for-macro-placement-alphachip-the-saga&#x2F;placement_comparison.png&quot; data-pswp-width=&quot;2860&quot; data-pswp-height=&quot;618&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;eda-cad-vlsi&amp;#x2F;machine-learning-for-macro-placement-alphachip-the-saga&amp;#x2F;placement_comparison.png&quot; class=&quot;padding&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;This image is very telling: notice how the results from CT and SA are quite similar, but are distinct from the CMP and AutoDMP placements?
This seems to suggest that CT is refining an initial placement in a similar manner to SA, rather than truly exploring the entire placement space like the other two algorithms.&lt;&#x2F;p&gt;
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;The initial placement of stdcells&#x2F;macros makes a big difference in CT’s performance. CT seems to be bootstrapped by physical synthesis, rather than learning placement strategies based on the stdcell&#x2F;macro graph embedding.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;blockquote&gt;
&lt;p&gt;CT is helped by placement from physical synthesis. As noted in Sec. 3.1, CT relies on placement locations in its input, though this is not mentioned in Nature. To test the effect of initial placement on the CT outcome, we generate three “vacuous” input placements for the Ariane-NG45 design. Cases (1), (2) and (3) respectively have all standard cells and macros located at (600, 600), at the lower-left corner (0, 0), and at the upper-right corner (1347.1, 1346.8). For each case, we generate the clustered netlist, run CT and collect Table 1 metrics, following the evaluation flow of Sec. 4.2. We find that placement information in the input provides significant benefit to CT: given locations from Cadence CMP and Genus iSpatial (Steps 2 and 3 of Figure 2), CT’s solution has rWL that is 10.32%, 7.24% and 8.17% less than in Cases (1), (2) and (3), respectively&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;This is a substantial point.
In the original Nature paper, the authors commented:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;We use a commercial tool to synthesize the netlist from RTL. Synthesis is physical-aware, in the sense that it has access to the floorplan size and the locations of the input&#x2F;output pins, which were informed by inter- and intra-block-level information.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;But they never said that the preprocessing steps of CT used the rough placement information from physical synthesis.&lt;&#x2F;p&gt;
&lt;ol start=&quot;6&quot;&gt;
&lt;li&gt;Google didn’t really open source everything needed for a full reproduction. The UCSD team had to reverse engineer several pieces of the flow and confirm with Google that their implementation was consistent with theirs.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;blockquote&gt;
&lt;p&gt;We now explain two key “blackbox” elements of CT: force-directed placement and proxy cost calculation. Neither is clearly documented in Nature, nor visible in CT. These examples are representative of the reverse-engineering needed to understand and reimplement methods that to date are visible only through APIs in the plc_client of [23].&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h2 id=&quot;one-more-rebuttal&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#one-more-rebuttal&quot; aria-label=&quot;Anchor link: one-more-rebuttal&quot;&gt;One More Rebuttal&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The original Nature authors weren’t too happy with the ISPD paper.
A spate of articles describing the debate were published.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;cacm.acm.org&#x2F;news&#x2F;271439-more-details-but-not-enough&#x2F;fulltext&quot;&gt;More Details, but Not Enough - Communications of the ACM&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.theregister.com&#x2F;2023&#x2F;03&#x2F;27&#x2F;google_ai_chip_paper_nature&#x2F;&quot;&gt;Google’s claims of super-human AI chip layout back under the microscope - The Register&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;spectrum.ieee.org&#x2F;chip-design-controversy&quot;&gt;Ending an Ugly Chapter in Chip Design - IEEE Spectrum&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The Nature authors published their own rebuttal of the ISPD paper titled &lt;a href=&quot;https:&#x2F;&#x2F;drive.google.com&#x2F;file&#x2F;d&#x2F;1jWUw6rUDcc7fuHu_iGeVDUkBxNJjhHdd&#x2F;view&quot;&gt;“Statement on Reinforcement Learning for Chip Design”&lt;&#x2F;a&gt;.
These are the key points and the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;TILOS-AI-Institute&#x2F;MacroPlacement#new-faqs-after-the-release-of-our-ispd-2023-paper-here-and-on-arxiv&quot;&gt;responses from the UCSD group&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;“The ISPD paper performed no pre-training for our method, Circuit Training (CT), meaning that the RL agent was reset each time it saw a new chip.”&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;blockquote&gt;
&lt;p&gt;We did not use pre-trained models in our study. Note that it is impossible to replicate the pre-training described in the Nature paper, for two reasons: (1) the data set used for pre-training consists of 20 TPU blocks which are not open-sourced, and (2) the code for pre-training is not released either.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;In the Circuit Training repo, Google engineers write: “Our results training from scratch are comparable or better than the reported results in the paper (on page 22) which used fine-tuning from a pre-trained model. We are training from scratch because we cannot publish the pre-trained model at this time and the released code can provide comparable results.” (link)&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;In my opinion, this complaint has been properly refuted by the UCSD team.
They have provided sufficient evidence that “pre-training” mostly helps with runtime of macro placement rather than affecting the final QoR it is capable of.&lt;&#x2F;p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;“Far fewer compute resources were applied to training CT than described in our Nature paper (half the number of GPUs and an order of magnitude fewer RL environments).”&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;blockquote&gt;
&lt;p&gt;We use two collect servers each running 13 collect jobs, i.e., a total of 26 collect jobs are used for data collection. By contrast, the Nature authors run 512 collect jobs for data collection. The number of collect servers used to run 512 collect jobs is not clear from the description given in the Nature paper. We expect our runtimes to be higher than what Nature reports – and we account for this in our experiments.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Again, the UCSD team provides sufficient justification for their evaluation, substituting more compute time for fewer resources.
A case can be made that the RL model wasn’t given enough time to converge, but this is just pedantic at this point: RL is already way more cost intensive than the other algorithms and performs worse.&lt;&#x2F;p&gt;
&lt;p&gt;Even if there is a runtime benefit when fine-tuning a pre-trained model, the Nature authors still claim 6 hours of fine-tuning is required before the proxy cost is comparable to a from-scratch trained model for 24 hours.
The runtime of CT without pre-training already reaches 30-80 hours on 8 GPUs, while CMP and AutoDMP take less than 2 hours in the largest benchmark with far fewer compute resources.&lt;&#x2F;p&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;“The ISPD paper focuses on the use of the initial placement from physical synthesis to cluster standard cells, but this is of no practical concern.”&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;The UCSD team clearly showed that initial placement of standard cell clusters provides a big benefit to CT, but that same benefit is afforded to the other placement algorithms.
Perhaps, this isn’t as big a deal as the UCSD team makes it out to be.&lt;&#x2F;p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;“Although the study is entitled “Assessment of Reinforcement Learning for Macro Placement”, it does not compare against or even acknowledge any of the recent RL methods building on our work (link). Instead, the ISPD paper compares CT against AutoDMP (ISPD 2023) and (presumably) the latest version of CMP, a black-box, closed-source commercial autoplacer. Neither of these methods were available when we released our paper in 2020.”&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;This is fair point, however, SA and RePLAce do still beat CT on certain metrics and benchmarks.
The results are a wash, rather than a clear win for CT like the Nature authors suggest.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-next&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#what-s-next&quot; aria-label=&quot;Anchor link: what-s-next&quot;&gt;What’s Next&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This debate is probably over for now.
The Nature authors have abandoned EDA CAD research, and the UCSD team seems to be taking a victory lap (even though both parties are gracious in “victory” and “defeat”).
I would say that Alberto Sangiovanni-Vincentelli (a father of EDA CAD) and Anirudh Devgan (CEO of Cadence) have been vindicated to some extent, in relying on fundamental algorithmic and solver-based approaches to CAD problems rather than magic ML blackboxes.&lt;&#x2F;p&gt;
&lt;p&gt;Another interesting tidbit is that the man who wrote the original rebuttal to the Nature paper claims that &lt;a href=&quot;https:&#x2F;&#x2F;www.theregister.com&#x2F;2023&#x2F;03&#x2F;27&#x2F;google_ai_chip_paper_nature&#x2F;&quot;&gt;Google tried to woo Synopsys with the RL placer work to secure a cloud contract&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;In his complaint against Google, which was amended last month, Chatterjee’s lawyers claimed the web giant was thinking about commercializing its AI-based floorplan-generating software with “Company S” while it was negotiating a Google Cloud deal reportedly worth $120 million with S at the time. Chatterjee claimed Google championed the floorplan paper to help convince Company S to get onboard with this significant commercial pact.&lt;&#x2F;p&gt;
&lt;p&gt;“The study was done in part as a first step toward potential commercialization with [Company S] (and conducted with resources from [Company S]). Since it was done in the context of a large potential Cloud deal, it would have been unethical to imply that we had revolutionary technology when our tests showed otherwise,” Chatterjee wrote in an email to Google’s CEO Sundar Pichai, Vice President and Engineering Fellow Jay Yagnik, and VP of Google Research Rahul Sukthankar, which was disclosed as part of the lawsuit.&lt;&#x2F;p&gt;
&lt;p&gt;His court filings accused Google of “overstating” its study’s results, and “deliberately withholding material information from Company S to induce it to sign a cloud computing deal,” effectively wooing the other business using what he saw as questionable technology.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;The moral of the story is to always be skeptical of magical results in CAD, and to learn the fundamental algorithms at work rather than generating tons of data to train some model.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;p-s-august-2023&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#p-s-august-2023&quot; aria-label=&quot;Anchor link: p-s-august-2023&quot;&gt;P.S. (August 2023)&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;One more article was published by Dr. Igor Markov in August 2023 which runs through the ML for placement saga and provides an accurate critique of the RL placement algorithm: &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2306.09633&quot;&gt;The False Dawn: Reevaluating Google’s Reinforcement Learning for Chip Macro Placement&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;p-p-s-september-2023&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#p-p-s-september-2023&quot; aria-label=&quot;Anchor link: p-p-s-september-2023&quot;&gt;P.P.S. (September 2023)&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;As of September 2023, an editor’s note was placed on the &lt;a href=&quot;https:&#x2F;&#x2F;www.nature.com&#x2F;articles&#x2F;s41586-021-03544-w&quot;&gt;original Nature paper&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;20 September 2023 Editor’s Note: Readers are alerted that the performance claims in this article have been called into question. The Editors are investigating these concerns, and, if appropriate, editorial action will be taken once this investigation is complete.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;!--Hmm, an investigation?--&gt;
&lt;p&gt;Also Andrew Kahng’s article in Nature’s “News and Views” (&lt;a href=&quot;https:&#x2F;&#x2F;www.nature.com&#x2F;articles&#x2F;d41586-021-01515-9&quot;&gt;AI system outperforms humans in designing floorplans for microchips&lt;&#x2F;a&gt;) on the original Nature paper was retracted on September 21, 2023.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Retraction 21 September 2023: The author has retracted this article because new information about the methods used in the reported paper (A. Mirhoseini et al. Nature 594, 207–212; 2021) has become available since publication, and that has changed the author’s assessment of, and conclusions about, the paper’s contributions. Nature is also doing an independent investigation of the performance claims in the paper.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Igor Markov, the author of one of the rebuttal papers, presented a talk to the &lt;a href=&quot;https:&#x2F;&#x2F;ucb-cs294-256.github.io&#x2F;&quot;&gt;Fall 2023 CS 294 class at UC Berkeley (ML for Hardware Design)&lt;&#x2F;a&gt;.
See his &lt;a href=&quot;https:&#x2F;&#x2F;drive.google.com&#x2F;file&#x2F;d&#x2F;1bhz0LfBvzwA7UaALZxCcNk3d5bFxmimc&#x2F;view&quot;&gt;review of the original Nature paper&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;eda-cad-vlsi&#x2F;machine-learning-for-macro-placement-alphachip-the-saga&#x2F;research&#x2F;eda-cad&#x2F;ml-for-placement&#x2F;Igor_Markov-RL_for_MP_Review_Slides.pdf&quot;&gt;local mirror&lt;&#x2F;a&gt;) and &lt;a href=&quot;https:&#x2F;&#x2F;drive.google.com&#x2F;file&#x2F;d&#x2F;1krf1w-pNV5BfO9S2OrlVy6Dcr6cPzOzC&#x2F;view&quot;&gt;his rebuttal&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;eda-cad-vlsi&#x2F;machine-learning-for-macro-placement-alphachip-the-saga&#x2F;research&#x2F;eda-cad&#x2F;ml-for-placement&#x2F;Igor_Markov-False_Dawn_Slides.pdf&quot;&gt;local mirror&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;h3 id=&quot;retrospective-july-2024&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#retrospective-july-2024&quot; aria-label=&quot;Anchor link: retrospective-july-2024&quot;&gt;Retrospective (July 2024)&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;So the Nature paper still has the same editor’s note on it.
It is unknown what investigation the Nature editors are performing and what the outcome so far is.&lt;&#x2F;p&gt;
&lt;!--At this point, it is unlikely that there will ever be an outcome of their &#x27;investigation&#x27;.--&gt;
&lt;p&gt;I was also reading the &lt;a href=&quot;https:&#x2F;&#x2F;www.nytimes.com&#x2F;2022&#x2F;05&#x2F;02&#x2F;technology&#x2F;google-fires-ai-researchers.html&quot;&gt;NYT article about Dr. Chatterjee’s firing from Google again&lt;&#x2F;a&gt; and a few things came to mind.
Firstly, the &lt;!--ridiculous--&gt;claims made by Google.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;“We thoroughly vetted the original Nature paper and stand by the peer-reviewed results,” Zoubin Ghahramani, a vice president at Google Research, said in a written statement. “We also rigorously investigated the technical claims of a subsequent submission, and it did not meet our standards for publication.”&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;It seems unlikely Google performed a rigorous internal evaluation of the Nature paper against the claims of the Stronger Baselines rebuttal.
The rebuttal is written in a clearer style and contains plenty of hard evidence compared to the Nature paper.
It seems more likely that the decision to not allow publication of the rebuttal was due to political pressures within Google to suppress evidence against the “AI for AI chips” fanfare.&lt;&#x2F;p&gt;
&lt;!--
Oh really?
What a thorough investigation they did.
And what a coincidence that the preprint that dumped cold water on the &#x27;AI for AI chips&#x27; was &#x27;not good enough for publication&#x27;.
If you actually look at Dr. Chatterjee&#x27;s paper, you will find that it is written in a much clearer style and contains plenty of hard evidence compared to the &#x27;Nature paper&#x27;.
--&gt;
&lt;blockquote&gt;
&lt;p&gt;Ms. Goldie said that Dr. Chatterjee had asked to manage their project in 2019 and that they had declined. When he later criticized it, she said, he could not substantiate his complaints and ignored the evidence they presented in response.&lt;&#x2F;p&gt;
&lt;p&gt;“Sat Chatterjee has waged a campaign of misinformation against me and Azalia for over two years now,” Ms. Goldie said in a written statement.&lt;&#x2F;p&gt;
&lt;p&gt;She said the work had been peer-reviewed by Nature, one of the most prestigious scientific publications. And she added that Google had used their methods to build new chips and that these chips were currently used in Google’s computer data centers.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;The rebuttal authors never made any public personal attacks against the two leading Nature authors (Anna and Azalia).
The Nature authors haven’t presented a coherent rebuttal to the evidence provided by the Stronger Baselines or ISPD 2023 paper.
Claiming that, since the work was reviewed by Nature, it is beyond reproach, doesn’t make sense since Nature isn’t even a suitable venue for such work.
Even if Google uses RL for macro placement for their chips, it doesn’t say anything about whether the approach is superior to other mixed-placers.&lt;&#x2F;p&gt;
&lt;!--
Ah yes, he &quot;waged a campaign of misinformation&quot; against these poor innocent ML pushers.
I was looking at [Dr. Chatterjee&#x27;s website](https:&#x2F;&#x2F;blif.org&#x2F;~satrajit&#x2F;).
Unlike the applied ML people who want to &quot;learn&quot; surrogates for placement algorithms, he is a serious person investigating *fundamental* questions about DNNs.
Unlike the people who led the Nature paper effort, he is actually knowledgable in state-of-the-art VLSI CAD algorithms.
And finally, Dr. Chatterjee is one of us (Berkeley PhD with Brayton and Mishchenko).
I think it is obvious who is in the right here.
--&gt;
&lt;blockquote&gt;
&lt;p&gt;While the debate about that research continued, Google pitched another paper to Nature. For the submission, Google made some adjustments to the earlier paper and removed the names of two authors, who had worked closely with Dr. Chatterjee and had also expressed concerns about the paper’s main claims, the people said.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;This is something interesting I had not noticed before.
There are two people (Sungmin Bae, Anand Babu) whose names appear on the arXiv preprint, but not on the Nature paper.
These are clearly two people of high integrity and intelligence.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-few-more-things&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#a-few-more-things&quot; aria-label=&quot;Anchor link: a-few-more-things&quot;&gt;A Few More Things&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;alphachip&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#alphachip&quot; aria-label=&quot;Anchor link: alphachip&quot;&gt;AlphaChip&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;On September 26th, I was alerted to an article published on the Google Deepmind blog: &lt;a href=&quot;https:&#x2F;&#x2F;deepmind.google&#x2F;discover&#x2F;blog&#x2F;how-alphachip-transformed-computer-chip-design&#x2F;&quot;&gt;How AlphaChip transformed computer chip design&lt;&#x2F;a&gt;.
The Nature authors named their RL for placement algorithm “AlphaChip” in the same vein as AlphaZero, AlphaGo, and AlphaFold, suggesting their algorithm is the SOTA in macro placement (just as the other Alpha projects were SOTA in chess, go, and protein folding simulation).
They are making the claim that AlphaChip is a fundamental leap in macro placement algorithms.&lt;&#x2F;p&gt;
&lt;!--
The Nature authors called their RL for placement algorithm &quot;AlphaChip&quot;!
Yes, &quot;AlphaChip&quot;, just like AlphaGo or AlphaFold!
These two are not backing down, and continue to insist they have made a fundamental leap in mixed-placement algorithms.
--&gt;
&lt;blockquote&gt;
&lt;p&gt;AlphaChip has generated superhuman chip layouts used in every generation of Google’s TPU since its publication in 2020. These chips make it possible to massively scale-up AI models based on Google’s Transformer architecture.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;They keep saying “superhuman”, but aren’t they aware that commercial mixed-placers outperform humans consistently (now more than ever)?
Nearly any technique that can search millions of potential placements for better QoR will be “superhuman” indeed.
By setting the baseline as manual macro placements picked by Google VLSI CAD engineers&lt;!--(who we know aren&#x27;t great VLSI CAD engineers)--&gt;, their “success” is certain!&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;With each new generation of TPU, including our latest Trillium (6th generation), AlphaChip has designed better chip layouts and provided more of the overall floorplan, accelerating the design cycle and yielding higher-performance chips.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;They also claim that TPU blocks (25 hierarchical blocks in the latest TPU v6) have their macro placements done using AlphaChip before sending them off to a 3rd party for the rest of the VLSI flow up to GDS.
I can believe this, but they never reveal anything about the complexity of these blocks and how similar these blocks are to those in their training dataset.
Furthermore, this statement says nothing about how their algorithm compares to the SOTA mixed-placers in commercial CAD tools which have only gotten better over the past 3 years.&lt;&#x2F;p&gt;
&lt;p&gt;Then they offer the usual quotes from professors and MediaTek praising their work.
Again, no actual arguments: just appeals to authority and marketing materials.&lt;&#x2F;p&gt;
&lt;p&gt;One very positive development is they released a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;google-research&#x2F;circuit_training&#x2F;?tab=readme-ov-file#pre-trained-model-checkpoint&quot;&gt;pre-trained checkpoint of the RL policy&lt;&#x2F;a&gt;, which was trained on 20 TPU blocks.
I hope the UCSD team reruns their experiments using this checkpoint to evaluate the benefit of pre-training on final achieved QoR.
Hopefully this checkpoint can finally put this matter to rest.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-nature-addendum&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-nature-addendum&quot; aria-label=&quot;Anchor link: the-nature-addendum&quot;&gt;The Nature Addendum&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The Nature authors released an &lt;a href=&quot;https:&#x2F;&#x2F;www.nature.com&#x2F;articles&#x2F;s41586-024-08032-5&quot;&gt;addendum to their paper&lt;&#x2F;a&gt; which basically rehashes arguments they have made in the past that I believe the UCSD team refuted.
It seems the Nature investigation has concluded, without any substantial changes being made to the original article.&lt;&#x2F;p&gt;
&lt;p&gt;They started their addendum with this:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;AlphaChip was one of the first RL methods deployed to solve a real-world engineering problem, and its publication triggered an explosion of work on AI for chip design. Nevertheless, as described in Sutton’s The Bitter Lesson, there is often reluctance to accept the application of machine learning to new areas, and ultimately this has led to some confusion around our work, which we address below.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;The arrogance of the Nature authors and their disdain for rigorous evaluation from actual EDA CAD researchers is laid bare with this statement.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;hacker-news&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#hacker-news&quot; aria-label=&quot;Anchor link: hacker-news&quot;&gt;Hacker News&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The next day (September 27th), a friend alerted me that the AlphaChip blog post was &lt;a href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=41672110&quot;&gt;posted on Hacker News&lt;&#x2F;a&gt; and was ascending to the top of the front page very quickly.
Since the post was filled with irrelevant comments, I decided to make an account and a &lt;a href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=41673769&quot;&gt;comment of my own&lt;&#x2F;a&gt;.
I would like to thank &lt;a href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;user?id=clickwiseorange&quot;&gt;clickwiseorange&lt;&#x2F;a&gt; for his supportive and accurate arguments.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;using-ml-in-eda-cad-algorithms&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#using-ml-in-eda-cad-algorithms&quot; aria-label=&quot;Anchor link: using-ml-in-eda-cad-algorithms&quot;&gt;Using ML in EDA CAD Algorithms&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;So just because this technique of using RL to perform macro placement didn’t pan out, doesn’t mean I think there is no room for ML techniques in CAD algorithms.
We know that Cadence&#x2F;Synopsys are frequently calling out usage of ML in their CAD tools, so there is clearly some value to be had.&lt;&#x2F;p&gt;
&lt;p&gt;Specifically, I think ML might be useful in providing estimates of QoR metrics only known later in the flow (i.e. learning heuristics): traditionally, heuristics are hand-constructed and tuned, so a learned heuristic will probably be more accurate.
ML is good at learning novel representations of data that humans can’t: in doing so, they can make better predictions (e.g. about final routed wirelength or the strength of a given position on a chessboard).&lt;&#x2F;p&gt;
&lt;p&gt;In this case, it seems that the Nature authors are trying to use RL to turn macro placement into a turn-by-turn game with a final reward, rather than treating it like a mixed (continuous + discrete) optimization problem.
Due to the need to keep RL trajectories short, the placement grid is quite coarse, and therefore the macro placements are often not as dense as they could be, compromising QoR.
Furthermore, they do not simultaneously place standard cell clusters and hard macros, which is a fundamental limitation of the AlphaChip approach vs mixed-placers.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;dr-chatterjee-s-lawsuit&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#dr-chatterjee-s-lawsuit&quot; aria-label=&quot;Anchor link: dr-chatterjee-s-lawsuit&quot;&gt;Dr. Chatterjee’s Lawsuit&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Finally, it seems Google was forced to settle the wrongful termination suit that Dr. Chatterjee filed.
Google had tried to dismiss the lawsuit earlier, but the judge refused to do so (&lt;a href=&quot;https:&#x2F;&#x2F;www.bloomberg.com&#x2F;news&#x2F;articles&#x2F;2023-07-20&#x2F;fired-google-ai-engineer-s-whistleblower-lawsuit-moves-ahead&quot;&gt;original link&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;archive.is&#x2F;WIU0X&quot;&gt;archive&lt;&#x2F;a&gt;).
Digging into the &lt;a href=&quot;https:&#x2F;&#x2F;regmedia.co.uk&#x2F;2023&#x2F;03&#x2F;26&#x2F;satrajit_vs_google.pdf&quot;&gt;original complaint filed by Dr. Chatterjee’s lawyers&lt;&#x2F;a&gt; reveals plenty of evidence that Google leadership conspired to suppress negative results about “AlphaChip” and retaliate against employees who authored the rebuttal or expressed skepticism about the work.&lt;&#x2F;p&gt;
&lt;p&gt;Hopefully this is the last addendum I make to this blog post!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ok-one-more-thing&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#ok-one-more-thing&quot; aria-label=&quot;Anchor link: ok-one-more-thing&quot;&gt;Ok, One More Thing&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This never seems to end…&lt;&#x2F;p&gt;
&lt;p&gt;On October 23, 2024, Igor Markov published an &lt;a href=&quot;https:&#x2F;&#x2F;cacm.acm.org&#x2F;research&#x2F;reevaluating-googles-reinforcement-learning-for-ic-macro-placement&#x2F;&quot;&gt;article on CACM&lt;&#x2F;a&gt; titled “Reevaluating Google’s Reinforcement Learning for IC Macro Placement”, which is a slightly modified version of &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2306.09633&quot;&gt;his arXiv manuscript&lt;&#x2F;a&gt;.
It seems Google’s announcement of “AlphaChip” has spurred renewed interest in refuting their inaccurate claims.
Markov calls out the Nature editorial process and asks that they demand a full reproduction to obtain the numbers reported in the Nature paper.&lt;&#x2F;p&gt;
&lt;p&gt;There was another followup article published on CACM on October 29, 2024 titled &lt;a href=&quot;https:&#x2F;&#x2F;cacm.acm.org&#x2F;news&#x2F;updates-spark-uproar&#x2F;&quot;&gt;“Updates Spark Uproar”&lt;&#x2F;a&gt;.
This article collects skeptical quotes from several experts in the field of VLSI CAD that casts doubt on Google’s hype.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;AlphaChip detractors also took issue with Google applying the “Alpha” moniker to the chip design method, labeling it as a questionable effort to trade on the solid reputation of Google’s AlphaGo game playing AI software, and AlphaFold, an AI method for protein research…&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;“It’s nonsensical to compare AlphaChip to AlphaFold, whose results have been validated by many academic research groups as part of an open competition,” Markov said.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h3 id=&quot;jeff-dean-s-pronouncement&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#jeff-dean-s-pronouncement&quot; aria-label=&quot;Anchor link: jeff-dean-s-pronouncement&quot;&gt;Jeff Dean’s Pronouncement&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;On the day Google’s AlphaChip blog post was released, Jeff Dean made a &lt;a href=&quot;https:&#x2F;&#x2F;x.com&#x2F;JeffDean&#x2F;status&#x2F;1839308592408834559&quot;&gt;Twitter post of his own&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Welcome, AlphaChip!&lt;&#x2F;p&gt;
&lt;p&gt;Today, we are sharing some exciting updates on our work published in @Nature in 2021 on using reinforcement learning for ASIC chip floorplanning and layout.  We’re also naming this work AlphaChip.&lt;&#x2F;p&gt;
&lt;p&gt;Since we first published this work, our use of this approach internally has grown significantly.  It has now been used for multiple generations of TPU chips (TPU v5e, TPU v5p, and Trillium), with AlphaChip placing an increasing number of blocks and with larger wirelength reductions vs. human experts from generation to generation:&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Just the usual fanfare.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Three things we have observed in the external community are described in the Nature Addendum: (1) not doing any pre-training (circumventing the learning aspects of our method by removing its ability to learn from prior experience) (2) not training to convergence (standard practice in ML methods), and (3) using fewer computational resources than described in our Nature paper (using fewer resources is likely to harm performance, or require running for considerably longer to achieve the same performance).&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Just like the Nature addendum, Jeff Dean points out supposed ‘deficiencies’ in the ISPD 2023 paper, which have already been thoroughly refuted by its authors (and by Markov in his CACM article).&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Many organizations have used AlphaChip as a building block for their own chip design efforts.  For example, MediaTek, one of the top chip design companies in the world, extended AlphaChip to accelerate development of their most advanced chips (e.g. the Dimensity Flagship 5G used in Samsung mobile phones), while improving power, performance and chip area.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;‘Usage’ of a VLSI CAD tool in industry is not a replacement for rigorous benchmarking.
It is unknown what blocks AlphaChip was used on, the characteristics of those blocks, and how AlphaChip fares against other macro placement &#x2F; mixed-placement algorithms.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;it-truly-never-ends&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#it-truly-never-ends&quot; aria-label=&quot;Anchor link: it-truly-never-ends&quot;&gt;It Truly Never Ends&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;When CACM published Igor Markov’s article, he &lt;a href=&quot;https:&#x2F;&#x2F;www.linkedin.com&#x2F;posts&#x2F;imarkov_happy-to-see-my-acm-communications-article-activity-7258264869114654720-kCyR&#x2F;&quot;&gt;posted a link to it on his Linkedin&lt;&#x2F;a&gt;.
In the comments, Igor and Anna Goldie argued about the article, both rebutting each other’s claims, and the conversation ended with no consensus.
Igor took down his post for an unknown reason, but part of it is &lt;a href=&quot;https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20241111045533&#x2F;https:&#x2F;&#x2F;www.linkedin.com&#x2F;posts&#x2F;imarkov_happy-to-see-my-acm-communications-article-activity-7258264869114654720-kCyR&#x2F;&quot;&gt;still archived here&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;nature-authors-publish-another-rebuttal&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#nature-authors-publish-another-rebuttal&quot; aria-label=&quot;Anchor link: nature-authors-publish-another-rebuttal&quot;&gt;Nature Authors Publish Another Rebuttal&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;On November 18th, 2024, Anna Goldie, Azalia Mirhoseini, and Jeff Dean published another rebuttal to Igor Markov’s CACM article (LinkedIn posts: &lt;a href=&quot;https:&#x2F;&#x2F;www.linkedin.com&#x2F;feed&#x2F;update&#x2F;urn:li:activity:7264308532643020801&#x2F;&quot;&gt;Anna&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;www.linkedin.com&#x2F;feed&#x2F;update&#x2F;urn:li:activity:7264312172661354497&#x2F;&quot;&gt;Azalia&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;www.linkedin.com&#x2F;feed&#x2F;update&#x2F;urn:li:activity:7264312912532447234&#x2F;&quot;&gt;Jeff&lt;&#x2F;a&gt;) (Twitter posts: &lt;a href=&quot;https:&#x2F;&#x2F;x.com&#x2F;annadgoldie&#x2F;status&#x2F;1858531756506558688&quot;&gt;Anna&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;x.com&#x2F;Azaliamirh&#x2F;status&#x2F;1858534201316000055&quot;&gt;Azalia&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;x.com&#x2F;JeffDean&#x2F;status&#x2F;1858540085794451906&quot;&gt;Jeff&lt;&#x2F;a&gt;).
The rebuttal is titled “That Chip Has Sailed: A Critique of Unfounded Skepticism Around AI for Chip Design” and was &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2411.10053&quot;&gt;released on arXiv&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;I have reproduced Jeff Dean’s statement below.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;There has been unfounded skepticism in the EDA community about whether our AlphaChip method works as claimed in our Nature paper. @annadgoldie, @Azaliamirh, and I wrote a technical response highlighting these issues:&lt;&#x2F;p&gt;
&lt;p&gt;Much of this unfounded skepticism is driven by a deeply flawed non-peer-reviewed publication by Cheng et al. (ISPD 2023) that claimed to replicate our approach but failed to follow our methodology in major ways.
In particular the authors did no pre-training (despite pre-training being mentioned 37 times in our Nature article), robbing our learning-based method of its ability to learn from other chip designs, then used 20X less compute and did not train to convergence, preventing our method from fully learning even on the chip design being placed.
By analogy, this would be like evaluating a version of AlphaGo that had never seen a game of Go before (instead of being pre-trained on millions of games), and then concluding that AlphaGo is not very good at Go.&lt;&#x2F;p&gt;
&lt;p&gt;We also respond to Igor Markov’s “meta-analysis” published in the Nov 2024 issue of CACM.
In Markov’s paper (published without disclosing that Markov is a high-level employee at Synopsys, which makes commercial software that competes with our open-source release of AlphaChip), Markov “meta-analyzes” the flawed Cheng et al. paper and another unpublished anonymous PDF (Stronger Baselines) with no listed authors on which Markov is a shadow co-author (effectively regurgitating his own unpublished arguments as if they were independent).
The Markov article makes veiled accusations, all completely baseless and already found to be without merit by Nature.
I am surprised @Synopsys wants to be associated with this, and I am surprised @CACMmag saw fit to publish these sorts of allegations with no evidence, nor any technical data other than two flawed, non-peer reviewed articles.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;The use of hyperbole and belittling language (“deeply flawed”, “regurgitating his own unpublished arguments”) is surprising, coming from Jeff Dean.&lt;&#x2F;p&gt;
&lt;p&gt;Furthermore, Dean claims that Markov is a “shadow co-author” of the “Stronger Baselines” paper and made an attempt to hide his affiliation when writing his meta-analysis.
However, both in the &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2306.09633v1&quot;&gt;first version of Markov’s arXiv preprint&lt;&#x2F;a&gt; (published in June 2023), and in the &lt;a href=&quot;https:&#x2F;&#x2F;dl.acm.org&#x2F;doi&#x2F;10.1145&#x2F;3676845#supplementary-materials&quot;&gt;CACM article’s supplement&lt;&#x2F;a&gt;, Markov cites his authorship of the “Stronger Baselines” paper.
Markov was also not employed by Synopsys at the time the meta-analysis was written.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;As an update, Shankar Krishnamoorthy, Head of Technology &amp;amp; Product Development at @Synopsys, reached out to me to say “Regarding the CACM article that Igor Markov’s comments and writings do not represent Synopsys views or opinions in any way.
Synopsys is also aligned with you on the potential of Reinforcement Learning AI for chip design as evidenced by strong customer adoption of our http:&#x2F;&#x2F;Synopsys.ai&#x2F;DSO.ai suite of products.”&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Shankar demonstrates that he is an excellent VP by playing both sides: he does not disavow Igor’s technical arguments, while also injecting Synopsys’ marketing materials!&lt;&#x2F;p&gt;
&lt;h3 id=&quot;my-perspective&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#my-perspective&quot; aria-label=&quot;Anchor link: my-perspective&quot;&gt;My Perspective&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Before I analyze the rebuttal written by the Nature authors, I’ll give my high-level thoughts about RL for floorplanning thus far.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;technical-questions&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#technical-questions&quot; aria-label=&quot;Anchor link: technical-questions&quot;&gt;Technical Questions&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;h5 id=&quot;is-a-turn-by-turn-game-the-proper-formulation-for-the-chip-floorplanning-mixed-placement-problem&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#is-a-turn-by-turn-game-the-proper-formulation-for-the-chip-floorplanning-mixed-placement-problem&quot; aria-label=&quot;Anchor link: is-a-turn-by-turn-game-the-proper-formulation-for-the-chip-floorplanning-mixed-placement-problem&quot;&gt;Is a turn-by-turn game the proper formulation for the chip floorplanning &#x2F; mixed-placement problem?&lt;&#x2F;a&gt;&lt;&#x2F;h5&gt;
&lt;p&gt;Unlike chess or Go, &lt;em&gt;automatic&lt;&#x2F;em&gt; chip floorplanning isn’t naturally a turn-by-turn game.
Instead, you have a bunch of hard macros and soft standard cell clusters and you must optimally place them all on an empty canvas (or in some cases, with fixed blockages on the canvas).
Chip floorplanning is &lt;em&gt;naturally an optimization problem&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;However, the way humans &lt;em&gt;manually&lt;&#x2F;em&gt; perform floorplanning &lt;em&gt;looks&lt;&#x2F;em&gt; like a game.
They first specify the dimensions of the canvas by hand and place the top-level pins of the hierarchical block they’re floorplanning on its edges.
Then, they take one macro (or a group of banked SRAMs), analyze its connections to other macros&#x2F;standard cells&#x2F;pins, and harden its coordinates.
This is repeated until until all hard macros are placed.&lt;&#x2F;p&gt;
&lt;p&gt;I &lt;em&gt;feel&lt;&#x2F;em&gt; the Nature authors tried to automate this &lt;em&gt;human-like&lt;&#x2F;em&gt; approach to floorplanning by learning a placement policy using reinforcement learning.
The Nature authors propose placing hard macros &lt;em&gt;one at a time&lt;&#x2F;em&gt; on a canvas until they are all placed, and then give their RL agent a reward based on a proxy cost.&lt;&#x2F;p&gt;
&lt;p&gt;This differs substantially from how mixed-placement is approached by commercial CAD tools and other tools like DREAMPlace &#x2F; AutoDMP.
They &lt;em&gt;simultaneously&lt;&#x2F;em&gt; place both hard and soft macros and &lt;em&gt;simultaneously&lt;&#x2F;em&gt; attempt to optimize and legalize their placements.
They also take advantage of &lt;em&gt;estimating costs as they are iterating&lt;&#x2F;em&gt; the proposed placement, rather than only receiving a cost at the end of placement.
Instinctively, it seems that casting an optimization problem as a turn-by-turn game isn’t the best formulation.&lt;&#x2F;p&gt;
&lt;!--While routing can be thought of as a game easily, it is hard to put floorplanning in the same box--&gt;
&lt;h5 id=&quot;how-does-the-rl-formulation-of-floorplanning-get-around-the-limitations-of-a-coarse-placement-grid&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#how-does-the-rl-formulation-of-floorplanning-get-around-the-limitations-of-a-coarse-placement-grid&quot; aria-label=&quot;Anchor link: how-does-the-rl-formulation-of-floorplanning-get-around-the-limitations-of-a-coarse-placement-grid&quot;&gt;How does the RL formulation of floorplanning get around the limitations of a coarse placement grid?&lt;&#x2F;a&gt;&lt;&#x2F;h5&gt;
&lt;!--To train the policy network, which receives a reward at the end of a trajectory, we need to backprop through all the decisions made by the network.--&gt;
&lt;p&gt;The RL policy network outputs a probability distribution over the chip canvas of where the macro under consideration ought to be placed.
This probability distribution must be discretized over the chip canvas, since the action space must be discrete.
The Nature authors propose placing macros onto &lt;em&gt;grid cells&lt;&#x2F;em&gt;: a discrete grid of up to 128 x 128 points evenly distributed across the chip canvas.&lt;&#x2F;p&gt;
&lt;!-- Usually the grid is 30 x 30, according to the authors --&gt;
&lt;p&gt;This coarse gridded action space is required to make training feasible.
Making the grid finer would increase training time substantially since there are many more potential placement decisions for the RL network to explore.
However, this ‘gridding’ necessarily degrades QoR, since it makes tight macro packing and fine adjustments to macro positions impossible during placement (this was seen above in the ‘Stronger Baselines’ paper).&lt;&#x2F;p&gt;
&lt;p&gt;While there may be ways to get around this problem, it does seem intrinsic to a discrete action space.&lt;&#x2F;p&gt;
&lt;h5 id=&quot;what-does-pre-training-really-mean&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#what-does-pre-training-really-mean&quot; aria-label=&quot;Anchor link: what-does-pre-training-really-mean&quot;&gt;What does ‘pre-training’ really mean?&lt;&#x2F;a&gt;&lt;&#x2F;h5&gt;
&lt;!--
- What does &#x27;pre-training&#x27; really mean? What is the &#x27;training&#x27; data? Consider both the state embedding and policy networks. What is actually being learned? What is accomplished by training to convergence, and what is lost if training is stopped beforehand?
--&gt;
&lt;p&gt;The Nature authors in their rebuttals have emphasized the need to &lt;em&gt;pre-train&lt;&#x2F;em&gt; both the policy and the problem state embedding networks before evaluating them on unseen problems.
This involves taking several netlists, running the usual RL training loop on all of them, and training until convergence.
In theory, during pre-training, the policy network should learn a problem embedding and placement procedure that generalizes across many designs.
In contrast to conventional automatic floorplanning algorithms (SA, RePLAce, AutoDMP), RL floorplanning &lt;em&gt;should learn&lt;&#x2F;em&gt; from experience rather than starting from scratch every time.&lt;&#x2F;p&gt;
&lt;!--This learning is supposed to give it an edge over heuristic algorithms which always start from scratch.--&gt;
&lt;p&gt;When the network sees a new problem, it is &lt;em&gt;fine-tuned&lt;&#x2F;em&gt;, which means the network weights are optimized for the current problem as it explores many trajectories to minimize the proxy cost.
What does fine-tuning mean in practice?
It boils down to trying a bunch of different trajectories and exploring the space of placement possibilities, but with the pretrained policy and problem embedding networks as a prior.
In theory, this would yield much faster runtimes vs training the model from scratch while also achieving better QoR.&lt;&#x2F;p&gt;
&lt;p&gt;But is a lack of pre-training as big a deal as the Nature authors make it out to be?
There are a few complicating factors:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Overfitting and data contamination&lt;&#x2F;em&gt;: when rigorously evaluating an algorithm on a benchmark, it can be unfair to allocate “uncounted” compute to training examples that resemble the benchmark. However, this is a moot point for commercial usage of RL floorplanning.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Marginal demonstrated improvements in QoR&lt;&#x2F;em&gt;: the original Nature paper shows relatively small improvements to QoR (&amp;lt; 5%) when using a pre-trained network vs training from scratch. The primary benefit seems to be faster runtime to achieve a particular QoR.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Extreme compute requirements and long runtimes&lt;&#x2F;em&gt;: pre-training as the Nature authors did requires substantially more compute and memory than is required by the conventional algorithms. Allocating the equivalent number of compute resources to a parallelizable algorithm such as SA, could give it a substantial advantage. Finally, the runtime of a pre-trained network is still in the order of several hours to reach an optimal proxy cost. This is still slower than commercial autofloorplanners and AutoDMP (as seen in the appendix of the ISPD 2023 paper).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;Poor correlation of the proxy cost to final PPA&lt;&#x2F;em&gt;: pre-training optimizes the network to minimize the proxy cost, but the ISPD authors have presented evidence that proxy cost poorly correlates to final area and timing numbers seen after running the entire CAD flow.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;!--
- **Fixed CAD flow**: the
fixed flow, no feedback from future steps (unlike commercial CAD tools e.g. Fusion Compiler)
--&gt;
&lt;h4 id=&quot;non-technical-questions&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#non-technical-questions&quot; aria-label=&quot;Anchor link: non-technical-questions&quot;&gt;Non-Technical Questions&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;h5 id=&quot;why-did-the-googlers-publish-their-work-in-nature&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#why-did-the-googlers-publish-their-work-in-nature&quot; aria-label=&quot;Anchor link: why-did-the-googlers-publish-their-work-in-nature&quot;&gt;Why did the Googlers publish their work in Nature?&lt;&#x2F;a&gt;&lt;&#x2F;h5&gt;
&lt;p&gt;Nature, as its name suggests, is a journal for publishing innovative findings in the &lt;em&gt;natural sciences&lt;&#x2F;em&gt; (there is plenty of engineering too, but it is usually in the context of enabling a fundamental scientific innovation).
AlphaChip is a pure engineering project for a very specific problem in EDA CAD; it isn’t a good fit for Nature.
If the authors had published this paper in DAC, ICCAD, or TCAD, I’m certain it would have been subject to much less criticism post-publication, although it would have been more heavily scrutinized during review.&lt;&#x2F;p&gt;
&lt;!--By pushing the paper to Nature, presumably for clout-chasing purposes, the authors can get away without evaluating on the standard set of academic placement benchmarks.--&gt;
&lt;h5 id=&quot;why-are-the-google-authors-so-adamant-in-not-conceding-anything&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#why-are-the-google-authors-so-adamant-in-not-conceding-anything&quot; aria-label=&quot;Anchor link: why-are-the-google-authors-so-adamant-in-not-conceding-anything&quot;&gt;Why are the Google authors so adamant in not conceding anything?&lt;&#x2F;a&gt;&lt;&#x2F;h5&gt;
&lt;p&gt;Typically, the authors of a paper are the first ones to point out its flaws, limitations, and caveats.
It is common that the people most critical of a paper are the authors themselves.
This case is an anomaly: the authors are uncritical of their own work, do not discuss any of its downsides, and portray it as strictly superior to all other work in the domain, including commercial offerings.&lt;&#x2F;p&gt;
&lt;h5 id=&quot;why-is-jeff-dean-acting-so-hostile-towards-igor-markov&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#why-is-jeff-dean-acting-so-hostile-towards-igor-markov&quot; aria-label=&quot;Anchor link: why-is-jeff-dean-acting-so-hostile-towards-igor-markov&quot;&gt;Why is Jeff Dean acting so hostile towards Igor Markov?&lt;&#x2F;a&gt;&lt;&#x2F;h5&gt;
&lt;!--What is Jeff Dean doing? Why is he burning his reputation?--&gt;
&lt;p&gt;Jeff Dean has been using AlphaChip as an example of “AI chips for AI for AI chips” in many of his talks promoting ML work at Google.
It seems he has staked quite a bit of his professional reputation on this project’s success, and recently he must have seen many detractors of AlphaChip gaining attention and harming Google’s reputation.
However, since his internal Google team asserts they are in the right, he must feel he has to defend them even if he has a weak technical understanding of floorplanning.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;addressing-the-nature-authors-rebuttal&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#addressing-the-nature-authors-rebuttal&quot; aria-label=&quot;Anchor link: addressing-the-nature-authors-rebuttal&quot;&gt;Addressing the Nature Authors’ Rebuttal&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2411.10053&quot;&gt;Here is the rebuttal again&lt;&#x2F;a&gt;: “That Chip Has Sailed: A Critique of Unfounded Skepticism Around AI for Chip Design”
I shall ignore all the personal attacks and insinuations against Igor Markov.&lt;&#x2F;p&gt;
&lt;p&gt;In short, the Nature authors claim a few issues with the ISPD 2023 paper:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;No pre-training, fewer compute resources, no training to convergence&lt;&#x2F;li&gt;
&lt;li&gt;Evaluation on bad benchmarks (i.e. older PDKs)&lt;&#x2F;li&gt;
&lt;li&gt;The ISPD reimplementation of parts of Circuit Training may contain errors&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h4 id=&quot;the-pre-training-issue-again&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-pre-training-issue-again&quot; aria-label=&quot;Anchor link: the-pre-training-issue-again&quot;&gt;The Pre-Training Issue Again&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;I believe I have covered pre-training in my paragraphs above.&lt;&#x2F;p&gt;
&lt;p&gt;However, at this point, I will concede that the ISPD paper did indeed do an iffy job of replicating the training procedure used in Google, and they could have done much better.
Seeing the Tensorboard loss trajectories shows that the RL model wasn’t bring trained properly.
I believe the ISPD team ought to produce new data that performs training in the same manner as the Googlers prescribe.&lt;&#x2F;p&gt;
&lt;p&gt;However, I believe all the points I made above still stand.
If anything, this shows that deep RL networks and embeddings are very hard to train, require tons of compute, and still can’t compete in runtime or compute resources vs mixed-placers.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;evaluation-on-old-technologies&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#evaluation-on-old-technologies&quot; aria-label=&quot;Anchor link: evaluation-on-old-technologies&quot;&gt;Evaluation on Old Technologies&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;This is a weak argument from Google.
There is no evidence that the choice of technology substantially affects the performance of Circuit Training (see the charts in the ISPD paper) besides some handwaving in a footnote.
If indeed certain hyperparameters and proxy cost coefficients need to be tuned for a technology, that makes Circuit Training even more complex to deploy.
This is contrast to modern vertically integrated CAD tools which can use full fidelity timing&#x2F;routing engines to modify macro placements.&lt;&#x2F;p&gt;
&lt;!--The authors mention that multiple patterning lowers the density at which congestion begins to appear, but ultimately this is just a tuning parameter, and multiple patterning is less frequently used in even more modern nodes that use EUV.--&gt;
&lt;h4 id=&quot;other-things&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#other-things&quot; aria-label=&quot;Anchor link: other-things&quot;&gt;Other Things&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;The Nature authors claim that ISPD unnecessarily reverse engineered the proxy cost function and force-directed standard cell placer, by claiming they provided these as binaries.
This is a bizarre thing to attack since binaries are black boxes and they didn’t give a good reason they didn’t release the source.&lt;&#x2F;p&gt;
&lt;p&gt;The Nature authors also claim that the ISPD authors haven’t shared their benchmarks (specifically synthesized netlists).
For GF12, this is reasonable, since it is a proprietary technology and they can’t share it for NDA reasons.
For NG45, this is also reasonable, since all the benchmark RTL is available and the Cadence synthesis scripts are completely open (the Googlers can easily run synthesis themselves).
The Nature authors are attacking a moot point.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;conclusion&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#conclusion&quot; aria-label=&quot;Anchor link: conclusion&quot;&gt;Conclusion&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;While I concede that there are things the ISPD authors could have done better, their conclusion is still sound.
The Nature authors do not address the fact that CMP and AutoDMP outperform CT with far less runtime and compute requirements (although they claim CT would be closer&#x2F;better if they had pre-trained the network and adjusted proxy cost coefficients for the target technology).&lt;&#x2F;p&gt;
&lt;p&gt;This saga isn’t over, and I don’t expect it to be over for a while longer.
I feel the ISPD authors still owe the Googlers (and the broader EDA CAD community) a response and a more rigorous refutation.&lt;&#x2F;p&gt;
&lt;p&gt;Interestingly, some people at Intel Labs published an &lt;a href=&quot;https:&#x2F;&#x2F;spectrum.ieee.org&#x2F;chip-design-ai&quot;&gt;article on IEEE Spectrum&lt;&#x2F;a&gt;: “AI Alone Isn’t Ready for Chip Design” on November 21, 2024 (&lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;hardware&#x2F;comments&#x2F;1gwurmw&#x2F;ai_alone_isnt_ready_for_chip_design&#x2F;&quot;&gt;&#x2F;r&#x2F;hardware thread&lt;&#x2F;a&gt;).
They don’t broach the topic of AlphaChip, but their article is good nonetheless.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>My Research Agenda Back in 2023</title>
          <pubDate>Sun, 01 Oct 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://vighneshiyer.com/research/blog/2023-my-research-agenda-in-2023/</link>
          <guid>https://vighneshiyer.com/research/blog/2023-my-research-agenda-in-2023/</guid>
          <description xml:base="https://vighneshiyer.com/research/blog/2023-my-research-agenda-in-2023/">&lt;div class=&quot;callout&quot;&gt;
  &lt;div class=&quot;callout-title&quot;&gt;✧ A disclaimer (2025 update)&lt;&#x2F;div&gt;
  &lt;div class=&quot;callout-content&quot;&gt;&lt;p&gt;I’m not so sure about these research directions in 2025, but I’ll leave them here just to preserve what once was.
Don’t take these notes too seriously.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;&lt;h2 id=&quot;fall-2023&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#fall-2023&quot; aria-label=&quot;Anchor link: fall-2023&quot;&gt;Fall 2023&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;dynamic-verification&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#dynamic-verification&quot; aria-label=&quot;Anchor link: dynamic-verification&quot;&gt;Dynamic Verification&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;High-performance simulator-agnostic testbench APIs and a productive DV environment
&lt;ul&gt;
&lt;li&gt;Leverage eDSLs to embed testbench APIs in a productive general-purpose language (Scala)&lt;&#x2F;li&gt;
&lt;li&gt;Match or exceed the performance of SystemVerilog testbenches with low-level bindings to Verilator-based simulators and a monadic testbench API for efficient simulation threading&lt;&#x2F;li&gt;
&lt;li&gt;Deterministic simulation threading by detecting inter-thread dependencies and ensuring reproducible testbenches&lt;&#x2F;li&gt;
&lt;li&gt;Functional coverage and temporal sequence APIs using Chisel&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Automated and efficient coverage closure using parametric generators, stimulus embedding, and ML
&lt;ul&gt;
&lt;li&gt;Investigating techniques for predicting RTL-level coverage from stimulus &#x2F; generator features&lt;&#x2F;li&gt;
&lt;li&gt;Evaluating graph-based coverage extrapolation for solving the ‘missing data problem’ associated with blackbox supervised learning approaches&lt;&#x2F;li&gt;
&lt;li&gt;Evaluating coverage model-guided bug hunting &#x2F; state exploration techniques and constraint tuning approaches for targeting specific coverpoints (e.g. semantic fuzzing using constrained random)&lt;&#x2F;li&gt;
&lt;li&gt;Leveraging parametric stimulus generators for finely controllable stimulus generation&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;overall-agenda&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#overall-agenda&quot; aria-label=&quot;Anchor link: overall-agenda&quot;&gt;Overall Agenda&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;!--
- CS 294 -&gt; semantic compression with application to NoCs -&gt; ISCA 24
- CS 264 -&gt; new HDL investigation &#x2F; multi-abstraction &#x2F; better graph IR -&gt; rewriting of RTL &#x2F; workshop paper
- SimCommand + High perf Sim APIs + other stuff -&gt; ASPLOS 24
- Parametric Fuzzing + ML mutation -&gt; Qual in November
    - rtl2graph + coverage extrapolation -&gt; Qual
- Multi-level simulation -&gt; MICRO&#x2F;HPCA 24
- Hammer build flow &#x2F; API redux -&gt; DAC tool paper
- Formal power modeling -&gt; Bump Animesh for publication

- Chris Batten&#x27;s comments on a verification direction for the lab:
    - Make it easier to actually extract block level modules from a top without doing the whole elaboration (or mock the interfaces as they exist in the top, but this is hard)
        - Limitation of diplomacy,...
        - The complaint isn&#x27;t really about unit testing - a real selling point would be a methodology to write block level tests and then have it applied with many types of testing strategies (random, fuzzing, unit, directed, property based, etc.)
    - Incentivize people to write tests not just by making it easy - but also making it the default to have statistics to measure how good you&#x27;re doing - coverage dashboard, coverage in CI by default - people will look at this and then have another motivation to write tests (it is like gamification)
--&gt;
&lt;ul&gt;
&lt;li&gt;Continue to explore a new HDL with multi-abstraction support &#x2F; better graph IR → evaluate by rewriting some RTL&lt;&#x2F;li&gt;
&lt;li&gt;SimCommand &#x2F; high-performance RTL simulation APIs&lt;&#x2F;li&gt;
&lt;li&gt;Parametric fuzzing + ML mutation
&lt;ul&gt;
&lt;li&gt;rtl2graph + coverage extrapolation&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Multi-level simulation? Combine different simulators from different abstractions to produce a higher throughput simulator with enough performance estimation fidelity&lt;&#x2F;li&gt;
&lt;li&gt;Improve the Hammer VLSI build flow &#x2F; investigate redoing its API while preserving the TCL generators themselves&lt;&#x2F;li&gt;
&lt;li&gt;Revisit using formal to generate comprehensive stimulus for power simulation and power macromodel training&lt;&#x2F;li&gt;
&lt;li&gt;Making RTL verification viable and practical for the lab as a whole (some feedback from Prof. Chris Batten)
&lt;ul&gt;
&lt;li&gt;Make it easier to actually extract block level modules from a top without doing the whole elaboration (or mock the interfaces as they exist in the top, but it is hard to make this trivial, a limitation of diplomacy)&lt;&#x2F;li&gt;
&lt;li&gt;A selling point would be a methodology to write block level tests abstractly and then have them applied with many types of testing strategies (random, fuzzing, unit, directed, property based, etc.). This is ill-defined.&lt;&#x2F;li&gt;
&lt;li&gt;Incentivize people to write tests not just by making it easy, but also by making it the default to have statistics to measure how good you’re doing. Coverage dashboard, coverage in CI by default. People will look at this and then have another motivation to write tests (i.e. gamification)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;spring-2023&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#spring-2023&quot; aria-label=&quot;Anchor link: spring-2023&quot;&gt;Spring 2023&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;high-performance-testbench-apis-and-a-systemverilog-uvm-parity-dv-environment&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#high-performance-testbench-apis-and-a-systemverilog-uvm-parity-dv-environment&quot; aria-label=&quot;Anchor link: high-performance-testbench-apis-and-a-systemverilog-uvm-parity-dv-environment&quot;&gt;High performance testbench APIs and a SystemVerilog&#x2F;UVM parity DV environment&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Use a high-level general-purpose language (Scala) to describe testbench logic, VIPs, scoreboards, and constrained random stimulus generators. Prove that we don’t need to be tied down to the crippled and poorly supported SystemVerilog language, and we don’t have to sacrifice performance either.&lt;&#x2F;li&gt;
&lt;li&gt;First-class support for polyglot testbenches (e.g. using Python libraries for linear algebra or ML, C&#x2F;C++ for driver&#x2F;kernel code for co-simulation) on a unified runtime (e.g. GraalVM)&lt;&#x2F;li&gt;
&lt;li&gt;March towards feature parity with the industry standard toolchain (UVM + SystemVerilog + VCS&#x2F;Xcelium): temporal property specification language and functional coverage APIs in Scala for Chisel&lt;&#x2F;li&gt;
&lt;li&gt;Particular focus in Spring 2023
&lt;ul&gt;
&lt;li&gt;Extending our prior work in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vighneshiyer&#x2F;simcommand&quot;&gt;SimCommand&lt;&#x2F;a&gt; to improve the feature set and testbench performance, and make performance optimizations within chiseltest&lt;&#x2F;li&gt;
&lt;li&gt;Standardizing interfaces throughout Chisel RTL codebases to enable unified VIPs and test environments&lt;&#x2F;li&gt;
&lt;li&gt;Reviving cosimulation infrastructure for accelerators, such as Gemmini, to evaluate large workloads accurately without resorting to FPGA simulation&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;machine-learning-for-coverage-closure-bug-hunting-constraint-tuning-and-regression-suite-construction-intelligent-fuzzing&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#machine-learning-for-coverage-closure-bug-hunting-constraint-tuning-and-regression-suite-construction-intelligent-fuzzing&quot; aria-label=&quot;Anchor link: machine-learning-for-coverage-closure-bug-hunting-constraint-tuning-and-regression-suite-construction-intelligent-fuzzing&quot;&gt;Machine learning for coverage closure, bug hunting, constraint tuning, and regression suite construction + intelligent fuzzing&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Investigating techniques for predicting RTL-level coverage from stimulus &#x2F; random generator features&lt;&#x2F;li&gt;
&lt;li&gt;Evaluating different methods for solving the ‘missing data problem’ associated with blackbox supervised learning approaches&lt;&#x2F;li&gt;
&lt;li&gt;Investigating the utility of fine-grained input features in predicting complex output features such as time-domain coverage metrics&lt;&#x2F;li&gt;
&lt;li&gt;Evaluating coverage model-guided bug hunting &#x2F; state exploration techniques and constraint tuning approaches for targeting specific coverpoints (e.g. semantic fuzzing using constrained random)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The first area is about demonstrating that verification can be more ergonomic and performant than the status quo. It is engineering focused, but still has many unanswered research questions.&lt;&#x2F;p&gt;
&lt;p&gt;The second area is research focused: we are working on techniques that may not pan out. ML has been very successful in continuous domain problems and learning fuzzy relationships, but not as successful in discrete domain problems with strict combinatorial relationships.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Chiplet Research in Academia</title>
          <pubDate>Tue, 28 Feb 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://vighneshiyer.com/research/comp-arch/academic-comparch-chiplet-research/</link>
          <guid>https://vighneshiyer.com/research/comp-arch/academic-comparch-chiplet-research/</guid>
          <description xml:base="https://vighneshiyer.com/research/comp-arch/academic-comparch-chiplet-research/">&lt;h2 id=&quot;what-are-chiplets&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#what-are-chiplets&quot; aria-label=&quot;Anchor link: what-are-chiplets&quot;&gt;What Are Chiplets?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;en.wikichip.org&#x2F;wiki&#x2F;chiplet&quot;&gt;Chiplets&lt;&#x2F;a&gt; are modular silicon dies designed to be integrated with other chiplets to form a package-level system.
Chiplet architectures stand in contrast with monolithic chip architectures, where a single silicon die is packaged on its own and is integrated with other chips solely at the PCB-level.
Chiplets are used with the ambiguously defined “2D”, “2.5D”, and “3D” levels of &lt;a href=&quot;https:&#x2F;&#x2F;www.eetimes.com&#x2F;2d-vs-2-5d-vs-3d-ics-101&#x2F;&quot;&gt;package-level integration&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;2d-integration&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#2d-integration&quot; aria-label=&quot;Anchor link: 2d-integration&quot;&gt;2D Integration&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The oldest form of multi-die integration is the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Multi-chip_module&quot;&gt;Multi-Chip Module (MCM)&lt;&#x2F;a&gt;, where multiple chiplets are mounted to a common package substrate and communicate with each other thru wires in the substrate.
The substrate can be made of various materials (organic, silicon) and can be &lt;em&gt;passive&lt;&#x2F;em&gt; (only contains wires and vias) or &lt;em&gt;active&lt;&#x2F;em&gt; (can also contain digital&#x2F;analog circuits).&lt;&#x2F;p&gt;
&lt;p&gt;MCMs can be built out of chiplets with different pin pitches, process nodes, and dimensions.
This is an advantage when integrating digital logic, SERDES, memory, data converters, and RFICs on the same package.
The modern incarnation of an MCM is called a System-in-Package (SiP).&lt;&#x2F;p&gt;
&lt;p&gt;Examples: AMD’s Ryzen Threadripper with Zen cores, Intel’s Xe Ponte Vecchio GPU, and NVIDIA’s A100 with HBM&lt;&#x2F;p&gt;
&lt;h3 id=&quot;2-5d-integration&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#2-5d-integration&quot; aria-label=&quot;Anchor link: 2-5d-integration&quot;&gt;2.5D Integration&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;A big limitation of 2D integration is the low density &#x2F; large pitch of connections between chiplets.
Clearly, a bridge layer between the logic dies and the package substrate is required to achieve high inter-die bandwidth, while still being able to route top-level signals to the package bumps.&lt;&#x2F;p&gt;
&lt;p&gt;2.5D integration uses a &lt;em&gt;silicon interposer&lt;&#x2F;em&gt; on which chiplets connect via microbumps (10 um), while the interposer connects to the package substrate via regular bumps (100 um).
This enables high density die-to-die interconnect and brings the off-die bandwidth and latency closer to that of on-die communication.&lt;&#x2F;p&gt;
&lt;p&gt;Examples: Xilinx &lt;a href=&quot;https:&#x2F;&#x2F;semiaccurate.com&#x2F;2012&#x2F;11&#x2F;08&#x2F;a-look-at-how-xilinx-uses-stacking-on-the-virtex-7-ht&#x2F;&quot;&gt;Virtex-7&lt;&#x2F;a&gt; and beyond FPGAs with SLRs (Super Logic Regions), TSMC CoWoS (NVIDIA V100, AMD Vega), Intel &lt;a href=&quot;https:&#x2F;&#x2F;spectrum.ieee.org&#x2F;intels-view-of-the-chiplet-revolution&quot;&gt;EM&lt;&#x2F;a&gt;&lt;a href=&quot;https:&#x2F;&#x2F;semiwiki.com&#x2F;semiconductor-manufacturers&#x2F;intel&#x2F;298674-intels-emib-packaging-technology-a-deep-dive&#x2F;&quot;&gt;IB&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;en.wikichip.org&#x2F;wiki&#x2F;intel&#x2F;cores&#x2F;kaby_lake_g&quot;&gt;Kaby Lake G&lt;&#x2F;a&gt;), AMD Fiji GPU, Intel &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Sapphire_Rapids&quot;&gt;Sapphire Rapids&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;3d-integration&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#3d-integration&quot; aria-label=&quot;Anchor link: 3d-integration&quot;&gt;3D Integration&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;For even higher integration density, dies can be &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Three-dimensional_integrated_circuit&quot;&gt;stacked on top of each other&lt;&#x2F;a&gt;.
While stacking logic dies is still in the realm of in research chips, stacking memory dies (or stacking a memory die on top of a logic die) is common practice nowdays.
The limiting factor in logic die stacking is thermal dissipation, since logic dies consume substantially more power.&lt;&#x2F;p&gt;
&lt;p&gt;A key enabling technology is the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Through-silicon_via&quot;&gt;through-silicon via&lt;&#x2F;a&gt; (TSV), which enables signals (and power&#x2F;ground) to be tunneled completely or partially through a silicon die.
TSVs enable vias to cut through the interposer, and can increase the &lt;a href=&quot;https:&#x2F;&#x2F;semiwiki.com&#x2F;semiconductor-manufacturers&#x2F;tsmc&#x2F;306329-advanced-2-5d-3d-packaging-roadmap&#x2F;&quot;&gt;die-to-die connection density&lt;&#x2F;a&gt; by avoiding the pitch limitations of microbumps and directly bonding copper pillars.
Other somewhat related technologies include backside power delivery and package-integrated photonics.&lt;&#x2F;p&gt;
&lt;p&gt;Examples: Intel &lt;a href=&quot;https:&#x2F;&#x2F;www.anandtech.com&#x2F;show&#x2F;16823&#x2F;intel-accelerated-offensive-process-roadmap-updates-to-10nm-7nm-4nm-3nm-20a-18a-packaging-foundry-emib-foveros&#x2F;4&quot;&gt;Fove&lt;&#x2F;a&gt;&lt;a href=&quot;https:&#x2F;&#x2F;en.wikichip.org&#x2F;wiki&#x2F;intel&#x2F;foveros&quot;&gt;ros&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;en.wikichip.org&#x2F;wiki&#x2F;intel&#x2F;microarchitectures&#x2F;lakefield&quot;&gt;Lakefield mobile SoC&lt;&#x2F;a&gt;), TSMC SoIC - AMD &lt;a href=&quot;https:&#x2F;&#x2F;fuse.wikichip.org&#x2F;news&#x2F;5531&#x2F;amd-3d-stacks-sram-bumplessly&#x2F;&quot;&gt;Zen 3&#x2F;4 Stacked&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;semiaccurate.com&#x2F;2021&#x2F;06&#x2F;01&#x2F;amds-3d-v-cache-takes-the-advanced-packaging-lead&#x2F;&quot;&gt;3D V-Cache&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;High_Bandwidth_Memory&quot;&gt;HBM&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Flash_memory#Vertical_NAND&quot;&gt;3D NAND flash&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;chiplet-interconnect-standards&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#chiplet-interconnect-standards&quot; aria-label=&quot;Anchor link: chiplet-interconnect-standards&quot;&gt;Chiplet Interconnect Standards&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Nearly all chiplet designs today are custom and therefore use custom die-to-die communication protocols, optimized by the system designer.
However, there is &lt;a href=&quot;https:&#x2F;&#x2F;semiengineering.com&#x2F;chiplets-taking-root-as-silicon-proven-hard-ip&#x2F;&quot;&gt;speculation that a market for chiplets may be viable&lt;&#x2F;a&gt;.
In the future, one might be able to buy several chiplets off-the-shelf and only design the interposer to build a custom system-in-package.
For example, Ayar Labs markets their &lt;a href=&quot;https:&#x2F;&#x2F;ayarlabs.com&#x2F;teraphy&#x2F;&quot;&gt;TeraPHY&lt;&#x2F;a&gt; which enables in-package photonic links via AIB, and LightMatter’s &lt;a href=&quot;https:&#x2F;&#x2F;www.techinsights.com&#x2F;blog&#x2F;lightmatter-connects-chiplets-optically&quot;&gt;Passage&lt;&#x2F;a&gt; photonic interposer.&lt;&#x2F;p&gt;
&lt;p&gt;To enable integration of chiplets from different manufacturers and designers, the interconnect protocol and physical layer must be standardized.
The competing standards are:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Intel - &lt;a href=&quot;https:&#x2F;&#x2F;www.intel.com&#x2F;content&#x2F;dam&#x2F;www&#x2F;public&#x2F;us&#x2F;en&#x2F;documents&#x2F;white-papers&#x2F;accelerating-innovation-through-aib-whitepaper.pdf&quot;&gt;AIB&lt;&#x2F;a&gt; (physical-layer specification)&lt;&#x2F;li&gt;
&lt;li&gt;Large &lt;a href=&quot;https:&#x2F;&#x2F;www.tomshardware.com&#x2F;news&#x2F;new-ucie-chiplet-standard-supported-by-intel-amd-and-arm&quot;&gt;industry consortium&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;UCIe&quot;&gt;UCIe&lt;&#x2F;a&gt; (full-stack specification, protocol layer is CXL)&lt;&#x2F;li&gt;
&lt;li&gt;Open Compute Project - &lt;a href=&quot;https:&#x2F;&#x2F;opencomputeproject.github.io&#x2F;ODSA-BoW&#x2F;bow_specification.html&quot;&gt;BoW (Bunch of Wires)&lt;&#x2F;a&gt; (physical + link layer specification)&lt;&#x2F;li&gt;
&lt;li&gt;Open Compute Project - &lt;a href=&quot;https:&#x2F;&#x2F;www.opencompute.org&#x2F;documents&#x2F;odsa-openhbi-v1-0-spec-rc-final-1-pdf&quot;&gt;OpenHBI&lt;&#x2F;a&gt; (physical-layer specification, interoperable with HBM3)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;As of early 2023, it looks like UCIe or AIB (physical-layer) and CXL (protocol-layer) have the most momentum going for them.&lt;&#x2F;p&gt;
&lt;p&gt;However, some designers express concerns that any chiplet standard is going to be too restrictive and will prevent product-specific optimization.
Since nearly all chiplet design today is within a single company, there isn’t a strong drive to standardize chiplet interfaces, notwithstanding the potential easing of the verification burden.
Even with standardization, there may be so many one-off deviations within a company that the chiplets will not be reusable in other package-level integrations.&lt;&#x2F;p&gt;
&lt;p&gt;Ultimately will companies be OK with standardizing chiplet interfaces at the cost of PPA, and when the chiplet IP market (photonics and SERDES) is still very immature?&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-benefits-of-chiplets&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-benefits-of-chiplets&quot; aria-label=&quot;Anchor link: the-benefits-of-chiplets&quot;&gt;The Benefits of Chiplets&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;All of this discussion would be moot if chiplet architectures didn’t have benefits over monolithic dies.
I group the benefits into two categories: 1) reducing cost and 2) improving integration.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;reducing-cost&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#reducing-cost&quot; aria-label=&quot;Anchor link: reducing-cost&quot;&gt;Reducing Cost&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Better yield&lt;&#x2F;strong&gt; to minimize RE
&lt;ul&gt;
&lt;li&gt;Chiplets are smaller than monolithic dies and therefore have higher yield.&lt;&#x2F;li&gt;
&lt;li&gt;Chiplets and stacked dies can be tested independently before integration to avoid building defective products that are thrown away.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fewer unique tapeouts&lt;&#x2F;strong&gt; to minimize NRE
&lt;ul&gt;
&lt;li&gt;A small collection of chiplets can be integrated in different ways at the package-level, leading to a diverse product portfolio with minimal per-chiplet design effort.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Easier external IP integration&lt;&#x2F;strong&gt; to minimize NRE
&lt;ul&gt;
&lt;li&gt;Integrating chiplet IP versus hard IP might be easier due to standardized interfaces and outsourcing chiplet testing&lt;&#x2F;li&gt;
&lt;li&gt;It might also be possible to use cheaper process nodes for certain IPs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Smaller footprint&lt;&#x2F;strong&gt; to minimize RE
&lt;ul&gt;
&lt;li&gt;3D stacking can reduce the PCB area consumed by the main package&lt;&#x2F;li&gt;
&lt;li&gt;Moving PCB components into the package to reduce PCB area &#x2F; off-package communication&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h3 id=&quot;improving-integration&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#improving-integration&quot; aria-label=&quot;Anchor link: improving-integration&quot;&gt;Improving Integration&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Bypassing the reticle limit&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;The modern reticle limit of 800 mm2 is a limiting factor for large datacenter chips&lt;&#x2F;li&gt;
&lt;li&gt;Chiplets enable building package-level systems with 2-3x more silicon area than the reticle limit&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Process mixing&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;Forcing RF, analog, SERDES, photonics, memory, and digital logic on one process can lead to inferior design points&lt;&#x2F;li&gt;
&lt;li&gt;By allowing each domain to use the most optimal technology, better system-level performance can be achieved&lt;&#x2F;li&gt;
&lt;li&gt;Chiplets also provide some level of electrical and RF isolation between dies&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Higher bandwidth &#x2F; lower power communication&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;If more components can be moved from the PCB to the package, communication overheads can be reduced&lt;&#x2F;li&gt;
&lt;li&gt;3D stacking in particular enables high bandwidth and low power communication between dies due to shorter wirelengths, tighter pitches, and fewer material transitions&lt;&#x2F;li&gt;
&lt;li&gt;A good example is 3D stacking of cache which moves more memory from off-package DRAM to on-package stacked SRAM&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Novel integrations&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;Devices that would normally be at the PCB-level can be moved to the package
&lt;ul&gt;
&lt;li&gt;Electrical-optical interfaces, PHYs for various protocols (e.g. Ethernet), discrete accelerators&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Enables design points that wouldn’t exist in the monolithic die universe&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h2 id=&quot;the-downsides-of-2d-2-5d-integration&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-downsides-of-2d-2-5d-integration&quot; aria-label=&quot;Anchor link: the-downsides-of-2d-2-5d-integration&quot;&gt;The Downsides of 2D&#x2F;2.5D Integration&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;If you &lt;em&gt;aren’t running into a fundamental limitation of monolithic chip design&lt;&#x2F;em&gt; (reticle limit, multi-process integration, insufficient yield), moving to a chiplet architecture isn’t a clear advantage, since it does come with downsides:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Worse PPA&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;Splitting a monolithic chip into multiple chiplets doesn’t buy you anything, rather performance, power, and area will all suffer&lt;&#x2F;li&gt;
&lt;li&gt;Performance will be hindered by the latency and bandwidth overhead of die-to-die communication&lt;&#x2F;li&gt;
&lt;li&gt;Extra power will be burned from die-to-die links&lt;&#x2F;li&gt;
&lt;li&gt;The area of a chiplet design will be slightly greater than its equivalent monolithic design due to bump pitch limits and interposer design rules&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Larger integration burden&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;On-die signals are easy to handle using the regular VLSI CAD flow&lt;&#x2F;li&gt;
&lt;li&gt;Off-die signals require careful physical design and routing. You will also need additional test circuitry.&lt;&#x2F;li&gt;
&lt;li&gt;Deciding the boundaries on which to split a large monolithic chip isn’t easy. Architectural modeling is required.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h2 id=&quot;potential-avenues-of-chiplet-research&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#potential-avenues-of-chiplet-research&quot; aria-label=&quot;Anchor link: potential-avenues-of-chiplet-research&quot;&gt;Potential Avenues of Chiplet Research&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Given all of the above, what are the pressing research areas in package-level integration and chiplet design from the computer architect’s perspective?
The goal is to maximally exploit the advantages of chiplets, while mitigating the overheads and disadvantages.&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;How should a product portfolio be split into a chiplet and package portfolio in such a way as to minimize cost (NRE and RE) and maximize yield?&lt;&#x2F;li&gt;
&lt;li&gt;What are the tradeoffs between standardizing chiplet interfaces and using custom interfaces?&lt;&#x2F;li&gt;
&lt;li&gt;Can we model the PPA of a chiplet-based system including the impacts of process mixing and die-to-die communication? How does the PPA compare to monolithic architectures?&lt;&#x2F;li&gt;
&lt;li&gt;How do we exploit chiplet architectures for existing datacenter applications? How should applications be partitioned and scheduled differently on a chiplet-based system vs a monolithic die + DRAM system?&lt;&#x2F;li&gt;
&lt;li&gt;What are the end-to-end PPA benefits we can expect to see as more PCB-level components are brought into the package?&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h3 id=&quot;what-can-comparch-academics-research&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#what-can-comparch-academics-research&quot; aria-label=&quot;Anchor link: what-can-comparch-academics-research&quot;&gt;What Can (CompArch) Academics Research?&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;I believe that few of these avenues of research are truly open to academics (in computer architecture) and nearly all chiplet oriented research belongs in the realm of industry.
There are several reasons:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Mismatch of scale&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;Academics never work on chips that run into the same constraints as industry silicon. Most critically, chiplet disaggregation of a large silicon die is only desirable when we run up against the reticle limit or want to improve yield.&lt;&#x2F;li&gt;
&lt;li&gt;The scale at which chiplets make sense to use and model is very far away from the scale examined in academic research.&lt;&#x2F;li&gt;
&lt;li&gt;A side note is that RTL level evaluation of system-level PPA for architecture exploration of chiplet designs is unreasonable - such an analysis must be undertaken at a higher level of abstraction.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Cost modeling is difficult&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;The primary motivating factors for chiplet-based architectures are related to yield and minimizing NRE&#x2F;RE costs.&lt;&#x2F;li&gt;
&lt;li&gt;As academics, we have no clue about the true relationship of silicon area and complexity to yield (this is a closely guarded trade secret), and little understanding about the financial constraints of product portfolios.&lt;&#x2F;li&gt;
&lt;li&gt;We also have little idea about the PPA costs associated with die-to-die communication in each of the many proposed schemes (AIB, BoW, UCIe)
&lt;ul&gt;
&lt;li&gt;While we may have top-line pJ&#x2F;bit and latency numbers, if that is all the fidelity required to model chiplet IO, then a high-level algorithm communication analysis (not RTL-level) is sufficient&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Understanding feasibility&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;It is easy to speculate about chiplet architectures and 3D stacking possibilities, but the physical feasibility of any of these is not clear to academics&lt;&#x2F;li&gt;
&lt;li&gt;This is in contrast to RTL-level accelerator design within a monolithic chip where the vanilla RTL will give us real PPA numbers and guaranteed feasibility&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Chiplets don’t change the basic software story&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;The core compute die is still designed such that software sees a monolithic system (notwithstanding multi-socket NUMA systems). Software will always see the illusion of a big chip no matter how it is partitioned physically.&lt;&#x2F;li&gt;
&lt;li&gt;For example, AMD’s V-Cache just shows up as a larger LLC to software. Nothing about the software execution changes.
&lt;ul&gt;
&lt;li&gt;In terms of what the software sees, chiplet architectures are less visible evolutions than the transition from HDDs to SSDs, for example&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;While there is a story about how to maintain this illusion in partitioned systems (by distributing work to multiple dies in a way to minimize die-to-die communication), such work is just an extension of multi-socket and multi-node work distribution and communication avoiding schemes (albeit with another, more fine-grained, cost model)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h2 id=&quot;how-should-chiplet-systems-be-modeled-designed&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#how-should-chiplet-systems-be-modeled-designed&quot; aria-label=&quot;Anchor link: how-should-chiplet-systems-be-modeled-designed&quot;&gt;How Should Chiplet Systems Be Modeled + Designed?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Having said all this, I can be convinced that academics have a role to play in chiplet modeling and design methodology.&lt;&#x2F;p&gt;
&lt;p&gt;Right now, industry seems to have a hard time with the physical design of chiplets - many different foundry-specific standards and design rules, in addition to the designer’s own PPA optimization have to be taken into account when deciding IO bump mappings.
Perhaps academics can help with a design methodology that is physically-aware and drives top-level RTL design with physical intent in mind.&lt;&#x2F;p&gt;
&lt;p&gt;On the modeling side, I agree that an architectural simulator with a native understanding of chiplets (just as gem5 has a native understanding of NUMA) might be useful.
Getting hard numbers for all the model parameters (for the PPA overheads of the chiplet IO components) is hard, but even a coarse guess might be sufficient to show how algorithms would perform given a specific chiplet architecture.
However, validating such a model is very difficult since, unlike validating CPU and GPU arch simulators, CAD-based simulation of chip-to-chip communication is difficult and there is little chiplet-based silicon either.
Also, trying to rely on RTL level simulation for modeling chiplet architectures is nonsensical - the scale of a real chiplet-based system is so large that this level of fidelity would yield ultra-slow simulations and for very little gain (since die-to-die communication has a relatively simple model).&lt;&#x2F;p&gt;
&lt;p&gt;I welcome feedback on research avenues in chiplet architectures that are academically viable for computer architects.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;responses-to-objections&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#responses-to-objections&quot; aria-label=&quot;Anchor link: responses-to-objections&quot;&gt;Responses to Objections&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Since writing this, I have heard some objections I’d like to address.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;isn-t-chiplet-modeling-as-interesting-as-numa-optimization&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#isn-t-chiplet-modeling-as-interesting-as-numa-optimization&quot; aria-label=&quot;Anchor link: isn-t-chiplet-modeling-as-interesting-as-numa-optimization&quot;&gt;Isn’t Chiplet Modeling as Interesting as NUMA Optimization?&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;During the early multi-socket era, it was recognized that having a pool of DIMMs that could be accessed by every socket could lead to poor performance as the accesses would have to be serialized.
The solution was to split the DIMMs so that each socket could access its own pool separately from the other socket, and add some special hardware to enable data sharing between the pools.
However, software does not want to deal with these implmentation details and would just like to see a big cache-coherent computer with double the memory and cores as a single socket system.&lt;&#x2F;p&gt;
&lt;p&gt;This lead to &lt;em&gt;a bunch of research&lt;&#x2F;em&gt; in cache-coherent NUMA (ccNUMA) and OS&#x2F;software support for colocating processes near their memory, sharing pages across NUMA regions, and so forth.
At a high level, the &lt;strong&gt;asymmetry&lt;&#x2F;strong&gt; in memory access latencies motivated work in adapting algorithms&#x2F;runtimes&#x2F;kernels to accomodate this constraint.&lt;&#x2F;p&gt;
&lt;p&gt;The question is: is there &lt;em&gt;asymmetry&lt;&#x2F;em&gt; in chiplet architectures that we have to design algorithms&#x2F;runtimes&#x2F;kernels around? For example, does having a large LLC implemented as a stacked 3D cache introduce asymmetries in per-core memory latency that our OS should know about?&lt;&#x2F;p&gt;
&lt;p&gt;The reality is that chiplets and package-level integration are &lt;em&gt;erasing&lt;&#x2F;em&gt; as many asymmetries as possible.
The illusion of “one big machine” for software will continue to improve because of this trend.&lt;&#x2F;p&gt;
&lt;p&gt;We can already see that package-integrated HBM has reduced asymmetry in memory access times and bandwidth (vs off-chip DRAM), and accessing any HBM stack on the package has pretty much uniform latency for any core.
The next step will be integrating multiple CPU dies on a single interposer instead of multiple sockets on a motherboard.
Moving SSD flash stacks to the package is also coming up.
These asymmetries are actually being &lt;em&gt;reduced&lt;&#x2F;em&gt; with the advent of package-level integration.&lt;&#x2F;p&gt;
&lt;p&gt;I concede that in the interim, some API may need to be exposed to partition a chiplet cache such that different compute chiplets can minimize communication to far away compute chiplets through the shared cache.
There might be a bit of research here, but it is mostly system-level and doesn’t require RTL-level fidelity.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;isn-t-splitting-a-monolithic-chip-trivial&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#isn-t-splitting-a-monolithic-chip-trivial&quot; aria-label=&quot;Anchor link: isn-t-splitting-a-monolithic-chip-trivial&quot;&gt;Isn’t Splitting a Monolithic Chip Trivial?&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;I mentioned above that automatic splitting of a monolithic chip that’s reaching the reticle limit is an open research question.
For academic SoCs this isn’t even a question: you would just split the chip on cache boundaries! EZ.&lt;&#x2F;p&gt;
&lt;p&gt;Industry SoCs are not just a bunch of core-coupled accelerators arranged in a multi-core cache hierarchy.
Yes, they contain core complexes, but they also contain &lt;em&gt;10s of unique accelerators, radio blocks, data converters, and so forth&lt;&#x2F;em&gt;, many of which are scattered ad-hoc around the SoC.
Many of these components are placed close to the IO bumps that they need (e.g. ISP placed near the camera IOs, radio baseband placed near the antenna IOs, HR unit placed near the accelerometer and HR sensor IOs, etc.).
So splitting an SoC isn’t so easy, because real chips are blobs (not trees) and have a bunch of constraints driven by the package, PCB, and product design.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;but-chiplets-are-so-cool&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#but-chiplets-are-so-cool&quot; aria-label=&quot;Anchor link: but-chiplets-are-so-cool&quot;&gt;But Chiplets Are So Cool!&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;I concede. They are cool.&lt;&#x2F;p&gt;
&lt;p&gt;Taping out a chiplet-based system in academia is worthwhile even if there is no fundamental research agenda.
It could motivate research based on annoyances encountered during the tapeout, and it will be the first academic 2.5D integration of many large RISC-V SoCs.&lt;&#x2F;p&gt;
&lt;p&gt;I was shown that there were only a handful of papers related to chiplets that were published at ASPLOS, MICRO, and ISCA.
This means, there is little prior work to compare new chiplet modeling or tapeout papers to and ‘chiplet research’ is a &lt;em&gt;good paper target&lt;&#x2F;em&gt; (although not an interesting real academic research direction).&lt;&#x2F;p&gt;
&lt;h3 id=&quot;can-we-model-thermal-effects-of-3d-die-stacking&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#can-we-model-thermal-effects-of-3d-die-stacking&quot; aria-label=&quot;Anchor link: can-we-model-thermal-effects-of-3d-die-stacking&quot;&gt;Can We Model Thermal Effects of 3D Die Stacking?&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;A potentially feasible research avenue is to model the dynamic thermal profile of stacked logic dies.
Such modeling might reveal ways to physically stagger core and cache logic from die to die to mitigate hot spots and make traditional cooling techniques viable.
This is an area that academics have worked on in the past: building thermal models from detailed CAD simulations of a die that is activity-driven.&lt;&#x2F;p&gt;
&lt;p&gt;This area might be suitable for a lab that already has background in thermal modeling, but it is difficult to start from scratch.
Furthermore, modeling the effects of thermal activity between 2 dies requires knowledge of materials and low-level physics simulations, which would require external collaboration.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;can-we-model-the-performance-implications-of-3d-die-stacking&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#can-we-model-the-performance-implications-of-3d-die-stacking&quot; aria-label=&quot;Anchor link: can-we-model-the-performance-implications-of-3d-die-stacking&quot;&gt;Can we Model the Performance Implications of 3D Die Stacking?&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Modeling performance benefits of die stacking is reasonable, as long as the hypothesized physical stack is confirmed to be viable, manufacturable, and a good thermal and die-to-die IO model exists.
This is not much different than modeling a multi-socket system, except with lower latencies to communicate between the two sockets.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;cache-partitioning-strategies-seem-interesting&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#cache-partitioning-strategies-seem-interesting&quot; aria-label=&quot;Anchor link: cache-partitioning-strategies-seem-interesting&quot;&gt;Cache Partitioning Strategies Seem Interesting&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;chipsandcheese.com&#x2F;2023&#x2F;03&#x2F;12&#x2F;a-peek-at-sapphire-rapids&#x2F;&quot;&gt;Chips and Cheese: A Peek at Sapphire Rapids&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;On Intel DevCloud, the chip appears to be set up to expose all four chiplets as a monolithic entity, with a single large L3 instance. Interconnect optimization gets harder when you have to connect more nodes, and SPR is a showcase of this. Intel’s mesh has to connect 56 cores with 56 L3 slices. Because L3 accesses are evenly hashed across all slices, there’s a lot of traffic going across that mesh.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;In contrast, AMD has opted to avoid the giant interconnect problem entirely. EPYC and Ryzen split cores into clusters, and each cluster gets its own L3. Cross-cluster cache accesses are avoided except when necessary to ensure cache coherency. That means the L3 interconnect only has to link eight cache slices with eight cores. The result is a very high performance L3, enabled by solving a much simpler interconnect problem than Intel. On standard SKUs, AMD can’t get anywhere near as much capacity. But AMD can employ 3D stacking on “V-Cache” SKUs, which gets a 64 MB cache die on top of the regular core cluster. Obviously this comes at additional cost, but it gives AMD high L3 capacity with much better L3 performance than SPR.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;This tradeoff between finely-distributed coherence (Intel) and cluster-level coherence (AMD) seems interesting and worth investigating at the arch modeling level.
It can be investigated at a much smaller scale (in terms of number of cores and cache sizes) and we should be able to come to the same conclusions as with a larger system.&lt;&#x2F;p&gt;
&lt;!--
### Some Supporting Data

- https:&#x2F;&#x2F;chipsandcheese.com&#x2F;p&#x2F;amds-turin-5th-gen-epyc-launched

&gt; For convenience, the list below are the numbers from the chart because a chart this big can be hard to read.
&gt;
&gt;     Intra-CCD latency: ~45ns
&gt;
&gt;     Inter-CCD latency: ~150ns
&gt;
&gt;     Socket to Socket latency: ~260ns

- https:&#x2F;&#x2F;chipsandcheese.com&#x2F;p&#x2F;core-to-core-latency-data-on-large-systems

&gt; Sapphire Rapids (SPR) is Intel’s latest server architecture, developed with the Golden Cove architecture as a foundation. A full SPR chip features four dies connected with EMIB links. Average core to core latency within a socket is 59 ns, while cross socket transfers average 138 ns latency.

&gt; Within a socket, groups of four cores tend to share similar characteristics. Worst case latency within a socket is 81 ns.

- Cost modeling: see LUCIE (paper from MICRO 2024). Basically a bunch of handwaving, and random things. Speculating on yield and other random stuff.
- Also see the sanctions aware hardware paper. Same idea, who are you fooling?

- https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2502.01449
  - Figure 1 of this paper is a good overview of SiP methodologies
--&gt;
</description>
      </item>
      <item>
          <title>A Talk from Eric Quinnell of Tesla</title>
          <pubDate>Thu, 29 Sep 2022 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://vighneshiyer.com/research/comp-arch/eric-quinnell-from-tesla-on-variable-length-isas-cpus-fsd-dojo/</link>
          <guid>https://vighneshiyer.com/research/comp-arch/eric-quinnell-from-tesla-on-variable-length-isas-cpus-fsd-dojo/</guid>
          <description xml:base="https://vighneshiyer.com/research/comp-arch/eric-quinnell-from-tesla-on-variable-length-isas-cpus-fsd-dojo/">&lt;div class=&quot;callout&quot;&gt;
  &lt;div class=&quot;callout-title&quot;&gt;Disclaimer&lt;&#x2F;div&gt;
  &lt;div class=&quot;callout-content&quot;&gt;&lt;p&gt;These are my words, not Eric’s. I have used some creative license.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Eric Quinnell from Tesla came to speak to the SLICE lab on 9&#x2F;28&#x2F;2022. &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;comp-arch&#x2F;eric-quinnell-from-tesla-on-variable-length-isas-cpus-fsd-dojo&#x2F;Eric_Quinnell_Tesla_Talk.pdf&quot;&gt;Download his slides here.&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Title&lt;&#x2F;em&gt;: Industrial Ranting about Current Computer Micro-Architectures&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;Abstract&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Industrial Silicon design provides incredible opportunities, including designing gaming consoles that elevate you as a veritable demi-god to your nephews, while later handing you a severance package as your machine is out-designed. This talk covers an analysis of current CPU micro-architectures, showing what works, what does not, and why OP Caches and SMT designs are The Worst™.&lt;&#x2F;p&gt;
&lt;p&gt;Be your ISA x86, ARM, or RISC-V – any bad micro-architecture can equally ruin them all! Come learn how to see the big picture in CPU micro-architecture so that you too can one day work on completely unrelated AI Silicon for self-driving cars and robots.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;Bio&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Dr. Eric Quinnell received his BSEE&#x2F;MSEE and in 2006 his Ph.D. from the University of Texas at Austin in the topic of Floating-Point Fused Multiply-Adders. He began his industrial career at AMD designing floating-point and cryptography units on the Bobcat x86 and Jaguar x86 CPUs, the latter being the CPU core in the XboxOne and PS4.&lt;&#x2F;p&gt;
&lt;p&gt;Eric spent nearly a decade at Samsung on the (now retired) Exynos&#x2F;Mongoose ARMv8 CPUs on the floating-point, L2&#x2F;L3 caches, and branch predictor units before joining ARM as the Cortex-A CPU micro-architecture performance research lead. Currently, Eric works at Tesla building the hardware and silicon for the Dojo AI Supercomputer.&lt;&#x2F;p&gt;
&lt;p&gt;Dr. Quinnell has many patents, papers, and all the necessary qualifiers required to come talk to grad-student engineers about all the things. He lives in Austin, TX with his wife Leslie, and three children.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h2 id=&quot;notes&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#notes&quot; aria-label=&quot;Anchor link: notes&quot;&gt;Notes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;criticism-of-variable-length-isas&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#criticism-of-variable-length-isas&quot; aria-label=&quot;Anchor link: criticism-of-variable-length-isas&quot;&gt;Criticism of Variable Length ISAs&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;What you’re saying is that the relatively small code density improvements from the RISC-V compressed extension are dwarfed by the overhead of variable length instruction fetch and therefore limited decoder width? So we’re ok with sacrificing cache area consumed by full fixed-width instructions to increase fetch&#x2F;decode width? Are there no uArch tricks to still have wide decode with variable length ISAs?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Yes, variable length encoding has marginal code density improvements and icache fetches can be easily prefetched anyways using the branch predictor to guide prefetching.&lt;&#x2F;li&gt;
&lt;li&gt;The overhead shows up in latency of fetch and decode as well as the maximum width of both of them (and area density) - keep it simple, stupid.&lt;&#x2F;li&gt;
&lt;li&gt;When we’re dealing with large programs with 100 Mb of instructions, we will anyways have to make roundtrips from L1 to system cache all the time - so trying to keep just a few insts resident in L1 via compression is a bad tradeoff.&lt;&#x2F;li&gt;
&lt;li&gt;The simple RISC CPU always wins (&lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;P6_(microarchitecture)&quot;&gt;P6&lt;&#x2F;a&gt; is the golden uArch model that is rediscovered over and over again) - more complication leads to bloat and misleading benchmarks.
&lt;ul&gt;
&lt;li&gt;Eventually you will get fat and stupid and lazy and a stronger, younger competitior will come along that starts from scratch and destroys you. This is why the Mongols kept engaging in war and conquering lands - if they settled down, they would get soft and be conquered themselves - this plays out in 10 year cycles in semiconductors especially in CPU uarch.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;He is bullish on Rivos - those Apple engineers know what they’re doing and they will replicate the M1 uArch with RISC-V. They will scratch variable length instructions and variable vector length (RVV &#x2F; SVE) and will produce a very wide fixed width powerhouse, and will destroy SiFive and others competing in the RISC-V high-end market (HPC and servers).
&lt;ul&gt;
&lt;li&gt;Criticism of RVV: most vector units are used as memcpy accelerators (in the majority of general workloads, specialized ML workloads use dedicated ML accelerators). The FP pipes are used to perform the copies while the int pipes are used to predicate partial copies (at byte-level) on the FP pipe. Variable length vector ISAs need this kind of predication frequently for small data length operations (smaller than the maximum vector length), which show up often. NEON is successful due to its fixed width SIMD model, SVE probably will never catch on (or will be niche).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;What are the actual workloads you are designing for? For phones it is JIT’ed VMs (Javascript) and for servers it is &lt;em&gt;also&lt;&#x2F;em&gt; JIT’ed VMs (JVM). Indirect threading -&amp;gt; branch prediction needs to speculate often -&amp;gt; variable length fetch complicates matters.&lt;&#x2F;li&gt;
&lt;li&gt;He mentioned that he came around to this view after being laid off from Samsung after A76 killed their custom CPU efforts. He spent 6 months in thought and experimentation and came to this conclusion (among others).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;performance-modeling&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#performance-modeling&quot; aria-label=&quot;Anchor link: performance-modeling&quot;&gt;Performance Modeling&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Why was this phenonema (overall bad tradeoff of code density vs decoder width) not caught in performance modeling? Are the benchmarks just wrong?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;The performance models indeed caught this problem as well as the area overhead, however people just didn’t pay attention&lt;&#x2F;li&gt;
&lt;li&gt;This is due to siloing within each company and across companies. People who bring up the right benchmarks and simple arch are ignored in favor of doing ‘the next thing’ in ISA evolution.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;My note&lt;&#x2F;em&gt;: It is hard to believe that this is a good explanation - but maybe it is true that once variable length instructions are in, they are impossible to get out of an ISA.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;benchmarks&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#benchmarks&quot; aria-label=&quot;Anchor link: benchmarks&quot;&gt;Benchmarks&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;How do you extact meaningful benchmarks from emulation or real silicon?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;This is a big problem. Most benchmarks are meaningless - see GeekBench (he claims their GEMM benchmark was just 3 nested loops). MLPerf gets us some of the way there, but things like ResNet50 are already out of date and Tesla will strongly critique this during AI Day this week.&lt;&#x2F;li&gt;
&lt;li&gt;Just looking at what threads are ‘consuming time’ is often misleading. See a Javascript runtime where the main thread consumes a large fraction the CPU time, but is actually just polling a timer, while the worker threads are actually doing something, but for short CPU time durations. A naive allocator will pin the main thread to the high-perf core and put the workers on the efficiency cores. We actually want the opposite.
&lt;ul&gt;
&lt;li&gt;When extracting benchmarks from long applications, you need to not only ask what is consuming time, but also “&lt;em&gt;what is it doing?&lt;&#x2F;em&gt;”&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Getting adoption of any new benchmark is tough. Marketing is critical. At the end of the day, people (Dilbert-tier managers) compare uArch based on benchmarks, even if they are bad.&lt;&#x2F;li&gt;
&lt;li&gt;Someone just has to push new benchmarks and show they are meaningful. We see this happen in software (in cycles) - one set of benchmarks are used for a while and causes research stagnation (dhrystone, SPEC), and suddenly one group releases a new benchmark set (MLPerf, ???) and innovation spikes. But people still feel obligated to collect numbers using the old benchmarks. Why? Just toss them aside.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;full-self-driving&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#full-self-driving&quot; aria-label=&quot;Anchor link: full-self-driving&quot;&gt;Full Self Driving&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;When will FSD work?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Understand the actual point of FSD. Musk wants to set up a Mars colony filled with Tesla robots who build a civilization blueprint that allows Musk to go there in his 60s.&lt;&#x2F;li&gt;
&lt;li&gt;So, how does Musk find the funding to build the tech for these robots? Well, vision AI is critical, and how better to monetize vision AI than self driving cars?&lt;&#x2F;li&gt;
&lt;li&gt;Understand that FSD will never be as good as a human driver &lt;em&gt;paying attention&lt;&#x2F;em&gt;, however it is &lt;em&gt;already way better&lt;&#x2F;em&gt; than human drivers in general, who rarely pay attention. It already prevents way more crashes than it causes.&lt;&#x2F;li&gt;
&lt;li&gt;100% FSD may be a dream for a while, but regardless it is a great way to get camera data to train models for (eventually) the Mars robots.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;tesla-engineering-culture&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#tesla-engineering-culture&quot; aria-label=&quot;Anchor link: tesla-engineering-culture&quot;&gt;Tesla Engineering Culture&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Proper engineering culture is what makes or breaks a team &#x2F; company and its innovation&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;The person at the top (and all the way down) has to let the engineers do what is necessary (break things and make a mess and screw over people who are lagging behind (low agency individuals and teams))
&lt;ul&gt;
&lt;li&gt;Jensen and Jobs and Musk are good examples of this, in contrast Intel leadership and Tim Cook nowadays is the opposite of this&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Musk is willing to fund any insane idea and doesn’t hold back the engineering talent. The top performers bubble to the top and no effort is made to ‘raise’ normie engineers up - they are just tossed aside (they can work at Intel). Excellence in engineering is how you are judged - no upper management arbitrary goals and meaningless benchmarks.&lt;&#x2F;li&gt;
&lt;li&gt;Being controlled by outside forces leads to death. Intel still has to support the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;A20_line&quot;&gt;A20 bit&lt;&#x2F;a&gt; only because of external pressure and a culture of not breaking obviously bad mistakes. Of course, if their leadership was sufficiently visionary, they could tell their customers that they are doing a clean design and deleting things and they will just have to recompile - but they can’t - that’s their whole business model. Apple is different - they can make these sweeping changes and force compliance to move forward.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;on-the-importance-of-deletion-deprecation&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#on-the-importance-of-deletion-deprecation&quot; aria-label=&quot;Anchor link: on-the-importance-of-deletion-deprecation&quot;&gt;On the Importance of Deletion &#x2F; Deprecation&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Destruction is just as, if not more, important than creation.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Deletion of primitives should be built into an ISA spec&lt;&#x2F;li&gt;
&lt;li&gt;What we see happen is often the opposite: ISAs get bloated over time (Power, x86), more things are added to the base ISA, uArchs get more complicated and people feel external pressure to support legacy features
&lt;ul&gt;
&lt;li&gt;Then someone comes up with a new clean room ISA (RISC-V) and it gets traction and a jump in uArch innovation&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;ARM is doing a good job with deleting stuff from new specs and forcing compliance by just scrapping the notion that all software must run on all iterations of a processor
&lt;ul&gt;
&lt;li&gt;We may hear something about this soon ;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Break things that are bad decisions and let people downstream suffer or adapt
&lt;ul&gt;
&lt;li&gt;Coddling creates weakness - APIs (and ISAs) should get rid of bad decisions quickly and force others to use the better approach. Backwards compatability is only a concern if you make it so.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Obsession with “backwards compatability” is a codeword for stagnation and rot&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;precise-exceptions-in-dojo&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#precise-exceptions-in-dojo&quot; aria-label=&quot;Anchor link: precise-exceptions-in-dojo&quot;&gt;Precise Exceptions in DOJO&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;So DOJO doesn’t have precise exceptions. Why?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;We ran out of time and the software people wanted silicon now instead of 6 months from now.&lt;&#x2F;li&gt;
&lt;li&gt;Anyways we control all the software so debugging may be painful, but it’s all internal. If there is an illegal instruction or any other trap we can resolve it with silicon debugging and maybe emulation. But it would have been more painful to hire more people to implement precise exceptions.&lt;&#x2F;li&gt;
&lt;li&gt;Same thing with virtual memory - just punt it to software. The tradeoff is all about iteration speed - NVIDIA can’t supply us with enough GPUs for training on millions of hours of video, we have to take drastic action quickly.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;academic-and-industry-uarch-collaboration&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#academic-and-industry-uarch-collaboration&quot; aria-label=&quot;Anchor link: academic-and-industry-uarch-collaboration&quot;&gt;Academic and Industry uArch Collaboration&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Academic and industry uarch collaboration fell through due to a &lt;a href=&quot;https:&#x2F;&#x2F;www.manufacturing.net&#x2F;industry40&#x2F;news&#x2F;13073644&#x2F;intel-uwmadison-settle-patent-lawsuit&quot;&gt;UW-Intel patent dispute&lt;&#x2F;a&gt; that lead to industry paying settlements - now everyone keeps arch features within each company and away from academia.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;We’re trying to overcome that blemish and resume collaboration&lt;&#x2F;li&gt;
&lt;li&gt;Tesla is committed to putting more things in the open and the DOJO fabric will be open sourced at some point&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;ethernet-superiority&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#ethernet-superiority&quot; aria-label=&quot;Anchor link: ethernet-superiority&quot;&gt;Ethernet Superiority&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Ethernet’s physical layer has been progressing faster than PCIe (see upcoming 800Gbps links). We prefer to use Ethernet for chip-to-chip and board-to-board communication. DOJO fabric is all Ethernet - to namely avoid PCIe used as much as possible for host-accelerator communication. PCIe requires complexity for long traces due to latency requirements, while Ethernet has no such restriction. They use a combination of copper and optical physical channels.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;on-publish-or-perish&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#on-publish-or-perish&quot; aria-label=&quot;Anchor link: on-publish-or-perish&quot;&gt;On Publish or Perish&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Eric also mentioned his disdain for the publication mania in academia. He is supportive of efforts like ArXiV that have changed the model of info dissemmination from conferences and journals to just a website on which nearly anyone can publish things. He mentions that nearly all cutting edge ML research is just published in the open, completely independent from any academic venue.&lt;&#x2F;p&gt;
&lt;p&gt;This conference &#x2F; journal &#x2F; peer review culture supports some very bad things. Constant use of the same stale and meaningless benchmarks trying to one up each other. Inability to work on long term vision problems. Politics on review committees preventing good papers from being published. Peer review doesn’t address any real concerns about a paper - it is just a formality at best and a citation farm at worst. Elevation of frequently published people who may not have any real innovation but rather just constant iteration of a basic block (&lt;em&gt;my note&lt;&#x2F;em&gt;: see KAIST’s papers at any circuits conference).&lt;&#x2F;p&gt;
&lt;h2 id=&quot;more-notes-from-charles-hong&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#more-notes-from-charles-hong&quot; aria-label=&quot;Anchor link: more-notes-from-charles-hong&quot;&gt;More Notes (from Charles Hong)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;variable-length-instructions&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#variable-length-instructions&quot; aria-label=&quot;Anchor link: variable-length-instructions&quot;&gt;Variable length instructions&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;We discussed a bunch of cpu arch&#x2F;uarch stuff&lt;&#x2F;li&gt;
&lt;li&gt;General idea: fixed length instructions allow for wide decoders that stay simple and save power&#x2F;area&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;why-don-t-people-just-accept-apple-s-uarch-as-the-superior-cpu-uarch&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#why-don-t-people-just-accept-apple-s-uarch-as-the-superior-cpu-uarch&quot; aria-label=&quot;Anchor link: why-don-t-people-just-accept-apple-s-uarch-as-the-superior-cpu-uarch&quot;&gt;Why don’t people just accept Apple’s uArch as the superior CPU uArch?&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Actually it’s not just Apple - CPU architectures descending from Intel P6 (and before) all have the same structure
&lt;ul&gt;
&lt;li&gt;NetBurst implemented extra stuff (SMT, etc), but it didn’t work&lt;&#x2F;li&gt;
&lt;li&gt;An example of people always adding and never removing&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Apple is the best now, but their engineers are leaving and tech companies never stay at the top for too long
&lt;ul&gt;
&lt;li&gt;need to be like mongols and keep expanding, don’t get soft (lol)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;tesla-internals&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#tesla-internals&quot; aria-label=&quot;Anchor link: tesla-internals&quot;&gt;Tesla Internals&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Fire and floods are common in the lab because Elon wants to move fast - chemicals strewn about&lt;&#x2F;li&gt;
&lt;li&gt;FSD not likely to “work”, but it actually already drives better than most people because people are bad at paying attention&lt;&#x2F;li&gt;
&lt;li&gt;The actual goal of computer vision advancements is to send stuff to Mars with Elon for his Mars base&lt;&#x2F;li&gt;
&lt;li&gt;Ethernet is the best physical link standard&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;benchmarking-and-modeling&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#benchmarking-and-modeling&quot; aria-label=&quot;Anchor link: benchmarking-and-modeling&quot;&gt;Benchmarking and Modeling&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;People really want benchmarks - e.g. GeekBench guy came in and made lots of money&lt;&#x2F;li&gt;
&lt;li&gt;Performance is accurately captured by industry models, but designs target the wrong metrics&lt;&#x2F;li&gt;
&lt;li&gt;On using emulation to generate new benchmarks from traces of long running real applications
&lt;ul&gt;
&lt;li&gt;I don’t think Eric had any particular insights on how to extract new benchmark suites&lt;&#x2F;li&gt;
&lt;li&gt;How do you know the things you run in emulation are the right benchmarks in the first place?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;my-perspective&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#my-perspective&quot; aria-label=&quot;Anchor link: my-perspective&quot;&gt;My Perspective&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;we-need-to-settle-arguments&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#we-need-to-settle-arguments&quot; aria-label=&quot;Anchor link: we-need-to-settle-arguments&quot;&gt;We Need to Settle Arguments&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Well clearly someone is right: it is either Krste (RISC-V compressed instructions aren’t a big overhead, we can still do wide decode and retain high code density) or Eric (you can’t do wide decode easily and it will be harder to hit optimal uArch to run HPC&#x2F;server workloads). Who is it? How can we do the experiment in the open?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Question: Does a variable length ISA overall harm IPC and critical path on HPC workloads?&lt;&#x2F;li&gt;
&lt;li&gt;Platforms: (1) A 4-wide RV64GC BOOM (and all the usual variable length perf optimizations). (2) A 8&#x2F;10-wide RV64G BOOM (stamped out parallel decoders).&lt;&#x2F;li&gt;
&lt;li&gt;Benchmark: Some typical phone-user JITed workload (e.g. Javascript) and some server workload (e.g. JVM-based webserver) + physical design evaluation.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;In mid-October, Eric gave me some clarification on an experiment we could set up (see below):&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;On Krste or me being right, for my thought experiment add insane numbers of ALUs to your 8-10 wide fixed decoder and the 3x LDs or so to feed it. Cluster the ALUs in big honkin groups and +1 fwd cycle for all I care between clusters, just try to keep alu&#x2F;agens fast fwd if possible. This may overweight one cluster with early binding bc of dependencies, but y’all can clever your way of of that pretty easily at branch boundaries.&lt;&#x2F;p&gt;
&lt;p&gt;Don’t universal schedule, do dedicated per ALU pls -keep it simple stupid. My assertion is the dumber, wider uarch wins. Width of decode is not about sustained IPC, it’s about burstiness of JIT code so have the junk ALUs to eat the bursts. This WILL require you to fetch &amp;gt;1 basic block, so on brp you’ll need target-of-target redundant storage (just write down BIAS or whatever, always&#x2F;mostly taken is the common case, will fetch you 2 basic blocks most of the time. See ISCA 2020 Samsung paper for ZAT&#x2F;ZOT implementation)&lt;&#x2F;p&gt;
&lt;p&gt;Also rename of 8-10 wide — just speculate the common case (2 in, 1 out) and if some op breaks that model (e.g. 3 input, 2 dest, etc), just skid 1 cycle and lose the extra width.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h3 id=&quot;working-at-tesla&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#working-at-tesla&quot; aria-label=&quot;Anchor link: working-at-tesla&quot;&gt;Working at Tesla&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;From my impression, Tesla is a great place to work. The hierarchy doesn’t just exist for its own benefit &#x2F; governance, but actually enables downstream engineers to do what needs to be done. No annoying or incompetent managers. Musk hand-selects the best people to lead each team. Only recently have they been opening up their silicon team to new hires vs poaching. Tesla doesn’t seem to be interested in ‘maintenance’ of software - people are expected to adapt to new APIs, remove deprecated ones, and rewrite often.&lt;&#x2F;p&gt;
&lt;p&gt;A few days later, I saw this conversation &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;TechEmails&#x2F;status&#x2F;1575598387335901190&quot;&gt;from here&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Parag Agrawal texts Elon Musk&lt;&#x2F;p&gt;
&lt;p&gt;April 9, 2022&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;figure class=&quot;inset-x&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-musk_parag_convo.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;comp-arch&#x2F;eric-quinnell-from-tesla-on-variable-length-isas-cpus-fsd-dojo&#x2F;musk_parag_convo.jpg&quot; data-pswp-width=&quot;970&quot; data-pswp-height=&quot;1060&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;comp-arch&amp;#x2F;eric-quinnell-from-tesla-on-variable-length-isas-cpus-fsd-dojo&amp;#x2F;musk_parag_convo.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;This just confirms to me that Tesla is the place to be.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;un-asked-questions&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#un-asked-questions&quot; aria-label=&quot;Anchor link: un-asked-questions&quot;&gt;Un-Asked Questions&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;What is the SOTA of industry-tier perf and power models? Do they also consider floorplans &#x2F; have congestion models?
&lt;ul&gt;
&lt;li&gt;How do these models compare with academic perf models e.g. gem5 - just how bad are the academic models?&lt;&#x2F;li&gt;
&lt;li&gt;Is mixed-simulation (performance model of a core + small uArch feature in RTL) actually used to evaluate new arch features?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;What metrics do academics fail to focus on?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Undergrad Projects in the SLICE Lab</title>
          <pubDate>Tue, 30 Aug 2022 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://vighneshiyer.com/research/blog/my-ugrad-projects-in-2023/</link>
          <guid>https://vighneshiyer.com/research/blog/my-ugrad-projects-in-2023/</guid>
          <description xml:base="https://vighneshiyer.com/research/blog/my-ugrad-projects-in-2023/">&lt;div class=&quot;callout&quot;&gt;
  &lt;div class=&quot;callout-title&quot;&gt;✧ A disclaimer (2025 update)&lt;&#x2F;div&gt;
  &lt;div class=&quot;callout-content&quot;&gt;&lt;p&gt;This is an old article. It’s just here for fun and history keeping. Don’t take the proposed projects below too seriously, even though I’m still quite positive about some of them.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;ul&gt;
&lt;li&gt;Vighnesh Iyer (vighnesh.iyer@berkeley.edu)&lt;&#x2F;li&gt;
&lt;li&gt;If you’re interested in any of the projects below, please contact me by email and we’ll set up time to talk and discuss ways to get started.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;about-me&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#about-me&quot; aria-label=&quot;Anchor link: about-me&quot;&gt;About Me&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;5th year PhD student advised by &lt;a href=&quot;https:&#x2F;&#x2F;www2.eecs.berkeley.edu&#x2F;Faculty&#x2F;Homepages&#x2F;nikolic.html&quot;&gt;Prof. Bora Nikolic&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Part of the &lt;a href=&quot;https:&#x2F;&#x2F;slice.eecs.berkeley.edu&#x2F;&quot;&gt;SLICE lab&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;bar.eecs.berkeley.edu&#x2F;&quot;&gt;Berkeley Architecture Research&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ucb-bar&quot;&gt;github&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;Working on machine learning for hardware verification and power modeling&lt;&#x2F;li&gt;
&lt;li&gt;I’ve advised two 5th year MS students and a handful of undergrads&lt;&#x2F;li&gt;
&lt;li&gt;I’m planning to graduate by the end of 2023 (you will be able to do research with me for at least 3 semesters)&lt;&#x2F;li&gt;
&lt;li&gt;Undergraduate research is a great way to get to know professors, work on and read papers, present posters at our lab retreats, get industry contacts and introductions, and get feedback on your work!
&lt;ul&gt;
&lt;li&gt;Also an opportunity to get some food throughout the week :)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;slice-lab-tooling&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#slice-lab-tooling&quot; aria-label=&quot;Anchor link: slice-lab-tooling&quot;&gt;SLICE Lab Tooling&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;In the &lt;a href=&quot;https:&#x2F;&#x2F;slice.eecs.berkeley.edu&#x2F;&quot;&gt;SLICE lab&lt;&#x2F;a&gt;, we work on hardware accelerator design, system-level integration and analysis, and design methodology.
I focus on the verification aspect of our design work.
In particular, I work on testing libraries that are specialized for our &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chipsalliance&#x2F;chisel3&quot;&gt;hardware design language, Chisel&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;Most of these proposed projects are built around adding verification features to our &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ucb-bar&#x2F;chiseltest&quot;&gt;testbench API for Chisel-generated circuits: chiseltest&lt;&#x2F;a&gt;.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;If you’ve taken CS 61C, you will recall that digital circuits can be described by instanting primitives (flip-flops, RAMs, boolean logic, arithmetic blocks) and wiring them together to create a digital system, like a RISC-V CPU.
You did this using a schematic entry program, like &lt;a href=&quot;http:&#x2F;&#x2F;www.cburch.com&#x2F;logisim&#x2F;&quot;&gt;Logisim&lt;&#x2F;a&gt;, where you visually laid out the primitives and connections between them.&lt;&#x2F;p&gt;
&lt;p&gt;If you’ve taken EECS 151, you were introduced to &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Verilog&quot;&gt;Verilog&lt;&#x2F;a&gt;, which is a domain-specific language for describing digital circuits.
The primitives you can express in Verilog are similar to the ones you find in Logisim, but instead of using visual schematic entry, you describe the circuit as code (textually).
While this is an improvement over schematic entry when it comes to circuit reusability, Verilog is a poor language for creating digital circuit &lt;em&gt;generators&lt;&#x2F;em&gt; due to its idiosyncracies and limited language features.&lt;&#x2F;p&gt;
&lt;p&gt;To enable the desription of hardware generators, our lab developed &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chipsalliance&#x2F;chisel3&quot;&gt;Chisel&lt;&#x2F;a&gt;, which is a library written in the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Scala_(programming_language)&quot;&gt;Scala programming language&lt;&#x2F;a&gt; that allows you to write programs that connect primitives and signals together to construct a digital circuit.
Chisel, by virtue of being a Scala library, can take advantage of the advanced language features of Scala to enable a new level of circuit reusability, abstraction, and ergonomics.&lt;&#x2F;p&gt;
&lt;p&gt;It is important to note though, that Chisel does not translate a Scala program into a circuit.
Instead it allows you to write a Scala program that outputs a circuit, just like a Python program using matplotlib might output a graph.
If you want to learn Chisel, I recommend going through the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;freechipsproject&#x2F;chisel-bootcamp&quot;&gt;Chisel bootcamp&lt;&#x2F;a&gt; which features a series of exercises that you can do in a notebook without having to install anything on your computer.&lt;&#x2F;p&gt;
&lt;p&gt;For an overview of Verilog, see my presentation: &lt;a href=&quot;https:&#x2F;&#x2F;docs.google.com&#x2F;presentation&#x2F;d&#x2F;1ELLsfgg8NWw1J67gBWA1rxhiA6z760Z-c6iaqVx6c-g&#x2F;edit?usp=sharing&quot;&gt;An Overview of SystemVerilog for Design and Verification&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;proposed-projects&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#proposed-projects&quot; aria-label=&quot;Anchor link: proposed-projects&quot;&gt;Proposed Projects&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;high-performance-ffi-bridge-between-c-and-jvm-for-rtl-testbenches&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#high-performance-ffi-bridge-between-c-and-jvm-for-rtl-testbenches&quot; aria-label=&quot;Anchor link: high-performance-ffi-bridge-between-c-and-jvm-for-rtl-testbenches&quot;&gt;High-Performance FFI Bridge between C++ and JVM for RTL Testbenches&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Skills&lt;&#x2F;strong&gt;: low-level Java programming, dynamic linking, performance profiling and benchmarking&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Outcome&lt;&#x2F;strong&gt;: state-of-the-art foreign language (Scala) testbench performance, coming close to the performance of using a native testbench language of an RTL simulator (e.g. C++ with Verilator or SystemVerilog with VCS)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;p&gt;In order to check whether a circuit works as expected, we need to write some tests for it.
The chiseltest library makes that easy by providing a high level-interface in Scala that you can write your tests against.
In order to quickly execute these tests, the circuit is converted into a C++ simulator using &lt;a href=&quot;https:&#x2F;&#x2F;www.veripool.org&#x2F;verilator&#x2F;&quot;&gt;Verilator&lt;&#x2F;a&gt;.
The C++ sources are then compiled into a shared library which is loaded into the Scala program using the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;java-native-access&#x2F;jna&quot;&gt;JNA library&lt;&#x2F;a&gt; (one of Java’s foreign function interface (FFI) APIs).&lt;&#x2F;p&gt;
&lt;p&gt;Unfortunately JNA has significant overhead that slows down the simulation.&lt;&#x2F;p&gt;
&lt;p&gt;In this project you would learn how to call C code from Java&#x2F;Scala using the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Java_Native_Interface&quot;&gt;JNI (Java Native Interface)&lt;&#x2F;a&gt; or even the &lt;a href=&quot;https:&#x2F;&#x2F;openjdk.org&#x2F;jeps&#x2F;412&quot;&gt;brand new Java 18 FFM (Foreign Function and Memory) API&lt;&#x2F;a&gt;.
Then you would investigate how to load shared libraries at runtime using &lt;code&gt;dlopen&lt;&#x2F;code&gt;.
With that knowledge you will speed up our simulator interface by replacing our use of JNA with a small C library and JNI or FFM.&lt;&#x2F;p&gt;
&lt;p&gt;At the end of the project you will contribute those changes to the chiseltest project so that the whole community can benefit from your performance improvement.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;a-functional-high-performance-testbench-api&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#a-functional-high-performance-testbench-api&quot; aria-label=&quot;Anchor link: a-functional-high-performance-testbench-api&quot;&gt;A Functional, High-Performance Testbench API&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Skills&lt;&#x2F;strong&gt;: functional programming, Scala, testbench design and architecture&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Outcome&lt;&#x2F;strong&gt;: demonstration of a unique monadic testbench specification approach which will achieve SOTA fork&#x2F;join testbench parallelism performance from a foreign language (Scala)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;www.chipverify.com&#x2F;systemverilog&#x2F;systemverilog-fork-join&quot;&gt;fork&#x2F;join construct&lt;&#x2F;a&gt; is the primary way to express parallelism when writing an RTL testbench.
For example, if you have a hardware module with two ports, one for data input and another for data output, you will often want to drive the input port and monitor the output port simultaneously.
This is easy enough to do in Verilog, but we want to build a verification environment in a high-level language like Scala where such primitives need to be emulated.&lt;&#x2F;p&gt;
&lt;p&gt;We have previously developed a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vighneshiyer&#x2F;simcommand&quot;&gt;testbench API called SimCommand&lt;&#x2F;a&gt; which enables writing high-performance testbenches in Scala that can emulate Verilog’s fork&#x2F;join threading.
This library is based around a monad &lt;code&gt;Command[R]&lt;&#x2F;code&gt; which describes an RTL simulator interaction that terminates with a value of type &lt;code&gt;R&lt;&#x2F;code&gt;.
The library contains an interpreter of &lt;code&gt;Command[R]&lt;&#x2F;code&gt; which actually performs the actions described by the &lt;code&gt;Command&lt;&#x2F;code&gt;, including fork&#x2F;join threading emulation, and returns a &lt;code&gt;value: R&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;In this project, we will continue to develop and mature this library by:
&lt;ul&gt;
&lt;li&gt;Improving performance by rewriting the core interpreter in an imperative style to minimize allocations&lt;&#x2F;li&gt;
&lt;li&gt;Implement looping constructs as primitives to further improve performance&lt;&#x2F;li&gt;
&lt;li&gt;Implementing channels to enable deterministic cross-thread communication&lt;&#x2F;li&gt;
&lt;li&gt;Implementing scheduling regions to resolve potential race conditions and catch all other races at runtime&lt;&#x2F;li&gt;
&lt;li&gt;Adding logging and error reporting functionality to the &lt;code&gt;Command&lt;&#x2F;code&gt; monad&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;We will also work on building libraries on top of SimCommand such as verification IPs for common bus types (TileLink, AXI4) as well as transaction-level hardware models based on SimCommand’s primitives&lt;&#x2F;li&gt;
&lt;li&gt;We are hoping to integrate this library as an alternative frontend to chiseltest if we can achieve performance that rivals native language testbenches&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;high-level-synthesis-hls-of-verification-ips-vips-for-fpga-accelerated-simulation&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#high-level-synthesis-hls-of-verification-ips-vips-for-fpga-accelerated-simulation&quot; aria-label=&quot;Anchor link: high-level-synthesis-hls-of-verification-ips-vips-for-fpga-accelerated-simulation&quot;&gt;High-Level Synthesis (HLS) of Verification IPs (VIPs) for FPGA Accelerated Simulation&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Skills&lt;&#x2F;strong&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;mlir.llvm.org&#x2F;&quot;&gt;LLVM &#x2F; MLIR&lt;&#x2F;a&gt;, RTL design, compilers&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Outcome&lt;&#x2F;strong&gt;: a VIP library which can automatically generate accelerated RTL and FPGA simulators by lowering software VIP implementations to hardware via HLS&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;p&gt;Most functional verification is done using software RTL simulators.
While they are very flexible and fast to start up, their simulation speeds are slow and this slowness comes from two sources.
(1) the testbench interface to the RTL simulator may have a large overhead such as needing to synchronize every cycle.
(2) the RTL simulator may simply take a long time to advance simulation time independent of the testbench communication latency due to the complexity and size of the RTL.&lt;&#x2F;p&gt;
&lt;p&gt;(1) can be addressed by moving more of the testbench collateral to the RTL simulator, decoupled from the testbench host language (usually Scala in our setups).
This involves translating the verification IP that interacts with the RTL to software that can be tightly linked with the RTL simulator, or into hardware that can be compiled along with the RTL design.
This technique aims to minimize the communication overhead between the testbench host language and RTL simulator.&lt;&#x2F;p&gt;
&lt;p&gt;(2) can be addressed by synthesizing the RTL for FPGA implementation.
The consequence is that the host to FPGA communication latency often becomes the bottleneck in simulation speed.
To solve this, we can use high-level synthesis (HLS) to compile the verification IPs around the RTL to hardware and tightly couple them to the RTL logic in the FPGA.&lt;&#x2F;p&gt;
&lt;p&gt;In this project, we will explore ways to use &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vighneshiyer&#x2F;simcommand&quot;&gt;SimCommand&lt;&#x2F;a&gt; as a front-end for specifying VIPs which are then compiled to hardware using HLS.
We will attempt to translate a constrained subset of SimCommand programs into the &lt;a href=&quot;https:&#x2F;&#x2F;calyxir.org&#x2F;&quot;&gt;Calyx IR&lt;&#x2F;a&gt; and use the LLVM&#x2F;MLIR flow to lower the programs into hardware.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;functional-introspectable-constrained-random-api-for-stimulus-embedding&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#functional-introspectable-constrained-random-api-for-stimulus-embedding&quot; aria-label=&quot;Anchor link: functional-introspectable-constrained-random-api-for-stimulus-embedding&quot;&gt;Functional, Introspectable Constrained Random API for Stimulus Embedding&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Skills&lt;&#x2F;strong&gt;: functional programming, Scala, SMT&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Outcome&lt;&#x2F;strong&gt;: a constrained random generation library with the superpower of introspectability, which enables a far greater level of deep instrumentation than the SOTA&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;p&gt;Both hardware and software are tested by supplying some function with inputs and checking if the outputs are what we expect.
In the hardware verification world, we rely extensively on constrained random stimulus generators to produce test inputs for our circuits.
There are both open-source constrained random libraries such as &lt;a href=&quot;https:&#x2F;&#x2F;pyvsc.readthedocs.io&#x2F;en&#x2F;latest&#x2F;introduction.html#what-is-pyvsc&quot;&gt;PyVSC&lt;&#x2F;a&gt; as well as commercial libraries such as those baked into Verilog simulators like &lt;a href=&quot;https:&#x2F;&#x2F;www.synopsys.com&#x2F;verification&#x2F;simulation&#x2F;vcs.html&quot;&gt;VCS&lt;&#x2F;a&gt; or &lt;a href=&quot;https:&#x2F;&#x2F;www.cadence.com&#x2F;en_US&#x2F;home&#x2F;tools&#x2F;system-design-and-verification&#x2F;simulation-and-testbench-verification&#x2F;xcelium-simulator.html&quot;&gt;Xcelium&lt;&#x2F;a&gt; (they take constraints written using the &lt;a href=&quot;https:&#x2F;&#x2F;verificationguide.com&#x2F;systemverilog&#x2F;systemverilog-constraints&#x2F;&quot;&gt;SystemVerilog constrained random API&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;When a random solver produces stimulus, we only see the stimulus it generates, not &lt;em&gt;how&lt;&#x2F;em&gt; it came to generate that stimulus (e.g. which constraints were active, what random values were chosen by the solver, what distribution was sampled from, what decisions were made on a random value).
This information is hidden away in the internals of the solver, but it may prove useful when it comes to constructing a &lt;em&gt;representation&lt;&#x2F;em&gt; (embedding) for a given stimulus.
We aim to develop a constrained random solver which offers &lt;em&gt;instrumentation as a first-class construct&lt;&#x2F;em&gt; so that it is easy to extract these stimulus features as the stimulus is being generated.&lt;&#x2F;p&gt;
&lt;p&gt;The best way to tackle this problem, is to use techniques from functional programming.
In particular, we can be inspired by prior work in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;NICTA&#x2F;rng&quot;&gt;pure-functional Scala random generators&lt;&#x2F;a&gt; and the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;typelevel&#x2F;scalacheck&quot;&gt;property testing library for Scala: ScalaCheck&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;typelevel&#x2F;scalacheck&#x2F;blob&#x2F;main&#x2F;doc&#x2F;UserGuide.md&quot;&gt;ScalaCheck docs&lt;&#x2F;a&gt;) (&lt;a href=&quot;https:&#x2F;&#x2F;www.dcc.fc.up.pt&#x2F;~pbv&#x2F;aulas&#x2F;tapf&#x2F;handouts&#x2F;quickcheck.html&quot;&gt;QuickCheck overview&lt;&#x2F;a&gt;).
In this project, we will study how to apply principled FP techniques along with domain-specific knowledge about hardware stimulus generators to produce an introspectable constrained random library.&lt;&#x2F;p&gt;
&lt;p&gt;See my presentation for details: &lt;a href=&quot;https:&#x2F;&#x2F;docs.google.com&#x2F;presentation&#x2F;d&#x2F;10dLaAaFjYCly3EufSh-FFrO5ZMZyib2CFwhFaazXQeQ&#x2F;edit?usp=sharing&quot;&gt;Functional Random Stimulus Generators and Their Applications&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;coverage-specification-api-for-chisel&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#coverage-specification-api-for-chisel&quot; aria-label=&quot;Anchor link: coverage-specification-api-for-chisel&quot;&gt;Coverage Specification API for Chisel&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Skills&lt;&#x2F;strong&gt;: Scala&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Outcome&lt;&#x2F;strong&gt;: a user-level Scala library to specify coverpoints and covergroups in Chisel circuits that puts Chisel verification constructs on par with SystemVerilog&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;p&gt;Hardware verification is similar to software verification in that we run tests on our circuit until a certain &lt;em&gt;coverage&lt;&#x2F;em&gt; has been achieved.
In software, we usually measure line and branch coverage which corresponds to making sure we tested every statement and every branch in our code.&lt;&#x2F;p&gt;
&lt;p&gt;In hardware, defining coverage is more complex.
We also use software-like structural coverage metrics such as line, branch, and conditional coverage.
But we also have hardware specific metrics such as toggle coverage (which measures whether each flip-flop in the design has transitioned from 0 → 1 and 1 → 0).
In addition to these structural metrics, hardware coverage also includes user-defined coverpoints which, among other things, can measure how often some hardware signal lands in a user-specified range.&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code class=&quot;language-verilog&quot;&gt;module tb();
    logic [1:0] state;
    covergroup state_cg @(posedge clk);
        coverpoint state;
    endgroup
endmodule&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;For instance, in this example, the &lt;code&gt;state_cg&lt;&#x2F;code&gt; covergroup will measure how many times &lt;code&gt;state&lt;&#x2F;code&gt; lands in each of its bins (0, 1, 2, 3) during a test execution.
The &lt;a href=&quot;https:&#x2F;&#x2F;www.chipverify.com&#x2F;systemverilog&#x2F;systemverilog-covergroup-coverpoint&quot;&gt;SystemVerilog covergroup and coverpoint specification API&lt;&#x2F;a&gt; provides all kinds of more sophisticated functionality.&lt;&#x2F;p&gt;
&lt;p&gt;In this project, we will implement a coverage specification API for Chisel defined circuits.
We will lower the coverage specification to basic primitives for coverage collection that work across RTL simulation, formal, and FPGA emulation.
In doing so, we will develop a major verification feature for Chisel that has been frequently requested.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;integration-of-coverage-passes-coverage-merging-and-report-generation-into-chiseltest&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#integration-of-coverage-passes-coverage-merging-and-report-generation-into-chiseltest&quot; aria-label=&quot;Anchor link: integration-of-coverage-passes-coverage-merging-and-report-generation-into-chiseltest&quot;&gt;Integration of Coverage Passes, Coverage Merging, and Report Generation into chiseltest&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Skills&lt;&#x2F;strong&gt;: web frontend development, general purpose data wrangling&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Outcome&lt;&#x2F;strong&gt;: a coverage report viewer designed specifically for hardware verification&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;p&gt;In software, coverage consists mainly of line coverage (which is easy to visualize simply by highlighting lines of source code - e.g. for gcov, &lt;a href=&quot;https:&#x2F;&#x2F;wiki.documentfoundation.org&#x2F;Development&#x2F;Lcov&quot;&gt;lcov&lt;&#x2F;a&gt; is a simple HTML coverage report generator).
Hardware coverage databases require extra features to visualize properly.
In hardware, many different types of coverage exist such as toggle coverage, sub-conditional coverage, and custom covergroups, which are difficult to visualize in the same manner.&lt;&#x2F;p&gt;
&lt;p&gt;We have developed a methodology for a uniform coverage specification in Chisel based on the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chipsalliance&#x2F;firrtl&#x2F;blob&#x2F;6aa86b13abe25271278498836217c89c00d7b151&#x2F;src&#x2F;main&#x2F;scala&#x2F;firrtl&#x2F;ir&#x2F;IR.scala#L789&quot;&gt;FIRRTL cover IR node&lt;&#x2F;a&gt;.
As part of this project, we will upstream our previously developed “Simulator Indepdent Coverage” methodology to chiseltest.&lt;&#x2F;p&gt;
&lt;p&gt;In this project, we will extend chiseltest to support emission of coverage data into the &lt;a href=&quot;https:&#x2F;&#x2F;www.accellera.org&#x2F;activities&#x2F;working-groups&#x2F;ucis&quot;&gt;UCIS coverage format&lt;&#x2F;a&gt; and merging coverage across tests.
Concurrently, we will develop a web app which can read a coverage database and Verilog &#x2F; FIRRTL &#x2F; Scala source code and visualize coverage metrics in an innovative way.
To our knowledge, there is no existing hardware-specific coverage report generator in open-source and the commercial implementations are clunky and difficult to work with.&lt;&#x2F;p&gt;
&lt;p&gt;Here is some prior work using lcov to visualize RTL line coverage:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;https:&#x2F;&#x2F;substate-tech.github.io&#x2F;ambel&#x2F;coverage&#x2F;ambel&#x2F;SimpleApb2CSTrgt.sv.gcov.html&lt;&#x2F;li&gt;
&lt;li&gt;https:&#x2F;&#x2F;github.com&#x2F;substate-tech&#x2F;ambel&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;mutation-testing-for-chisel-circuits&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#mutation-testing-for-chisel-circuits&quot; aria-label=&quot;Anchor link: mutation-testing-for-chisel-circuits&quot;&gt;Mutation Testing for Chisel Circuits&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Skills&lt;&#x2F;strong&gt;: programming in Scala, formal methods, circuits, firrtl IR&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Outcome&lt;&#x2F;strong&gt;: a mutation testing library that can be used to tease out bugs in chiseltest testbenches and demonstrate the viability of new mutation techniques&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;&#x2F;strong&gt; (credit to Kevin Laeufer):&lt;&#x2F;p&gt;
&lt;p&gt;I work on tools and techniques to more quickly test circuits written in Chisel.
However, how can we actually know whether these techniques work?
One way of assessing the quality of a test is to see how many bugs it finds.
But how do we get a circuit that has enough bugs to provide us with interesting feedback about the performance of our testing technique?&lt;&#x2F;p&gt;
&lt;p&gt;The approach we are going to investigate in this project is called mutation testing.
The basic idea is to add a single small change to the circuit and then to try and see if the test can detect the change.
For this project you will learn about the firrtl compiler which can be used to programmatically change Chisel circuits.&lt;&#x2F;p&gt;
&lt;p&gt;Once you are able to automatically introduce small changes (i.e., mutations) into the circuit, we need to make sure that we can filter out the changes that might not be detectable.
There are numerous reasons why a change might not be detectable, but a simple example would be changing part of the code that is never executed.
Thus to the outside world, the original circuit as well as the mutated one behave exactly the same.&lt;&#x2F;p&gt;
&lt;p&gt;During the course of this project we will study an &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;YosysHQ&#x2F;mcy&quot;&gt;open source mutation testing implementation for Verilog circuits&lt;&#x2F;a&gt; as well as some academic papers on mutation testing.
Then you will implement a version for Chisel circuits.
The final goal of the project is to benchmark and study your implementation and to open-source your code so that others in the Chisel community can use it.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;waveform-visualization-for-debug&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#waveform-visualization-for-debug&quot; aria-label=&quot;Anchor link: waveform-visualization-for-debug&quot;&gt;Waveform Visualization for Debug&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Skills&lt;&#x2F;strong&gt;: C++&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Outcome&lt;&#x2F;strong&gt;: a chiseltest extension that enables easy waveform circuit debugging with transactions&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;p&gt;The goal is to augment the most popular open source waveform viewer &lt;a href=&quot;http:&#x2F;&#x2F;gtkwave.sourceforge.net&#x2F;&quot;&gt;gtkwave&lt;&#x2F;a&gt; with the ability visualize higher-level information (such as hardware transactions vs. raw wire values) directly on the waveform.
There is some &lt;a href=&quot;https:&#x2F;&#x2F;antmicro.com&#x2F;blog&#x2F;2019&#x2F;12&#x2F;testing-usb-cores-with-python-and-cocotb&#x2F;&quot;&gt;scant&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;gist.github.com&#x2F;carlosedp&#x2F;97188d9b0749c9faf99f8a79df5a3db6&quot;&gt;prior&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ekiwi&#x2F;chisel-testers2&#x2F;commits&#x2F;gtkwave&quot;&gt;work&lt;&#x2F;a&gt; that we will systematically incorporate into our testing framework, chiseltest.
See the links for details.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;fuzzing-hardware-models-as-a-proxy-for-fuzzing-hardware&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#fuzzing-hardware-models-as-a-proxy-for-fuzzing-hardware&quot; aria-label=&quot;Anchor link: fuzzing-hardware-models-as-a-proxy-for-fuzzing-hardware&quot;&gt;Fuzzing Hardware Models as a Proxy for Fuzzing Hardware&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Skills&lt;&#x2F;strong&gt;: C++ and binary instrumentation, software fuzzing&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Outcome&lt;&#x2F;strong&gt;: In short, we want to use AFL or other software fuzzers to fuzz &lt;em&gt;models&lt;&#x2F;em&gt; of hardware such as ISA-level (spike, ovpsim) or arch-level (gem5-riscv) CPU simulators and show that this process can yield stimuli that reaches high coverage in RTL simulation.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;&#x2F;strong&gt;: for details on this project, see &lt;a href=&quot;https:&#x2F;&#x2F;docs.google.com&#x2F;presentation&#x2F;d&#x2F;1Tt3lf3G8HVGeqw_Ocha_-6l9IdUESixWX4t3oNUjPv0&#x2F;edit?usp=sharing&quot;&gt;my presentation&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;undeveloped-ideas&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#undeveloped-ideas&quot; aria-label=&quot;Anchor link: undeveloped-ideas&quot;&gt;Undeveloped Ideas&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;There are many other project ideas I have bounced around, but they aren’t sufficiently developed to write a section about them.
If you’re interested in any of these, email me and I’ll be happy to elaborate.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Continuous and directly differentiable hardware models with JAX&lt;&#x2F;li&gt;
&lt;li&gt;A temporal specification language for Chisel&lt;&#x2F;li&gt;
&lt;li&gt;A systematic hardware modeling approach that permits hybrid RTL &#x2F; model simulation&lt;&#x2F;li&gt;
&lt;li&gt;A next-generation CSP-based Diplomacy for SoC construction and parameterization&lt;&#x2F;li&gt;
&lt;li&gt;OSS RISC-V processor benchmarking (this is already done to some degree)
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.esa.informatik.tu-darmstadt.de&#x2F;assets&#x2F;publications&#x2F;materials&#x2F;2019&#x2F;heinz_reconfig19.pdf&quot;&gt;A Catalog and In-Hardware Evaluation of Open-Source Drop-In Compatible RISC-V Softcore Processors - Carsten Heinz et. al.&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;publikationsserver.tu-braunschweig.de&#x2F;servlets&#x2F;MCRFileNodeServlet&#x2F;dbbs_derivate_00048213&#x2F;riscv-survey-cf-zweitpublikation_v2.pdf&quot;&gt;A Comparative Survey of Open-Source Application-Class RISC-V Processor Implementations - Alexander Dörflinger et. al.&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;A Netlist-Level Power Estimation Tool (see below for rough notes)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;div class=&quot;callout&quot;&gt;
  &lt;div class=&quot;callout-title&quot;&gt;Rough Notes&lt;&#x2F;div&gt;
  &lt;div class=&quot;callout-content&quot;&gt;&lt;ul&gt;
&lt;li&gt;Write a tool to estimate power from generic cell netlist + generic cell simulation waveforms
&lt;ul&gt;
&lt;li&gt;Use chiseltest to drive blackbox of generic Verilog to get generic VCD&lt;&#x2F;li&gt;
&lt;li&gt;Tool computes per-cycle power&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Need a way to estimate power of a generic cell
&lt;ul&gt;
&lt;li&gt;Start with unitless estimate based on logical effort sizing model (relative to inverter)&lt;&#x2F;li&gt;
&lt;li&gt;Refine with per-pin transition power also based on simple cap model&lt;&#x2F;li&gt;
&lt;li&gt;Reference 1x inverter power from C_{gate} = W&lt;em&gt;L&lt;&#x2F;em&gt;C_{ox} (from MOS spice model) or C_{gate} = 1-3 fF&#x2F;um&lt;&#x2F;li&gt;
&lt;li&gt;Later: derive generic cell power model from process .lib (undergrad project)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Reference power from Joules (using RTL VCD, rtlstim2gate, Joules synthesized circuit)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;This writeup is inspired by &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;my-ugrad-projects-in-2023&#x2F;Kevin_Laeufer_Undergraduate_Research_Project_Info.pdf&quot;&gt;Kevin Laeufer’s undergrad research info document&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;docs.google.com&#x2F;presentation&#x2F;d&#x2F;1Tt3lf3G8HVGeqw_Ocha_-6l9IdUESixWX4t3oNUjPv0&#x2F;edit?usp=sharing&quot;&gt;drive link&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;The single pager I laid out at the research fair &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;blog&#x2F;my-ugrad-projects-in-2023&#x2F;2022_09-Ugrad_Research_Fair_Sheet.pdf&quot;&gt;can be found here&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;my-verification-agenda-for-2022-23&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#my-verification-agenda-for-2022-23&quot; aria-label=&quot;Anchor link: my-verification-agenda-for-2022-23&quot;&gt;My Verification Agenda for 2022&#x2F;23&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This is just a reference for anyone interested in understanding my high-level agenda and objectives.
If you can think of another project that’s aligned with my efforts, please feel free to email me.&lt;&#x2F;p&gt;
&lt;p&gt;We will be concentrating our dynamic verification effort in 2 areas:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;High performance testbench APIs and a SystemVerilog&#x2F;UVM parity DV environment
&lt;ul&gt;
&lt;li&gt;The ideal DV environment should:
&lt;ul&gt;
&lt;li&gt;Use a high-level general-purpose language to describe the testbench logic, including VIPs, scoreboards, and the constrained random stimulus generator&lt;&#x2F;li&gt;
&lt;li&gt;It should enable polyglot testbenches (use of Python libraries for common workloads like linear algebra or ML or C&#x2F;C++ to interface with driver&#x2F;kernel code for co-simulation)&lt;&#x2F;li&gt;
&lt;li&gt;It must achieve performance parity with the industry standard UVM + SystemVerilog + VCS&#x2F;Xcelium toolchain, but be composed of open source components&lt;&#x2F;li&gt;
&lt;li&gt;It must achieve feature parity with SystemVerilog (temporal property specification language and functional coverage APIs)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;The full scope of this problem is massive, so we will focus our work on a few areas:
&lt;ul&gt;
&lt;li&gt;Extending our prior work in SimCommand to improve the feature set and testbench performance, in addition to performance improvements within chiseltest&lt;&#x2F;li&gt;
&lt;li&gt;Standardizing interfaces throughout Chisel RTL codebases to enable unified VIPs and test environments&lt;&#x2F;li&gt;
&lt;li&gt;Reviving cosimulation infrastructure for accelerators, such as Gemmini, to evaluate large workloads accurately without resorting to FPGA simulation&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Machine learning for coverage closure, bug hunting, constraint tuning, and regression suite construction
&lt;ul&gt;
&lt;li&gt;We are investigating techniques for predicting RTL-level coverage from stimulus &#x2F; random generator features&lt;&#x2F;li&gt;
&lt;li&gt;We will evaluate different methods for solving the ‘missing data problem’ associated with blackbox supervised learning approaches&lt;&#x2F;li&gt;
&lt;li&gt;We will investigate the utility of fine-grained input features in predicting complex output features such as time-domain coverage metrics&lt;&#x2F;li&gt;
&lt;li&gt;We will use this infrastructure to evaluate coverage-model-guided bug hunting &#x2F; state exploration techniques and constraint tuning approaches for targeting specific coverpoints&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
</description>
      </item>
      <item>
          <title>59th Design Automation Conference (DAC 2022)</title>
          <pubDate>Sat, 20 Aug 2022 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://vighneshiyer.com/research/events/2022-06-dac/</link>
          <guid>https://vighneshiyer.com/research/events/2022-06-dac/</guid>
          <description xml:base="https://vighneshiyer.com/research/events/2022-06-dac/">&lt;p&gt;This was my first DAC at Moscone West.
It was a good experience — lots of vendors at the exhibition halls to talk to, several decent research paper sessions (but relatively poor engineering track sessions), and interesting panels (where every panelist brought a short set of slides to discuss their perspective on the question posed).&lt;&#x2F;p&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-10-registration.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-registration.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;10-registration.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-registration.93e48cf69de49688.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-registration.52569cb40f116337.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-registration.63734be2056dfa3d.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-registration.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;kaufman_award.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;kaufman_award.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;kaufman_award.555d2d011c7f472a.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;kaufman_award.70b6c80086b7ecfa.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;kaufman_award.249e63f3eaf143dd.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;kaufman_award.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h2 id=&quot;random-workshops&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#random-workshops&quot; aria-label=&quot;Anchor link: random-workshops&quot;&gt;Random Workshops&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;On Sunday (7&#x2F;10&#x2F;2022), I attended some workshops hoping they would be interesting.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;autonomous-systems&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#autonomous-systems&quot; aria-label=&quot;Anchor link: autonomous-systems&quot;&gt;Autonomous Systems&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;I attended the &lt;a href=&quot;https:&#x2F;&#x2F;sites.google.com&#x2F;view&#x2F;dac-as2022&#x2F;home?authuser=0&quot;&gt;Workshop on Design Automation for the Certification of Autonomous Systems (DAC-AS)&lt;&#x2F;a&gt;.
Most of the talks were not interesting or too topic specific.&lt;&#x2F;p&gt;
&lt;p&gt;One talk, &lt;em&gt;“Runtime monitoring for safe robot autonomy”&lt;&#x2F;em&gt; by Macro Pavone of Stanford seemed cool.
He covered some prior work on runtime monitoring of neural networks to identify out-of-range inputs and his proposal outperforms basic techniques like activation range checks.
See his paper: &lt;em&gt;&lt;a href=&quot;https:&#x2F;&#x2F;proceedings.mlr.press&#x2F;v161&#x2F;sharma21a.html&quot;&gt;Sketching curvature for efficient out-of-distribution detection for deep neural networks&lt;&#x2F;a&gt;&lt;&#x2F;em&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StanfordASL&#x2F;SCOD&quot;&gt;Github repo&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;This repository provides a framework for wrapping a pre-trained neural network with uncertainty estimates.
It is designed to work with any pytorch model.
We implement several such wrappers in a general framework.
Given a pretrained DNN model &lt;code&gt;torch.nn.Module&lt;&#x2F;code&gt;, the distribution that the network parameterizes &lt;code&gt;dist_fam : nn_ood.distributions.DistFam&lt;&#x2F;code&gt;, and a PyTorch dataset containing the training data &lt;code&gt;dataset : torch.utils.data.Dataset&lt;&#x2F;code&gt;, we can construct a uncertainty-equipped version of the network.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h3 id=&quot;cad-for-neural-networks&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#cad-for-neural-networks&quot; aria-label=&quot;Anchor link: cad-for-neural-networks&quot;&gt;CAD for Neural Networks&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;I then stepped over to the &lt;a href=&quot;https:&#x2F;&#x2F;sites.google.com&#x2F;view&#x2F;road4nn&quot;&gt;3rd ROAD4NN Workshop: Research Open Automatic Design for Neural Networks&lt;&#x2F;a&gt;.
I just peeked this session for a few minutes.
It was mostly exotic domain-specific NN implementations (e.g. diffractive optic based neural networks), HLS frameworks, DNN graph to FPGA compilers, and the like.
Nothing too interesting.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;cad-for-cyber-physical-systems&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#cad-for-cyber-physical-systems&quot; aria-label=&quot;Anchor link: cad-for-cyber-physical-systems&quot;&gt;CAD for Cyber-Physical Systems&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We walked to the &lt;a href=&quot;https:&#x2F;&#x2F;59dac.conference-program.com&#x2F;presentation&#x2F;?id=WKSHP101&amp;amp;sess=sess190&quot;&gt;The Fifth International Workshop on Design Automation for Cyber-Physical Systems (DACPS)&lt;&#x2F;a&gt;.
Yet again, nothing interesting, with most examples of ‘verifiable’ ML being too simplistic and even still required complex formal modeling.
There was one talk by Yasser Shoukry on &lt;em&gt;“Formal Verification of End-to-End Deep Reinforcement Learning”&lt;&#x2F;em&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;www.ls.cs.cmu.edu&#x2F;CPSVVIF-2019&#x2F;slides&#x2F;slides_19_Shoukry.pdf&quot;&gt;old slides&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;h3 id=&quot;cad-for-hw-security&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#cad-for-hw-security&quot; aria-label=&quot;Anchor link: cad-for-hw-security&quot;&gt;CAD for HW Security&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Finally, I went to the &lt;a href=&quot;http:&#x2F;&#x2F;cad4security.org&#x2F;index.php&#x2F;workshop&#x2F;cad4sec-workshop-2022&#x2F;program&#x2F;&quot;&gt;CAD for Hardware Security Workshop (CAD4Sec)&lt;&#x2F;a&gt;.
This was by far the most interesting workshop of the day: “security” mostly means checking various safety properties, so it can be thought of as the “CAD for verification” workshop (practically speaking).
There was some work on logic locking and obfuscation, as usual.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;fault-injection&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#fault-injection&quot; aria-label=&quot;Anchor link: fault-injection&quot;&gt;Fault Injection&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;There was a talk from Nicole Fern of Riscure on &lt;em&gt;“Hardware Shift-Left: Pre-silicon Fault Injection Evaluation and Power Side Channel Testing”&lt;&#x2F;em&gt;.
They have build a tool for netlist fault injection (similar to &lt;a href=&quot;https:&#x2F;&#x2F;www.synopsys.com&#x2F;verification&#x2F;simulation&#x2F;z01x-functional-safety.html&quot;&gt;Synopsys Z01X&lt;&#x2F;a&gt;) and FIT analysis, and have done some hardware validation with EMFI (electromagnetic fault injection) on a Cortex-M0 devboard.
They’ve also looked at power side channel identification (gate-level power traces → CPA&#x2F;TVLA (correlation power attack &#x2F; test vector leakage assessment)) and constrained synthesis with dummies to mitigate these attacks.&lt;&#x2F;p&gt;
&lt;!--- Looks mostly like a security consulting firm--&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-10-riscure1.png&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-riscure1.png&quot; style=&quot;flex: 1.776 1 0%&quot; data-pswp-width=&quot;2714&quot; data-pswp-height=&quot;1528&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;10-riscure1.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-riscure1.4004a0ee06ad0cbc.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-riscure1.491c032f87df960c.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-riscure1.c7b2df7b0d1d74b5.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-riscure1.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-riscure2.png&quot; style=&quot;flex: 1.78 1 0%&quot; data-pswp-width=&quot;2707&quot; data-pswp-height=&quot;1521&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;10-riscure2.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-riscure2.8280096a7a622ea7.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-riscure2.525bb4403ab6ff9b.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-riscure2.0e549118647ca171.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-riscure2.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-riscure3.png&quot; style=&quot;flex: 1.78 1 0%&quot; data-pswp-width=&quot;2707&quot; data-pswp-height=&quot;1521&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;10-riscure3.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-riscure3.17e3ace6f34c0806.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-riscure3.251d0bef7247bfab.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-riscure3.0902cb35aeb6f41e.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-riscure3.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-riscure4.png&quot; style=&quot;flex: 1.774 1 0%&quot; data-pswp-width=&quot;2707&quot; data-pswp-height=&quot;1526&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;10-riscure4.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-riscure4.3861294a45879ce3.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-riscure4.ad14ed619273fdf3.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-riscure4.5b65983500fad218.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-riscure4.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h4 id=&quot;jaspergold&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#jaspergold&quot; aria-label=&quot;Anchor link: jaspergold&quot;&gt;JasperGold&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;There was a Cadence formal verification presentation, which was just a sales pitch for JasperGold.
“Use formal! And mitigate these security concerns!”&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;State Machine Deadlock -&amp;gt; Denial of Service&lt;&#x2F;li&gt;
&lt;li&gt;Buffer Overflow -&amp;gt; Data Corruption, Unexpected Control Flow&lt;&#x2F;li&gt;
&lt;li&gt;Incorrect Register Access -&amp;gt; Secure Data Leakage or Corruption&lt;&#x2F;li&gt;
&lt;li&gt;Unexpected X-propagation -&amp;gt; Data Corruption, Unexpected Control Flow&lt;&#x2F;li&gt;
&lt;li&gt;Bus Protocol Violation -&amp;gt; Data Corruption&lt;&#x2F;li&gt;
&lt;li&gt;Improper ECO Implementation -&amp;gt; Vulnerability Insertion&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;JasperGold has many ‘apps’ including FPV (formal property verification) for regular BMC &#x2F; k-induction, linting, and “security path verification” (which does some kind of information flow tracking).
FV can be better than DV for catching these bugs since it is counter-example oriented, makes negative testing easy, can model taint propagation, and has semi-formal support for using DV to seed uArch state.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;crypto-asset-tracking&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#crypto-asset-tracking&quot; aria-label=&quot;Anchor link: crypto-asset-tracking&quot;&gt;Crypto Asset Tracking&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;Jason Oberg of Cycuity presented his &lt;em&gt;“Radix”&lt;&#x2F;em&gt; tool for crypto asset tracking.
This guy and his OpenTitan partner, Andres Meza, also presented at ISCA (&lt;a href=&quot;https:&#x2F;&#x2F;oscar-workshop.github.io&#x2F;Home_2022.html&quot;&gt;OSCAR workshop&lt;&#x2F;a&gt;) this year — they are very secretive, their slides are not published.&lt;&#x2F;p&gt;
&lt;p&gt;They have built a tool that can do information flow tracking at RTL runtime and detect secret asset leakage.
See their blog post: &lt;a href=&quot;https:&#x2F;&#x2F;cycuity.com&#x2F;type&#x2F;blog&#x2F;security-verification-of-an-open-source-hardware-root-of-trust&#x2F;&quot;&gt;Security Verification of an Open Source Hardware Root of Trust&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;A critical component of the security verification process is security analysis.
This is crucial to ensure that the security requirements are concisely specified, as well as to assist in identifying unknown design weaknesses.
By using Radix’s security analysis capabilities, we were able to validate that the random constant key never makes it to the output of the OTP controller in an unscrambled form, which is a good thing.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-10-radix.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-radix.png&quot; data-pswp-width=&quot;1076&quot; data-pswp-height=&quot;327&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;10-radix.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;blockquote&gt;
&lt;p&gt;While applying Radix to the OTP controller, we also identified intermediate values of the random constant key appearing on the output of the scrambler. This is interesting and surprising, but was determined to be a low risk since the intermediate values are protected at the boundary of the OTP output. Even so, this information enabled OpenTitan to push a fix mitigating this leakage out of an abundance of caution to potential future threats.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;His article &lt;a href=&quot;https:&#x2F;&#x2F;scholar.google.com&#x2F;citations?view_op=view_citation&amp;amp;hl=en&amp;amp;user=FNQjt4oAAAAJ&amp;amp;sortby=pubdate&amp;amp;citation_for_view=FNQjt4oAAAAJ:j3f4tGmQtD8C&quot;&gt;“CAD for Hardware Security-Automation is Key to Adoption of Solutions”&lt;&#x2F;a&gt;) goes into detail about the tool inputs and what it can do.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Mark a secret asset in RTL + when it becomes active &#x2F; inactive&lt;&#x2F;li&gt;
&lt;li&gt;Add input pin assumptions to the top-level DUT to define the bus interface timings and restrictions&lt;&#x2F;li&gt;
&lt;li&gt;Specify the hierarchy boundary outside which the secret asset must not flow&lt;&#x2F;li&gt;
&lt;li&gt;The tool will use formal symbolic execution to determine if there is a way the secret asset (even partially &#x2F; influentially) can leak past the boundary&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;analyst-presentation&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#analyst-presentation&quot; aria-label=&quot;Anchor link: analyst-presentation&quot;&gt;Analyst Presentation&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Charles Shi of Needham presented his financial analyst view on the state of the semiconductor industry and the financial future of EDA companies (&lt;a href=&quot;https:&#x2F;&#x2F;59dac.conference-program.com&#x2F;session&#x2F;?sess=sess270&quot;&gt;EDA to Power Through Semiconductor Cycles&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;His perspective&lt;&#x2F;em&gt;: there will soon be a glut of semiconductors and foundries&#x2F;systems vendors will suffer revenue loss, but EDA companies seem better positioned to weather the upcoming down cycle in semiconductors.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Historically the semiconductor industry goes through a boom-bust cycle every 3-4 years. Despite the chip shortage headlines, Wall Street is increasingly skeptical about the longevity of the current semiconductor boom cycle. The outlook is still bright, but there are dark clouds on the horizon. If the chip shortage turns into a glut, will a downturn affect the EDA industry? Our answer is no. In this presentation, I will walk you through reasons why EDA industry will power through semiconductor cycles and emerge on the other side stronger.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-10-needham_ecosystem.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-needham_ecosystem.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;10-needham_ecosystem.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-needham_ecosystem.dee47fea1c3d9989.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-needham_ecosystem.44df30294dcafe43.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-needham_ecosystem.3db27abc208c05f7.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-needham_ecosystem.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-needham_trends.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;10-needham_trends.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-needham_trends.f35a9b7e178b5e40.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-needham_trends.e78a8f100b37e709.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-needham_trends.6ce3bda767e16eb7.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-needham_trends.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-needham_final.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;10-needham_final.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-needham_final.9dc11b8e57c4baad.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-needham_final.d4db82a93e769558.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-needham_final.7e953649468783bc.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-needham_final.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-needham_summary.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;10-needham_summary.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-needham_summary.fb647ca04b23ec80.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-needham_summary.f9da22630180d128.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;10-needham_summary.19fa171d297f71a4.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;10-needham_summary.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;And now onto the official start of the conference on Monday 7&#x2F;11&#x2F;22!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;monday-keynote&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#monday-keynote&quot; aria-label=&quot;Anchor link: monday-keynote&quot;&gt;Monday Keynote&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The title of the keynote was &lt;em&gt;“Advancing EDA Through the Power of AI and High-performance Computing”&lt;&#x2F;em&gt; presented by Mark Papermaster of AMD.
It was probably the worst keynote I’ve ever seen, composed entirely of marketing drivel.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;siemens-powerpro&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#siemens-powerpro&quot; aria-label=&quot;Anchor link: siemens-powerpro&quot;&gt;Siemens PowerPro&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We made our way onto the exhibition floor and stopped by the Siemens booth.
Siemens had a presentation on PowerPro for about 30 minutes (the slides are below).&lt;&#x2F;p&gt;
&lt;p&gt;PowerPro is designed for early stage RTL-level power estimates, especially for power driven feedback into the RTL design process (e.g. for adding logic gating, zero skipping, and analyzing inferable clock gates).&lt;&#x2F;p&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-11-powerpro1.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro1.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-powerpro1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro1.8b9ab8f2db7a16e4.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro1.fe4010e3e2a4f895.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro1.979503f674966a8d.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro1.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro2.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-powerpro2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro2.74748abf73ec0312.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro2.c66a63fcf55644fe.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro2.4fdf4d0a959e78cd.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro3.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-powerpro3.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro3.19f23e1b7ddccc84.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro3.8e7be36c832c2372.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro3.f7fa857709d04766.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro3.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro4.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-powerpro4.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro4.e0bbf30578cec250.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro4.7afa64f3cf9062b6.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro4.e060972fc2bfc5c5.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro4.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
      &lt;&#x2F;div&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro5.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-powerpro5.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro5.cb2cf0b88158a112.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro5.9a13cb124b10d81f.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro5.781dd57aefc288ad.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro5.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro6.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-powerpro6.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro6.7a887302547645b8.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro6.de19b3c13392366f.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro6.857d8548a22539db.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro6.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro7.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-powerpro7.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro7.9e673dc567c0d8bd.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro7.f99f244478731668.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro7.e715824c3c9d204c.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro7.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro8.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-powerpro8.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro8.19f227ccbc927e14.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro8.e4898ddbb1dd83fa.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro8.b2877f84f0d1ad13.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro8.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
      &lt;&#x2F;div&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro9.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-powerpro9.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro9.98749bc98427969c.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro9.fff8c7e0f3c618fd.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro9.ec120e69b2289f4f.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro9.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro10.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-powerpro10.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro10.9d7e6563cc251d22.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro10.ccbec1ac39744cc8.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro10.e16cb39bd8c21ec7.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro10.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro11.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-powerpro11.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro11.aa7c2a656d9b3076.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro11.effd17f473810c52.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-powerpro11.42cd7aee8db098b3.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-powerpro11.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
            &lt;div style=&quot;flex: 1.778 1 0%&quot;&gt;&lt;&#x2F;div&gt;
          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;We talked to the reps afterwards and found out:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;They have an educational license now - so we should be able to play with PowerPro&lt;&#x2F;li&gt;
&lt;li&gt;They do a few static RTL checks (make sure that every large register assignment block has a enable for automatic CG insertion later)&lt;&#x2F;li&gt;
&lt;li&gt;They do a ‘quick synthesis’ which uses the PDK .libs and does a generic gate mapping followed by a tech specific binding - they can use the .spef from an older full synthesis of the same block for parasitic estimation when making RTL changes&lt;&#x2F;li&gt;
&lt;li&gt;You can dump state from Veloce, reconstruct the GL waveform offline, and feed that data into PowerPro’s RTL power model in a streaming fashion (constant memory requirements)&lt;&#x2F;li&gt;
&lt;li&gt;They claim that their fast synthesis takes into account details like logic minimization, CG insertion, multi-Vt, sizing, clock tree, but it is hard to believe&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;joules-discussion-with-cadence-engineers&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#joules-discussion-with-cadence-engineers&quot; aria-label=&quot;Anchor link: joules-discussion-with-cadence-engineers&quot;&gt;Joules Discussion with Cadence Engineers&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;After this talk, we made our way over to the Cadence booth.
The Cadence booth people were very nice and accommodated an admittedly ridiculous request from us lowly grad students to talk to a Joules AE to ask some questions about their tool.&lt;&#x2F;p&gt;
&lt;p&gt;They went even further than that though and actually let us meet 1:1 with two of the original Joules developers who were very open and spent 20 minutes with us.
The discussion was quite long winded, so open the notes below if you’re really interested in the details.&lt;&#x2F;p&gt;
&lt;details&gt;
&lt;summary role=&quot;button&quot; class=&quot;secondary&quot;&gt;Discussion about the capabilities of Joules and comparison with PowerPro&lt;&#x2F;summary&gt;
&lt;ul&gt;
&lt;li&gt;Window size can be arbitrary and &lt;em&gt;so can frame count&lt;&#x2F;em&gt; - number of frames is just an attribute - it can be set to any value before running analysis
&lt;ul&gt;
&lt;li&gt;Daniel: doesn’t seem that way in the documentation - frame count is specified as max 1000&lt;&#x2F;li&gt;
&lt;li&gt;Cadence: there is a way to do this, all of our customers use it to get arbitrary length cycle-by-cycle power traces&lt;&#x2F;li&gt;
&lt;li&gt;Later: we found out that there is indeed a secret batch flow that isn’t described in any of Cadence’s documents but was sent to us by an AE&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Only Joules has a full featured synthesis flow baked in (all analysis is done at post-synthesis gate-level)
&lt;ul&gt;
&lt;li&gt;Genus is invoked: multi-Vt, logic rewriting &#x2F; reduction, timing-aware synthesis, circuit selection, retiming, clock gate insertion, etc. are all captured&lt;&#x2F;li&gt;
&lt;li&gt;Genus is run with the default settings, &lt;em&gt;except&lt;&#x2F;em&gt; optimization of the most critical timing paths (this is what accounts for most of the full Genus synthesis time supposedly). All synthesis optimizations are performed as usual in the default Joules flow.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Joules has a “what-if” mode + clock gating suggestions
&lt;ul&gt;
&lt;li&gt;Unlike other tools, Joules actually synthesizes the proposed enable logic for a clock gate and determines if the power saved by gating actually exceeds the power drawn by the gating logic - they can also capture gating logic reuse and evaluate the need for logic duplication&lt;&#x2F;li&gt;
&lt;li&gt;They claim PowerPro often suggests gating logic that actually increases power on net - only caught after PnR power sims are performed and ends up wasting design time&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Joules can take RTL waveforms and can rapidly replay them on GL netlists internally (no external GL sim tool required - we already knew this)&lt;&#x2F;li&gt;
&lt;li&gt;Joules has a fully-featured timer, unlike PowerPro
&lt;ul&gt;
&lt;li&gt;The timer considers clock constraints and performs timing-driven synthesis as usual&lt;&#x2F;li&gt;
&lt;li&gt;This means if clock constraints are updated, the underlying synthesized netlist will reflect that (more LVT&#x2F;ULVT cell usage)
&lt;ul&gt;
&lt;li&gt;Supposedly PowerPro will give garbage power numbers if the clock constraints are updated since it uses an old GL netlist as the starting point and never re-performs synthesis&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;This also means that the power numbers from Joules are meaningful since they account for the actual clock period achievable - Joules’ estimate will be much closer than PowerPro which just assumes you’re running at the clock frequency specified in the constraints&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;PowerPro comparison (they were a little agitated about the claims the PowerPro people make and seem to understand what PowerPro actually does behind the scenes)
&lt;ul&gt;
&lt;li&gt;PowerPro: expects a GL netlist as the ‘training’ data from the get-go - I’m not sure about this&lt;&#x2F;li&gt;
&lt;li&gt;3% power error from post-GL power sim to signoff isn’t reasonable (only for average power maybe), peak and per-cycle will be very wrong (according to the Joules guys)&lt;&#x2F;li&gt;
&lt;li&gt;The way PowerPro and PowerArtist work is completely different from Joules
&lt;ul&gt;
&lt;li&gt;Joules: use Genus engine to perform quick synthesis -&amp;gt; actual mapped GL netlist -&amp;gt; accurate cap estimate (using CCS cap model) -&amp;gt; power estimate&lt;&#x2F;li&gt;
&lt;li&gt;PowerPro: map RTL to generic gates -&amp;gt; map generic gates to PDK -&amp;gt; sprinkle estimates about multi-Vt usage, CG insertion, sizing -&amp;gt; use NLDM model from .lib -&amp;gt; power estimate&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Joules will take longer than PowerPro, but it comes with much more accuracy - there is no synthesis ‘estimation’ - it is actually performing synthesis&lt;&#x2F;li&gt;
&lt;li&gt;PowerPro uses statistical switching factor models to compute toggle rates at combinational nodes from register toggle rates - Joules performs actually trace-level analysis at sub-cycle-level granularity&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Cadence admits that HW DSE isn’t something that Joules is suitable for
&lt;ul&gt;
&lt;li&gt;Incremental synthesis within Joules is still not a feature (but will be soon when it lands in Genus) - they synthesize from scratch every time since accurate power recommendations are required&lt;&#x2F;li&gt;
&lt;li&gt;They talked about a one-off customer design they worked on to build a power model that was parameterized on a bus width but this is not some generic functionality&lt;&#x2F;li&gt;
&lt;li&gt;In general, tools like Joules are too slow for HW DSE - customers usually build architectural models (based on (linear) regression against Joules golden power numbers) that use Joules to get subsystem-level power (manually parameterized) that are used for this purpose during architectural exploration&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;details&gt;
&lt;h2 id=&quot;verification-session&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#verification-session&quot; aria-label=&quot;Anchor link: verification-session&quot;&gt;Verification Session&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We walked into an Engineering Track session titled &lt;em&gt;“Taming the Validation Dragon with Formal and Static Verification”&lt;&#x2F;em&gt;.
All the DAC sessions have these silly titles.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;The presentations were:
&lt;ul&gt;
&lt;li&gt;Novel Approach to Early detection of Metastability related issues&lt;&#x2F;li&gt;
&lt;li&gt;Verifying Register Maps with JasperGold: How Formal compares to UVM&lt;&#x2F;li&gt;
&lt;li&gt;Efficient Functional Sign off by Automatic Assertion Generation for RTL Building Blocks&lt;&#x2F;li&gt;
&lt;li&gt;RDC(Reset Domain Crossing) Sign-off Methodology on Designs with Complex Reset Structures&lt;&#x2F;li&gt;
&lt;li&gt;Formal verification contract based micro architectural analysis of Server SoC’s&lt;&#x2F;li&gt;
&lt;li&gt;A Novel Analog Centric Automated Verification Methodology Driven by State Diagram Approach&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;I &lt;em&gt;thought&lt;&#x2F;em&gt; these were going to be interesting, but they all ended up being some verbose description of a commercial tool capability, and a vague recitation of the results the commercial engineers achieved.
There is very little research applicability.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;another-verification-session&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#another-verification-session&quot; aria-label=&quot;Anchor link: another-verification-session&quot;&gt;Another Verification Session&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;I went to another Engineering Track session titled &lt;em&gt;“Automating the Front End and Facing the Big Picture&lt;&#x2F;em&gt;”.
There were a few interesting presentations here.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;ml-based-abnormal-simulation-detector-in-soc-verification-samsung&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#ml-based-abnormal-simulation-detector-in-soc-verification-samsung&quot; aria-label=&quot;Anchor link: ml-based-abnormal-simulation-detector-in-soc-verification-samsung&quot;&gt;ML Based Abnormal Simulation Detector in SoC Verification (Samsung)&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-11-abnormal_sim_predictor.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-abnormal_sim_predictor.jpg&quot; data-pswp-width=&quot;1634&quot; data-pswp-height=&quot;973&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-abnormal_sim_predictor.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;At first, I thought this was going to be a predictor based on test generator parameters or runtime test behavior.
Instead, they describe an “ML approach” to detect tests that execute too long and will eventually time out and terminate them early to save compute and debug overhead.
They didn’t give any details about what model they used, or even the input features they selected.&lt;&#x2F;p&gt;
&lt;!--
- Questions:
    - Did they compare against hardcoded time limits?
    - Did they consider coverage improvement or other metrics to decide if a test is hung?
--&gt;
&lt;h3 id=&quot;automatic-debug-knowledge-sharing-platform-in-soc-verification-samsung&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#automatic-debug-knowledge-sharing-platform-in-soc-verification-samsung&quot; aria-label=&quot;Anchor link: automatic-debug-knowledge-sharing-platform-in-soc-verification-samsung&quot;&gt;Automatic Debug Knowledge Sharing Platform in SoC Verification (Samsung)&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;If you encounter an error message, they use a BERT language model to search a database of errors that have been seen in the past and find a ‘similar’ error using some similarity metric.
This is intended to help engineers find error message histories and debug guides in a very complex codebase.
The model is trained on a manually classified error database and from text in each error’s debug guide.&lt;&#x2F;p&gt;
&lt;p&gt;Obviously this only makes sense if you’ve collected and curated a bunch of this type of data — only applicable to industry.&lt;&#x2F;p&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-11-debug1.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-debug1.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-debug1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-debug1.df12170cf754b0c3.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-debug1.ce47b2017e4273f2.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-debug1.bc91859477ba1afc.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-debug1.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-debug2.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-debug2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-debug2.28cad802daec241a.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-debug2.b8c94a673b224c27.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-debug2.fe95e5c4e60eea69.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-debug2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-debug3.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-debug3.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-debug3.081639342f2ce870.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-debug3.2138c4a9dbf368bd.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-debug3.f8991d8393a43895.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-debug3.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h3 id=&quot;smart-adaptive-regression-using-nearest-neighbors-algorithm&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#smart-adaptive-regression-using-nearest-neighbors-algorithm&quot; aria-label=&quot;Anchor link: smart-adaptive-regression-using-nearest-neighbors-algorithm&quot;&gt;SMART Adaptive Regression Using Nearest Neighbors Algorithm&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;This was the only good presentation of the day.&lt;&#x2F;p&gt;
&lt;p&gt;The idea is to embed each test with the coverage it achieves on every functional unit of your design.
Then when you check in an RTL change, look for the functional unit that was touched, and then find the closest tests to that functional unit and only run those for qualification.&lt;&#x2F;p&gt;
&lt;!--
- Questions:
    - How do you validate the embedding of a test?
    - What is the dimensionality of each test embedding in practice?
--&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-11-smart1.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart1.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-smart1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart1.05baaaf565ef7c9f.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart1.920f91a3921a4d34.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart1.ac0c20660d58cab1.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart1.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart2.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-smart2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart2.c6eb45829578b175.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart2.2efe82fedf58c8e8.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart2.a8a1edf3174da136.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart3.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-smart3.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart3.b232d731ab33dda9.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart3.72c9490b27c9a386.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart3.99a30f24b11f9801.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart3.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
      &lt;&#x2F;div&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart4.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-smart4.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart4.b85d93ead7d2dbf4.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart4.de7f37f66cc55bb2.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart4.08e8241c6eb7c9de.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart4.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart5.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-smart5.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart5.9c043dc6df63af07.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart5.0a9ed46e18cb903e.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart5.142238ff02e04863.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart5.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart6.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-smart6.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart6.40a4306219e303ec.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart6.180c5d0658f37bff.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart6.dbb7b2ec9270c40c.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart6.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
      &lt;&#x2F;div&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart7.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-smart7.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart7.b2918bc95030214d.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart7.49fb275132e3993d.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart7.1f0335c143bfefb1.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart7.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart8.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-smart8.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart8.f8d80f55bda40c00.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart8.2bc5efe4906d6bd6.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart8.d78805bbd7eae51a.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart8.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart_poster.jpg&quot; style=&quot;flex: 0.563 1 0%&quot; data-pswp-width=&quot;2268&quot; data-pswp-height=&quot;4032&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-smart_poster.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart_poster.235bf150e90f43d1.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart_poster.0b3a1f99c350e820.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;11-smart_poster.66f1d17d5629f4b6.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-smart_poster.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h2 id=&quot;the-cooley-panel&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#the-cooley-panel&quot; aria-label=&quot;Anchor link: the-cooley-panel&quot;&gt;The Cooley Panel&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We attended &lt;a href=&quot;https:&#x2F;&#x2F;59dac.conference-program.com&#x2F;session&#x2F;?sess=sess296&quot;&gt;John Cooley’s DAC Panel&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Abstract: Come watch the EDA troublemakers answer the edgy, user-submitted questions about this year’s most controversial issues! It’s an old-style open Q&amp;amp;A from the days before corporate marketing took over every aspect of EDA company images.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;figure class=&quot;content&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-11-cooley.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;11-cooley.jpg&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;1443&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;11-cooley.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;This is a DAC tradition from John Cooley of &lt;a href=&quot;https:&#x2F;&#x2F;deepchip.com&#x2F;&quot;&gt;deepchip.com&lt;&#x2F;a&gt; where he assembles a panel of EDA bigwigs, throws random and offensive questions at them, and tries to get them to fight each other.&lt;&#x2F;p&gt;
&lt;p&gt;The only thing I learned is that it’s impossible to get any clear answers about what any EDA tool actually does.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;updates-from-nvidia&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#updates-from-nvidia&quot; aria-label=&quot;Anchor link: updates-from-nvidia&quot;&gt;Updates from NVIDIA&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;I talked to some engineers from NVIDIA ASIC &amp;amp; VLSI Research and discussed what they were working on, had recently published, and ideas for future research.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;GPU-acclerated GL simulation using VCD replay with SDFs: &lt;a href=&quot;https:&#x2F;&#x2F;research.nvidia.com&#x2F;publication&#x2F;2022-03_gatspi-gpu-accelerated-gate-level-simulation-power-improvement&quot;&gt;GATSPI: GPU Accelerated Gate-Level Simulation for Power Improvement&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;Proposed as an ICCAD contest topic in 2019, published in DAC this year (detailed notes later)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Large batch size RTL simulation on GPUs: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dian-lun-lin&#x2F;RTLflow&quot;&gt;RTLflow&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;For large batch sizes of 1000s of concurrent simulations, RTLflow is ~1000x faster than Verilator&lt;&#x2F;li&gt;
&lt;li&gt;Ideal for fuzzing multiple DUT instances in parallel using only one GPU vs hundreds of CPU cores&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;research.nvidia.com&#x2F;publication&#x2F;2020-11_opportunities-rtl-and-gate-level-simulation-using-gpus&quot;&gt;Opportunities for RTL and Gate Level Simulation using GPUs&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;blockquote&gt;
&lt;p&gt;RTLflow is a GPU acceleration flow for RTL simulation with batch stimulus. RTLflow first transpiles RTL into CUDA kernels that each simulate a partition of the RTL simultaneously across multiple stimulus. It also leverages CUDA Graph for efficient runtime execution. We build RTLflow atop Verilator to inherit its existing optimization facilities, such as variable reduction and partitioning algorithms, that have been rigorously tested for over 25 years in the Verilator community.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;They have a dedicated ML for EDA now with 6 people and growing fast to over 10 this year
&lt;ul&gt;
&lt;li&gt;This is going to become a thing for all semi research houses soon&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Ongoing work on using Intel PIN to instrument an architectural simulator (SystemC), capture dynamic dataflow graphs of execution (as CDFGs), perform some kind of graph embedding, and eventually target RTL coverage prediction&lt;&#x2F;li&gt;
&lt;li&gt;Report from the DV people: we don’t really care about coverage closure, we always get it done eventually. However, the &lt;em&gt;RTL bug localization problem&lt;&#x2F;em&gt; is still the biggest bottleneck in verification throughput. Fix that!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;ml-for-synthesis-session&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#ml-for-synthesis-session&quot; aria-label=&quot;Anchor link: ml-for-synthesis-session&quot;&gt;ML for Synthesis Session&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;I attended a Research Track session titled &lt;em&gt;“Machine Learning for Synthesis and Synthesis for Machine Learning”&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;high-level-synthesis-performance-prediction-using-gnns-benchmarking-modeling-and-advancing&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#high-level-synthesis-performance-prediction-using-gnns-benchmarking-modeling-and-advancing&quot; aria-label=&quot;Anchor link: high-level-synthesis-performance-prediction-using-gnns-benchmarking-modeling-and-advancing&quot;&gt;High-Level Synthesis Performance Prediction using GNNs: Benchmarking, Modeling, and Advancing&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-12-hls_gnn1.png&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-hls_gnn1.png&quot; style=&quot;flex: 1.251 1 0%&quot; data-pswp-width=&quot;1147&quot; data-pswp-height=&quot;917&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;12-hls_gnn1.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-hls_gnn1.7cf40469f952f101.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-hls_gnn1.5146bf1cd3490c8f.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-hls_gnn1.2a199965ae185fbc.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-hls_gnn1.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-hls_gnn2.png&quot; style=&quot;flex: 3.218 1 0%&quot; data-pswp-width=&quot;2623&quot; data-pswp-height=&quot;815&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;12-hls_gnn2.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-hls_gnn2.5157a2e3fd4abce9.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-hls_gnn2.b425e760296870d1.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-hls_gnn2.448a2dd670ecf91e.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-hls_gnn2.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-hls_gnn3.png&quot; style=&quot;flex: 1.36 1 0%&quot; data-pswp-width=&quot;1311&quot; data-pswp-height=&quot;964&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;12-hls_gnn3.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-hls_gnn3.cd1633f9cd083c7c.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-hls_gnn3.ff043b9c72251526.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-hls_gnn3.f1cc17b490494527.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-hls_gnn3.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;ul&gt;
&lt;li&gt;Here is the &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2201.06848.pdf&quot;&gt;paper PDF&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Represent SystemC programs as CDFGs with each node annotated with its function (read&#x2F;write&#x2F;compute operation)&lt;&#x2F;li&gt;
&lt;li&gt;Use GNN architectures to perform either:
&lt;ul&gt;
&lt;li&gt;Node classification: where each node is marked as using LUTs, DSPs, or FFs&lt;&#x2F;li&gt;
&lt;li&gt;Graph regression: where the graph is reduced to predict the total number of LUTs&#x2F;DSPs&#x2F;FFs and the critical path latency&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Results
&lt;ul&gt;
&lt;li&gt;About 7% critical path MAPE (surprisingly good, but knowing the predicted CP is more important than just having the number in hand)&lt;&#x2F;li&gt;
&lt;li&gt;About 12-25% resource utilization MAPE (FF&#x2F;LUT errors are larger than DSP estimates)&lt;&#x2F;li&gt;
&lt;li&gt;Node classification accuracy fares poorly IMO (70% accuracy on synthetic HLS programs, 90% on real ones for FF prediction) - Why? Isn’t FF prediction almost certain from static analysis?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;A good overview on SOTA GNN architectures used for program analysis (including proper handling of branches and loops) and how additional input features can increase the accuracy of the prediction&lt;&#x2F;li&gt;
&lt;li&gt;In a matter of 2-3 years, GNNs have gone from exotic, to mainstream as people begin to understand the generalizability and ubiquity of the graph input representation
&lt;ul&gt;
&lt;li&gt;PyTorch geometric is winning out as the preferred GNN architecture and training framework&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;functionality-matters-in-netlist-representation-learning&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#functionality-matters-in-netlist-representation-learning&quot; aria-label=&quot;Anchor link: functionality-matters-in-netlist-representation-learning&quot;&gt;Functionality Matters in Netlist Representation Learning&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Here is the &lt;a href=&quot;https:&#x2F;&#x2F;www.cse.cuhk.edu.hk&#x2F;~byu&#x2F;papers&#x2F;C142-DAC2022-GCL.pdf&quot;&gt;paper PDF&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;More and more people are looking for netlist representations &#x2F; embeddings to feed as input features to an ML model for various RTL metric prediction problems&lt;&#x2F;li&gt;
&lt;li&gt;These authors have identified that existing netlist -&amp;gt; graph transforms usually only embed facts related to the graph topology rather than the gate logic function - this is very valuable foundational work.
&lt;ul&gt;
&lt;li&gt;e.g. understanding this work is critical to build a generic-gate-level coverage extrapolation model that can generalize to multiple unrelated designs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-12-netlist_learning1.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-netlist_learning1.png&quot; data-pswp-width=&quot;1451&quot; data-pswp-height=&quot;702&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;12-netlist_learning1.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;ul&gt;
&lt;li&gt;The solution is to use ‘contrastive learning’ to learn a graph embedding kernel that maps graphs with identical functionality to similar vectors by taking a seed graph, mutating it while exactly preserving its boolean function, and forcing the network to learn a kernel such that the seed and mutated graphs have a similar embedding.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-12-netlist_learning2.png&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-netlist_learning2.png&quot; style=&quot;flex: 1.904 1 0%&quot; data-pswp-width=&quot;1447&quot; data-pswp-height=&quot;760&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;12-netlist_learning2.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-netlist_learning2.da0e6e285c5c31e2.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-netlist_learning2.f7abb38683b20768.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-netlist_learning2.c93c78eb399712b3.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-netlist_learning2.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-netlist_learning3.png&quot; style=&quot;flex: 2.076 1 0%&quot; data-pswp-width=&quot;1092&quot; data-pswp-height=&quot;526&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;12-netlist_learning3.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-netlist_learning3.58e10e8c0a0e6caf.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-netlist_learning3.8fcf89a8ec4ba8f8.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-netlist_learning3.111fbf396285916d.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-netlist_learning3.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-netlist_learning4.png&quot; style=&quot;flex: 3.372 1 0%&quot; data-pswp-width=&quot;2303&quot; data-pswp-height=&quot;683&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;12-netlist_learning4.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-netlist_learning4.e9c007f52aa7a105.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-netlist_learning4.38e02ed7bd6e7406.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;12-netlist_learning4.633941da9c5eed24.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-netlist_learning4.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The authors, then propose a new GNN architecture called FGNN (functional GNN) which is designed specifically for GL netlists to incorporate gate-level logic functionality into the reduction kernels. This is in contrast to typical GNNs which mostly consider graph topology and connectivity when embedding a node or performing graph-level regression.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Independent aggregator functions (kernels) for each gate type (AND, OR, INV, MAJ, MUX, NAND, NOR and XOR)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;They train a classifier that can detect the output boundary (ports) of an adder circuit using very simple training examples. Then they synthesize Rocket and BOOM with 6 different adder architectures, extract the GL netlists, and run their classifier to see if the adder boundaries are properly identified.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;In practice, we need to know if this training process is scalable with large netlists with generic gates for fine-tuning. Training on the arithmetic circuit classification problem is fine, but is the node embedding effectiveness maintained for large netlists?&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Here is another closely related paper in this DAC which was a best paper candidiate: &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2111.14616&quot;&gt;DeepGate: Learning Neural Representations of Logic Gates&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;enabling-automated-fpga-accelerator-optimization-using-graph-neural-networks&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#enabling-automated-fpga-accelerator-optimization-using-graph-neural-networks&quot; aria-label=&quot;Anchor link: enabling-automated-fpga-accelerator-optimization-using-graph-neural-networks&quot;&gt;Enabling Automated FPGA Accelerator Optimization Using Graph Neural Networks&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Here is the &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2111.08848.pdf&quot;&gt;paper PDF&lt;&#x2F;a&gt; from &lt;a href=&quot;https:&#x2F;&#x2F;vast.cs.ucla.edu&#x2F;&quot;&gt;Jason Cong’s group&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;This is similar to the first paper, HLS code is transformed into a CDFG, along with pragma embeddings, use a GNN to predict performance, and then wrap that in a DSE that varies HLS-level hardware parameters&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-12-hls_dse.png&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-hls_dse.png&quot; data-pswp-width=&quot;2351&quot; data-pswp-height=&quot;1058&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;12-hls_dse.png&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h2 id=&quot;embedded-systems&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#embedded-systems&quot; aria-label=&quot;Anchor link: embedded-systems&quot;&gt;Embedded Systems&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The next session was &lt;em&gt;“Iterate and Scale: Designing Stronger and Safer Embedded Systems”&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;scaie-v-an-open-source-scalable-interface-for-isa-extensions-for-risc-v-processors&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#scaie-v-an-open-source-scalable-interface-for-isa-extensions-for-risc-v-processors&quot; aria-label=&quot;Anchor link: scaie-v-an-open-source-scalable-interface-for-isa-extensions-for-risc-v-processors&quot;&gt;SCAIE-V: An Open-Source SCAlable Interface for ISA Extensions for RISC-V Processors&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;blockquote&gt;
&lt;p&gt;We present SCAIE-V, a highly portable and feature-rich ISAX interface that supports custom control flow, decoupled execution, multi-cycle-instructions, and memory transactions. The cost of the interface itself scales with the complexity of the ISAXes actually used.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;esa-tu-darmstadt&#x2F;SCAIE-V&quot;&gt;Github: esa-tu-darmstadr&#x2F;SCAIE-V&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Seems to be an alternative to RoCC, implemented for PicoRV32 and VexRiscv&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;soc-dse-and-modeling&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#soc-dse-and-modeling&quot; aria-label=&quot;Anchor link: soc-dse-and-modeling&quot;&gt;SoC DSE and Modeling&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The next session was &lt;em&gt;“Fantastic SoCs and What to Learn!”&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;chiplet-actuary-a-quantitative-cost-model-and-multi-chiplet-architecture-exploration&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#chiplet-actuary-a-quantitative-cost-model-and-multi-chiplet-architecture-exploration&quot; aria-label=&quot;Anchor link: chiplet-actuary-a-quantitative-cost-model-and-multi-chiplet-architecture-exploration&quot;&gt;Chiplet Actuary: A Quantitative Cost Model and Multi-Chiplet Architecture Exploration&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2203.12268&quot;&gt;Paper PDF&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Yinxiao-Feng&#x2F;DAC2022&quot;&gt;Github: Yinxiao-Feng&#x2F;DAC2022&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;They build a model for estimating when MCMs may be a good architecture, incorporating a yield and fabrication cost model, and an NRE + RE cost model.&lt;&#x2F;li&gt;
&lt;li&gt;This is a good paper if you’re looking for numbers related to chip defects, engineering costs, and fabrication &#x2F; packaging overhead costs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;a-fast-parameter-tuning-framework-via-transfer-learning-and-multi-objective-bayesian-optimization&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#a-fast-parameter-tuning-framework-via-transfer-learning-and-multi-objective-bayesian-optimization&quot; aria-label=&quot;Anchor link: a-fast-parameter-tuning-framework-via-transfer-learning-and-multi-objective-bayesian-optimization&quot;&gt;A Fast Parameter Tuning Framework via Transfer Learning and Multi-objective Bayesian Optimization&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;The paper link is unavailable, no Github repo either&lt;&#x2F;li&gt;
&lt;li&gt;More of the same, but just worth restating the trend of “building PPA prediction models and running Bayesian optimization to perform DSE”
&lt;ul&gt;
&lt;li&gt;This is becoming a mainstay at design conferences accounting for 5-10% of the papers&lt;&#x2F;li&gt;
&lt;li&gt;There are no consistent benchmarks so evaluating these DSE techniques is very ad-hoc at the moment&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;panel-on-ml-for-verification&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#panel-on-ml-for-verification&quot; aria-label=&quot;Anchor link: panel-on-ml-for-verification&quot;&gt;Panel on ML for Verification&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Things finally got interesting again with a panel discussion: &lt;em&gt;ML for Verification:Does it Work or Doesn’t It?&lt;&#x2F;em&gt;.
Here are my notes from the session.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The panelists were:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Clark Barrett — Stanford University (&lt;em&gt;the ML skeptic&lt;&#x2F;em&gt; on the panel, formal advocate)&lt;&#x2F;li&gt;
&lt;li&gt;Erik Berg — Microsoft&lt;&#x2F;li&gt;
&lt;li&gt;Sandeep Srinivasan — VerifAI (&lt;em&gt;the ML enthusiast&lt;&#x2F;em&gt; on the panel)&lt;&#x2F;li&gt;
&lt;li&gt;Avi Ziv — IBM&lt;&#x2F;li&gt;
&lt;li&gt;Shoba Vasudevan — Google Brain (&lt;em&gt;she wasn’t present&lt;&#x2F;em&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The ML skeptic on the panel: the long tail of verification is the final few bugs. Even if ML speeds up coverage closure, it still struggles in hitting what it doesn’t know about &#x2F; target. The long tail here refers to events &lt;em&gt;beyond coverage closure&lt;&#x2F;em&gt; that aren’t defined in a test specification or in the RTL, but are nontheless critical to hit to uncover hidden bugs. These are the rare events DV doesn’t think about&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;He also mentioned that verification by its very nature is a ‘precise’ problem. Using fuzzy techniques may yield benefit in image processing but isn’t well suited for discrete models in the way formal methods are.&lt;&#x2F;li&gt;
&lt;li&gt;The skeptic suggests QED and A-QED as approaches that can mitigate the need to write formal properties (e.g. using self-consistency as A-QED does).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Using ML for an efficient regression flow (regression &#x2F; qualification test selection) is very important -&amp;gt; this results in direct cost and time savings which is big for industry. More work should be done in this domain.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Debug speedup is a big deal, and there isn’t much work using ML to that end. This topic is mentioned frequently by industry engineers, but most of the ML for verification work seems focused on coverage closure, which is comparatively (in terms of time) less of an issue.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;We want techniques to pinpoint RTL bugs and&#x2F;or perform waveform discrepancy analysis&lt;&#x2F;li&gt;
&lt;li&gt;More generally, we want a tool to teach DV engineers “how to debug” a particular architecture they’re seeing for the first time - how can we automatically transfer inherent&#x2F;internal RTL engineer knowledge to DV?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Microsoft guy claims that RL + trajectory tuning of parameters has mostly solved the coverage closure problem, but long tail bugs persist&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Input features for bug localization they’ve tried include transaction logs on DUT internal interfaces and log files + some trace data&lt;&#x2F;li&gt;
&lt;li&gt;From these features they try to extract relevant info for bug localization&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;IBM guy talks about how everything in the testbench environment is dumped (test names, parameter settings, an infinite stream of debug prints) as a time-series&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Can we learn anything from that? The issue is that this is proprietary information and academics have no hope of recreating a similar environment&lt;&#x2F;li&gt;
&lt;li&gt;Can we standardize our log file schemas? Standardized outputs for different tools, architectures, trace&#x2F;log files - something that is machine readable by construction.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Microsoft guy talks about bug benchmarks and what is out in the open. For now, basically nothing that is similar to the RTL bug, test, and waveform databases that industry players have internally.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;I talked to him afterwards about what bug localization work can academics do if the bug databases are hidden?&lt;&#x2F;li&gt;
&lt;li&gt;He said, basically &lt;em&gt;there is no hope here&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Synthetic bugs are very poor analogs to real bugs. At best you can create a tool a compnay can validate internally but the precise results will likely not be sharable. Maybe look at open source repos that have bug reports and fixes? You only need to validate a few bug localizations to show the tool effectiveness and utility.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;RL still hasn’t been applied rigorously to perform incremental state exploration with state snappshotting and restoration - this area needs to be explored more and contrasted with concolic execution methods&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Coverage closure with hybrid ML&#x2F;DV&#x2F;FV methods is still underutilized in industry - the vast majority of verification is very manual with directed UVM testbenches or some minor random generator tuning&lt;&#x2F;li&gt;
&lt;li&gt;Can we make these hybrid &#x2F; bughunting &#x2F; state exploration techniques easier to use? Can this be a language level feature (e.g. in Chisel)?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Clark suggested we have a common platform (benchmark test suite, RTL, bugs) for all verification tools (DV&#x2F;FV) that academics can collaborate on, and actually drive SOTA forward. Industry needs to help contribute to this effort.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Nice suggestion, but implementing this is very tough due to the collaboration and consensus needed - the only way to get it done is to do it solo and hope it catches on&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;SemiEngineering wrote up an article on this panel: &lt;a href=&quot;https:&#x2F;&#x2F;semiengineering.com&#x2F;can-ml-help-verification-maybe&#x2F;&quot;&gt;Can ML Help Verification? Maybe&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;exhibition-floor&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#exhibition-floor&quot; aria-label=&quot;Anchor link: exhibition-floor&quot;&gt;Exhibition Floor&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This is &lt;em&gt;by far&lt;&#x2F;em&gt; the best part of DAC.
Everyone should come and talk to companies on the exhibition floors.&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-exhibition_floor.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;exhibition_floor.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;exhibition_floor.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;exhibition_floor.af23455932030c50.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;exhibition_floor.f56aab0b92464a25.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;exhibition_floor.106869d6015f752f.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;exhibition_floor.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;exhibition_floor2.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;exhibition_floor2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;exhibition_floor2.bf329025d0454647.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;exhibition_floor2.45d9e5454e5fbe80.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;exhibition_floor2.248502df5fd4e9a9.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;exhibition_floor2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h3 id=&quot;x-epic&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#x-epic&quot; aria-label=&quot;Anchor link: x-epic&quot;&gt;X-Epic&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;This is a Chinese EDA company (see this article &lt;a href=&quot;https:&#x2F;&#x2F;www.eenewsanalog.com&#x2F;en&#x2F;china-keeps-backing-x-epic-in-eda&#x2F;&quot;&gt;EE News Analog: China backs X-Epic in EDA&lt;&#x2F;a&gt;).
Keep a lookout for how they’re doing and how much they can displace American EDA within China.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;X-Epic was established in March 2020 and has obtained six rounds of financing according to reports, all of which are worth hundreds of millions of yuan (see Chinese EDA hopeful raises $30 million).&lt;&#x2F;p&gt;
&lt;p&gt;In November 2020 X-Epic released simulation technology supporting domestic computing architectures and in November 2021 launched four products: HuaPro-P1, a FPGA prototype verification system; GalaxSim-1.0, a digital simulator, GalaxPSS, a verification system, and GalaxFV, a formal verification tool based on word-level modelling.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h3 id=&quot;sigasi&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#sigasi&quot; aria-label=&quot;Anchor link: sigasi&quot;&gt;Sigasi&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;They develop a &lt;a href=&quot;https:&#x2F;&#x2F;insights.sigasi.com&#x2F;manual&#x2F;editions&#x2F;#sigasi-studio-xprt&quot;&gt;SystemVerilog IDE&lt;&#x2F;a&gt;, which is also offered as a VSCode extension (based on a SystemVerilog LSP).
They offered educational licenses for EECS 151.
And I think it could help get rid of TA time wastage on simple Verilog syntax &#x2F; convention issues.&lt;&#x2F;p&gt;
&lt;p&gt;Later when I got home, I trialed their VSCode extension, and it isn’t as useful as I expected.
The autocomplete is pretty weak.
There are brittle warnings or none at all for basic problems like multiple drivers on one net, multiple drivers from different always blocks, mixing blocking and nonblocking in one always block or using the wrong type of assignment in a clocked vs combinational always block, or incomplete cases &#x2F; defaults.&lt;&#x2F;p&gt;
&lt;p&gt;For now, I think it’s best for students to continue using VSCode as a normal text editor when combined with Verilator’s lint-only mode.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;verifai&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#verifai&quot; aria-label=&quot;Anchor link: verifai&quot;&gt;VerifAI&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;verifai.ai&#x2F;&quot;&gt;VerifAI&lt;&#x2F;a&gt; is a startup that offers “ML for verification” tools.
Their technique is much simpler than I expected, upon talking to their engineers.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;They receive a CSV from their customer (simplified example below) containing test generator parameters and an aggregate coverage metric they’re trying to maximize&lt;&#x2F;li&gt;
&lt;li&gt;Their tool parses this file and determines which parameters to try next in the test environment using an RL agent&lt;&#x2F;li&gt;
&lt;li&gt;Later, they will support multiple coverage metrics and some kind of netlist embedding that customers can provide, but the functionality as of now looks like a very cripped version of Xcelium-ML&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;param0, param1, param2, cov_metric
0.5, 0.2, 0.4, 4
0.6, 0.1, 0.3, 5
0.2, 0.9, 0.2 2&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;scientific-analog&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#scientific-analog&quot; aria-label=&quot;Anchor link: scientific-analog&quot;&gt;Scientific Analog&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-12-xmodel.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-xmodel.jpg&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;12-xmodel.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;Scientific Analog offers &lt;a href=&quot;https:&#x2F;&#x2F;www.scianalog.com&#x2F;xmodel&#x2F;&quot;&gt;XMODEL&lt;&#x2F;a&gt;, which is a framework to perform SPICE-ish simulations in pure SystemVerilog without invoking a SPICE simulator.
They also have a way to convert an AMS model into their library primitives that use the SystemVerilog event-driven simulation model to trigger state updates.
They have &lt;em&gt;by far&lt;&#x2F;em&gt; the most aesthetic marketing material on the floor.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;cedar-eda&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#cedar-eda&quot; aria-label=&quot;Anchor link: cedar-eda&quot;&gt;Cedar EDA&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;cedar-eda.com&#x2F;&quot;&gt;Cedar EDA&lt;&#x2F;a&gt; developed the first “Fully Differentiable SPICE Simulator”, written in Julia, with a Julia API.&lt;&#x2F;p&gt;
&lt;p&gt;Does this mean you can compute an empirical derivative of say the gain of an op-amp with respect to each of the transistor widths?
Or something even more complex like the noise figure with respect to transistor widths&#x2F;lengths and passives?
This could enable intelligent circuit parameter search algorithms vs shooting in the dark and trying to train a regression model or an RL agent.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;cadence&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#cadence&quot; aria-label=&quot;Anchor link: cadence&quot;&gt;Cadence&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;There were lots of raffle giveaways at their booth for which we sat through their presentations, but we never won anything :(.&lt;&#x2F;p&gt;
&lt;p&gt;The booth people were really helpful — someone gave me details on Xcelium-ML and offered more help offline.
&lt;em&gt;In contrast&lt;&#x2F;em&gt;, the Synopsys reps were not helpful.
Seriously, they claimed to not have any verification reps on Tuesday or Wednesday.
That is pretty much their core business (VCS) — I think they’re just not interested in talking to lowly grad students.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;open-source-eda&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#open-source-eda&quot; aria-label=&quot;Anchor link: open-source-eda&quot;&gt;Open-Source EDA&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Prof. Andrew Kahng has been organizing a &lt;a href=&quot;https:&#x2F;&#x2F;open-source-eda-birds-of-a-feather.github.io&#x2F;README_2022.html&quot;&gt;&lt;em&gt;“Open-Source EDA Birds-of-a-Feather Meeting”&lt;&#x2F;em&gt;&lt;&#x2F;a&gt; at DAC for the past few years.
Here are my notes from this session.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;open-source-eda-birds-of-a-feather.github.io&#x2F;doc&#x2F;slides&#x2F;LIVE-NOTES-Open-Source%20EDA%20and%20Benchmarking%20Summit%202022.pdf&quot;&gt;Andrew Kahng’s intro slides and discussion notes&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;People talked about foundry support for OpenROAD tools - the tools are much more mature than 2 years ago so it might be in the cards to get foundries to publish collateral for them.&lt;&#x2F;li&gt;
&lt;li&gt;Replace pay-to-play standards bodies (e.g. Accelera) with open standards for tool interop and CAD database formats. Common complaint about OpenAccess not actually having open specs or APIs. OpenROAD has its own EDA database format shared across all the tools.&lt;&#x2F;li&gt;
&lt;li&gt;Everyone should push designs through OpenROAD frequently and report bugs - people are actively working on all the tools&lt;&#x2F;li&gt;
&lt;li&gt;Uniform benchmarks are critical, industry should contribute designs
&lt;ul&gt;
&lt;li&gt;Can companies release old designs that aren’t used anymore?&lt;&#x2F;li&gt;
&lt;li&gt;Can we retire poor &#x2F; old benchmarks? (e.g. iscas85 circuits)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Should EDA research be reproducible? YES. Conferences should encourage authors to submit collateral to increase reviewer confidence in the work (e.g. notebooks, artifacts)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;TILOS-AI-Institute&#x2F;MacroPlacement#testcases&quot;&gt;TILOS AI Institute - MacroPlacement benchmarks&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;Open source benchmarks used by Google in their RL placer paper&lt;&#x2F;li&gt;
&lt;li&gt;Complete with Makefile for RTL → GDS flows using Cadence &#x2F; OpenROAD backend with nangate45, asap7, sky130&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;google-research&#x2F;circuit_training&quot;&gt;Google’s public release of their RL placer&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Also see Princeton’s &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;PrincetonUniversity&#x2F;OPDB&quot;&gt;OpenPiton Design Benchmarks&lt;&#x2F;a&gt; (these are intended to benchmark synthesis and backend flows on QoR)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;open-source-eda-birds-of-a-feather.github.io&#x2F;doc&#x2F;slides&#x2F;Oron_DFiant%20Remote.pdf&quot;&gt;DFiant cloud solution that offers access to OSS EDA flows&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;Remote OSS CAD tool execution that can be run from your local computer with file sync, virtual desktop, etc. This is pretty cool, but they didn’t do a demo and the slides seemed a bit primitive.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ABKGroup&#x2F;RosettaStone&quot;&gt;OpenROAD Rosetta Stone&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;blockquote&gt;
&lt;p&gt;This repository contains RosettaStone, which leverages a standard physical design data model (LEF&#x2F;DEF 5.8) and open-source database implementation (OpenDB in OpenROAD) to effectively connect the academic physical design field’s past, present and future. RosettaStone’s shared data model enables richer integrations, flow contexts, and assessments for research.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h3 id=&quot;cadence-scripts-can-be-public-now&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#cadence-scripts-can-be-public-now&quot; aria-label=&quot;Anchor link: cadence-scripts-can-be-public-now&quot;&gt;Cadence Scripts Can be Public Now!&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Cadence delivers a boon to academic researchers (we should migrate to Xcelium and get rid of all Synopsys dependencies in our VLSI flow).
Thanks to this, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ucb-bar&#x2F;hammer-cadence-plugins&#x2F;&quot;&gt;hammer-cadence-plugins&lt;&#x2F;a&gt; is now public!&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-12-cadence_statement.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;12-cadence_statement.jpg&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;12-cadence_statement.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h3 id=&quot;metrics4ml&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#metrics4ml&quot; aria-label=&quot;Anchor link: metrics4ml&quot;&gt;Metrics4ML&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The Github repo: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ieee-ceda-datc&#x2F;datc-rdf-Metrics4ML&quot;&gt;ieee-ceda-datc&#x2F;Metrics4ML&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;In this repository, you will also find an overview of METRICS2.1, an open-source format for collecting design and tool metrics for an RTL-to-GDS flow.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;They define a schema for metrics (area, timing, power, etc.) emitted by each each tool used in the VLSI CAD flow
&lt;ul&gt;
&lt;li&gt;Does SiliconCompiler use their metrics schema? I don’t think so.&lt;&#x2F;li&gt;
&lt;li&gt;This project is inactive, but it seems like a good place to start with metric schema integration in Hammer.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;open-cad-flow-tools-session&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#open-cad-flow-tools-session&quot; aria-label=&quot;Anchor link: open-cad-flow-tools-session&quot;&gt;Open CAD Flow Tools Session&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Onto the next day of DAC, Wednesday!
The first session was &lt;em&gt;Breaking Down Physical Design Barriers with Open and Agile Flow Tools&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;siliconcompiler-presentation-and-demo&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#siliconcompiler-presentation-and-demo&quot; aria-label=&quot;Anchor link: siliconcompiler-presentation-and-demo&quot;&gt;SiliconCompiler Presentation and Demo&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;raw.githubusercontent.com&#x2F;siliconcompiler&#x2F;sc-education&#x2F;main&#x2F;presentations&#x2F;sc_2022_07_dac.pdf&quot;&gt;Slides PDF&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;raw.githubusercontent.com&#x2F;siliconcompiler&#x2F;sc-education&#x2F;main&#x2F;papers&#x2F;sc_2022_07_dac.pdf&quot;&gt;Paper PDF&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;There are definitely some things to like about SiliconCompiler:
&lt;ul&gt;
&lt;li&gt;Built in library for defining flow graphs (Make-like) using a Python API
&lt;ul&gt;
&lt;li&gt;Use of arbitrary Python to define each flow step&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Flow graph model is serialized as a manifest and is then executed (like meson &#x2F; ninja) (execution can take place remotely due to static dependency specification allowing for clean-ish file synchronization)
&lt;ul&gt;
&lt;li&gt;Standardized manifest schema&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Setup of configuration is done in pure Python (no yaml &#x2F; json inputs). Users write Python to set up each flow step by specifying their inputs (tool directories, envvars, PDK definitions) and outputs (temp dirs, log file outputs, database output path).&lt;&#x2F;li&gt;
&lt;li&gt;Built in SLURM dispatch or &lt;em&gt;remote execution&lt;&#x2F;em&gt; with SiliconCompiler’s server-side daemon (can launch jobs from your laptop to a cluster &#x2F; cloud and sync job results whenever they’re ready)&lt;&#x2F;li&gt;
&lt;li&gt;Consistent metrics schema used to standardize (and systematically manipulate) tool-specific log files&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;And some things to not like:
&lt;ul&gt;
&lt;li&gt;Python configuration object is just a key&#x2F;value store with some stringly-typed keys defined in the standardized manifest schema (this may be useful in some circumstances when ad-hoc properties are used from the configuration DB to a specific tool)&lt;&#x2F;li&gt;
&lt;li&gt;Ad-hoc configuration schema for different tools &#x2F; PDKs, difficult to decipher where things come from&lt;&#x2F;li&gt;
&lt;li&gt;Awkward DSL for flow graph construction&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;See this: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;The-OpenROAD-Project&#x2F;OpenROAD-flow-scripts&#x2F;pull&#x2F;501&#x2F;files&quot;&gt;OpenROAD makefile reimplemented using the SiliconCompiler flow graph API&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Overall, a good entry in this space and forces us to rethink some design decisions in Hammer and motivates some feature additions&lt;&#x2F;li&gt;
&lt;li&gt;Andreas’ list of open source HW projects: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;aolofsson&#x2F;awesome-opensource-hardware&quot;&gt;Github: aolofson&#x2F;awesome-opensource-hardware&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;mflowgen&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#mflowgen&quot; aria-label=&quot;Anchor link: mflowgen&quot;&gt;mflowgen&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;ctorng.com&#x2F;pdfs&#x2F;carsello-mflowgen-dac2022.pdf&quot;&gt;Paper PDF&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-13-mflowgen1.png&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-mflowgen1.png&quot; style=&quot;flex: 0.988 1 0%&quot; data-pswp-width=&quot;1114&quot; data-pswp-height=&quot;1127&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-mflowgen1.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-mflowgen1.004305f15ebebc1a.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-mflowgen1.d8ddb9b5914cda32.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-mflowgen1.7d7d6463b6fa95bf.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-mflowgen1.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-mflowgen2.png&quot; style=&quot;flex: 1.836 1 0%&quot; data-pswp-width=&quot;1179&quot; data-pswp-height=&quot;642&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-mflowgen2.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-mflowgen2.7bdd1711f6ae9f7c.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-mflowgen2.18c1158473430a42.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-mflowgen2.1511c0dc92d6a441.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-mflowgen2.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;ul&gt;
&lt;li&gt;Things to like:
&lt;ul&gt;
&lt;li&gt;They have a flow graph API built into the tool just like SiliconCompiler (it emits a Makefile)&lt;&#x2F;li&gt;
&lt;li&gt;Extensive use of static property checking to catch TCL config bugs early (e.g. referring to a non-existent net in your constraints file)&lt;&#x2F;li&gt;
&lt;li&gt;Ability to snapshot the state of a node (the filesystem) after partial execution of a flow graph and store it in an artifact repository&lt;&#x2F;li&gt;
&lt;li&gt;Ability to restore these states (even from different tool users) and restart the flow after a point (e.g. one person runs synthesis and others can use their results from an artifact repo for floorplanning runs)&lt;&#x2F;li&gt;
&lt;li&gt;Design &#x2F; VLSI CAD tool parameter space sweeping using the &lt;code&gt;param-sweep&lt;&#x2F;code&gt; function &lt;a href=&quot;https:&#x2F;&#x2F;mflowgen.readthedocs.io&#x2F;en&#x2F;latest&#x2F;ug-param-space.html&quot;&gt;documented here&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;Something like this would be very awkward with Hammer since the Makefile orchestrating the sweep would have to emit yaml&#x2F;json fragments for each concrete parameter set&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;hammer-talk&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#hammer-talk&quot; aria-label=&quot;Anchor link: hammer-talk&quot;&gt;HAMMER Talk&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Where are the paper and slides?
I could find the other ones by searching “dac 2022 mflowgen” or looking at their Github repo.
We need to do a better job with marketing.
But regardless, great presentation Bora!&lt;&#x2F;p&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-13-bora.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-bora.jpg&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-bora.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h2 id=&quot;power-session&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#power-session&quot; aria-label=&quot;Anchor link: power-session&quot;&gt;Power Session&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The next session was &lt;em&gt;Designing and Verifying for Power at the Front End&lt;&#x2F;em&gt;.
This session didn’t have many interesting talks and it overlapped with the OSS EDA flows session, but this one stood out.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;learning-based-power-modeling-for-versal-ai-engine&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#learning-based-power-modeling-for-versal-ai-engine&quot; aria-label=&quot;Anchor link: learning-based-power-modeling-for-versal-ai-engine&quot;&gt;Learning-based Power Modeling for Versal AI Engine&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-13-versal_power1.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-versal_power1.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-versal_power1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power1.185b30789b3d8396.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power1.5ecd90933db18d30.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power1.3ae82a88254cdf95.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-versal_power1.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-versal_power2.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-versal_power2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power2.57ad52548c402553.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power2.3a5e27836fb585ae.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power2.3c6dd987a766632f.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-versal_power2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-versal_power3.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-versal_power3.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power3.0af1ebfe67688df4.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power3.dc27c6fa949a593a.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power3.4014a489db6c6067.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-versal_power3.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
      &lt;&#x2F;div&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-versal_power4.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-versal_power4.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power4.605a897cad9e98bc.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power4.5a48dd4339b428be.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power4.05abb1c16afde58f.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-versal_power4.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-versal_power5.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-versal_power5.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power5.fc41d04d213527eb.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power5.d984202936bffdc9.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power5.6d43bc9fc91d7a29.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-versal_power5.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-versal_power6.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-versal_power6.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power6.1f8c73505daeee9c.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power6.65d5f2472c1a992d.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-versal_power6.d069c16312e50f19.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-versal_power6.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;ul&gt;
&lt;li&gt;Cycle-level granularity on-chip power monitor used for &lt;a href=&quot;https:&#x2F;&#x2F;59dac.conference-program.com&#x2F;presentation&#x2F;?id=FEDES116&amp;amp;sess=sess163&quot;&gt;peak draw and IR drop analysis&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;Feeds back to PDN controllers and P-state tuning logic&lt;&#x2F;li&gt;
&lt;li&gt;Close correlation between SystemC events + IPM vs actual drawn power as measured in silicon&lt;&#x2F;li&gt;
&lt;li&gt;Nothing novel or special in their approach, but just a reiteration that on-chip power monitors are very common in industry silicon and they seem to have low-ish error even though they’re only looking at a few signals and using a very simple linear model&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;ml-for-eda-panel&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#ml-for-eda-panel&quot; aria-label=&quot;Anchor link: ml-for-eda-panel&quot;&gt;ML for EDA Panel&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We went to a panel called &lt;em&gt;&lt;a href=&quot;https:&#x2F;&#x2F;59dac.conference-program.com&#x2F;presentation&#x2F;?id=PANEL107&amp;amp;sess=sess211&quot;&gt;Machine Learning for Electronic Design Automation: Irrational Exuberance or the Dawn of a Golden Age?&lt;&#x2F;a&gt;&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Panelists&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Andrew Kahng — University of California, San Diego&lt;&#x2F;li&gt;
&lt;li&gt;Alberto Sangiovanni Vincentelli — University of California, Berkeley&lt;&#x2F;li&gt;
&lt;li&gt;Giovanni De Micheli — École Polytechnique Fédérale de Lausanne&lt;&#x2F;li&gt;
&lt;li&gt;Gary Marcus — Robust.AI&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;There was never any consensus about whether ML will revolutionize EDA CAD algorithms, but ASV basically said something to the effect of:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Traditional algorithms exploit the problem structure and when developed properly can outcompete generic algorithms like ML.&lt;&#x2F;li&gt;
&lt;li&gt;This includes things like simulated annealing and genetic algorithms for optimization when tuned to the problem domain.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;However, the other panelists pointed out that just having enough data can be sufficient to make generic algorithms and heuristics much more performant &#x2F; accurate than domain-specific ones&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;ASV attributes this to the inherent fuzziness of the domains in which ML is being applied e.g. generative art, image classification, text completion. He argues that EDA is different, where the algorithm space is discrete (not continuous) and preciseness is required (inaccuracies aren’t tolerated).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;posters&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#posters&quot; aria-label=&quot;Anchor link: posters&quot;&gt;Posters&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-13-coq_dram_model.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-coq_dram_model.jpg&quot; style=&quot;flex: 0.563 1 0%&quot; data-pswp-width=&quot;2268&quot; data-pswp-height=&quot;4032&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-coq_dram_model.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-coq_dram_model.0c9fd2c320d11042.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-coq_dram_model.80d45cc390e50b6d.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-coq_dram_model.3f96425435910822.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-coq_dram_model.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-deep_rl_placer.jpg&quot; style=&quot;flex: 0.563 1 0%&quot; data-pswp-width=&quot;2268&quot; data-pswp-height=&quot;4032&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-deep_rl_placer.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-deep_rl_placer.6b4e3334adfa540d.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-deep_rl_placer.d05ba7fc54171685.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-deep_rl_placer.ad0adc3957fb8665.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-deep_rl_placer.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-pulp_pmc.jpg&quot; style=&quot;flex: 0.563 1 0%&quot; data-pswp-width=&quot;2268&quot; data-pswp-height=&quot;4032&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-pulp_pmc.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-pulp_pmc.e8efcbcaf6d0cd86.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-pulp_pmc.510b2e0b779d1220.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-pulp_pmc.5f8a2af9cf2d1fcb.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-pulp_pmc.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-xls_poster.jpg&quot; style=&quot;flex: 0.563 1 0%&quot; data-pswp-width=&quot;2268&quot; data-pswp-height=&quot;4032&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;13-xls_poster.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-xls_poster.f0652a2d3a75d9c4.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-xls_poster.f25d794d0b34f839.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;13-xls_poster.54b404ce09215edf.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;13-xls_poster.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;There were a few interesting posters:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Coq Based DRAM Timing Model and Property Verifier
&lt;ul&gt;
&lt;li&gt;This is a DRAM model, with timing invariants and a proof. The SystemVerilog lowering is being worked on.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Deep RL placer similar to what Google published in Nature&lt;&#x2F;li&gt;
&lt;li&gt;Pulp-Based PMU FPGA prototype&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;!--
    - flisboa@telecom-paris.fr
    - See: Matthias Jung - Petri nets - DRAM timing formal models
--&gt;
&lt;h3 id=&quot;xls-google-s-hls-ir&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#xls-google-s-hls-ir&quot; aria-label=&quot;Anchor link: xls-google-s-hls-ir&quot;&gt;XLS (Google’s HLS IR)&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;HLS has traditionally meant C or SystemC to structural-ish Verilog
&lt;ul&gt;
&lt;li&gt;Algorithms expressed in C are usually feedforward ones with a bit of state, expressed as pure functions - these can be transformed into FSMs with HLS&lt;&#x2F;li&gt;
&lt;li&gt;SystemC bolts on module hierarchies, a systematic hierarchy of ports and blocking&#x2F;non-blocking operators on them, TLM, threads within a module to capture HW concurrency, and designer-specified ‘hints’ to the HLS engine (places to look for parallelism, loop unrolling&#x2F;blocking factors, desired pipeline depth).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;The baggage of C&#x2F;SystemC has motivated people to design new HLS frontend languages as well as IRs that can capture all the primitives needed to express HLS-able algorithms as well as designer instrumented implementation hooks &#x2F; suggestions (e.g. equivalent of pragmas in SystemC)
&lt;ul&gt;
&lt;li&gt;e.g. I have been thinking about unifying software VIPs and RTL transactors in front-end description language - enabling lowering of VIPs to transactors automatically for FPGA simulation as well as using synthesizable VIPs within regular software RTL simulation to improve performance when the testbench host language isn’t SystemVerilog.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;XLS (Google’s HLS IR) very recently added “threading” support (which is critical to describe VIPs)
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;google.github.io&#x2F;xls&#x2F;tutorials&#x2F;intro_to_procs&#x2F;&quot;&gt;Experimental “procs” feature&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Procs support a form of “communicating sequential processes” which describe hardware-level parallelism&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;calyxir.org&#x2F;&quot;&gt;Calyx IR&lt;&#x2F;a&gt; (an HLS IR, built by Cornell) supports parallelism constructs and is used by Dahlia and TVM
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;circt.llvm.org&#x2F;docs&#x2F;Dialects&#x2F;Calyx&#x2F;&quot;&gt;MLIR Calyx dialect docs&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;docs.calyxir.org&#x2F;lang&#x2F;sync.html&quot;&gt;Calyx experimental thread synchronization primitives&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;intel&#x2F;systemc-compiler&quot;&gt;Github: Intel&#x2F;systemc-compiler&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;rvvi-risc-v-verification-interface&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#rvvi-risc-v-verification-interface&quot; aria-label=&quot;Anchor link: rvvi-risc-v-verification-interface&quot;&gt;RVVI (RISC-V Verification Interface)&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;There was a talk about this on the exhibition floor that I missed&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;riscv-verification&#x2F;RVVI&quot;&gt;Github: riscv-verification&#x2F;RVVI&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;The complaint is that each RISC-V core (Rocket &#x2F; Chipyard cores, CVA6, Shakti, etc.) has a different testharness that’s written specifically for it&lt;&#x2F;li&gt;
&lt;li&gt;They propose a standardized Verilog &#x2F; C++ interface for processor trace, reference model comparison, and peripherals (e.g. UART, interrupts)&lt;&#x2F;li&gt;
&lt;li&gt;This is definetely a good idea and we should keep abreast of these developments - ideally they would publish a Verilog and C++ (Verilator) testbench that can just slot in any RISC-V SoC if it has the conforming ports&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;teardown&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#teardown&quot; aria-label=&quot;Anchor link: teardown&quot;&gt;Teardown&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The final day of DAC, Thursday, has arrived.
The exhibition floor wasn’t open today.
It’s nice to see how they packed everything into a relatively small area.&lt;&#x2F;p&gt;






&lt;figure&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-14-done1.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-done1.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-done1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-done1.aa84105eb0cbacf3.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-done1.0e5918e14da01a7e.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-done1.b6f108a2533c9d5b.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-done1.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-done2.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-done2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-done2.395543a72fb66401.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-done2.903526b24ca008d3.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-done2.da4ef0ff4f04352e.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-done2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h2 id=&quot;semicon-west&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#semicon-west&quot; aria-label=&quot;Anchor link: semicon-west&quot;&gt;SemiCon West&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;SemiCon West was going on in the other Moscone buildings.
It was much larger than DAC — way more attendees and way more exhibitors.&lt;&#x2F;p&gt;
&lt;p&gt;The focus was on vendors for everything related to semiconductor manufacturing.
Lots of robots, gantries, testing rigs, special chemical suppliers, lithography machines, and clean room equipment.
There was a probe tester that was running on the floor — it is incredibly fast!&lt;&#x2F;p&gt;
&lt;p&gt;
&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-14-semicon_prober.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-semicon_prober.jpg&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-semicon_prober.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;

&lt;figure&gt;
  
  &lt;video controls style=&quot;height: 500px;&quot; preload=&quot;none&quot;&gt;
    &lt;source src=&quot;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-semicon_prober.mp4&quot; type=&quot;video&#x2F;mp4&quot;&gt;
  &lt;&#x2F;video&gt;
  
&lt;&#x2F;figure&gt;
&lt;&#x2F;p&gt;
&lt;h2 id=&quot;automating-analog-layout-has-the-time-finally-come&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#automating-analog-layout-has-the-time-finally-come&quot; aria-label=&quot;Anchor link: automating-analog-layout-has-the-time-finally-come&quot;&gt;Automating Analog Layout - Has The Time Finally Come?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The panel we’ve all been waiting for on the last day of DAC.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;The panelists:
&lt;ul&gt;
&lt;li&gt;Steven Burns — Intel&lt;&#x2F;li&gt;
&lt;li&gt;Elad Alon — Blue Cheetah Analog Design&lt;&#x2F;li&gt;
&lt;li&gt;Ting-Sheng Ku — NVIDIA&lt;&#x2F;li&gt;
&lt;li&gt;Weikai Sun — Synopsys&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-14-analog_panel.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel.37489f84241ed949.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel.6ea9a52e14bc3770.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel.dce20fe13d965090.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel2.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel2.f724d9bb55daec35.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel2.3f08e550d49826c1.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel2.4cd5bca4bd7e8020.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel3.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel3.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel3.73b0ef0b9f84f788.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel3.100ad2b41278190f.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel3.8d0d0a47be7594a2.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel3.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;ul&gt;
&lt;li&gt;Analog &lt;em&gt;was&lt;&#x2F;em&gt; being dragged into FF nodes
&lt;ul&gt;
&lt;li&gt;5-10 years ago this was because of the integration trend&lt;&#x2F;li&gt;
&lt;li&gt;Now, with chiplet disaggregation analog is allowed to lag behind in some cases&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;A big issue with analog automation is nice and aesthetic layouts are actually good in ways that can’t be easily measured or simulated
&lt;ul&gt;
&lt;li&gt;Variability and resiliency simulations don’t capture full silicon effects&lt;&#x2F;li&gt;
&lt;li&gt;Unexpected variation introduced by manufacting process isn’t modeled in simulation, but can usually be dealt with by symmetric and aesthetic layout&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;synopsys-take&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#synopsys-take&quot; aria-label=&quot;Anchor link: synopsys-take&quot;&gt;Synopsys’ Take&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-14-analog_panel_1_1.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_1_1.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_1_1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_1.9e5aafbd15dddefb.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_1.6e2257b881a4824e.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_1.8893e946f1a6d1d1.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_1_1.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_1_2.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_1_2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_2.96ae316e3bc37f4b.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_2.2a05d3915a143fef.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_2.4adb441ac9d31252.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_1_2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_1_3.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_1_3.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_3.ff52e0a651bd8cab.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_3.6c5ad4025720e36b.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_3.e867049c4b9153b4.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_1_3.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
      &lt;&#x2F;div&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_1_4.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_1_4.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_4.c6197270ab8a786f.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_4.805113d1dbaec0f9.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_4.02b42f5a6fb45e05.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_1_4.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_1_5.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_1_5.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_5.f15f685d71fab90a.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_5.acb03dcaad2a6148.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_1_5.d176ad4a87479f56.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_1_5.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
            &lt;div style=&quot;flex: 1.778 1 0%&quot;&gt;&lt;&#x2F;div&gt;
          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;ul&gt;
&lt;li&gt;Custom layout is painful due to parasitic-induced layout iteration
&lt;ul&gt;
&lt;li&gt;The focus should be layout automation assistance with guidance around parasitics - not a fully automated flow.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Avoid red button flows, you want instant constraint to layout feedback, mixed-signal timing is still a big issue that we’re not tackling&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;elad-alon-s-take&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#elad-alon-s-take&quot; aria-label=&quot;Anchor link: elad-alon-s-take&quot;&gt;Elad Alon’s Take&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-14-analog_panel_2_1.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_2_1.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_2_1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_1.19e54baa3b847c06.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_1.7eee5f804bb1a013.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_1.d556d56bc117355d.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_2_1.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_2_2.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_2_2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_2.a4927cb9d81a4aac.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_2.a9ee574cf4a6629b.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_2.5de5c8c6d3bc1c49.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_2_2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_2_3.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_2_3.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_3.d7741703fd74fbbb.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_3.bc0243faa26068c2.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_3.0d65ae4eace8aba5.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_2_3.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_2_4.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_2_4.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_4.a2e74ff4ca8261ac.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_4.7b92cfb19b964aad.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_4.a1d7866bb13f6573.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_2_4.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
      &lt;&#x2F;div&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_2_5.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_2_5.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_5.1ea342a8de115653.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_5.63048c5a09dc29ab.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_5.8c70aab7366fd8b0.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_2_5.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_2_6.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_2_6.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_6.bae4cd28e13a608e.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_6.283a890b2dc05c46.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_2_6.520ab9882a8ff9ac.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_2_6.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
            &lt;div style=&quot;flex: 1.778 1 0%&quot;&gt;&lt;&#x2F;div&gt;
          
            &lt;div style=&quot;flex: 1.778 1 0%&quot;&gt;&lt;&#x2F;div&gt;
          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h3 id=&quot;steve-burns-take&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#steve-burns-take&quot; aria-label=&quot;Anchor link: steve-burns-take&quot;&gt;Steve Burns’ Take&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-14-analog_panel_3_1.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_1.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_3_1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_1.3b29b55a19d9b843.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_1.9c26f78a6ae3f211.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_1.8e79cc86b84d3214.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_1.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_2.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_3_2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_2.c78016ff35d6eb9e.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_2.8aea1bd404f764d6.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_2.e62b3e7d8e90decb.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_3.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_3_3.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_3.70fa75e758bd27eb.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_3.d9a4a61cafe26298.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_3.3bf5d69f22bff6eb.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_3.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_4.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_3_4.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_4.647e0463f409d4a4.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_4.2a2517358c821913.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_4.733652f61258f830.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_4.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
      &lt;&#x2F;div&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_5.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_3_5.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_5.9f4fe9d2d0e1b63a.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_5.858ec06aa1db259e.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_5.d8c9df0023df4b7b.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_5.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_6.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_3_6.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_6.886dd1f8c206efdd.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_6.54c34ed9a5cc63f0.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_6.e56badc6b26cf6fb.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_6.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_7.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_3_7.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_7.5ad5986cc3336f86.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_7.dbc91fd42d9b8813.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_7.c3b9a219be704195.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_7.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_8.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_3_8.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_8.a0e8d0044f33991c.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_8.c2aeedb886cf985a.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_3_8.91ae5588d634ef17.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_3_8.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;h3 id=&quot;nvidia-s-take&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#nvidia-s-take&quot; aria-label=&quot;Anchor link: nvidia-s-take&quot;&gt;NVIDIA’s Take&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-14-analog_panel_4_1.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_1.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_4_1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_1.ef2876218f66cc55.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_1.3c4d70ba8208776c.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_1.be12ef64d4cc3d65.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_1.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_2.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_4_2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_2.e06f7310eed57351.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_2.97a9d303a4f6b4a5.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_2.b0275e97b707ca6e.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_2.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_3.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_4_3.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_3.d3b34913664b7c1a.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_3.6a1387d515935899.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_3.5cd3af91fcb3410a.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_3.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_4.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_4_4.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_4.0d679880b8e3ed3f.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_4.9322116ad0c0bfd9.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_4.bbddcec828bee35d.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_4.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
      &lt;&#x2F;div&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_5.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_4_5.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_5.8a6d1c63eb90f351.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_5.3fc3e9dad7acf5d8.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_5.96f7a11fd97d7550.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_5.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_6.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_4_6.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_6.c8de3b29ab15c6c9.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_6.039e7b327c8c0117.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_6.45565f0f30c372fd.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_6.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_7.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-analog_panel_4_7.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_7.73753b3bca477007.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_7.171b35616506de56.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-analog_panel_4_7.93d60720f507255c.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-analog_panel_4_7.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
            &lt;div style=&quot;flex: 1.778 1 0%&quot;&gt;&lt;&#x2F;div&gt;
          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;ul&gt;
&lt;li&gt;Layout changes are by their nature &lt;em&gt;visual&lt;&#x2F;em&gt;, only one thing is touched at a time (and you do it by hand so you feel in full control)
&lt;ul&gt;
&lt;li&gt;In contrast to code changes which are &lt;em&gt;non-visual&lt;&#x2F;em&gt; and many layout attributes can change with one code change (this is the cause of frustration around layout automation)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Trusting a layout algorithm comes from &lt;em&gt;reliability&lt;&#x2F;em&gt;, NOT formal proof &#x2F; simulation
&lt;ul&gt;
&lt;li&gt;If proven in silicon, everyone likes it. If it &lt;em&gt;appears to work&lt;&#x2F;em&gt; in simulation, no one trusts it, especially if the layout is ugly &#x2F; not symmetric&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Designers always agree with themselves - whatever ML layout engine we use must mimic a specific designer (and his own personal style)!
&lt;ul&gt;
&lt;li&gt;This is the way to win trust&lt;&#x2F;li&gt;
&lt;li&gt;The other panelists thought this was a bit extreme, but it does make sense&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;The panelists often refered to analog designers as a ‘sub-species’ of humanity, one that needs a lot of coaxing and is prone to sticking with behavior patterns for life and resisting change.
&lt;ul&gt;
&lt;li&gt;The analog designer is a fickle thing: very good at what they do and they possess great intuition, but they suffer from low productivity and superstition, making analog automation difficult when they have to be convinced to adopt it.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;gpu-accelerated-gate-level-simulation&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#gpu-accelerated-gate-level-simulation&quot; aria-label=&quot;Anchor link: gpu-accelerated-gate-level-simulation&quot;&gt;GPU Accelerated Gate-Level Simulation&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This excellent paper from NVIDIA, &lt;a href=&quot;https:&#x2F;&#x2F;research.nvidia.com&#x2F;publication&#x2F;2022-03_gatspi-gpu-accelerated-gate-level-simulation-power-improvement&quot;&gt;GATSPI: GPU Accelerated Gate-Level Simulation for Power Improvement&lt;&#x2F;a&gt;, was presented in the &lt;em&gt;So You Want a Better Design? Go with Faster Timing and Lower Power Please!&lt;&#x2F;em&gt; session.&lt;&#x2F;p&gt;






&lt;figure class=&quot;popout&quot;&gt;

  &lt;div class=&quot;gallery-grid&quot; id=&quot;gallery-14-gatspi.jpg&quot;&gt;
    
      
      
      &lt;div class=&quot;gallery-row&quot;&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-gatspi.jpg&quot; style=&quot;flex: 1.778 1 0%&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-gatspi.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-gatspi.657ac684226debfd.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-gatspi.5b4203df4b1612e9.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-gatspi.2bb09643748cd140.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-gatspi.jpg 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-gatspi1.png&quot; style=&quot;flex: 2.325 1 0%&quot; data-pswp-width=&quot;1160&quot; data-pswp-height=&quot;499&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-gatspi1.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-gatspi1.45f6cd084ecab1af.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-gatspi1.b3066b2e5b2e08f0.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-gatspi1.09cc7a96f58a073a.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-gatspi1.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
          
          

          
          
          
          
          
          
          
          &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-gatspi2.png&quot; style=&quot;flex: 1.684 1 0%&quot; data-pswp-width=&quot;1184&quot; data-pswp-height=&quot;703&quot; target=&quot;_blank&quot;&gt;
            &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-gatspi2.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; srcset=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-gatspi2.2da13f7e4b948fbf.webp 600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-gatspi2.464a0eca95f5896d.webp 1000w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;processed_images&#x2F;14-gatspi2.be3330b5bc5d8cf3.webp 1600w, https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-gatspi2.png 2000w&quot; sizes=&quot;(min-width: 720px) 720px&quot;&gt;
          &lt;&#x2F;a&gt;
        
        
          
          
          
          
          
          
          

          
        
      &lt;&#x2F;div&gt;
    
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;ul&gt;
&lt;li&gt;Transform gate-level netlists to DGL graphs, extract subgraphs and compile them to CUDA kernels that accurately model delays with SDF input&lt;&#x2F;li&gt;
&lt;li&gt;Specialzed kernel code to avoid thread divergence and remove need for conditionals. Gates are simulated in parallel across many waveforms.&lt;&#x2F;li&gt;
&lt;li&gt;Turns 1 day of GL simulation runtime to just 10 seconds with 4 A100 GPUs&lt;&#x2F;li&gt;
&lt;li&gt;Potentially the same technique can be used to accelerate the actual signoff power analysis which ingests the spef and uses data in the .spef&#x2F;.lib files to extract per-toggle energy&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;source-level-debugging-for-new-hdls&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#source-level-debugging-for-new-hdls&quot; aria-label=&quot;Anchor link: source-level-debugging-for-new-hdls&quot;&gt;Source-Level Debugging for New HDLs&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;

&lt;figure class=&quot;inset&quot;&gt;
  
  
  
  &lt;div id=&quot;gallery-14-hgdb.jpg&quot;&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;vighneshiyer.com&#x2F;research&#x2F;events&#x2F;2022-06-dac&#x2F;14-hgdb.jpg&quot; data-pswp-width=&quot;4032&quot; data-pswp-height=&quot;2268&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;vighneshiyer.com&amp;#x2F;research&amp;#x2F;events&amp;#x2F;2022-06-dac&amp;#x2F;14-hgdb.jpg&quot;  &#x2F;&gt;
    &lt;&#x2F;a&gt;
  &lt;&#x2F;div&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;Another excellent paper and talk about &lt;em&gt;hgdb&lt;&#x2F;em&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2203.05742&quot;&gt;“Bringing Source-Level Debugging Frameworks to Hardware Generators”&lt;&#x2F;a&gt;.
Step through debugging is a bit of a hard sell to RTL designers who are used to waveforms, but Verilog ⇔ Scala sourcemaps would be insanely useful especially for temporary &#x2F; generated nodes.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;&lt;a class=&quot;anchor&quot; href=&quot;#conclusion&quot; aria-label=&quot;Anchor link: conclusion&quot;&gt;Conclusion&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The conference was much larger than I expected and there were many interesting sessions.
But there are some hangups.&lt;&#x2F;p&gt;
&lt;p&gt;Most slides &lt;em&gt;aren’t published anywhere&lt;&#x2F;em&gt;.
At least the &lt;em&gt;Research Track&lt;&#x2F;em&gt; has papers published in the conference proceedings.
Panel and engineering track slides just vanish after the conference — people were taking slide photos constantly in every session because of this.&lt;&#x2F;p&gt;
&lt;p&gt;Also, most exhibition hall information isn’t posted online — it would be nice to know in advance what demo &#x2F; presentation sessions are taking place in each company’s booth on every day.&lt;&#x2F;p&gt;
</description>
      </item>
    </channel>
</rss>
