From a0a718f9fb721be2b3677fc136ea4434b4b806d0 Mon Sep 17 00:00:00 2001 From: DingoBits <107956274+DingoBits@users.noreply.github.com> Date: Thu, 3 Aug 2023 13:22:25 -0700 Subject: [PATCH 1/7] refactor: add leading underscore in asm for mach-o linking --- CoreClockChecker/BoostClockChecker_arm.s | 3 + MemoryLatency/MemoryLatency_arm.s | 15 +++ instructionrate/arm_instructionrate.s | 113 ++++++++++++++++++++++- 3 files changed, 128 insertions(+), 3 deletions(-) diff --git a/CoreClockChecker/BoostClockChecker_arm.s b/CoreClockChecker/BoostClockChecker_arm.s index 1fdd912..8746b6d 100644 --- a/CoreClockChecker/BoostClockChecker_arm.s +++ b/CoreClockChecker/BoostClockChecker_arm.s @@ -1,7 +1,10 @@ .text .global clktsctest +.global _clktsctest + /* x0 = iterations, return elapsed TSC in x0 */ +_clktsctest: clktsctest: sub sp, sp, #0x40 stp x10, x11, [sp, #0x10] diff --git a/MemoryLatency/MemoryLatency_arm.s b/MemoryLatency/MemoryLatency_arm.s index d0e99df..8c449f9 100644 --- a/MemoryLatency/MemoryLatency_arm.s +++ b/MemoryLatency/MemoryLatency_arm.s @@ -8,9 +8,18 @@ .global stlftest128 .global matchedstlftest +.global _latencytest +.global _longpatternlatencytest +.global _preplatencyarr +.global _stlftest +.global _stlftest32 +.global _stlftest128 +.global _matchedstlftest + /* x0 = ptr to arr x1 = arr len convert values in array from array indexes to pointers */ +_preplatencyarr: preplatencyarr: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -30,6 +39,7 @@ preplatencyarr_loop: /* x0 = iteration count x1 = ptr to arr do pointer chasing for specified iteration count */ +_latencytest: latencytest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -49,6 +59,7 @@ latencytest_loop: x1 = ptr to arr do pointer chasing with longer pattern, given different patterns within each cacheline */ +_longpatternlatencytest: longpatternlatencytest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -86,6 +97,7 @@ longpatternlatencytest_loop_inc: /* x0 = iteration count x1 = ptr to arr. first 32-bit int = store offset, second = load offset */ +_stlftest: stlftest: sub sp, sp, #0x40 stp x14, x15, [sp, #0x10] @@ -114,6 +126,7 @@ stlftest_loop: add sp, sp, #0x40 ret +_stlftest32: stlftest32: sub sp, sp, #0x40 stp x14, x15, [sp, #0x10] @@ -144,6 +157,7 @@ stlftest32_loop: /* x0 = iteration count x1 = ptr to arr. first 32-bit int = store offset, second = load offset */ +_stlftest128: stlftest128: sub sp, sp, #0x40 stp x14, x15, [sp, #0x10] @@ -172,6 +186,7 @@ stlftest128_loop: add sp, sp, #0x40 ret +_matchedstlftest: matchedstlftest: sub sp, sp, #0x40 stp x14, x15, [sp, #0x10] diff --git a/instructionrate/arm_instructionrate.s b/instructionrate/arm_instructionrate.s index 00a2e95..70e9e41 100644 --- a/instructionrate/arm_instructionrate.s +++ b/instructionrate/arm_instructionrate.s @@ -17,6 +17,23 @@ .global rortest .global mixmulrortest +.global _clktest +.global _addtest +.global _addmultest +.global _addmul21test +.global _mixaddjmp21test +.global _mul32test +.global _mul64test +.global _latmul64test +.global _noptest +.global _fusejmptest +.global _jmptest +.global _mixmuljmptest +.global _mixmuljmptest21 +.global _mixaddjmptest +.global _rortest +.global _mixmulrortest + .global vecadd128test .global latvecadd128test .global vecmul128test @@ -43,6 +60,32 @@ .global scalarfmatest .global latscalarfmatest +.global _vecadd128test +.global _latvecadd128test +.global _vecmul128test +.global _latvecmul128test +.global _mixvecaddmul128test +.global _faddtest +.global _latfaddtest +.global _latfmultest +.global _latvecfadd128test +.global _latvecfmul128test +.global _vecfadd128test +.global _vecfmul128test +.global _mixvecfaddfmul128test +.global _mixaddvecadd128test +.global _mix3to1addvecadd128test +.global _mix1to1addvecadd128test +.global _mixmulvecmultest +.global _mixvecmulfmultest +.global _mixvecaddfaddtest +.global _mixjmpvecaddtest +.global _mixjmpvecmultest +.global _vecfma128test +.global _latvecfma128test +.global _scalarfmatest +.global _latscalarfmatest + .global mixvecfaddfma128test .global mixvecfmulfma128test .global loadtest @@ -51,6 +94,14 @@ .global vecloadtest .global vecstoretest +.global _mixvecfaddfma128test +.global _mixvecfmulfma128test +.global _loadtest +.global _mixloadstoretest +.global _mix21loadstoretest +.global _vecloadtest +.global _vecstoretest + //renamer tests .global indepmovtest .global depmovtest @@ -58,7 +109,14 @@ .global movzerotest .global subzerotest +.global _indepmovtest +.global _depmovtest +.global _xorzerotest +.global _movzerotest +.global _subzerotest + /* x0 = arg = iteration count. all iteration counts must be divisible by 10 */ +_clktest: clktest: sub sp, sp, #0x30 stp x14, x15, [sp, #0x10] @@ -94,6 +152,7 @@ clktest_loop: add sp, sp, #0x30 ret +_noptest: noptest: sub sp, sp, #0x30 stp x14, x15, [sp, #0x10] @@ -141,6 +200,7 @@ noptest_loop: add sp, sp, #0x30 ret +_addtest: addtest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -194,6 +254,7 @@ addtest_loop: add sp, sp, #0x50 ret +_addmultest: addmultest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -238,6 +299,7 @@ addmultest_loop: add sp, sp, #0x50 ret +_addmul21test: addmul21test: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -287,7 +349,7 @@ addmul21test_loop: add sp, sp, #0x50 ret - +_mul32test: mul32test: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -332,6 +394,7 @@ mul32test_loop: add sp, sp, #0x50 ret +_mul64test: mul64test: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -376,6 +439,7 @@ mul64test_loop: add sp, sp, #0x50 ret +_latmul64test: latmul64test: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -416,6 +480,7 @@ latmul64test_loop: ret /* needs an additional parameter passed in x1 - ptr to array of 4 floats */ +_vecadd128test: vecadd128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -453,6 +518,7 @@ vecadd128test_loop: add sp, sp, #0x20 ret +_latvecadd128test: latvecadd128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -485,6 +551,7 @@ latvecadd128test_loop: add sp, sp, #0x20 ret +_faddtest: faddtest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -522,6 +589,7 @@ faddtest_loop: add sp, sp, #0x20 ret +_latfaddtest: latfaddtest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -554,6 +622,7 @@ latfaddtest_loop: add sp, sp, #0x20 ret +_latfmultest: latfmultest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -586,6 +655,7 @@ latfmultest_loop: add sp, sp, #0x20 ret +_latvecmul128test: latvecmul128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -618,6 +688,7 @@ latvecmul128test_loop: add sp, sp, #0x20 ret +_vecmul128test: vecmul128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -655,6 +726,7 @@ vecmul128test_loop: add sp, sp, #0x20 ret +_scalarfmatest: scalarfmatest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -696,6 +768,7 @@ scalarfmatest_loop: add sp, sp, #0x20 ret +_latscalarfmatest: latscalarfmatest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -728,6 +801,7 @@ latscalarfmatest_loop: add sp, sp, #0x20 ret +_vecfma128test: vecfma128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -769,6 +843,7 @@ vecfma128test_loop: add sp, sp, #0x20 ret +_mixvecfmulfma128test: mixvecfmulfma128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -810,6 +885,7 @@ mixvecfmulfma128test_loop: add sp, sp, #0x20 ret +_mixvecfaddfma128test: mixvecfaddfma128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -851,6 +927,7 @@ mixvecfaddfma128test_loop: add sp, sp, #0x20 ret +_latvecfma128test: latvecfma128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -883,6 +960,7 @@ latvecfma128test_loop: add sp, sp, #0x20 ret +_vecfadd128test: vecfadd128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -920,6 +998,7 @@ vecfadd128test_loop: add sp, sp, #0x20 ret +_latvecfadd128test: latvecfadd128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -952,6 +1031,7 @@ latvecfadd128test_loop: add sp, sp, #0x20 ret +_vecfmul128test: vecfmul128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -989,6 +1069,7 @@ vecfmul128test_loop: add sp, sp, #0x20 ret +_latvecfmul128test: latvecfmul128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -1021,6 +1102,7 @@ latvecfmul128test_loop: add sp, sp, #0x20 ret +_mixvecfaddfmul128test: mixvecfaddfmul128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -1060,6 +1142,7 @@ mixvecfaddfmul128test_loop: add sp, sp, #0x20 ret +_mixvecaddmul128test: mixvecaddmul128test: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -1099,6 +1182,7 @@ mixvecaddmul128test_loop: add sp, sp, #0x20 ret +_mixaddvecadd128test: mixaddvecadd128test: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -1161,6 +1245,7 @@ mixaddvecadd128test_loop: add sp, sp, #0x50 ret +_mix3to1addvecadd128test: mix3to1addvecadd128test: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -1233,6 +1318,7 @@ mix3to1addvecadd128test_loop: add sp, sp, #0x50 ret +_mix1to1addvecadd128test: mix1to1addvecadd128test: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -1310,6 +1396,7 @@ mix1to1addvecadd128test_loop: add sp, sp, #0x50 ret +_mixmulvecmultest: mixmulvecmultest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -1364,6 +1451,7 @@ mixmulvecmultest_loop: add sp, sp, #0x50 ret +_mixvecmulfmultest: mixvecmulfmultest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -1401,6 +1489,7 @@ mixvecmulfmultest_loop: add sp, sp, #0x20 ret +_mixvecaddfaddtest: mixvecaddfaddtest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -1438,6 +1527,7 @@ mixvecaddfaddtest_loop: add sp, sp, #0x20 ret +_mixjmpvecaddtest: mixjmpvecaddtest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -1485,6 +1575,7 @@ mixjmpvecaddtest_jellydonut: add sp, sp, #0x20 ret +_mixjmpvecmultest: mixjmpvecmultest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -1522,6 +1613,7 @@ mixjmpvecmultest_jellydonut: add sp, sp, #0x20 ret +_vecloadtest: vecloadtest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -1553,6 +1645,7 @@ vecloadtest_loop: add sp, sp, #0x20 ret +_vecstoretest: vecstoretest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -1589,6 +1682,7 @@ vecstoretest_loop: add sp, sp, #0x20 ret +_loadtest: loadtest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -1626,6 +1720,7 @@ loadtest_loop: add sp, sp, #0x50 ret +_mixloadstoretest: mixloadstoretest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -1663,6 +1758,7 @@ mixloadstoretest_loop: add sp, sp, #0x50 ret +_mix21loadstoretest: mix21loadstoretest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -1710,6 +1806,7 @@ mix21loadstoretest_loop: add sp, sp, #0x50 ret +_jmptest: jmptest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -1742,6 +1839,7 @@ jmptest_jellydonut: add sp, sp, #0x20 ret +_fusejmptest: fusejmptest: sub sp, sp, #0x20 stp x14, x15, [sp, #0x10] @@ -1772,6 +1870,7 @@ fusejmptest_jellydonut: add sp, sp, #0x20 ret +_mixmuljmptest: mixmuljmptest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -1817,6 +1916,7 @@ mixmuljmptest_jellydonut: add sp, sp, #0x50 ret +_mixmuljmptest21: mixmuljmptest21: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -1872,6 +1972,7 @@ mixmuljmptest21_jellydonut: add sp, sp, #0x50 ret +_mixaddjmptest: mixaddjmptest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -1917,6 +2018,7 @@ mixaddjmptest_jellydonut: add sp, sp, #0x50 ret +_mixaddjmp21test: mixaddjmp21test: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -1963,7 +2065,7 @@ mixaddjmp21test_jellydonut: add sp, sp, #0x50 ret - +_mixmulrortest: mixmulrortest: sub sp, sp, #0x80 stp x14, x15, [sp, #0x10] @@ -2020,7 +2122,7 @@ mixmulrortest_loop: add sp, sp, #0x80 ret - +_rortest: rortest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -2066,6 +2168,7 @@ rortest_jellydonut: add sp, sp, #0x50 ret +_depmovtest: depmovtest: sub sp, sp, #0x40 stp x14, x15, [sp, #0x10] @@ -2103,6 +2206,7 @@ depmovtest_loop: add sp, sp, #0x40 ret +_indepmovtest: indepmovtest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -2142,6 +2246,7 @@ indepmovtest_loop: add sp, sp, #0x50 ret +_xorzerotest: xorzerotest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -2180,6 +2285,7 @@ xorzerotest_loop: add sp, sp, #0x50 ret +_movzerotest: movzerotest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] @@ -2218,6 +2324,7 @@ movzerotest_loop: add sp, sp, #0x50 ret +_subzerotest: subzerotest: sub sp, sp, #0x50 stp x14, x15, [sp, #0x10] From 476e55c4a297ac335c15621b0b1ff8921433e472 Mon Sep 17 00:00:00 2001 From: DingoBits <107956274+DingoBits@users.noreply.github.com> Date: Thu, 3 Aug 2023 13:25:29 -0700 Subject: [PATCH 2/7] refactor: 4-byte alignment for aarch64 functions --- CoreClockChecker/BoostClockChecker_arm.s | 2 ++ MemoryBandwidth/MemoryBandwidth_arm.s | 2 ++ MemoryLatency/MemoryLatency_arm.s | 2 ++ instructionrate/arm_instructionrate.s | 2 ++ 4 files changed, 8 insertions(+) diff --git a/CoreClockChecker/BoostClockChecker_arm.s b/CoreClockChecker/BoostClockChecker_arm.s index 8746b6d..ba6dac5 100644 --- a/CoreClockChecker/BoostClockChecker_arm.s +++ b/CoreClockChecker/BoostClockChecker_arm.s @@ -3,6 +3,8 @@ .global _clktsctest +.balign 4 + /* x0 = iterations, return elapsed TSC in x0 */ _clktsctest: clktsctest: diff --git a/MemoryBandwidth/MemoryBandwidth_arm.s b/MemoryBandwidth/MemoryBandwidth_arm.s index fad94bc..dcdc65c 100644 --- a/MemoryBandwidth/MemoryBandwidth_arm.s +++ b/MemoryBandwidth/MemoryBandwidth_arm.s @@ -18,6 +18,8 @@ .global _flush_icache .global _readbankconflict +.balign 4 + /* x0 = ptr to array (was rcx) * x1 = arr length (was rdx) * x2 = iterations (was r8) diff --git a/MemoryLatency/MemoryLatency_arm.s b/MemoryLatency/MemoryLatency_arm.s index 8c449f9..028b5b6 100644 --- a/MemoryLatency/MemoryLatency_arm.s +++ b/MemoryLatency/MemoryLatency_arm.s @@ -16,6 +16,8 @@ .global _stlftest128 .global _matchedstlftest +.balign 4 + /* x0 = ptr to arr x1 = arr len convert values in array from array indexes to pointers */ diff --git a/instructionrate/arm_instructionrate.s b/instructionrate/arm_instructionrate.s index 70e9e41..2750ba0 100644 --- a/instructionrate/arm_instructionrate.s +++ b/instructionrate/arm_instructionrate.s @@ -115,6 +115,8 @@ .global _movzerotest .global _subzerotest +.balign 4 + /* x0 = arg = iteration count. all iteration counts must be divisible by 10 */ _clktest: clktest: From 6a86a91c01f5d816232930a8f521b27dc14657fa Mon Sep 17 00:00:00 2001 From: DingoBits <107956274+DingoBits@users.noreply.github.com> Date: Thu, 3 Aug 2023 13:31:08 -0700 Subject: [PATCH 3/7] refactor: add conditional for numa-related code --- MemoryBandwidth/MemoryBandwidth.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/MemoryBandwidth/MemoryBandwidth.c b/MemoryBandwidth/MemoryBandwidth.c index ee883a4..5a0b744 100644 --- a/MemoryBandwidth/MemoryBandwidth.c +++ b/MemoryBandwidth/MemoryBandwidth.c @@ -18,9 +18,10 @@ #include #include #include -#include #include + #ifdef NUMA +#include #include #endif @@ -39,7 +40,9 @@ typedef struct BandwidthTestThreadData { uint64_t start; float* arr; float bw; // written to by the thread + #ifdef NUMA cpu_set_t cpuset; // if numa set, will set affinity + #endif } BandwidthTestThreadData; float MeasureBw(uint64_t sizeKb, uint64_t iterations, uint64_t threads, int shared, int nopBytes, int coreNode, int memNode); From 7fef74265e0c27e85eea108054e944e06cc018d1 Mon Sep 17 00:00:00 2001 From: DingoBits <107956274+DingoBits@users.noreply.github.com> Date: Thu, 3 Aug 2023 13:33:43 -0700 Subject: [PATCH 4/7] fix: compile madvise-related code for linux only --- MemoryLatency/MemoryLatency.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MemoryLatency/MemoryLatency.c b/MemoryLatency/MemoryLatency.c index cc5fa8f..5dd2957 100644 --- a/MemoryLatency/MemoryLatency.c +++ b/MemoryLatency/MemoryLatency.c @@ -204,7 +204,7 @@ int main(int argc, char* argv[]) { fprintf(stderr, "Usage: [-test ] [-maxsizemb ] [-iter Date: Thu, 3 Aug 2023 13:34:10 -0700 Subject: [PATCH 5/7] fix: typo in latencytest --- MemoryLatency/MemoryLatency.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/MemoryLatency/MemoryLatency.c b/MemoryLatency/MemoryLatency.c index 5dd2957..7acb38a 100644 --- a/MemoryLatency/MemoryLatency.c +++ b/MemoryLatency/MemoryLatency.c @@ -17,6 +17,7 @@ #include #include #endif + #include #include @@ -595,10 +596,11 @@ float RunAsmTest(uint32_t size_kb, uint32_t iterations, uint32_t *preallocatedAr // Run test gettimeofday(&startTv, &startTz); #ifdef LONGPATTERN - if (longpattern) sum = longpatternlatencytest(scaled_iterations, A); - else - #endif + if (longpattern) + sum = longpatternlatencytest(scaled_iterations, A); + else sum = latencytest(scaled_iterations, A); + #endif gettimeofday(&endTv, &endTz); uint64_t time_diff_ms = 1000 * (endTv.tv_sec - startTv.tv_sec) + ((endTv.tv_usec - startTv.tv_usec) / 1000); float latency = 1e6 * (float)time_diff_ms / (float)scaled_iterations; From 147c41ab332bff2fc5dc75790ed1995705d279fb Mon Sep 17 00:00:00 2001 From: DingoBits <107956274+DingoBits@users.noreply.github.com> Date: Thu, 3 Aug 2023 13:39:45 -0700 Subject: [PATCH 6/7] fix: explicitly declare checkExtensionSupport --- GpuMemLatency/instruction_rate.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/GpuMemLatency/instruction_rate.c b/GpuMemLatency/instruction_rate.c index 2c3c264..6aa6b0d 100644 --- a/GpuMemLatency/instruction_rate.c +++ b/GpuMemLatency/instruction_rate.c @@ -214,6 +214,8 @@ float instruction_rate_test(cl_context context, float4_element_count, a_mem_obj, result_obj, A, result, opsPerIteration); fprintf(stderr, "INT8 G Multiplies/sec: %f\n", int8_mul_rate); + short checkExtensionSupport(const char *extension_name); + if (checkExtensionSupport("cl_khr_fp64")) { fp64_instruction_rate_test(context, command_queue, thread_count, local_size, chase_iterations, float4_element_count, a_mem_obj, result_obj, A, result); @@ -462,4 +464,4 @@ float fp16_instruction_rate_test(cl_context context, fprintf(stderr, "FP16 G FMAs/sec: %f : %f FP16 GFLOPs\n", gOpsPerSec, gOpsPerSec * 2); return gOpsPerSec; -} +} From 7d5de37838b13c85d8c3a979e152e9e80826f88c Mon Sep 17 00:00:00 2001 From: DingoBits <107956274+DingoBits@users.noreply.github.com> Date: Thu, 3 Aug 2023 13:39:59 -0700 Subject: [PATCH 7/7] chore: remove old binary --- instructionrate/arm_instructionrate | Bin 31536 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 instructionrate/arm_instructionrate diff --git a/instructionrate/arm_instructionrate b/instructionrate/arm_instructionrate deleted file mode 100755 index 452fdef64e18695e2c07f21bd2823555f8c6533e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31536 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