es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Libtorch solo tiene el archivo de configuración para CMake, pero necesita construirse con Meson.

Estoy intentando hacer un proyecto de cpp que utiliza libtorch (distribuciones de C++ de pytorch) usando meson build.
Tiene un archivo cpp simple de aproximadamente 50 líneas que ejecuta aprendizaje profundo en imágenes.

Primero, confirmé que mi proyecto funciona bien en dos entornos.
1. Dado que meson utiliza el archivo pkg-config, hice un archivo pkg-config simple para libtorch, y funciona para un proyecto que se ejecuta en CPU.
2. libtorch proporciona un archivo TorchConfig.cmake, así que usé cmake para confirmar que mi proyecto funciona en la versión de GPU.

Sin embargo, no sé cómo construir la versión de GPU del proyecto usando meson.
El archivo TorchConfig.cmake es más complicado de lo que pensaba, por lo que fue muy difícil hacerlo manualmente con el archivo pkg-config.
(El archivo TorchConfig.cmake hace referencia a muchos archivos cmake en los directorios de libtorch).

También intenté usar libtorch_dep = dependency(‘Torch’, method : ‘cmake’), pero solo encontró libtorch.so entre muchas librerías de libtorch que son para API de GPU.

Entonces, ¿cómo puedo construir el proyecto utilizando libtorch con solo el archivo de configuración cmake como este con meson?
¿O hay alguna forma de utilizar el archivo de configuración cmake para escribir un archivo pkg-config?
Cualquier comentario o sugerencia sería apreciada.

Sistema operativo: Ubuntu 18.04
Versión de meson: 0.54.0
Versión de cmake: 3.22.1
Versión de libtorch: 1.8.0

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como recomendación, puedes intentar utilizar el módulo generador de CMake proporcionado por Meson para integrar tu proyecto de CMake en Meson. Puedes hacer esto creando un archivo meson.build que incluya el módulo cmake y configure las opciones del generador de cmake. Aquí tienes un ejemplo:

    project('mi_proyecto', 'cpp')
    
    # Incluir el módulo cmake
    cmake = import('cmake')
    
    # Agregar tus fuentes al proyecto
    fuentes = ['mi_proyecto.cpp']
    ejecutable('mi_proyecto', fuentes)
    
    # Configurar las opciones del generador de cmake para usar el archivo TorchConfig.cmake
    opciones_cmake = [
      '-DCMAKE_PREFIX_PATH=/ruta/a/libtorch',
      '-DCMAKE_BUILD_TYPE=Release',
      '-DTorch_DIR=/ruta/a/libtorch/share/cmake/Torch'
    ]
    
    # Utilizar el módulo generador de cmake para construir el proyecto
    modulo_cmake = cmake.Module(
      opciones_cmake
    )
    

    En este ejemplo, opciones_cmake define las opciones utilizadas por el generador de CMake para configurar tu proyecto. Debes especificar la ruta de instalación de tu libtorch y la opción Torch_DIR para apuntar al archivo TorchConfig.cmake.

    Finalmente, puedes ejecutar tu proyecto con Meson utilizando el comando meson compile. Meson generará un directorio build con el proyecto compilado.

    ¡Espero que esto te ayude! Avísame si tienes alguna otra pregunta.

Comments are closed.