Не удается установить ускорение-куда в Haskell

Я использую Linux и пытаюсь поэкспериментировать с библиотекой Haskell Accelerate, но у меня возникают проблемы с ее установкой. Я успешно установил пакет accelerate, но, похоже, возникла проблема с зависимостями, о которой я подробно рассказал ниже.

cabal: Error: some packages failed to install:
accelerate-cuda-0.14.0.0 depends on haskell-src-exts-1.14.0.1 which failed to
install.
cuda-0.5.1.1 failed during the configure step. The exception was:
ExitFailure 1
haskell-src-exts-1.14.0.1 failed during the configure step. The exception was:
ExitFailure 1
haskell-src-meta-0.6.0.5 depends on haskell-src-exts-1.14.0.1 which failed to
install.
language-c-quote-0.7.6 depends on haskell-src-exts-1.14.0.1 which failed to
install.

Я искал SO и заметил, что у кого-то еще была аналогичная проблема с установкой пакета cuda, и она была решена путем добавления пути к кабале в PATH; Я пробовал это, но это не решило эту проблему.

Пожалуйста, может кто-нибудь помочь, так как я очень хочу поиграть с этой фантастической библиотекой.


person user3199023    schedule 11.02.2014    source источник
comment
IIRC, вам понадобятся какие-то драйверы CUDA для установки некоторых пакетов. Это настоящий медведь для установки, удачи!   -  person crockeea    schedule 11.02.2014
comment
Обязательно попробуйте установить зависимости по отдельности, это поможет вам выяснить, какой пакет действительно вызывает проблему. Я вижу, как появляется cuda-0.5.1.1, что заставляет меня задуматься, есть ли у вас драйверы.   -  person crockeea    schedule 11.02.2014
comment
Привет, Эрик, у меня установлена ​​cuda sdk. Я попробую установить отдельно и посмотреть, работает ли это. Спасибо за помощь.   -  person user3199023    schedule 11.02.2014
comment
Вам нужен SDK, но вам также нужны драйверы NVIDIA с поддержкой CUDA. Честно говоря, я не уверен, что у меня когда-либо это работало в Linux.   -  person crockeea    schedule 11.02.2014
comment
1) Убедитесь, что ваша база данных Cabal обновлена. 2) Попробуйте установить пакет haskell-src-exts и покажите нам журнал.   -  person user3974391    schedule 11.02.2014
comment
Кстати, эта библиотека не такая уж и фантастическая. Accelerate DSL довольно ограничен (AFAIR, было даже невозможно реализовать экземпляр AdditiveGroup для массивов CUDA), бэкэнд cuda выполняет тупую перекомпиляцию при каждом вызове функции. И вряд ли вы сможете расширить эту библиотеку, потому что ее внутренности привязаны к деревянной сцепке.   -  person user3974391    schedule 11.02.2014
comment
Можете ли вы указать причину, по которой haskell-src-exts не удалось установить? Он должен быть раньше в выходных данных компиляции. IIRC haskell-src-exts требует happy или alex, которые клика не установит автоматически.   -  person asm    schedule 11.02.2014
comment
@user2894391 user2894391 Я убедился, что cabal обновлен с помощью «cabal update», и он успешно установил haskell-src-exts. Я попытался после его установки, и он продвинулся дальше, чем раньше, но снова потерпел неудачу. На этот раз он жалуется, что не может найти language-c-quote-0.7.6. Похоже, мне нужно установить вручную: с   -  person user3199023    schedule 11.02.2014
comment
У меня сейчас установлено! Фу. Мне пришлось пройти по цепочке зависимостей и установить каждую из них вручную. Спасибо всем за помощь.   -  person user3199023    schedule 11.02.2014
comment
Ну, ускорение требует более старой версии. Поздравляем, вы только что попали в ад зависимости. Но вы можете попробовать простой обходной путь: каким-то образом переименовать каталоги .cabal и .ghc, затем выполнить «обновление кабалы», а затем попробовать установить ускорение-куда (не haskell-src-exts!). Или вы можете вместо этого попробовать cabal-dev.   -  person user3974391    schedule 11.02.2014


Ответы (1)


Я хотел проверить accelerate-examples и поэкспериментировать с ними, а также у меня не было графического процессора CUDA (только AMD), поэтому я в итоге установил accelerate-examples с стеком:

git clone https://github.com/AccelerateHS/accelerate-examples
cd accelerate-examples
#choose version:
ln stack-8.6.yaml stack.yaml
#build without CUDA targeting:
stack build --flag accelerate-examples:-llvm-ptx --flag accelerate-fft:-llvm-ptx

Программа установки создаст все примеры и распечатает информацию о том, куда они были помещены. Также может потребоваться указать путь к библиотекам GHC, например: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.stack/programs/x86_64-linux/ghc-8.6.5/lib/ghc-8.6.5/rts/

Также проверил, что accelerate устанавливается точно так же, но даже без указания каких-либо флагов (думаю, потому что он еще не собирает никаких программ?), но примеры - это то, что забавно :)

P.S. Вы можете переместить флаги llvm-ptx в конфигурацию stack.yaml: измените строку # flags: {} на:

flags:
  accelerate-fft:
    llvm-ptx: false
  accelerate-examples:
    llvm-ptx: false
person Slaus    schedule 05.02.2020