Студия не может найти библиотеку book.h - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В общем начал осваивать куда создал первые программы. Теперь решил переписать прграмму из книжки Сандерс Дж. Технология куда в примерах, Вот код
#include <stdio.h>
#include "../common/book.h"
#include <cuda_runtime.h>
 
__global__ void add( int a, int b, int *c) {
      *c=a+b;
}
 
int main(void) {
    int c;
    int *dev_c;
    HANDLE_ERROR(cudaMalloc((void**)&dev_c, sizeof(int)));
    add<<<1, 1>>>(2, 7, dev_c);
    HANDLE_ERROR(cudaMemcpy(&c, dev_c, sizeof(int), cudaMemcpyDeviceToHost));
    printf("2+7=%d\n",c);
    cudaFree(dev_c);
    system("pause");
    return 0;
}
выдает ошибку,vs2008 не может найти библиотеку book.h,помогите как ее подключить),заранее спс

Решение задачи: «Студия не может найти библиотеку book.h»

textual
Листинг программы
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
 
 
 
__global__ void add( int *a, int *b, int *c ) {
    *c = *a + *b;
}
 
int main( void ) {
    int a, b, c;                   // host копии a, b, c
    int *dev_a, *dev_b, *dev_c;    // device копии of a, b, c
    int size = sizeof( int );      
    //выделяем память для device копий для a, b, c
    cudaMalloc( (void**)&dev_a, size );
    cudaMalloc( (void**)&dev_b, size );
    cudaMalloc( (void**)&dev_c, size );
    a = 2;
    b = 7;
    // копируем ввод на device
    cudaMemcpy( dev_a, &a, size, cudaMemcpyHostToDevice );
    cudaMemcpy( dev_b, &b, size, cudaMemcpyHostToDevice );
    // запускаем add() kernel на GPU, передавая параметры
    add<<< 1, 1 >>>( dev_a, dev_b, dev_c );
    // copy device result back to host copy of c
    cudaMemcpy( &c, dev_c, size, cudaMemcpyDeviceToHost );
    printf("2+7=%d\n",c);
    cudaFree( dev_a );
    cudaFree( dev_b );
    cudaFree( dev_c );
    system("pause");
    return 0;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы: iostream, stdlib.h, printf.h, math.h
  2. Определяется функция add, которая выполняет сложение трех переданных ей указателей на int.
  3. В функции main создаются три переменные типа int: a, b, c.
  4. Создаются три указателя dev_a, dev_b, dev_c дляdevice-копий переменных a, b, c.
  5. Выделяется память под device-копии переменных a, b, c с помощью функции cudaMalloc.
  6. Значения a и b устанавливаются равными 2 и 7 соответственно.
  7. С помощью функции cudaMemcpy значения a и b копируются в device-копии переменных dev_a и dev_b.
  8. Запускается функция add на GPU с помощью команды add<<< 1, 1 >>>( dev_a, dev_b, dev_c );. Эта команда выполняет параллельную обработку данных на одном блоке GPU с размером 1x1.
  9. С помощью функции cudaMemcpy значение результата из device-копии переменной dev_c копируется в host-копию переменной c.
  10. Выводится значение c с помощью функции printf.
  11. С помощью функции cudaFree освобождается выделенная память под device-копии переменных dev_a, dev_b, dev_c.
  12. В конце программы вызывается функция system(pause), чтобы программа не закрылась сразу после вывода результата.
  13. Функция main возвращает 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы