Katataf1sh
(usa Arch Linux)
Enviado em 19/12/2024 - 04:46h
Edson-2003 escreveu:
Pessoal boa tarde, alguém conhece alguma forma de integrar o cuda no qt, fiz alguns testes e olhei as documentações e não encontro nada, quando pesquiso sobre acho alguns exemplos nada explicativos e que não funcionam pos são de muito tempo atrás, alguém conhece algum video ou tutorial sobre
Olá, tudo bem? Não é tão complicado, mas realmente o material é bem escasso, consegui integrar CUDA ao Qt depois de algumas tentativas. Primeiro, você precisa configurar o arquivo .pro do seu projeto para que ele reconheça os arquivos .
[*****] do CUDA e inclua as bibliotecas necessárias. Aqui está um exemplo básico de como configurar:
# Arquitetura da GPU
CUDA_ARCH = sm_35 # Altere para a arquitetura da sua GPU
# Diretórios do CUDA
CUDA_DIR = /usr/local/cuda
INCLUDEPATH += $$CUDA_DIR/include
QMAKE_LIBDIR += $$CUDA_DIR/lib64
# Bibliotecas do CUDA
LIBS += -lcudart -lcuda
# Configurações do compilador NVCC
cuda.commands = $$CUDA_DIR/bin/nvcc -m64 -arch=$$CUDA_ARCH -c ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_OUT}
cuda.dependency_type = TYPE_C
cuda.depend_command = $$CUDA_DIR/bin/nvcc -M ${QMAKE_FILE_NAME}
QMAKE_EXTRA_COMPILERS += cuda
Depois disso, é só organizar os arquivos do projeto. No meu caso, criei um arquivo .
[*****] separado para o código CUDA e usei extern "C" para conseguir chamar as funções CUDA no meu código C++. Aqui vai um exemplo simples:
Arquivo cuda_interface.
[*****] :
#include <cuda_runtime.h>
extern "C" void runCudaPart() {
// Código CUDA aqui
printf("Executando parte CUDA!\n");
}
Arquivo main.cpp:
#include <QtCore/QCoreApplication>
extern "C" void runCudaPart();
int main(int argc, char *argv[]) {
QCoreApplication app(argc, argv);
runCudaPart();
return app.exec();
}
Depois de configurar o .pro, você roda o qmake para gerar o Makefile e compila com make. Isso deve funcionar, mas é importante garantir que as variáveis de ambiente do CUDA (como PATH e LD_LIBRARY_PATH) estejam configuradas corretamente. Se precisar de um exemplo mais completo, tem um repositório no GitHub que me ajudou bastante:
https://github.com/mihaits/Qt-CUDA-example . Também achei útil este tutorial antigo, mas ainda válido:
https://cudaspace.wordpress.com/2011/04/07/qt-creator-cuda-linux/ . Espero que ajude. Qualquer coisa, é só perguntar.