Lines Matching full:client

25 and the GPU. We can then use this to create a simple client-server protocol
28 This work treats the GPU as a client and the host as a server. The client
35 the buffer to the client when the inbox and outbox bits are equal and to the
63 the following list will explain the operations done by the client and server
66 First, a communication from the perspective of the client:
68 * The client searches for an available port and claims the lock.
69 * The client checks that the port is still available to the current device and
71 * The client writes its data to the fixed-size packet and toggles its outbox.
72 * The client waits until its inbox matches its outbox.
73 * The client reads the data from the fixed-size packet.
74 * The client closes the port and continues executing.
95 Client Example
98 The Client API is not currently exported by the LLVM C library. This is
108 operation is a no-op and simply forces the client to wait until the server is
114 rpc::Client::Port port = rpc::client.open<RPC_HOST_CALL>();
126 This example shows the server-side handling of the previous client example. When
129 call a function pointer provided by the client.
132 brevity's sake. Because the client is a GPU potentially handling several threads
194 [[gnu::weak]] __device__ rpc::Client client asm("__llvm_rpc_client");
204 if (cudaError_t err = cudaGetSymbolAddress(&rpc_client, client))
207 // Initialize the RPC client and server interface.
215 rpc::Client client(rpc::MAX_PORT_COUNT, rpc_buffer);
217 // Initialize the client on the device so it can communicate with the server.
218 if (cudaError_t err = cudaMemcpy(rpc_client, &client, sizeof(rpc::Client),