Russian Qt Forum

Qt => Общие вопросы => Тема начата: Acrobat от Май 26, 2017, 12:26



Название: Qt AMP C++ не завершается процесс
Отправлено: Acrobat от Май 26, 2017, 12:26
Доброго времени суток. Изучаю библиотеку AMP с использованием Qt.
В Qt Creator создал консольное приложение:

#include <QCoreApplication>
#include <amp.h>
#include <iostream>
using namespace concurrency;



void AddArrays() {
    int aCPP[] = {1, 2, 3, 4, 5};
    int bCPP[] = {6, 7, 8, 9, 10};
    int sumCPP[5] = {0, 0, 0, 0, 0};

    array_view<int, 1> a(5, aCPP);
    array_view<int, 1> b(5, bCPP);
    array_view<int, 1> sum(5, sumCPP);
    sum.discard_data();

    parallel_for_each(
        sum.extent,
 [=](index<1> idx) restrict(amp)
        {
            sum[idx] = a[idx] + b[idx];
        }
    );

    for (int i = 0; i < 5; i++) {
        std::cout << sum << "\n";
    }
}



int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    AddArrays();

    return a.exec();
}


После успешной отработки процесс не завершается и закрыть его невозможно, даже через диспетчер!!! Помогает только перезагрузка. В чём может быть беда ?


Название: Re: Qt AMP C++ не завершается процесс
Отправлено: __Heaven__ от Май 26, 2017, 14:03
return 0; без создания экземпляра QCoreApplication.
Вроде, должно помочь.


Название: Re: Qt AMP C++ не завершается процесс
Отправлено: __Heaven__ от Май 26, 2017, 14:05
А для завершения процесса мне помогает в меню debug действие stop debugging


Название: Re: Qt AMP C++ не завершается процесс
Отправлено: Acrobat от Май 26, 2017, 14:16
Бл...ь как за...ла эта это, за что не возьмись везде какая-то неведомая хрень. Везде клин, какие-то неведомые ошибки, от которых комп даже не может перезагрузиться. В вижуале 2015 этот код вообще не работает.
Господи помоги нам.


Название: Re: Qt AMP C++ не завершается процесс
Отправлено: ViTech от Май 26, 2017, 14:57
Сложными и мощными вещами не всегда есть возможность пользоваться простыми способами. В С++ нужно точно понимать что и зачем ты делаешь. Набросать "как-нибудь код", чтобы он работал как надо - не выйдет. Крепитесь :).