CPU vs GPU na Oracle Cloud

Se você leu o meu post chamado “Otimizando o TensorFlow para CPU“, você aprendeu que pode melhorar o TensorFlow para cpu apenas escolhendo a distribuição correta, nesse caso a distribuição do Anaconda.

As instâncias de CPU farão o trabalho para projetos simples de IA, mas se você precisar de mais poder computacional para reduzir a execução ou o tempo de treinamento de seu projeto, precisará usar instâncias de GPU.

Como muitas pessoas me pediram para executar o mesmo teste usando instâncias de GPU, neste post você verá os resultados deste teste!

Para este teste, usei o Oracle Cloud Infrastructure em vez do Oracle Cloud Infrastructure Classic usado na última postagem do blog. O Oracle Cloud Infrastructure é a nova geração de IaaS da Oracle, por isso é a solução certa para usar agora.

Estas são as instâncias:

  • CPU Instance (VM.Standard2.2) = 2 OCPUs + 30GB memory
  • GPU Instance (VM.GPU3.1) = 1 GPU V100 + 90GB memory

Na instância de CPU, criei o ambiente Anaconda usando:

conda create -n py36tf tensorflow python=3.6

Na instância de GPU, criei o ambiente Anaconda usando:

conda create -n py36tf tensorflow-gpu python=3.6

Para avaliar o desempenho entre instâncias de CPU e GPU, usei o TensorFlow para executar o seguinte script de multiplicação de matriz:

import tensorflow as tf
import time

tf.set_random_seed(42)
A = tf.random_normal([10000,10000])
B = tf.random_normal([10000,10000])

def check():
start_time = time.time()
with tf.Session() as sess:
print(sess.run(tf.reduce_sum(tf.matmul(A,B))))
print("It took {} seconds".format(time.time() - start_time))

check()

Estes foram os resultados:

Na instância de CPU, demorou 22,23 segundos.

Na instância de GPU demorou 3,41 segundos.

A diferença entre as instâncias de CPU e GPU foi próxima de 650%!

O objetivo principal deste post foi mostrar que você precisa pensar sobre os requisitos do seu projeto de IA para escolher as ferramentas e os ambientes certos para executá-lo com o melhor desempenho e orçamento!

Divirta-se!

Autor: Waslley Souza

Consultor Oracle com foco em tecnologias Oracle Fusion Middleware e SOA. Certificado Oracle WebCenter Portal, Oracle ADF e Java.