Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "cuda_runtime.h"
- #include "device_launch_parameters.h"
- #include <iostream>
- #include "Vector.h"
- using namespace std;
- extern "C" void CALL_KERNEL(Vector& dev_a, Vector& dev_b, Vector& dev_result);
- int main()
- {
- Vector a(5, 4, 3);
- Vector b(1, 1, 1);
- Vector c;
- Vector* dev_a;
- Vector* dev_b;
- Vector* dev_c;
- cudaMalloc((void**)&dev_a, sizeof(Vector));
- cudaMalloc((void**)&dev_b, sizeof(Vector));
- cudaMalloc((void**)&dev_c, sizeof(Vector));
- cudaMemcpy(dev_a, (void*)&a, sizeof(Vector), cudaMemcpyHostToDevice);
- cudaMemcpy(dev_a, (void*)&b, sizeof(Vector), cudaMemcpyHostToDevice);
- cudaMemcpy(dev_a, (void*)&c, sizeof(Vector), cudaMemcpyHostToDevice);
- CALL_KERNEL(*dev_a, *dev_b, *dev_c);
- cudaMemcpy((void*)&c, dev_c, sizeof(Vector), cudaMemcpyDeviceToHost);
- cudaFree(dev_a);
- cudaFree(dev_b);
- cudaFree(dev_c);
- cout << c.x << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement