mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
46 lines
957 B
Text
46 lines
957 B
Text
/** GPU Kernels.
|
|
*
|
|
* Author: Daniel Krebs <github@daniel-krebs.net>
|
|
* SPDX-FileCopyrightText: 2017 Institute for Automation of Complex Power Systems, RWTH Aachen University
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*********************************************************************************/
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <villas/gpu.hpp>
|
|
|
|
#include <cuda_runtime.h>
|
|
#include <cuda.h>
|
|
|
|
#include "kernels.hpp"
|
|
|
|
using namespace villas::gpu;
|
|
|
|
|
|
__global__ void
|
|
kernel_mailbox(volatile uint32_t *mailbox, volatile uint32_t* counter)
|
|
{
|
|
printf("[gpu] hello!\n");
|
|
printf("[gpu] mailbox: %p\n", mailbox);
|
|
|
|
printf("[kernel] started\n");
|
|
|
|
while (1) {
|
|
if (*mailbox == 1) {
|
|
*mailbox = 0;
|
|
printf("[gpu] counter = %d\n", *counter);
|
|
break;
|
|
}
|
|
}
|
|
|
|
printf("[gpu] quit\n");
|
|
}
|
|
|
|
__global__ void
|
|
kernel_memcpy(volatile uint8_t* dst, volatile uint8_t* src, size_t length)
|
|
{
|
|
while (length > 0) {
|
|
*dst++ = *src++;
|
|
length--;
|
|
}
|
|
}
|