Vector Operations Example
GPU-accelerated vector multiply demonstration
Overview
This example demonstrates basic vector operations using Parallax unified memory.
Complete Code
C++
vector_multiply.cpp
#include <iostream>
#include <vector>
#include <algorithm>
#include <execution>
int main() {
const size_t N = 1'000'000;
const float multiplier = 2.0f;
std::vector<float> data(N);
// Initialize
for (size_t i = 0; i < N; i++) {
data[i] = static_cast<float>(i);
}
// GPU acceleration with std::execution::par
// Memory coherence is automatic!
std::for_each(std::execution::par,
data.begin(), data.end(),
[multiplier](float& x) { x *= multiplier; });
// Results immediately available
std::cout << "First: " << data[0] << std::endl;
std::cout << "Last: " << data.back() << std::endl;
return 0;
}
Build and Run
terminal
g++ -std=c++20 vector_multiply.cpp -lparallax-runtime -o vector_multiply
./vector_multiply
Source Code
Full source available at: parallax-samples/basic