mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-06-07 00:04:37 +00:00
* Format * Format * Format * Remove const * Use the right template * Format * Format * add row/col instances * Add missing file * fixed * Format * Updates * Format * fixed rrr layout * Format * Update test and embed modules * Restore older version * Update year * Set -fPIC * Format * Use double for isnan * rename host folder to codegen + minor fix * add codegen CI test * add option to build components without building CK * fix the groovy syntax * fix typo * use the correct function for the codegen stage --------- Co-authored-by: Jing Zhang <jizha@amd.com> Co-authored-by: Illia Silin <98187287+illsilin@users.noreply.github.com> Co-authored-by: illsilin <Illia.Silin@amd.com>
48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
#include <rtc/tmp_dir.hpp>
|
|
#include <algorithm>
|
|
#include <random>
|
|
#include <thread>
|
|
#include <unistd.h>
|
|
|
|
namespace rtc {
|
|
std::string random_string(std::string::size_type length)
|
|
{
|
|
static const std::string& chars = "0123456789"
|
|
"abcdefghijklmnopqrstuvwxyz"
|
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
|
|
std::mt19937 rg{std::random_device{}()};
|
|
std::uniform_int_distribution<std::string::size_type> pick(0, chars.length() - 1);
|
|
|
|
std::string str(length, 0);
|
|
std::generate(str.begin(), str.end(), [&] { return chars[pick(rg)]; });
|
|
|
|
return str;
|
|
}
|
|
|
|
std::string unique_string(const std::string& prefix)
|
|
{
|
|
auto pid = getpid();
|
|
auto tid = std::this_thread::get_id();
|
|
auto clk = std::chrono::steady_clock::now().time_since_epoch().count();
|
|
std::stringstream ss;
|
|
ss << std::hex << prefix << "-" << pid << "-" << tid << "-" << clk << "-" << random_string(16);
|
|
return ss.str();
|
|
}
|
|
|
|
tmp_dir::tmp_dir(const std::string& prefix)
|
|
: path(std::filesystem::temp_directory_path() /
|
|
unique_string(prefix.empty() ? "ck-rtc" : "ck-rtc-" + prefix))
|
|
{
|
|
std::filesystem::create_directories(this->path);
|
|
}
|
|
|
|
void tmp_dir::execute(const std::string& cmd) const
|
|
{
|
|
std::string s = "cd " + path.string() + "; " + cmd;
|
|
std::system(s.c_str());
|
|
}
|
|
|
|
tmp_dir::~tmp_dir() { std::filesystem::remove_all(this->path); }
|
|
|
|
} // namespace rtc
|