Самопознание

человеческий потенциал безграничен


  • Разговор Двух Великих Джедаев

  • Chain of Responsibility Pattern

  • Ковырял снова CUDA, и что-то мой старый файл проекта перестал работать в SL, при попытке собрать были таки ошибки: 

    1. make
    2. Scanning dependencies of target deviceQueryDrv
    3. [100%] Building CXX object CMakeFiles/bin/deviceQueryDrv.dir/src/deviceQueryDrv.cpp.o
    4. Linking CXX executable bin/deviceQueryDrv
    5. ld: warning: in /Developer/GPU Computing/C/lib/libcutil.a, file is not of required architecture
    6. ld: warning: in /usr/local/cuda/lib/libcudart.dylib, file is not of required architecture
    7. ld: warning: in /usr/local/cuda/lib/libcuda.dylib, file is not of required architecture
    8. Undefined symbols:
    9.   "_cutCheckCmdLineFlag", referenced from:
    10.       _main in deviceQueryDrv.cpp.o
    11.   "_cuDeviceGetName", referenced from:
    12.       _main in deviceQueryDrv.cpp.o
    13.   "_cuDeviceGetAttribute", referenced from:
    14.       _main in deviceQueryDrv.cpp.o
    15.       _main in deviceQueryDrv.cpp.o
    16.       _main in deviceQueryDrv.cpp.o
    17.       _main in deviceQueryDrv.cpp.o
    18.       _main in deviceQueryDrv.cpp.o
    19.       _main in deviceQueryDrv.cpp.o
    20.       _main in deviceQueryDrv.cpp.o
    21.       _main in deviceQueryDrv.cpp.o
    22.       _main in deviceQueryDrv.cpp.o
    23.       _main in deviceQueryDrv.cpp.o
    24.       _main in deviceQueryDrv.cpp.o
    25.       _main in deviceQueryDrv.cpp.o
    26.       _main in deviceQueryDrv.cpp.o
    27.       _main in deviceQueryDrv.cpp.o
    28.       _main in deviceQueryDrv.cpp.o
    29.       _main in deviceQueryDrv.cpp.o
    30.       _main in deviceQueryDrv.cpp.o
    31.       _main in deviceQueryDrv.cpp.o
    32.       _main in deviceQueryDrv.cpp.o
    33.       _main in deviceQueryDrv.cpp.o
    34.   "_cuDeviceTotalMem", referenced from:
    35.       _main in deviceQueryDrv.cpp.o
    36.   "_cuDeviceComputeCapability", referenced from:
    37.       _main in deviceQueryDrv.cpp.o
    38.   "_cuInit", referenced from:
    39.       _main in deviceQueryDrv.cpp.o
    40.   "_cuDeviceGetCount", referenced from:
    41.       _main in deviceQueryDrv.cpp.o
    42.   "_cuDriverGetVersion", referenced from:
    43.       _main in deviceQueryDrv.cpp.o
    44. ld: symbol(s) not found
    45. collect2: ld returned 1 exit status
    46. make[2]: *** [bin/deviceQueryDrv] Error 1
    47. make[1]: *** [CMakeFiles/bin/deviceQueryDrv.dir/all] Error 2
    48. make: *** [all] Error 2

    понятно что SL уже x86_64,

    1. cat test.cpp
    2. int main()
    3. {
    4.     return 0;
    5. }
    6. gcc -o test -c test.cpp
    7. file ./test
    8. test: Mach-O 64-bit object x86_64
    9.  

    а тулкит все еще 32 битый,

    1. file /usr/local/cuda/lib/libcudart.dylib
    2. file /usr/local/cuda/lib/libcuda.dylib
    3. /usr/local/cuda/lib/libcudart.dylib: Mach-O dynamically linked shared library i386
    4. /usr/local/cuda/lib/libcuda.dylib: Mach-O dynamically linked shared library i386

    и когда nVIDIA допилит 64х битную версию не известно, поэтому нужно было собирать прожект как 32х битный. Просидевши полдня в google и перепробовав множество вариантов таки добился желаемого результата.
    CMakeList.txt выглядел таким образом:

    1. cmake_minimum_required (VERSION 2.6)                  
    2. project (deviceQueryDrv)  
    3.  
    4. set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/cuda)
    5.  
    6. find_package(CUDA REQUIRED)
    7.  
    8. if (CUDA_FOUND)                                                  
    9.     message("-- CUDA "${CUDA_VERSION} " found.")
    10. endif()  
    11.  
    12. SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -arch i386")
    13.    
    14. INCLUDE_DIRECTORIES(
    15.     ${CUDA_CUT_INCLUDE_DIR}
    16.     ${CUDA_INCLUDE_DIRS}
    17.     )
    18.    
    19. LINK_LIBRARIES(
    20.     ${CUDA_CUT_LIBRARIES}
    21.     )
    22.    
    23. CUDA_ADD_EXECUTABLE(
    24.     bin/deviceQueryDrv
    25.     src/deviceQueryDrv.cpp
    26.     )

    чтобы прожект успешно собрался нужно было всего лишь добавить строку

    1. SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -arch i386")

    После чего прожект снова стал рабочим и собирается правда теперь оно Mach-O executable i386.
    А вот для nvcc нужно добавить еще:

    1. SET (CUDA_64_BIT_DEVICE_CODE "Off") 

    чтобы оно тоже генерило 32-х битый код.
    И остается нам ждать пока nvidia допилит полноценно тулкит для SL.

    UPD: заюзал quickhighlighter дабы по гламурней страница смотрелась.





  • Разговор Двух Великих Джедаев

  • Chain of Responsibility Pattern






  • Последние новости


    Дружба

    Все жизненные проблемы приносят с собой золотые самородки мудрости, обнаружить которые помогает истинная дружба. Вы замечали, что есть люди, которые дают вам силы, поднимают настроение и вызывают желание находиться рядом? И те, кто стремится вытянуть из вас энергию, надоедает вам и делает все так, что хочется сбежать. Нас подде...
    Читать далее »

    Советы, способствующие успеху

    ВЫЯВЛЕНИЕ ЦЕННОСТЕЙ Правильный выбор – Это результат жизни в соответствии со своими высшими ценностями, то есть путь к лучшей жизни. ЖИЗНЕННАЯ ЦЕЛЬ Лучшие люди выбирают цель, которая затрагивает лучшие струны в других. МИССИЯ Жизнь нельзя прожить дважды. Теперь или никогда, поэто...
    Читать далее »

    Утренние вопросы

    Если бы мне осталось жить всего месяц, что бы я делал из того, что делаю сегодня? Что я сделаю сегодня, чтобы почувствовать себя счастливым? Какие прекрасные воспоминания останутся у меня в памяти сегодня? Какие убеждения сделали мою жизнь такой, какая она есть? Во что нужно поверить, чтобы прожить удивительную жизнь? ...
    Читать далее »

    И еще несколько вопросов

    Знать мысли Бога – все равно что знать, как преуспеть в жизни. Глубоко поразмыслив над вопросами этой книги и записав свои ответы в дневник, вы развили в себе привычку анализировать. Поздравляю! Это важнейший навык успешной жизни. Способность к самоанализу и постановке правильных вопросов наряду с пониманием того, как использовать интуицию и природную мудрость, изменит нап...
    Читать далее »

    Путешествия

    Поставьте перед собой цель жить полноценно. Самый печальный итог – оглянуться назад и вопрошать, что можно было бы иметь, если бы… Дорожите своими заветными мечтами, воплощая их в жизнь. Ах, путешествия… Большинство из нас любят путешествовать и страстно стремятся к этому. Мы тоскуем по приключениям в реальной жизни. Хотим посетить удаленные места, узнать культуры, не...
    Читать далее »

    Счастье

    Там, где жизнь бьет ключом, где оживленно и весело, там и ищите свое счастье. Моя шестилетняя внучка Элла однажды зашла в мой офис и уселась в кресло. Она давно слышала, что я занимаюсь коучингом, поэтому я спросил ее: «Не хочешь побыть сегодня тренером и немного поучить других?» Малышка посмотрела на меня, выпрямилась в кресле, и я понял: она готова. Элла спросила: – О ч...
    Читать далее »

    Взаимоотношения

    Любовь Магия Бога выражается через любовь; наивысшая форма любви – бескорыстная помощь другим. Вы когда нибудь смотрели в глаза новорожденного и ощущали восторг, который ребенок приносит в этот мир? Большинство из нас чувствуют исходящую от детей любовь. Мы являемся в мир с любовью и открытым сердцем. С самого детства мы отдаем свою любовь этому миру. Из л...
    Читать далее »

    Ваш комментарий:


    Вы должны войти в систему, чтобы оставить комментарий.