Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions MARKETING.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,10 @@ maps supported Polars, dataframe, time-series, and domain operations into
right-sized streaming hardware while unsupported work remains in familiar
software.

Primary distinction:

- not a fixed database appliance;
- not per-query synthesis in the runtime path;
- not a claim that every dataframe operation belongs on an FPGA;
- a reusable platform whose configurations improve around recurring workloads
and scale across device classes.
DAU is a reusable platform whose configurations improve around recurring
workloads and scale across device classes. It is not a fixed database
appliance, it does not synthesize hardware per query in the runtime path, and
it does not assume that every dataframe operation belongs on an FPGA.

## Search-intent clusters

Expand Down
43 changes: 19 additions & 24 deletions src/lib/home/About.svelte
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
<section id="platform" class="px-6 py-24 text-neutral-300">
<div class="max-w-6xl mx-auto">
<div class="max-w-3xl mb-16">
<p class="uppercase tracking-widest text-sm text-neutral-500 mb-4">
One platform, every scale
</p>
<p class="uppercase tracking-widest text-sm text-neutral-500 mb-4">The platform</p>
<h2 class="text-3xl md:text-5xl font-bold text-white mb-6">
Hardware shaped to your workload. Software that stays familiar.
</h2>
<p class="text-lg md:text-xl leading-relaxed">
dau selectively accelerates the parts of Polars, dataframe, time-series, and analytical
workflows that benefit from streaming FPGA hardware. Reusable operations are composed into
right-sized configurations, while unsupported work remains in familiar software. The same
model scales from a personal accelerator to multi-card systems.
dau accelerates the parts of Polars, dataframe, time-series, and analytical workflows that
suit streaming FPGA hardware. Reusable operations compose into right-sized configurations;
unsupported work stays in software. The same model scales from a personal accelerator to
multi-card systems.
</p>
</div>

Expand All @@ -24,8 +22,7 @@
</h3>
</div>
<p class="max-w-xl text-neutral-400 leading-relaxed">
Work stays expressed through the same software model as capacity, memory, and physical
placement change.
The software model stays the same as capacity, memory, and physical placement change.
</p>
</div>

Expand Down Expand Up @@ -136,8 +133,8 @@
</article>
</div>
<figcaption class="mt-4 text-sm text-neutral-500">
dpv1 is the first platform and where the approach was proven, dpv2 is the current platform
running today, and dpv3 is a planned design.
dpv1 was the first platform and where the approach was proven. dpv2 is the current
platform, running today. dpv3 is a planned design.
</figcaption>
</figure>
</div>
Expand All @@ -147,26 +144,24 @@
<p class="text-sm uppercase tracking-widest text-neutral-500 mb-4">Personal computing</p>
<h3 class="text-2xl md:text-3xl font-bold text-white mb-5">An accelerator beside you.</h3>
<p class="text-neutral-400 leading-relaxed mb-8">
An accessible accelerator for laptop and workstation development. Load configurations
matched to different analytical workflows without rebuilding applications around low-level
hardware APIs.
An accelerator for laptop and workstation development. Load a configuration that matches
the workflow you are running, without rebuilding the application around low-level hardware
APIs.
</p>
<p class="text-white">Portable · Flashable · Developer-friendly</p>
<p class="text-white">Portable · Flashable</p>
</article>

<article class="rounded-xl border border-neutral-700 bg-neutral-800 p-8 md:p-10">
<p class="text-sm uppercase tracking-widest text-neutral-400 mb-4">
High-performance systems
</p>
<h3 class="text-2xl md:text-3xl font-bold text-white mb-5">
A fabric built around your data.
</h3>
<h3 class="text-2xl md:text-3xl font-bold text-white mb-5">Many cards, one workload.</h3>
<p class="text-neutral-300 leading-relaxed mb-8">
Multiple accelerator cards partition data and workflows across independent local memory.
The platform is designed to grow resident capacity and analytical throughput from a
workstation to fabric-connected server arrays.
</p>
<p class="text-white">Parallel · Composable · Scalable</p>
<p class="text-white">Parallel · Composable</p>
</article>
</div>

Expand Down Expand Up @@ -201,11 +196,11 @@
<div class="max-w-3xl mb-10">
<p class="uppercase tracking-widest text-sm text-neutral-500 mb-4">The dau flywheel</p>
<h3 class="text-3xl md:text-4xl font-bold text-white mb-5">
A configuration loop that improves around real work.
Configurations that improve as workloads are measured.
</h3>
<p class="text-lg text-neutral-400 leading-relaxed">
Workload evidence guides what runs in hardware today and what configuration should be
built next. Every deployed design moves through the same verification path.
Measurements decide what runs in hardware today and what configuration gets built next.
Every deployed design goes through the same verification path.
</p>
</div>

Expand Down Expand Up @@ -245,8 +240,8 @@
<aside class="rounded-lg border border-dashed border-neutral-700 p-5 lg:max-w-52">
<p class="text-sm uppercase tracking-widest text-neutral-500 mb-3">Software path</p>
<p class="text-sm text-neutral-300 leading-relaxed">
Operations that do not fit the active hardware remain in familiar software with an
explicit fallback.
Operations the loaded configuration does not cover stay in software. The fallback is
explicit.
</p>
</aside>
</div>
Expand Down
9 changes: 4 additions & 5 deletions src/lib/home/Contact.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,14 @@
<div class="relative isolate overflow-hidden px-6 pt-16 sm:px-16 md:pt-24 lg:px-24 lg:pt-0">
<div class="mx-auto text-center lg:mx-0 lg:flex-auto lg:py-32">
<p class="uppercase tracking-widest text-sm text-neutral-200 mb-4">
Build the next scale with us
Design partner program
</p>
<h2 class="text-3xl font-bold tracking-tight text-white sm:text-5xl">
Bring us the workload that should be faster.
</h2>
<p class="mt-6 max-w-2xl mx-auto text-lg leading-8 text-white">
We are working with early users and design partners to shape dau hardware, software, and
deployment systems. Tell us what you compute, where it runs, and what performance would
change for you.
We are working with early users and design partners on dau hardware, software, and
deployment. Tell us what you compute, where it runs, and how fast it needs to be.
</p>
<div class="mt-10 flex items-center justify-center gap-x-6">
<a
Expand All @@ -29,7 +28,7 @@
>Become a design partner</a
>
<a href="https://github.com/dau-dev" class="text-base font-semibold leading-7 text-white"
>Follow the technology <span aria-hidden="true">→</span></a
>See the code on GitHub <span aria-hidden="true">→</span></a
>
</div>
</div>
Expand Down
6 changes: 3 additions & 3 deletions src/lib/home/Headline.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
Data. <span class="italic">Accelerated.</span>
</p>
<p class="max-w-3xl mx-auto text-lg md:text-xl text-neutral-200 leading-relaxed mb-10">
dau maps high-value Polars, dataframe, time-series, and analytical operations into
reconfigurable FPGA dataflow while the rest stays in familiar software—from a personal
accelerator beside your laptop to data-center-scale systems.
dau maps selected Polars, dataframe, time-series, and analytical operations into
reconfigurable FPGA dataflow and leaves the rest in software. The same model runs on a
personal accelerator beside your laptop and on data-center-scale systems.
</p>
<div class="flex flex-col sm:flex-row items-center justify-center gap-4">
<a
Expand Down
4 changes: 2 additions & 2 deletions src/lib/home/Proof.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@
</div>
<p class="text-lg text-white mb-2">204K LUTs · 10 GB DDR3 · PCIe x8</p>
<p class="text-sm text-neutral-400">
Two memory systems—2 GB onboard for bandwidth, 8 GB SODIMM for resident capacity—and eight
parallel lanes. Where the fused temporal workflow now beats the CPU baseline.
Two memory systems (2 GB onboard for bandwidth, 8 GB SODIMM for resident capacity) and
eight parallel lanes. Where the fused temporal workflow now beats the CPU baseline.
</p>
</div>
<div class="rounded-lg border border-dashed border-neutral-700 p-6 opacity-50">
Expand Down
2 changes: 1 addition & 1 deletion src/routes/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<meta property="og:title" content="dau — Workload-shaped FPGA acceleration" />
<meta
property="og:description"
content="Right-sized FPGA dataflow for Polars, dataframe, time-series, and analytical workloads—with familiar software and explicit CPU fallback."
content="Right-sized FPGA dataflow for Polars, dataframe, time-series, and analytical workloads, with familiar software and explicit CPU fallback."
/>
<meta property="og:url" content="https://dau.dev/" />
<meta property="og:image" content="https://dau.dev/img/social-card.png" />
Expand Down
10 changes: 4 additions & 6 deletions tests/test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,19 @@ test('home page presents both ends of the dau platform', async ({ page }) => {
await expect(page.getByRole('heading', { level: 1, name: 'dau.' })).toBeVisible();
await expect(page.getByText('Data. Accelerated.')).toBeVisible();
await expect(
page.getByText('dau maps high-value Polars, dataframe, time-series', { exact: false })
page.getByText('dau maps selected Polars, dataframe, time-series', { exact: false })
).toBeVisible();
await expect(page.getByRole('heading', { name: 'An accelerator beside you.' })).toBeVisible();
await expect(
page.getByRole('heading', { name: 'A fabric built around your data.' })
).toBeVisible();
await expect(page.getByRole('heading', { name: 'Many cards, one workload.' })).toBeVisible();
await expect(
page.getByRole('heading', { name: 'One platform, four deployment shapes.' })
).toBeVisible();
await expect(page.getByText('A host-orchestrated dpv1 fleet')).toBeVisible();
await expect(page.getByText('Four dpv3 cards in a server')).toBeVisible();
await expect(
page.getByRole('heading', { name: 'A configuration loop that improves around real work.' })
page.getByRole('heading', { name: 'Configurations that improve as workloads are measured.' })
).toBeVisible();
await expect(page.getByText('explicit fallback', { exact: false })).toBeVisible();
await expect(page.getByText('The fallback is explicit', { exact: false })).toBeVisible();
await expect(page.getByText('dpv1 · Where it started')).toBeVisible();
await expect(page.getByText('dpv2 · Current platform')).toBeVisible();
await expect(page.getByText('dpv3 · Planned')).toBeVisible();
Expand Down
Loading