From eba179f031f7b07c27f7a4b4e7d029db20687d00 Mon Sep 17 00:00:00 2001 From: "Ma, Jiangnan" Date: Sun, 5 Mar 2023 21:03:39 +0800 Subject: [PATCH 1/3] start --- csrc/operators/.conv.cpp.swp | Bin 0 -> 12288 bytes csrc/operators/conv.cpp | 9 +++++++++ csrc/operators/gemm.cpp | 0 csrc/operators/im2col.cpp | 0 csrc/operators/softmax.cpp | 0 csrc/operators/t_low.cpp | 0 csrc/operators/transform.cpp | 0 7 files changed, 9 insertions(+) create mode 100644 csrc/operators/.conv.cpp.swp create mode 100644 csrc/operators/conv.cpp create mode 100644 csrc/operators/gemm.cpp create mode 100644 csrc/operators/im2col.cpp create mode 100644 csrc/operators/softmax.cpp create mode 100644 csrc/operators/t_low.cpp create mode 100644 csrc/operators/transform.cpp diff --git a/csrc/operators/.conv.cpp.swp b/csrc/operators/.conv.cpp.swp new file mode 100644 index 0000000000000000000000000000000000000000..a624e65702ec5b7f9009e150f3404d297bab1582 GIT binary patch literal 12288 zcmeI&F-yZh7zW_44i17Sy31)nD%hr}h#e%LE_F~`s-s*lX+4|fVsfd2RDY)~?&3di z@k>b&BnSnU!h7&?T=Lyr@@yg3YhIsUh<3vzZtFzvgD*vgoyzhD(MaBF84aTR)?aN_ zSHJ9@x$f0TM<11zKhFxC8Wd*d2tWV=5P$##AOHafKmY;|fB*y*P(b=bTWdr;PX7OY_Wl3K<2TMLXUxesmXmNE zI6h}OX93?Cj|>3_KmY;|fB*y_009U<00I#Be}M_<$cmBFQEg8=5lwiDaiI8|`*G3r zLnE!{?TY-^y9qO^O?2DxYo%2}M{#ENMfuIgKo9Qhbf2n@RG9gJD7NwF=ZZF|O#(Uc F=o{&>XD$E$ literal 0 HcmV?d00001 diff --git a/csrc/operators/conv.cpp b/csrc/operators/conv.cpp new file mode 100644 index 0000000..4503146 --- /dev/null +++ b/csrc/operators/conv.cpp @@ -0,0 +1,9 @@ +#include +#include + +vector>& convolution_2d(vector> input, vector> weight) { + +} + +int main() { +} diff --git a/csrc/operators/gemm.cpp b/csrc/operators/gemm.cpp new file mode 100644 index 0000000..e69de29 diff --git a/csrc/operators/im2col.cpp b/csrc/operators/im2col.cpp new file mode 100644 index 0000000..e69de29 diff --git a/csrc/operators/softmax.cpp b/csrc/operators/softmax.cpp new file mode 100644 index 0000000..e69de29 diff --git a/csrc/operators/t_low.cpp b/csrc/operators/t_low.cpp new file mode 100644 index 0000000..e69de29 diff --git a/csrc/operators/transform.cpp b/csrc/operators/transform.cpp new file mode 100644 index 0000000..e69de29 From 9be820ae23a9c05d85086370b46d2ef7568c256e Mon Sep 17 00:00:00 2001 From: "Ma, Jiangnan" Date: Sun, 17 Sep 2023 00:16:28 +0800 Subject: [PATCH 2/3] update --- csrc/operators/.conv.cpp.swp | Bin 12288 -> 0 bytes csrc/operators/conv.cpp | 21 ++++++++++++++++++- csrc/operators/gemm.cpp | 0 csrc/operators/gemm/a.out | Bin 0 -> 18928 bytes csrc/operators/gemm/gemm | Bin 0 -> 19344 bytes csrc/operators/gemm/gemm.cpp | 31 +++++++++++++++++++++++++++ csrc/operators/gemm/test_lz.cpp | 1 + csrc/operators/gemm/test_sy.cpp | 36 ++++++++++++++++++++++++++++++++ 8 files changed, 88 insertions(+), 1 deletion(-) delete mode 100644 csrc/operators/.conv.cpp.swp delete mode 100644 csrc/operators/gemm.cpp create mode 100755 csrc/operators/gemm/a.out create mode 100755 csrc/operators/gemm/gemm create mode 100644 csrc/operators/gemm/gemm.cpp create mode 100644 csrc/operators/gemm/test_lz.cpp create mode 100644 csrc/operators/gemm/test_sy.cpp diff --git a/csrc/operators/.conv.cpp.swp b/csrc/operators/.conv.cpp.swp deleted file mode 100644 index a624e65702ec5b7f9009e150f3404d297bab1582..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI&F-yZh7zW_44i17Sy31)nD%hr}h#e%LE_F~`s-s*lX+4|fVsfd2RDY)~?&3di z@k>b&BnSnU!h7&?T=Lyr@@yg3YhIsUh<3vzZtFzvgD*vgoyzhD(MaBF84aTR)?aN_ zSHJ9@x$f0TM<11zKhFxC8Wd*d2tWV=5P$##AOHafKmY;|fB*y*P(b=bTWdr;PX7OY_Wl3K<2TMLXUxesmXmNE zI6h}OX93?Cj|>3_KmY;|fB*y_009U<00I#Be}M_<$cmBFQEg8=5lwiDaiI8|`*G3r zLnE!{?TY-^y9qO^O?2DxYo%2}M{#ENMfuIgKo9Qhbf2n@RG9gJD7NwF=ZZF|O#(Uc F=o{&>XD$E$ diff --git a/csrc/operators/conv.cpp b/csrc/operators/conv.cpp index 4503146..137df01 100644 --- a/csrc/operators/conv.cpp +++ b/csrc/operators/conv.cpp @@ -1,8 +1,27 @@ #include #include -vector>& convolution_2d(vector> input, vector> weight) { +std::vector >& convolution_2d(std::vector > input, std::vector > weight) { + int h_input = input.size(); + int w_input = input[0].size(); + int h_weight = weight.size(); + int w_weight = weight[0].size(); + int w_pad = (w_weight / 2); + int h_pad = (h_weight / 2) + int h_output = h_input - 2 * h_pad; + int w_output = w_input - 2 * w_pad; + std::vector > output(h_output, std::vector(w_output, 0)); + for (int i(0); i < h_output; ++i) { + for (int j(0); j < w_output; ++j) { + // filter + for (int wi(0); wi < h_weight; ++wi) { + for (int wj(0); wj < w_weight; ++wj) { + output[i][j] += weight[wi][wj] * input[wi + i][wj + j]; + } + } + } + } } int main() { diff --git a/csrc/operators/gemm.cpp b/csrc/operators/gemm.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/csrc/operators/gemm/a.out b/csrc/operators/gemm/a.out new file mode 100755 index 0000000000000000000000000000000000000000..0fb089b83d2735e464853c4af13d3e75c323a9b2 GIT binary patch literal 18928 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 literal 0 HcmV?d00001 diff --git a/csrc/operators/gemm/gemm.cpp b/csrc/operators/gemm/gemm.cpp new file mode 100644 index 0000000..3476600 --- /dev/null +++ b/csrc/operators/gemm/gemm.cpp @@ -0,0 +1,31 @@ +#include +#include +#include + +template +struct matrix_2d { + matrix_2d(std::vector> &data) { + this->data = data; + h = data.size(); + w = data[0].size(); + } + int h; + int w; + std::vector> data; +}; + +template +type & inner_product() { +} + +template +matrix_2d & gemm2d(matrix_2d & a, matrix_2d & b, matrix_2d & result) { + +}; + +int main() { + std::vector> tmp(2, std::vector{1, 1}); + auto a = matrix_2d(tmp); + std::cout << a.h << std::endl; + return 0; +} diff --git a/csrc/operators/gemm/test_lz.cpp b/csrc/operators/gemm/test_lz.cpp new file mode 100644 index 0000000..0ddf2ba --- /dev/null +++ b/csrc/operators/gemm/test_lz.cpp @@ -0,0 +1 @@ +i diff --git a/csrc/operators/gemm/test_sy.cpp b/csrc/operators/gemm/test_sy.cpp new file mode 100644 index 0000000..d23abb9 --- /dev/null +++ b/csrc/operators/gemm/test_sy.cpp @@ -0,0 +1,36 @@ +#include +#include +using namespace sycl; // (optional) avoids need for "sycl::" before SYCL names + +int main() { + int data[1024]; // Allocate data to be worked on + + // Create a default queue to enqueue work to the default device + queue myQueue; + + // By wrapping all the SYCL work in a {} block, we ensure + // all SYCL tasks must complete before exiting the block, + // because the destructor of resultBuf will wait + { + // Wrap our data variable in a buffer + buffer resultBuf { data, range<1> { 1024 } }; + + // Create a command group to issue commands to the queue + myQueue.submit([&](handler& cgh) { + // Request write access to the buffer without initialization + accessor writeResult { resultBuf, cgh, write_only, no_init }; + + // Enqueue a parallel_for task with 1024 work-items + cgh.parallel_for(1024, [=](id<1> idx) { + // Initialize each buffer element with its own rank number starting at 0 + writeResult[idx] = idx; + }); // End of the kernel function + }); // End of our commands for this queue + } // End of scope, so we wait for work producing resultBuf to complete + + // Print result + for (int i = 0; i < 1024; i++) + std::cout << "data[" << i << "] = " << data[i] << std::endl; + + return 0; +} From e85c643e32e7136562b557d9a220148428426d50 Mon Sep 17 00:00:00 2001 From: "Ma, Jiangnan" Date: Sun, 17 Sep 2023 00:24:03 +0800 Subject: [PATCH 3/3] update --- README.md | 4 +++- .../high_performance_operators}/conv.cpp | 0 .../high_performance_operators}/gemm/a.out | Bin .../high_performance_operators}/gemm/gemm | Bin .../high_performance_operators}/gemm/gemm.cpp | 0 .../high_performance_operators}/gemm/test_lz.cpp | 0 .../high_performance_operators}/gemm/test_sy.cpp | 0 .../high_performance_operators}/im2col.cpp | 0 .../high_performance_operators}/softmax.cpp | 0 .../high_performance_operators}/t_low.cpp | 0 .../high_performance_operators}/transform.cpp | 0 11 files changed, 3 insertions(+), 1 deletion(-) rename {csrc/operators => artificial_intelligence/high_performance_operators}/conv.cpp (100%) rename {csrc/operators => artificial_intelligence/high_performance_operators}/gemm/a.out (100%) rename {csrc/operators => artificial_intelligence/high_performance_operators}/gemm/gemm (100%) rename {csrc/operators => artificial_intelligence/high_performance_operators}/gemm/gemm.cpp (100%) rename {csrc/operators => artificial_intelligence/high_performance_operators}/gemm/test_lz.cpp (100%) rename {csrc/operators => artificial_intelligence/high_performance_operators}/gemm/test_sy.cpp (100%) rename {csrc/operators => artificial_intelligence/high_performance_operators}/im2col.cpp (100%) rename {csrc/operators => artificial_intelligence/high_performance_operators}/softmax.cpp (100%) rename {csrc/operators => artificial_intelligence/high_performance_operators}/t_low.cpp (100%) rename {csrc/operators => artificial_intelligence/high_performance_operators}/transform.cpp (100%) diff --git a/README.md b/README.md index d1b4947..d1388ab 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ -# Blocks \ No newline at end of file +# Blocks + +This is a collection of manipulation of concetp of computer engineering. diff --git a/csrc/operators/conv.cpp b/artificial_intelligence/high_performance_operators/conv.cpp similarity index 100% rename from csrc/operators/conv.cpp rename to artificial_intelligence/high_performance_operators/conv.cpp diff --git a/csrc/operators/gemm/a.out b/artificial_intelligence/high_performance_operators/gemm/a.out similarity index 100% rename from csrc/operators/gemm/a.out rename to artificial_intelligence/high_performance_operators/gemm/a.out diff --git a/csrc/operators/gemm/gemm b/artificial_intelligence/high_performance_operators/gemm/gemm similarity index 100% rename from csrc/operators/gemm/gemm rename to artificial_intelligence/high_performance_operators/gemm/gemm diff --git a/csrc/operators/gemm/gemm.cpp b/artificial_intelligence/high_performance_operators/gemm/gemm.cpp similarity index 100% rename from csrc/operators/gemm/gemm.cpp rename to artificial_intelligence/high_performance_operators/gemm/gemm.cpp diff --git a/csrc/operators/gemm/test_lz.cpp b/artificial_intelligence/high_performance_operators/gemm/test_lz.cpp similarity index 100% rename from csrc/operators/gemm/test_lz.cpp rename to artificial_intelligence/high_performance_operators/gemm/test_lz.cpp diff --git a/csrc/operators/gemm/test_sy.cpp b/artificial_intelligence/high_performance_operators/gemm/test_sy.cpp similarity index 100% rename from csrc/operators/gemm/test_sy.cpp rename to artificial_intelligence/high_performance_operators/gemm/test_sy.cpp diff --git a/csrc/operators/im2col.cpp b/artificial_intelligence/high_performance_operators/im2col.cpp similarity index 100% rename from csrc/operators/im2col.cpp rename to artificial_intelligence/high_performance_operators/im2col.cpp diff --git a/csrc/operators/softmax.cpp b/artificial_intelligence/high_performance_operators/softmax.cpp similarity index 100% rename from csrc/operators/softmax.cpp rename to artificial_intelligence/high_performance_operators/softmax.cpp diff --git a/csrc/operators/t_low.cpp b/artificial_intelligence/high_performance_operators/t_low.cpp similarity index 100% rename from csrc/operators/t_low.cpp rename to artificial_intelligence/high_performance_operators/t_low.cpp diff --git a/csrc/operators/transform.cpp b/artificial_intelligence/high_performance_operators/transform.cpp similarity index 100% rename from csrc/operators/transform.cpp rename to artificial_intelligence/high_performance_operators/transform.cpp