GCP и TPU, экспериментальный_коннект_то_кластер не дают ответа - PullRequest
1 голос
/ 22 апреля 2020

Я пытаюсь использовать TPU на GCP с tenorflow 2.1 с Keras API. К сожалению, я застрял после создания узла tpu. Фактически, кажется, что моя виртуальная машина «видит» процессор, но не может подключиться к нему.

Код, который я использую:

resolver = tf.distribute.cluster_resolver.TPUClusterResolver(TPU_name)
print('Running on TPU ', resolver.master())
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy = tf.distribute.experimental.TPUStrategy(resolver)

Код застрял в строке 3, я получил несколько сообщений, а затем ничего, поэтому я не знаю, в чем может быть проблема. Поэтому я подозреваю, что существует какая-то проблема соединения между виртуальной машиной и TPU.

Сообщение:

2020-04-22 15: 46: 25.383775: I tenorflow / core / platform / cpu_feature_guard. cc: 142] Ваш ЦП поддерживает инструкции, которые этот двоичный файл TensorFlow не был скомпилирован для использования: SSE4.1 SSE4.2 AVX AVX2 FMA 2020-04-22 15: 46: 25.992977: I tenorflow / core / platform / profile_utils /cpu_utils.cc:94] Частота ЦП: 2300000000 Гц 2020-04-22 15: 46: 26.042269: I tenorflow / compiler / xla / service / service. cc: 168] Служба XLA 0x5636e4947610, инициализированная для хоста платформы ( это не гарантирует, что XLA будет использоваться). Устройства: 2020-04-22 15: 46: 26.042403: I tenorflow / compiler / xla / service / service. cc: 176] Устройство StreamExecutor (0): Хост, Версия по умолчанию 2020-04-22 15: 46: 26.080879 : I tenorflow / core / common_runtime / process_util. cc: 147] Создание нового пула потоков с настройкой взаимодействия по умолчанию: 2. Настройтесь с использованием inter_op_parallelism_threads для лучшей производительности. E0422 15: 46: 26.263937297 2263 socket_utils_common_posix. cc: 198] проверка для SO_REUSEPORT: {"созданный": "@ 1587570386.263923266", "description": "SO_REUSEPORT недоступен в системе компиляции", "file": "external / grpc src / core / lib / iomgr / socket_utils_common_posix. cc "," file_line ": 166} 2020-04-22 15: 46: 26.269134: I tenorflow / core / distrib_runtime / rpc / grpc_channel. cc: 300] Инициализировать GrpcChannelCache для рабочего задания -> {0 -> 10.163.38.90:8470} 2020-04-22 15: 46: 26.269192: I tenorflow / core / distrib_runtime / rpc / grpc_channel. cc: 300] Инициализация GrpcChannelCache для задания localhost - > {0 -> localhost: 32263}

Более того, я использую образ "Deep Learning" из gcp, поэтому мне не нужно ничего устанавливать, верно?

У кого-нибудь есть такая же проблема с TF 2.1? PS: один и тот же код отлично работает на Kaggle и Colab.

1 Ответ

0 голосов
/ 28 апреля 2020

Пытаясь воспроизвести, я использовал ctpu up --zone=europe-west4-a --disk-size-gb=50 --machine-type=n1-standard-8 --tf-version=2.1 для создания vm и tpu. Затем запустил ваш код, и это удалось.

taylanbil@taylanbil:~$ python3 run.py 
Running on TPU  grpc://10.240.1.2:8470
2020-04-28 19:18:32.597556: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 AVX512F FMA
2020-04-28 19:18:32.627669: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2000189999 Hz
2020-04-28 19:18:32.630719: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x471b980 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-04-28 19:18:32.630759: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2020-04-28 19:18:32.665388: I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:300] Initialize GrpcChannelCache for job worker -> {0 -> 10.240.1.2:8470}
2020-04-28 19:18:32.665439: I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:300] Initialize GrpcChannelCache for job localhost -> {0 -> localhost:33355}
2020-04-28 19:18:32.683216: I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:300] Initialize GrpcChannelCache for job worker -> {0 -> 10.240.1.2:8470}
2020-04-28 19:18:32.683268: I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:300] Initialize GrpcChannelCache for job localhost -> {0 -> localhost:33355}
2020-04-28 19:18:32.690405: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:390] Started server with target: grpc://localhost:33355
taylanbil@taylanbil:~$ cat run.py 
import tensorflow as tf
TPU_name='taylanbil'
resolver = tf.distribute.cluster_resolver.TPUClusterResolver(TPU_name)
print('Running on TPU ', resolver.master())
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy = tf.distribute.experimental.TPUStrategy(resolver)

Как вы создаете ресурсы ТПУ? Можете ли вы перепроверить, нет ли несоответствия версий?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...