1. #1
    Membre du Club
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 527
    Points : 68
    Points
    68

    Par défaut Indiquer CUDA dans le fichier de projet

    Bonjour,

    Je cherche a faire fonctionner un projet Qtcreator existant sous linux vers Windows. Je bute sur la creation du fichier .pro.
    J'ai des fichiers cpp et cu qui cohabitent sur le même projet. Ce que je faisait sous linux c'est qu je linkais tous les fichiers cu et je compile le fichier avec les autres cpp. Ca donne ca:
    Code qt-pro : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    cuda.input = CUDA_SOURCES
        cuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}_cuda.o
        cuda.commands = $$CUDA_DIR/bin/nvcc -dlink $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -gencode arch=compute_50,code=compute_50   -gencode arch=compute_52,code=compute_52 -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
        cuda.dependency_type = TYPE_C
        QMAKE_EXTRA_COMPILERS += cuda
     
     
        cudaLINK.input = CUDA_SOURCES
        cudaLINK.output = $$CUDA_OBJECTS_DIR/${TARGET}_cuda.o
        cudaLINK.commands = $$CUDA_DIR/bin/nvcc -ccbin g++ -dlink  $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -gencode arch=compute_50,code=compute_50 -gencode arch=compute_52,code=compute_52  fichier1_cuda.o fichier2_cuda.o fichier3_cuda.o fichier4_cuda.o -o ${TARGET}_cuda.o
        QMAKE_EXTRA_COMPILERS += cudaLINK

    Mais sur windows ca ne fonctionne pas pareil. Déjà ce que j'ai compris c'est que sous windows Cuda n'est disponible qu'en 32 bit avec le compilateur de MCVS. J'ai ajouté ces extra compilers:
    Code qt-pro : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
         cuda.input    = CUDA_SOURCES
         cuda.output   = ${QMAKE_FILE_BASE}_cuda.o
         cuda.commands = $$CUDA_DIR/bin/nvcc.exe -dlink $$NVCC_OPTIONS $$CUDA_INC $$LIBSCUDA \
                        --machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH \
                        --compile -cudart static -DWIN32 -D_MBCS \
                        -Xcompiler "/wd4819,/EHsc,/W3,/nologo,/O2,/Zi" \
                        -Xcompiler $$MSVCRT_LINK_FLAG_RELEASE \
                        -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
         cuda.dependency_type = TYPE_C
         QMAKE_EXTRA_COMPILERS += cuda
     
     
        cudaLINK.input = CUDA_SOURCES
        cudaLINK.output = OUT_cuda.o
     
         cudaLINK.commands = $$CUDA_DIR/bin/nvcc.exe -ccbin g++ -dlink  $$NVCC_OPTIONS $$CUDA_INC $$LIBS \
                        --machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH \
                        Blending_cuda.o CCL_cuda.o -o $$CUDA_OBJECTS_DIR/$${TARGET}.obj
         cudaLINK.dependency_type = TYPE_C
         QMAKE_EXTRA_COMPILERS += cudaLINK

    Mais ca me génére des erreurs. J'ai essayé de faires les commandes à la main sur le terminal et quand je génére cette commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0/bin/nvcc.exe" -ccbin g++ -dlink --use_fast_math -I"C:\opencv\build\include" -I"C:\opencv\build\include\opencv" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0/include" -I"C:/ProgramData/NVIDIA Corporation/CUDA Samples/v8.0/common/inc/" -I"C:/ProgramData/NVIDIA Corporation/CUDA Samples/v8.0/../shared/inc/" C:\opencv\build\x86\vc12\lib\opencv_core2413.lib C:\opencv\build\x86\vc12\lib\opencv_imgproc2413.lib C:\opencv\build\x86\vc12\lib\opencv_highgui2413.lib C:\opencv\build\x86\vc12\lib\opencv_objdetect2413.lib C:\opencv\build\x86\vc12\lib\opencv_calib3d2413.lib -lcuda -lcudart --machine 32 -arch=compute_50 fichier1_cuda.o fichier2_cuda.o -o release/obj/untitled.obj
    Il n'a pas d'erreur mais la commande ne me génére rien.

    Quelqu'un s'aurait de ou ca peut venir?

  2. #2
    Membre habitué Avatar de Matthieu76
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2013
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2013
    Messages : 170
    Points : 151
    Points
    151

    Par défaut YOP

    Chez moi ça fonctionne sous Windows mais j'arrive pas à lancer le mode debug, si de ton côté le mode debug fonctionne préviens-moi stp

    Voici mon .pro, regarde-le et inspires-en toi :

    Code Qt-pro : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    #-------------------------------------------------
    #
    # Project created by QtCreator 2016-08-12T05:59:12
    #
    #-------------------------------------------------
     
    QT += core
    QT += gui
    QT += widgets
     
    TARGET = NeuralNetwork
     
    TEMPLATE = app
     
    CONFIG += console
    CONFIG += c++14
    #CONFIG += debug
     
    SOURCES += main.cpp \
        $$PWD/perceptron.cpp \
        $$PWD/neuralNetworkWithCuda.cpp \
        $$PWD/baseNeuralNetwork.cpp
     
    HEADERS += $$PWD/perceptron.h \
        $$PWD/baseNeuralNetwork.h \
        $$PWD/neuralNetwork.h \
        $$PWD/neuralNetworkWithCuda.h \
        $$PWD/shared_variables.h
     
    #OTHER_FILES += optimization.cu
     
    DESTDIR = ./release
    OBJECTS_DIR = ./release/obj
    CUDA_OBJECTS_DIR = $$PWD/release/cuda
     
     
    CUDA_SOURCES += $$PWD/optimization.cu
    CUDA_DIR = "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0"            # Path to cuda toolkit install
    SYSTEM_NAME = x64                                                               # Depending on your system either 'Win32', 'x64', or 'Win64'
    SYSTEM_TYPE = 64                                                                # '32' or '64', depending on your system
    CUDA_ARCH = compute_62                                                          # Type of CUDA architecture, for example 'compute_10', 'compute_11', 'sm_10'
    NVCC_OPTIONS = --use_fast_math
     
    INCLUDEPATH += "C:/Programming/Light Punch/Neural Network/NeuralNetwork" \
                   "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/include" \
                   "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin" \
     
    DEPENDPATH += "optimization.cu" \
                  "C:/Programming/Light Punch/Neural Network/NeuralNetwork" \
                  "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/include" \
                  "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin" \
     
     
    LIBS += "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/lib/x64/*.lib"
     
    QMAKE_LIBDIR += "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/lib/x64/"
     
    # The following library conflicts with something in Cuda
    QMAKE_LFLAGS_RELEASE = /NODEFAULTLIB:msvcrt.lib
    QMAKE_LFLAGS_DEBUG   = /NODEFAULTLIB:msvcrtd.lib
     
    QMAKE_CFLAGS_RELEASE += /MT
    QMAKE_CXXFLAGS_RELEASE += /MT
     
    QMAKE_CFLAGS_DEBUG += /MTd
    QMAKE_CXXFLAGS_DEBUG += /MTd
     
    # Add the necessary libraries
    CUDA_LIBS = cuda cudart
     
    # The following makes sure all path names (which often include spaces) are put between quotation marks
    CUDA_INC = $$join(INCLUDEPATH,'" -I"','-I"','"')
    NVCC_LIBS = $$join(CUDA_LIBS,' -l','-l', '')
    #LIBS += $$join(CUDA_LIBS,'.lib ', '', '.lib')
     
     
    CONFIG(release, debug|release)
    {
        CUDA_DEBUG = "--debug"
        QMAKE_EXTRA_COMPILERS += cuda
    }
    CONFIG(debug, debug|release))
    {
        CUDA_DEBUG = ""
        QMAKE_EXTRA_COMPILERS += cuda_d
    }
     
    cuda.input = CUDA_SOURCES
    cuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}_cuda.o
    cuda.commands = "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/bin/nvcc.exe" $$CUDA_DEBUG $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
    cuda.dependency_type = TYPE_C

Discussions similaires

  1. probleme dans fichier> nouveau projet ?
    Par sky88 dans le forum VB.NET
    Réponses: 6
    Dernier message: 17/06/2009, 17h37
  2. Réponses: 4
    Dernier message: 28/12/2007, 21h00
  3. Réponses: 4
    Dernier message: 07/06/2007, 17h44
  4. Rechercher dans les fichiers d'un projet
    Par FlyByck dans le forum Outils
    Réponses: 5
    Dernier message: 31/08/2006, 09h35
  5. [VBA-E]Projet VB perdu dans un fichier Excel 2003
    Par cotmar dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/03/2006, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo