神经网络的训练速度,M1 Mac Mini比RTX 2080 Ti更快

您所在的位置:网站首页 m1相当于rtx 神经网络的训练速度,M1 Mac Mini比RTX 2080 Ti更快

神经网络的训练速度,M1 Mac Mini比RTX 2080 Ti更快

2024-04-18 14:27| 来源: 网络整理| 查看: 265

导语:文章并非原创,是由本人翻译,并加入了一些理解创作而成。原文地址如下 M1 Mac Mini Scores Higher Than My RTX 2080Ti in TensorFlow Speed Test, 建议有英语阅读能力的读者直接阅读原文。

做机器学习的同学大概都清楚,目前最为流行的两个深度学习框架是TensorFlow和PyTorch, 通过CUDA toolkit,两者都支持使用NVIDIA GPU来加速机器学习训练。然而对于Mac用户来说,由于Apple一直不支持NVIDIA GPU,所以只能用CPU训练机器学习模型,严重限制了模型训练的速度。

随着苹果M1芯片对Mac系列的赋能,以及机器学习框架对macOS最新版操作系统Big Sur的支持,深度神经网络在Mac上的训练取得了巨大的速度提升。

原文作者在新版的M1 Mac Mini上安装了 tensorflow_macos,安装指引在Apple的官方git上,网址如下

使用的数据集是 Fashion-MNIST,获取链接如下

FashionMNIST数据集

这里简单介绍一下FashionMNIST数据集,原始的MNIST数据集只有1-9的手写数字,整个数据过于简单,无法胜任作为现代CV任务的benchmark的职责,很难有效验证模型的合理性。FashionMNIST包含了60000张训练图片,以及10000张测试集图片,和初代MNIST数据集一样,每张图片都是28 * 28的大小的黑白图片,但是包含的主要是衣服,鞋子,手提包等时尚界物品。图片内容更为复杂,相比于1-9的手写数字,能更为有效的验证模型的合理性。

实验#import libraries import tensorflow as tf import time #download fashion mnist dataset fashion_mnist = tf.keras.datasets.fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data() train_set_count = len(train_labels) test_set_count = len(test_labels) #setup start time t0 = time.time() #normalize images train_images = train_images / 255.0 test_images = test_images / 255.0 #create ML model model = tf.keras.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dense(10) ]) #compile ML model model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy']) #train ML model model.fit(train_images, train_labels, epochs=10) #evaluate ML model on test set test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2) #setup stop time t1 = time.time() total_time = t1-t0 #print results print('\n') print(f'Training set contained {train_set_count} images') print(f'Testing set contained {test_set_count} images') print(f'Model achieved {test_acc:.2f} testing accuracy') print(f'Training and testing took {total_time:.2f} seconds')

RTX 2080Ti 的试验配置

System: Linux

CPU: Intel® Core™ i7–9700K

RAM: 32GB

Storage: 1TB SSD

训练10个epoch,包括test,最终耗时为 7.78s

M1的试验配置

System: macOS Big Sur

Storage: 512GB SSD

Unified Memory: 8GB (稍后会介绍一下Unified Memory)

M1芯片包含8个CPU核,8个GPU核以及16个神经网络引擎核心。

什么是Unified Memory(UM)统一寻址?

UM是CUDA6 引入的重要编程模型改进之一,通过UM,程序员可以直接方位CPU或者GPU显存资源,而不用手动拷贝数据。

同样是训练10个epoch,包括test,最终耗时为 6.70s。速度比2080Ti快了14%!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3