none
C++ AMP fatal error C1451 RRS feed

  • Вопрос

  • Во время попытки скомпилировать код с применением C++ AMP, даже взятого с MSDN примера, если конкретнее, то вот:

    #include <iostream>
    #include <amp.h>
    using namespace concurrency;
    
    void MultiplyWithOutAMP() {
    
        int aMatrix[3][2] = {{1, 4}, {2, 5}, {3, 6}};
        int bMatrix[2][3] = {{7, 8, 9}, {10, 11, 12}};
        int product[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};
    
        for (int row = 0; row < 3; row++) {
            for (int col = 0; col < 3; col++) {
                // Multiply the row of A by the column of B to get the row, column of product.
                for (int inner = 0; inner < 2; inner++) {
                    product[row][col] += aMatrix[row][inner] * bMatrix[inner][col];
                }
                std::cout << product[row][col] << "  ";
            }
            std::cout << "\n";
        }
    }
    
    void MultiplyWithAMP() {
        int aMatrix[] = { 1, 4, 2, 5, 3, 6 };
        int bMatrix[] = { 7, 8, 9, 10, 11, 12 };
        int productMatrix[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    
        array_view<int, 2> a(3, 2, aMatrix);
        array_view<int, 2> b(2, 3, bMatrix);
        array_view<int, 2> product(3, 3, productMatrix);
    
        parallel_for_each(
            product.extent, 
             [=](index<2> idx) restrict(amp) {
                int row = idx[0];
                int col = idx[1];
                for (int inner = 0; inner < 2; inner++) {
                    product[idx] += a(row, inner) * b(inner, col);
                }
            }
        );
    
        product.synchronize();
    
        for (int row = 0; row < 3; row++) {
            for (int col = 0; col < 3; col++) {
                //std::cout << productMatrix[row*3 + col] << "  ";
                std::cout << product(row, col) << "  ";
            }
            std::cout << "\n";
        }
    }
    
    void main() {
        MultiplyWithOutAMP();
        MultiplyWithAMP();
        getchar();
    }
    

    вылетает ошибка:

    c:\program files (x86)\microsoft visual studio 11.0\vc\include\amp.h(6429): fatal error C1451: Не удалось создать отладочную информацию при компиляции графа вызовов concurrency::parallel_for_each по адресу: "c:\users\антон\documents\visual studio 2012\projects\matrixmultiply\matrixmultiply\matrixmultiply.cpp(41)"

    Комп:

    CPU: Intel core i7 3770K

    GPU: Sapphire Radeon HD 7970 Vapor X

    ОС: Windows 8

    IDE: Visual Studio Ultimate 2012 Update 2

    В поисках решения перерыл весь инет - решения нет у некоторых проблема исчезала с переустановкой ОС, у некоторых с переустановкой визуалки, мне же ничего из этого не помогает(


    21 апреля 2013 г. 11:47

Ответы

Все ответы