From b5c8a90f0e7b62d04437f79d393934aca7987001 Mon Sep 17 00:00:00 2001 From: Yeounoh Chung Date: Thu, 18 Jan 2024 12:00:33 -0800 Subject: [PATCH] Add doc images for auto-sharding (#6323) --- docs/assets/gpt2_2b_step_time_vs_batch.png | Bin 0 -> 23018 bytes docs/assets/gpt2_v4_8_mfu_batch.png | Bin 0 -> 24557 bytes docs/assets/llama2_2b_bsz128.png | Bin 0 -> 23058 bytes docs/assets/perf_auto_vs_manual.png | Bin 0 -> 17805 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/gpt2_2b_step_time_vs_batch.png create mode 100644 docs/assets/gpt2_v4_8_mfu_batch.png create mode 100644 docs/assets/llama2_2b_bsz128.png create mode 100644 docs/assets/perf_auto_vs_manual.png diff --git a/docs/assets/gpt2_2b_step_time_vs_batch.png b/docs/assets/gpt2_2b_step_time_vs_batch.png new file mode 100644 index 0000000000000000000000000000000000000000..aafa90d6d93d9bc63bec37f6750a54e6955f2c74 GIT binary patch literal 23018 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 literal 0 HcmV?d00001 diff --git a/docs/assets/gpt2_v4_8_mfu_batch.png b/docs/assets/gpt2_v4_8_mfu_batch.png new file mode 100644 index 0000000000000000000000000000000000000000..0247e85b3c17bbbe19b3e64e55f3b64ee75ff4f3 GIT binary patch literal 24557 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 literal 0 HcmV?d00001 diff --git a/docs/assets/llama2_2b_bsz128.png b/docs/assets/llama2_2b_bsz128.png new file mode 100644 index 0000000000000000000000000000000000000000..ddf28875a79a3de8d356b6490bd007519f2981eb GIT binary patch literal 23058 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 literal 0 HcmV?d00001 diff --git a/docs/assets/perf_auto_vs_manual.png b/docs/assets/perf_auto_vs_manual.png new file mode 100644 index 0000000000000000000000000000000000000000..4ef5f18c3b2fab7150afe27bbcf27ac76f5eefa9 GIT binary patch literal 17805 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