|
|
- //
- // Created by GentleCold on 2022/11/7.
- //
-
- #ifndef CSAPPLEARNING_MOUNTAIN_H
- #define CSAPPLEARNING_MOUNTAIN_H
-
- #include <stdio.h>
-
- #define MAXELEMS 10000
- long data[MAXELEMS];
-
- int read(int elems, int stride) {
- long i, sx2 = stride * 2, sx3 = stride * 3, sx4 = stride * 4;
- long acc0 = 0, acc1 = 0, acc2 = 0, acc3 = 0;
- long length = elems;
- long limit = length - sx4;
-
- for (i = 0; i < limit; i += sx4) {
- acc0 += data[i];
- acc1 += data[i + stride];
- acc2 += data[i + sx2];
- acc3 += data[i + sx3];
- }
-
- for (; i < length; i += stride) {
- acc0 += data[i];
- }
-
- return ((acc0 + acc1) + (acc2 + acc3));
- }
-
- double run(int size, int stride, double Mhz) {
- double cycles;
- int elems = size / sizeof(double);
-
- read(elems, stride);
- cycles = fcyc2();
- }
-
- int mountain() {
-
- }
-
- #endif //CSAPPLEARNING_MOUNTAIN_H
|