From 666c5d46f9a777d7ee2ebe9376ff70b096a124fb Mon Sep 17 00:00:00 2001 From: David Allemang Date: Wed, 11 Dec 2019 10:30:26 -0500 Subject: [PATCH] remove unused files --- common/include/groups.hpp | 110 --------------------- common/include/types.hpp | 4 - cpu-opt/solver.hpp | 195 -------------------------------------- gpu-opt/tests.cu | 104 -------------------- gpu-slo/tests.cu | 104 -------------------- 5 files changed, 517 deletions(-) delete mode 100644 common/include/groups.hpp delete mode 100644 common/include/types.hpp delete mode 100644 cpu-opt/solver.hpp delete mode 100644 gpu-opt/tests.cu delete mode 100644 gpu-slo/tests.cu diff --git a/common/include/groups.hpp b/common/include/groups.hpp deleted file mode 100644 index e8cb22f..0000000 --- a/common/include/groups.hpp +++ /dev/null @@ -1,110 +0,0 @@ -#pragma once - -#include - -struct Mult { - int from, to, multiplicity; -}; - -Table mults(const std::vector& ms) { - Table res; - for (const auto &m : ms) { - int N = res.size(); - res.emplace_back(m.multiplicity * 2, m.to); - for (int i = 0; i < m.multiplicity * 2; i += 2) { - res[N][i] = m.from; - } - } - return res; -} - -std::vector ezmults(int ngens, const std::vector &ms) { - bool table[ngens][ngens]; - - for (int i = 0; i < ngens; i++) { - for (int j = 0; j < ngens; j++) { - table[i][j] = false; - } - } - - for (const auto &m : ms) { - table[m.from][m.to] = true; - table[m.to][m.from] = true; - } - - std::vector res(ms); - - for (int i = 0; i < ngens; i++) { - for (int j = i + 1; j < ngens; j++) { - if (!table[i][j]) { - res.push_back({i, j, 2}); - } - } - } - - return res; -} - -/* - * Order 4*res*res - */ -std::pair torus(int res) { - - return std::make_pair(mults(ezmults(4, { - {0, 1, res}, - {2, 3, res}, - })), 4); -} - -/* - * Order 14,400 - */ -std::pair H4() { - return std::make_pair(mults(ezmults(4, { - {0, 1, 5}, - {1, 2, 3}, - {2, 3, 3}, - })), 4); -} - -/* - * Order 51,840 - */ -std::pair E6() { - return std::make_pair(mults(ezmults(6, { - {0, 1, 3}, - {1, 2, 3}, - {2, 3, 3}, - {2, 4, 3}, - {4, 5, 3}, - })), 6); -} - -/* - * Order 2,903,040 - */ -std::pair E7() { - return std::make_pair(mults(ezmults(7, { - {0, 1, 3}, - {1, 2, 3}, - {2, 3, 3}, - {2, 4, 3}, - {4, 5, 3}, - {5, 6, 3}, - })), 7); -} - -/* - * Order 696,729,600 - */ -std::pair E8() { - return std::make_pair(mults(ezmults(8, { - {0, 1, 3}, - {1, 2, 3}, - {2, 3, 3}, - {2, 4, 3}, - {4, 5, 3}, - {5, 6, 3}, - {6, 7, 3}, - })), 8); -} diff --git a/common/include/types.hpp b/common/include/types.hpp deleted file mode 100644 index 18b23be..0000000 --- a/common/include/types.hpp +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -using Gens=std::vector; -using Table=std::vector; diff --git a/cpu-opt/solver.hpp b/cpu-opt/solver.hpp deleted file mode 100644 index 79469d3..0000000 --- a/cpu-opt/solver.hpp +++ /dev/null @@ -1,195 +0,0 @@ -#pragma once - -#include -#include -#include - -struct Mults; -struct Table; -struct IRow; - -struct Mults { - const int dim; - std::map, int> mults; - - explicit Mults(const int dim) : dim(dim) { - mults = std::map, int>(); - } - - void set(int a, int b, int mult) { - if (a > b) std::swap(a, b); - mults[std::make_tuple(a, b)] = mult; - } - - [[nodiscard]] int get(int a, int b) const { - if (a == b) return 1; - if (a > b) std::swap(a, b); - - const auto &tup = std::make_tuple(a, b); - const auto &res = mults.find(tup); - - if (res == mults.end()) return 2; - return res->second; - } - - [[nodiscard]] std::vector irelation(int a, int b) const { - std::vector res{}; - int mult = get(a, b); - - for (int i = 0; i < mult; ++i) { - res.push_back(a); - res.push_back(b); - } - - return res; - } - - [[nodiscard]] Mults sub(const std::vector &igens) const { - Mults res(igens.size()); - for (int a = 0; a < (int) igens.size(); ++a) { - for (int b = a + 1; b < (int) igens.size(); ++b) { - res.set(a, b, get(igens[a], igens[b])); - } - } - return res; - } - - [[nodiscard]] Table *isolve(const std::vector &isubgens) const; -}; - -struct Table { - const Mults mults; - std::vector> fwd; - - explicit Table(Mults mults) : mults(mults) { - add_row(); - } - - void add_row() { - fwd.emplace_back(mults.dim, -1); - } - - int add_coset() { - for (int from = 0; from < (int) size(); ++from) { - for (int igen = 0; igen < (int) mults.dim; igen++) { - if (iget(from, igen) < 0) { - int to = (int) size(); - add_row(); - iset(from, igen, to); - return to; - } - } - } - return 0; - } - - [[nodiscard]] unsigned size() const { - return fwd.size(); - } - - void iset(int from, int igen, int to) { - fwd[from][igen] = to; - fwd[to][igen] = from; - } - - [[nodiscard]] int iget(int from, int igen) const { - return fwd[from][igen]; - } - - [[nodiscard]] int irget(int igen, int to) const { - return fwd[to][igen]; - } - -}; - -struct IRow { - std::vector::const_iterator l; - std::vector::const_iterator r; - - int from; - int to; - - IRow(const std::vector &rel, int cos) - : l(rel.begin()), r(rel.end() - 1), from(cos), to(cos) { - } - - [[nodiscard]] bool learn(Table *table) { - if (r - l == 0) { - return false; - } - - while (r - l > 0) { - int next = table->iget(from, *l); - if (next < 0) break; - l++; - from = next; - } - - while (r - l > 0) { - int next = table->irget(*r, to); - if (next < 0) break; - r--; - to = next; - } - - if (r - l == 0) { - table->iset(from, *l, to); - return true; - } - - return false; - } -}; - -Mults schlafli(const std::vector &symbol) { - unsigned int dim = symbol.size(); - Mults mults(dim + 1); - for (int i = 0; i < dim; ++i) { - mults.set(i, i + 1, symbol[i]); - } - return mults; -} - -Table *Mults::isolve(const std::vector &isubgens) const { - auto *table = new Table(*this); - for (int igen : isubgens) - table->iset(0, igen, 0); - - std::vector> irels{}; - for (unsigned a = 0; a < dim; ++a) { - for (unsigned b = a + 1; b < dim; ++b) { - irels.push_back(irelation(a, b)); - } - } - - std::vector irows; - irows.reserve(irels.size()); - for (const auto &irel : irels) - irows.emplace_back(irel, 0); - - while (!irows.empty()) { - while (true) { - bool learned = false; - for (int i = (int) irows.size() - 1; i >= 0; i--) { - if (irows[i].learn(table)) { - learned = true; - irows.erase(irows.begin() + i); - } - } - if (!learned) - break; - } - - int i = (int) table->size(); - if (table->add_coset() > 0) { - for (const auto &irel : irels) - irows.emplace_back(irel, i); - } else { - break; - } - } - - return table; -} - - diff --git a/gpu-opt/tests.cu b/gpu-opt/tests.cu deleted file mode 100644 index cad1f96..0000000 --- a/gpu-opt/tests.cu +++ /dev/null @@ -1,104 +0,0 @@ -//#include -//#include -// -//#include -//#include -//#include -// -//#define N 50 -// -//__global__ -//void vector_add(float* out, float* a, float* b, int n) { -// for(int i = 0; i < n; i++){ -// out[i] = a[i] + b[i]; -// } -//} -// -//int main(){ -// thrust::host_vector a(N); -// thrust::sequence(a.begin(), a.end()); -// -// thrust::host_vector b(N); -// thrust::sequence(b.begin(), b.end()); -// thrust::reverse(b.begin(), b.end()); -// -// for (int i = 0; i < N; ++i) { -// printf("%.1f ", a[i]); -// } printf("\n"); -// -// for (int i = 0; i < N; ++i) { -// printf("%.1f ", b[i]); -// } printf("\n"); -// -// thrust::device_vector aD = a; -// thrust::device_vector bD = b; -// thrust::device_vector outD(N); -// -// vector_add<<<1, 1>>>( -// thrust::raw_pointer_cast(&outD[0]), -// thrust::raw_pointer_cast(&aD[0]), -// thrust::raw_pointer_cast(&bD[0]), -// N); -// -// thrust::host_vector out = outD; -// -// for (int i = 0; i < N; ++i) { -// printf("%.1f ", out[i]); -// } printf("\n"); -// -// return 0; -//} - -#include -#include -#include - -#include -#include -#include - -void add_proc(int *c, int *a, int *b) { - *c = *a + *b; -} - -void test_proc(){ - int a = 0; - int b = 1; - - auto start = std::chrono::system_clock::now(); - - for (int i = 0; i < 1000000; ++i) { - add_proc(&a, &a, &b); - } - - auto end = std::chrono::system_clock::now(); - - std::chrono::duration diff = end - start; - - printf("proc: %d: 1B in %.3f micro\n", a, diff.count()); -} - -__global__ -void add_gpu(int *c, int *a, int *b) { - *c = *a + *b; -} - -void test_gpu(){ - thrust::device_vector vals(2, 0); - vals[0] = 0; - vals[1] = 1; - printf(" gpu: %d: 1B in %.3f micro\n", vals[0], 0.0f); - - int *a = thrust::raw_pointer_cast(&vals[0]); - int *b = thrust::raw_pointer_cast(&vals[1]); - - add_gpu<<<1, 1>>>(a, a, a); - - printf(" gpu: %d: 1B in %.3f micro\n", vals[0], 0.0f); -} - -int main(int argc, char *argv[]) { - test_proc(); - test_gpu(); -} - diff --git a/gpu-slo/tests.cu b/gpu-slo/tests.cu deleted file mode 100644 index cad1f96..0000000 --- a/gpu-slo/tests.cu +++ /dev/null @@ -1,104 +0,0 @@ -//#include -//#include -// -//#include -//#include -//#include -// -//#define N 50 -// -//__global__ -//void vector_add(float* out, float* a, float* b, int n) { -// for(int i = 0; i < n; i++){ -// out[i] = a[i] + b[i]; -// } -//} -// -//int main(){ -// thrust::host_vector a(N); -// thrust::sequence(a.begin(), a.end()); -// -// thrust::host_vector b(N); -// thrust::sequence(b.begin(), b.end()); -// thrust::reverse(b.begin(), b.end()); -// -// for (int i = 0; i < N; ++i) { -// printf("%.1f ", a[i]); -// } printf("\n"); -// -// for (int i = 0; i < N; ++i) { -// printf("%.1f ", b[i]); -// } printf("\n"); -// -// thrust::device_vector aD = a; -// thrust::device_vector bD = b; -// thrust::device_vector outD(N); -// -// vector_add<<<1, 1>>>( -// thrust::raw_pointer_cast(&outD[0]), -// thrust::raw_pointer_cast(&aD[0]), -// thrust::raw_pointer_cast(&bD[0]), -// N); -// -// thrust::host_vector out = outD; -// -// for (int i = 0; i < N; ++i) { -// printf("%.1f ", out[i]); -// } printf("\n"); -// -// return 0; -//} - -#include -#include -#include - -#include -#include -#include - -void add_proc(int *c, int *a, int *b) { - *c = *a + *b; -} - -void test_proc(){ - int a = 0; - int b = 1; - - auto start = std::chrono::system_clock::now(); - - for (int i = 0; i < 1000000; ++i) { - add_proc(&a, &a, &b); - } - - auto end = std::chrono::system_clock::now(); - - std::chrono::duration diff = end - start; - - printf("proc: %d: 1B in %.3f micro\n", a, diff.count()); -} - -__global__ -void add_gpu(int *c, int *a, int *b) { - *c = *a + *b; -} - -void test_gpu(){ - thrust::device_vector vals(2, 0); - vals[0] = 0; - vals[1] = 1; - printf(" gpu: %d: 1B in %.3f micro\n", vals[0], 0.0f); - - int *a = thrust::raw_pointer_cast(&vals[0]); - int *b = thrust::raw_pointer_cast(&vals[1]); - - add_gpu<<<1, 1>>>(a, a, a); - - printf(" gpu: %d: 1B in %.3f micro\n", vals[0], 0.0f); -} - -int main(int argc, char *argv[]) { - test_proc(); - test_gpu(); -} -