Графический процессор Google colab слишком долго выполняет код

#python #gpu #google-colaboratory

#питон #графический процессор #google-совместная лаборатория

Вопрос:

Я делаю свои вычисления в Google Colab. Я изменил тип среды выполнения на GPU. Однако я не вижу заметного изменения во времени, которое требуется для выполнения кода при использовании графического процессора.

Мой вопрос в том, должны ли мы писать код определенным образом, чтобы использовать возможности распараллеливания графического процессора?

Я не делаю ничего особенного. Я не извлекаю никаких данных с диска или любого другого места, что, по-видимому, занимает много времени.

Комментарии:

1. Используете ли вы какие-либо библиотеки, которые действительно могут использовать графический процессор, например, TensorFlow или что-то еще?

2. Да, я использую TensorFlow. Хотя я рассчитал время выполнения различных частей моего кода, и части, которые занимают значительно больше времени, чем остальные, не имеют ничего общего с TensorFlow

Ответ №1:

Вы пробовали запускать свой код с профилем, чтобы измерить, какие части потребляют время выполнения?

Магия %prun ячеек делает это довольно простым. Вот пример: введите описание изображения здесь

Воспроизведение кода здесь:

 def sum_of_lists(N):
    total = 0
    for i in range(5):
        L = [j ^ (j >> i) for j in range(N)]
        total  = sum(L)
    return total
 

Затем, чтобы собрать пример профиля времени выполнения,

 %prun sum_of_lists(1000000)
 

Комментарии:

1. Я регистрировал time.time() в разных точках моего кода и измерял разницу между последовательными записями time.time(). Части, занимающие больше всего времени, являются вложенными циклами for.

2. @DarthCavader если это узкое место, а не ваш графический процессор, похоже, вам нужно оптимизировать или заменить ваши for циклы.