openjij
Framework for the Ising model and QUBO.
Loading...
Searching...
No Matches
kernel.hpp
Go to the documentation of this file.
1// Copyright 2023 Jij Inc.
2
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6
7// http://www.apache.org/licenses/LICENSE-2.0
8
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#ifndef OPENJIJ_SYSTEM_GPU_CHIMERA_CUDA_KERNEL_HPP__
16#define OPENJIJ_SYSTEM_GPU_CHIMERA_CUDA_KERNEL_HPP__
17
18#ifdef USE_CUDA
19
20#include <cuda_runtime.h>
21
23
24namespace openjij {
25namespace system {
26namespace chimera_cuda {
27
28// updater interface
29
30template <typename FloatType, std::size_t block_row, std::size_t block_col,
31 std::size_t block_trot>
32void metropolis_interface(int32_t sw, int32_t *spin, const FloatType *rand,
33 const FloatType *J_out_p, const FloatType *J_out_n,
34 const FloatType *J_in_04, const FloatType *J_in_15,
35 const FloatType *J_in_26, const FloatType *J_in_37,
36 const FloatType *h, const ChimeraInfo &info,
37 const dim3 &grid, const dim3 &block, double beta,
38 FloatType gamma, double s);
39} // namespace chimera_cuda
40} // namespace system
41} // namespace openjij
42
43#endif
44#endif
Definition algorithm.hpp:24
double FloatType
Note:
Definition compile_config.hpp:37