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