benchmark
30fb7339 - Improve DLRM utilization on CUDA (#534)

Commit
4 years ago
Improve DLRM utilization on CUDA (#534) Summary: Increase the complexity of the DLRM benchmark to improve the utilization on GPU. DLRM's structure needs to be more complex for the random inputs to be larger, this improves the profile collected on the benchmark, and matches closer to real world examples. ## Traces Collected Here is the trace collected before any modifications on A100: ![image](https://user-images.githubusercontent.com/17602366/139472853-062bce1a-b2dc-4618-8e4f-90d7a29f9b84.png) Here is the eval trace collected using settings described in the paper on A100: ``` --arch-embedding-size=1000000-1000000-1000000-1000000-1000000-1000000-1000000-1000000 --arch-sparse-feature-size=64 --arch-mlp-bot=512-512-64 --arch-mlp-top=1024-1024-1024-1 --mini-batch-size=2048 --num-batches=1000 --num-indices-per-lookup=100 ``` ![image](https://user-images.githubusercontent.com/17602366/139473008-4c77e4c1-f206-4897-ab48-3b0cf8a5cb07.png) Here is the eval trace upon further tweaking the complexity beyond the paper on A100: ``` --arch-embedding-size=1000000-1000000-1000000-1000000-1000000-1000000-1000000-1000000-1000000-1000000-1000000-1000000-1000000-1000000-1000000-1000000 --arch-sparse-feature-size=128 --arch-mlp-bot=1024-1024-1024-1024-128 --arch-mlp-top=2048-2048-2048-2048-2048-2048-2048-1 --mini-batch-size=2048 --num-batches=1000 --num-indices-per-lookup=100 ``` ![image](https://user-images.githubusercontent.com/17602366/139473145-d2799a0c-7b76-4cbe-afe9-b127bf7dc8eb.png) Same arguments on Tesla T4: ![image](https://user-images.githubusercontent.com/17602366/139473273-b4a9be9f-3c32-4232-a779-8ecd8fc81afa.png) Note: the DLRM forward pass splits into several sections in the image: - Bottom MLP (dense features - green) - EmbeddingBag (sparse features - blue) - Interact Features (both dense and sparse - too small to see) - Top MLP (probability of a click - green) ## Idleness Evaluation To increase utilization of the DLRM model, it is not a batch size search, but instead a model structural search. Increasing the model complexity will increase the GPU utilization, since the random data loader is dependent on the model. Therefore, the more layers and features in each bottom, embedding and top models, the better the GPU utilization. Pull Request resolved: https://github.com/pytorch/benchmark/pull/534 Reviewed By: xuzhao9 Differential Revision: D32036232 Pulled By: aaronenyeshi fbshipit-source-id: 2135b8d9f747d742609eccb455a0dca83f140493
Author
Parents
Loading