Я пытаюсь построить tensorflow2.0.0 на tx2. подробности ниже.
Информация о системе
- Платформа и распространение ОС: jetpack 4.3
- TensorFlow, установленный из (исходный или двоичный): источник
- Версия TensorFlow (используйте команду ниже): 2.0.0
- Python версия: 2.7
- Версия Bazel (при компиляции из исходников): 0.26.1
- Версия GCC / компилятора (при компиляции из исходников): 7.5
- Версия CUDA / cuDNN: 10.0 / 7.6.3
- Модель графического процессора и память: Tegra TX2
Опишите текущее поведение , когда я пытаюсь запустить пример приложения, оно дает сбой. С журналами ошибок как «Неявная инициализация среды выполнения CUDA на графическом процессоре: 0 сбой. Статус: неизвестная ошибка»
Опишите ожидаемое поведение он должен начать сеанс.
Автономный код для воспроизведения проблемы Пример кода
#include <tensorflow/core/platform/env.h>
#include <tensorflow/core/public/session.h>
#include <iostream>
using namespace std;
using namespace tensorflow;
int main()
{
Session* session;
Status status = NewSession(SessionOptions(), &session);
if (!status.ok()) {
cout << status.ToString() << "\n";
}
session->Close();
cout << "Session successfully created.\n";
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(test_hello)
set(TENSORFLOW_LIBRARIES tensorflow_cc protobuf)
add_executable(example example.cpp)
set(CUDA_NVCC_FLAGS
${CUDA_NVCC_FLAGS};
-O3 -gencode arch=compute_30,code=sm_30;
--std=c++11
)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Link the Tensorflow library.
# TensorFlow headers
include_directories("/usr/local/include/")
include_directories("/usr/local/include/tensorflow/")
include_directories("/usr/local/include/third-party/")
target_link_libraries(example "/usr/local/lib/libtensorflow_cc.so")
# You may also link cuda if it is available.
find_package(CUDA)
if(CUDA_FOUND)
target_link_libraries(example ${CUDA_LIBRARIES})
endif()
Другая информация / журналы
$ ./example
2020-07-08 15:01:34.122381: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
2020-07-08 15:01:34.127413: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:973] ARM64 does not support NUMA - returning NUMA node zero
2020-07-08 15:01:34.127566: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties:
name: NVIDIA Tegra X2 major: 6 minor: 2 memoryClockRate(GHz): 1.3
pciBusID: 0000:00:00.0
2020-07-08 15:01:34.127608: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check.
2020-07-08 15:01:34.127693: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:973] ARM64 does not support NUMA - returning NUMA node zero
2020-07-08 15:01:34.127815: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:973] ARM64 does not support NUMA - returning NUMA node zero
2020-07-08 15:01:34.127879: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
Internal: CUDA runtime implicit initialization on GPU:0 failed. Status: unknown error
Segmentation fault (core dumped)
Я новичок в тензорном потоке ... не уверен, что происходит. Цените помощь.
ПРИМЕЧАНИЕ. Я даже попытался установить tenorflow-1.15.0 и запустить ту же программу. То же самое происходит sh.
-- Little progress --
================================== ========================
Я пытался найти эту ошибку в Google. Я нашел в каком-то месте, чтобы установить переменную env CUDA_VISIBLE_DEVICES. Я попробовал программу следующим образом, и теперь у меня другая ошибка.
setenv ("CUDA_VISIBLE_DEVICES", "", 0);
Пример кода обновления
#include <tensorflow/core/platform/env.h>
#include <tensorflow/core/public/session.h>
#include <iostream>
using namespace std;
using namespace tensorflow;
int main()
{
setenv("CUDA_VISIBLE_DEVICES", "", 0); // <--- Here the line added
Session* session;
Status status = NewSession(SessionOptions(), &session);
if (!status.ok()) {
cout << status.ToString() << "\n";
}
session->Close();
cout << "Session successfully created.\n";
}
Журналы ошибок выглядят следующим образом:
$ ./example
2020-07-10 15:49:20.957008: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so
.1
2020-07-10 15:49:20.961536: E tensorflow/stream_executor/cuda/cuda_driver.cc:318] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-cap
able device is detected
2020-07-10 15:49:20.961633: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this
host (tx2-desktop): /proc/driver/nvidia/version does not exist
Session successfully created.