Доступ к скрипту snakemake для доступа к stdin / stdout

Общие инструкции по связыванию библиотек не относятся к CUDA. Поэтому вы можете узнать больше о , используя MS VS . В любом случае, шаги таковы:

  1. Убедитесь, что вы открыли проект, над которым хотите работать.
  2. Выберите «Просмотр ... Страницы свойств» (из меню ) Появится новое диалоговое окно.
  3. В левой части этого диалогового окна выберите Linker, чтобы открыть его подменю
  4. . В линкере выберите Input
  5. Теперь, на панели справа, обратите внимание на первый элемент, который является «Дополнительные зависимости». Я полагаю, что cudart.lib должен присутствовать там.
  6. Щелкните справа от cudart.lib Теперь вы можете вводить новые библиотеки для добавления. Введите пробел (чтобы отделить cudart.lib) и введите cusparse.lib
  7. Теперь нажмите «Применить» в правом нижнем углу диалогового окна.

должен быть всем, что необходимо, если ваш файл проекта / решения уже настроен с использованием шаблона cuda. Если cudart.lib отсутствует, или ваши файлы проекта / решения еще не понимают cuda, это отдельная проблема. В этом случае я бы рекомендовал начать, путем клонирования проекта из образцов и построения вашего проекта, используя это как отправную точку. Затем он подберет все нужные каталоги для поиска, а также правила сборки cuda. Поскольку все основные библиотеки cuda (cudart, cublas, cufft, cusparse и т. Д.) Находятся в одном месте, один и тот же путь поиска должен выбрать любой из них по мере необходимости.

Если вы хотите связать например, в другой библиотеке, например cublas.lib, вы можете следовать аналогичной последовательности, заменив cusparse.lib выше на cublas.lib

. Обратите внимание, что с более новыми версиями CUDA (например, CUDA 7.5) это будет необходимо только для создания 64-битного проекта (следуйте приведенным выше инструкциям при изменении свойств проекта x64). CUDA 7.5 и выше отказываются от поддержки 32-битных проектов.

2
задан Krischan 28 January 2019 в 23:52
поделиться

2 ответа

@Кришан, кажется, вы уже нашли решение, и, если это так, возможно, будет полезно опубликовать его в качестве ответа.

В качестве альтернативы, вы можете использовать объект {workflow}, чтобы получить каталог Snakefile и оттуда построить путь к вашему скрипту Python. Если ваша структура каталогов:

./
├── Snakefile
├── data
│   └── sample.bam
└── scripts
    └── edit_bam.py

Файл Snake может выглядеть следующим образом:

rule all:
    input:
        'test.tmp',

rule one:
    input:
        'sample.bam',
    output:
        'test.tmp',
    shell:
        r"""
        cat {input} \
        | {workflow.basedir}/scripts/edit_bam.py >  {output}
        """

Выполнено с snakemake -d data ...

Кажется, объект workflow не является задокументировано, но проверьте эту ветку Есть ли способ получить полный путь к Snake-файлу внутри Snake-файла?

0
ответ дан dariober 28 January 2019 в 23:52
поделиться

Использование shell вместо script директивы:

rule all:
    input:
        expand('{sample}_edited.bam'), sample=['a', 'b', 'c']


rule somename:
    input:
        '{sample}.bam'
    output:
        '{sample}_edited.bam'
    shell:
        '''
        cat {input} > python edit_bam.py > {output}
        '''
0
ответ дан JeeYem 28 January 2019 в 23:52
поделиться