MCPcopy Create free account
hub / github.com/antmachineintelligence/mtgbmcode / main

Function main

compute/example/simple_moving_average.cpp:93–138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

91}
92
93int main()
94{
95 unsigned int size = 1024;
96 // wSize must be odd
97 unsigned int wSize = 21;
98 // get the default device
99 compute::device device = compute::system::default_device();
100 // create a context for the device
101 compute::context context(device);
102 // get the program
103 compute::program program = make_sma_program(context);
104
105 // create vector of random numbers on the host
106 std::vector<float> host_vector(size);
107 std::vector<float> host_result(size);
108 std::generate(host_vector.begin(), host_vector.end(), myRand);
109
110 compute::vector<float> a(size,context);
111 compute::vector<float> b(size,context);
112 compute::vector<float> c(size,context);
113 compute::command_queue queue(context, device);
114
115 compute::copy(host_vector.begin(),host_vector.end(),a.begin(),queue);
116
117 // scan values
118 compute::inclusive_scan(a.begin(),a.end(),b.begin(),queue);
119 // sma kernel
120 compute::kernel kernel(program, "SMA");
121 kernel.set_arg(0,b.get_buffer());
122 kernel.set_arg(1,(int)b.size());
123 kernel.set_arg(2,c.get_buffer());
124 kernel.set_arg(3,(int)wSize);
125
126 using compute::uint_;
127 uint_ tpb = 128;
128 uint_ workSize = size;
129 queue.enqueue_1d_range_kernel(kernel,0,workSize,tpb);
130
131 compute::copy(c.begin(),c.end(),host_result.begin(),queue);
132
133 bool res = check_results(host_vector,host_result,wSize);
134 std::string status = res ? "results are equivalent" : "GPU results differs from CPU one's";
135 std::cout << status << std::endl;
136
137 return 0;
138}
139

Callers

nothing calls this directly

Calls 10

make_sma_programFunction · 0.85
copyFunction · 0.85
inclusive_scanFunction · 0.85
check_resultsFunction · 0.85
generateFunction · 0.50
beginMethod · 0.45
endMethod · 0.45
set_argMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected