Changes
1 changed files (+203/-0)
-
benchmark.ipynb (new)
-
@@ -0,0 +1,203 @@{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "https://www.analyticsvidhya.com/blog/2021/11/benchmarking-cpu-and-gpu-performance-with-tensorflow/" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz\n", "170500096/170498071 [==============================] - 6s 0us/step\n", "170508288/170498071 [==============================] - 6s 0us/step\n" ] } ], "source": [ "import tensorflow as tf\n", "from tensorflow import keras\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "(X_train, y_train), (X_test, y_test) = keras.datasets.cifar10.load_data()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# scaling image values between 0-1\n", "X_train_scaled = X_train/255\n", "X_test_scaled = X_test/255\n", "y_train_encoded = keras.utils.to_categorical(y_train, num_classes = 10, dtype = 'float32')\n", "y_test_encoded = keras.utils.to_categorical(y_test, num_classes = 10, dtype = 'float32')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def get_model():\n", " model = keras.Sequential([\n", " keras.layers.Flatten(input_shape=(32,32,3)),\n", " keras.layers.Dense(3000, activation='relu'),\n", " keras.layers.Dense(1000, activation='relu'),\n", " keras.layers.Dense(10, activation='sigmoid') \n", " ])\n", " model.compile(optimizer='SGD',\n", " loss='categorical_crossentropy',\n", " metrics=['accuracy'])\n", " return model" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2021-12-14 08:17:31.149910: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: SSE3 SSE4.1 SSE4.2 AVX AVX2 FMA\n", "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", "2021-12-14 08:17:31.150614: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 7676 MB memory: -> device: 0, name: AMD Radeon RX 6600 XT, pci bus id: 0000:08:00.0\n", "2021-12-14 08:17:32.735544: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:185] None of the MLIR Optimization Passes are enabled (registered 2)\n", "2021-12-14 08:17:32.765031: I tensorflow/core/common_runtime/gpu_fusion_pass.cc:507] ROCm Fusion is enabled.\n", "2021-12-14 08:17:32.768862: I tensorflow/core/common_runtime/gpu_fusion_pass.cc:507] ROCm Fusion is enabled.\n", "2021-12-14 08:17:32.770708: I tensorflow/core/common_runtime/gpu_fusion_pass.cc:507] ROCm Fusion is enabled.\n", "2021-12-14 08:17:32.894871: I tensorflow/core/common_runtime/gpu_fusion_pass.cc:507] ROCm Fusion is enabled.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/10\n", "1563/1563 [==============================] - 23s 15ms/step - loss: 1.8109 - accuracy: 0.3557\n", "Epoch 2/10\n", "1563/1563 [==============================] - 24s 15ms/step - loss: 1.6225 - accuracy: 0.4273\n", "Epoch 3/10\n", "1563/1563 [==============================] - 23s 15ms/step - loss: 1.5435 - accuracy: 0.4561\n", "Epoch 4/10\n", "1563/1563 [==============================] - 24s 15ms/step - loss: 1.4820 - accuracy: 0.4785\n", "Epoch 5/10\n", "1563/1563 [==============================] - 23s 15ms/step - loss: 1.4333 - accuracy: 0.4949\n", "Epoch 6/10\n", "1563/1563 [==============================] - 23s 15ms/step - loss: 1.3896 - accuracy: 0.5116\n", "Epoch 7/10\n", "1563/1563 [==============================] - 23s 15ms/step - loss: 1.3511 - accuracy: 0.5241\n", "Epoch 8/10\n", "1563/1563 [==============================] - 23s 15ms/step - loss: 1.3165 - accuracy: 0.5384\n", "Epoch 9/10\n", "1563/1563 [==============================] - 24s 15ms/step - loss: 1.2830 - accuracy: 0.5497\n", "Epoch 10/10\n", "1563/1563 [==============================] - 23s 15ms/step - loss: 1.2524 - accuracy: 0.5605\n", "3min 55s ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)\n" ] } ], "source": [ "%%timeit -n1 -r1\n", "# CPU\n", "with tf.device('/CPU:0'):\n", " model_cpu = get_model()\n", " model_cpu.fit(X_train_scaled, y_train_encoded, epochs = 10)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2021-12-14 08:21:53.663198: I tensorflow/core/common_runtime/gpu_fusion_pass.cc:507] ROCm Fusion is enabled.\n", "2021-12-14 08:21:53.665473: I tensorflow/core/common_runtime/gpu_fusion_pass.cc:507] ROCm Fusion is enabled.\n", "2021-12-14 08:21:53.667073: I tensorflow/core/common_runtime/gpu_fusion_pass.cc:507] ROCm Fusion is enabled.\n", "2021-12-14 08:21:53.776133: I tensorflow/core/common_runtime/gpu_fusion_pass.cc:507] ROCm Fusion is enabled.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/10\n", "1563/1563 [==============================] - 21s 3ms/step - loss: 1.8134 - accuracy: 0.3534\n", "Epoch 2/10\n", "1563/1563 [==============================] - 7s 4ms/step - loss: 1.6232 - accuracy: 0.4246\n", "Epoch 3/10\n", "1563/1563 [==============================] - 5s 3ms/step - loss: 1.5409 - accuracy: 0.4573\n", "Epoch 4/10\n", "1563/1563 [==============================] - 5s 3ms/step - loss: 1.4833 - accuracy: 0.4787\n", "Epoch 5/10\n", "1563/1563 [==============================] - 5s 3ms/step - loss: 1.4319 - accuracy: 0.4979\n", "Epoch 6/10\n", "1563/1563 [==============================] - 7s 5ms/step - loss: 1.3883 - accuracy: 0.5114\n", "Epoch 7/10\n", "1563/1563 [==============================] - 5s 3ms/step - loss: 1.3526 - accuracy: 0.5279\n", "Epoch 8/10\n", "1563/1563 [==============================] - 5s 3ms/step - loss: 1.3171 - accuracy: 0.5377\n", "Epoch 9/10\n", "1563/1563 [==============================] - 5s 3ms/step - loss: 1.2844 - accuracy: 0.5471\n", "Epoch 10/10\n", "1563/1563 [==============================] - 7s 5ms/step - loss: 1.2505 - accuracy: 0.5631\n", "1min 13s ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)\n" ] } ], "source": [ "%%timeit -n1 -r1\n", "# GPU\n", "with tf.device('/GPU:0'):\n", " model_gpu = get_model()\n", " model_gpu.fit(X_train_scaled, y_train_encoded, epochs = 10)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "21ce40c1d60a5dc40f385ae01086c7bb98c0e0e19c4f7e634ba6a67c32ffc01a" }, "kernelspec": { "display_name": "Python 3.9.9 64-bit ('.venv': venv)", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.9" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }
-