FreeTensor
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions | Variables
parallel_scope.h File Reference
#include <iostream>
#include <string>
#include <variant>
#include <container_utils.h>
#include <except.h>
#include <hash_combine.h>
#include <serialize/to_string.h>
Include dependency graph for parallel_scope.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  freetensor::SerialScope
 
struct  freetensor::OpenMPScope
 
struct  freetensor::CUDAStreamScope
 
struct  freetensor::CUDAScope
 
struct  std::hash< freetensor::SerialScope >
 
struct  std::hash< freetensor::OpenMPScope >
 
struct  std::hash< freetensor::CUDAStreamScope >
 
struct  std::hash< freetensor::CUDAScope >
 

Namespaces

namespace  freetensor
 
namespace  std
 STL namespace.
 

Typedefs

typedef std::variant< SerialScope, OpenMPScope, CUDAStreamScope, CUDAScope > freetensor::ParallelScope
 

Functions

bool freetensor::operator== (const SerialScope &lhs, const SerialScope &rhs)
 
bool freetensor::operator== (const OpenMPScope &lhs, const OpenMPScope &rhs)
 
std::ostream & freetensor::operator<< (std::ostream &os, const OpenMPScope &parallel)
 
bool freetensor::operator== (const CUDAStreamScope &lhs, const CUDAStreamScope &rhs)
 
std::ostream & freetensor::operator<< (std::ostream &os, const CUDAStreamScope &parallel)
 
bool freetensor::operator== (const CUDAScope &lhs, const CUDAScope &rhs)
 
std::ostream & freetensor::operator<< (std::ostream &os, const CUDAScope &parallel)
 
std::ostream & freetensor::operator<< (std::ostream &os, const ParallelScope &parallel)
 
ParallelScope freetensor::parseParallelScope (const std::string &_str)
 

Variables

constexpr ParallelScope freetensor::serialScope = SerialScope{}
 
constexpr ParallelScope freetensor::threadIdxX = CUDAScope{CUDAScope::Thread, CUDAScope::X}
 
constexpr ParallelScope freetensor::threadIdxY = CUDAScope{CUDAScope::Thread, CUDAScope::Y}
 
constexpr ParallelScope freetensor::threadIdxZ = CUDAScope{CUDAScope::Thread, CUDAScope::Z}
 
constexpr ParallelScope freetensor::blockIdxX = CUDAScope{CUDAScope::Block, CUDAScope::X}
 
constexpr ParallelScope freetensor::blockIdxY = CUDAScope{CUDAScope::Block, CUDAScope::Y}
 
constexpr ParallelScope freetensor::blockIdxZ = CUDAScope{CUDAScope::Block, CUDAScope::Z}