Форум программистов, компьютерный форум CyberForum.ru

Программирование под GPU: Вычисление произведения матрицы на вектор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Может ли виртуальная функция возвращать значения разных типов? http://www.cyberforum.ru/cpp-beginners/thread1176874.html
Привет, форумчане! :) Столкнулся с небольшой проблемкой и интересуюсь ответом на вопрос! Может ли виртуальная функция возвращать значения различных типов?! И если не может, то можно либо как-то хитро извернуться и все же реализовать это какими-либо извращенными методами?! :) Большое спасибо за внимание!
C++ шаблон функции который принимает в параметры массив количиство елементов и должен найти сумму елементов массив шаблон функции который принимает в параметры массив количиство елементов и должен найти сумму елементов массива http://www.cyberforum.ru/cpp-beginners/thread1176873.html
C++ написать 2 перегруженных функции для поиска суммы корней квадратного и линейного уравнения
написать 2 перегруженных функции для поиска суммы корней квадратного и линейного уравнения заранее спасибо Добавлено через 1 час 31 минуту апп
Распечатать строку с заданным номером из текстового файла C++
Задание: Пусть дан текстовый файл.Распечатайте строку с заданным номером. Вот начало дальше не знаю что делать,прошу помощи. #include <stdio.h> int main(int ras, char* ras) { FILE *d; d = fopen("1.txt", "r"); int n;
C++ Заполнить двухмерный массив случайными числами и вывести на экран http://www.cyberforum.ru/cpp-beginners/thread1176839.html
1.Заполнить двухмерный массив случайными числами и вывести на экран. 2.Модифицировать его следующим образом: элементу побочной диагонали присвоить значение равное разности сумм элементов до него и после в соответствующем столбце.
C++ Создать двоичный файл с информацией на скриншоте 1. С помощью текстового редактора создать текстовый документ, в который занести исходную информацию. Рекомендуется вначале занести количество записей, а затем последовательно все записи, причем тестовые поля вводить в отдельной строке, а числовые – можно в отдельной строке или в одной через пробел или разделитель табуляцию. Например, содержимое файла, который будет включать 7 записей –... подробнее

Показать сообщение отдельно
iltat
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 17
20.05.2014, 21:12  [ТС]     Программирование под GPU: Вычисление произведения матрицы на вектор
newbie666, я выполнял на C++ AMP:
C++
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
void getAnyMatrMV(float* matr,float* vctrRe1,float* vctrIm1,int kolQbs){
        int rzm=getRazm(kolQbs);
        DWORD xxx=GetTickCount();
        array_view<float,1> x(rzm,vctrRe1);
        array_view<float,1> x1(rzm,vctrIm1);
        float* vctRtrnRe=new float[rzm];
        float* vctRtrnIm=new float[rzm];
        array_view<float,1> y(rzm,vctRtrnRe);
        array_view<float,1> y1(rzm,vctRtrnIm);
        array_view<float,1> mrc(rzm*rzm,matr);
        //concurrency::extent<1> e(rzm);
        //mrc.discard_data();
        parallel_for_each(mrc.extent, [=](index<1> i) restrict(amp)
        {
            float res=0,res1=0;
            for(int k = 0; k < rzm; k++)
            {
            res+=x(k)*mrc(i*rzm+k);
            res1+=x1(k)*mrc(i*rzm+k);
            }
            y(i)=res;
            y1(i)=res1;
        });
        y.synchronize();
        y1.synchronize();
        y.copy_to(x);
        y1.copy_to(x1);
        DWORD yyy=GetTickCount();
        cout<<yyy-xxx<<endl;
        //getTOG(vctRtrnRe,vctRtrnIm,vctrRe1,vctrIm1,rzm);
    }
Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
extern "C" __declspec(dllexport) __global__ void MatrVectMul(float *re,float* im, float *matr,int rzm)
{
    int i = blockIdx.x*blockDim.x+threadIdx.x;
    float sum,sum1;
    if(i<rzm)
    {
    sum=0,sum1=0;
    for (int k=0;k<rzm && i<rzm;k++){
        sum+=matr[i*rzm+k]*re[k];
        sum1+=matr[i*rzm+k]*im[k];
    }
    re[i]=sum;
    im[i]=sum1;
    }
}
Это код на CUDA
 
Текущее время: 01:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru