ນີ້ແມ່ນຄໍາສັ່ງ likwid-bench ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
likwid-bench - ຊຸດ benchmark ລະດັບຕ່ໍາແລະກອບ microbenchmarking
ສະຫຼຸບສັງລວມ
likwid-bench [-hap] [-l ] [-i ] [-g ] [-t
] [-w ]
ລາຍລະອຽດ
likwid-bench ເປັນຊຸດມາດຕະຖານສໍາລັບມາດຕະຖານລະດັບຕ່ໍາ (ປະກອບ) ເພື່ອວັດແທກ
ແບນວິດແລະການຖ່າຍທອດຄໍາແນະນໍາສໍາລັບລະຫັດຄໍາແນະນໍາສະເພາະໃນລະບົບ x86. ໄດ້
ປະຈຸບັນປະກອບມີລະຫັດ benchmark ປະກອບມີຮູບແບບການເຂົ້າເຖິງຂໍ້ມູນທົ່ວໄປເຊັ່ນ: ການໂຫຼດແລະເກັບຮັກສາ
ແຕ່ຍັງມີການຄິດໄລ່ເຊັ່ນ vector triad ແລະຜົນລວມ. likwid-bench ລວມມີສະຖາປັດຕະຍະກໍາ
ມາດຕະຖານສະເພາະສໍາລັບ x86, x86_64 ແລະ x86 ສໍາລັບຕົວປະມວນຜົນ Intel Xeon Phi. ໄດ້
ຄ່າປະສິດທິພາບສາມາດຖືກຄິດໄລ່ໂດຍ likwid-bench ຫຼືວັດແທກໂດຍການປະຕິບັດ
counters ໂດຍການນໍາໃຊ້. likwid-perfctr ເປັນ wrapper ກັບ likwid-bench. ນີ້ຮຽກຮ້ອງໃຫ້ມີການກໍ່ສ້າງ
likwid-bench. ດ້ວຍ Instrumentation ທີ່ສາມາດເປີດໃຊ້ໄດ້ໃນ config.mk.
OPTIONS
-h ພິມຂໍ້ຄວາມຊ່ວຍເຫຼືອໄປຫາຜົນຜະລິດມາດຕະຖານ, ຈາກນັ້ນອອກ.
-a ລາຍຊື່ລະຫັດມາດຕະຖານທີ່ມີຢູ່ສໍາລັບລະບົບປະຈຸບັນ.
-p ລາຍຊື່ໂດເມນກະທູ້ທີ່ມີຢູ່.
-l
ລາຍຊື່ຄຸນສົມບັດຂອງລະຫັດມາດຕະຖານ.
-i
ຈໍານວນການຊໍ້າຄືນເພື່ອປະຕິບັດພາຍໃນລະຫັດມາດຕະຖານ.
-t
ຊື່ຂອງລະຫັດມາດຕະຖານທີ່ຈະດໍາເນີນການ (ບັງຄັບ).
-g
ລະບຸຈໍານວນຂອງກຸ່ມເຮັດວຽກເພື່ອປະຕິບັດລະຫັດ benchmark ສຸດ (ບັງຄັບ).
-w
ລະບຸໂດເມນຄວາມສຳພັນ, ຈຳນວນກະທູ້ ແລະຂະໜາດຊຸດຂໍ້ມູນສຳລັບປັດຈຸບັນ
benchmarking run (ບັງຄັບ).
ກຸ່ມເຮັດວຽກ SYNTAX
: [: [: : ]] [- : ]
ມີຂະຫນາດໃນ kB, MB ຫຼື GB. ບ່ອນທີ່ thread domain ແມ່ນບ່ອນທີ່ threads ຖືກຈັດໃສ່. ຂະຫນາດແມ່ນ
ຂໍ້ມູນທັງຫມົດຂະຫນາດກໍານົດສໍາລັບມາດຕະຖານ. num_threads ກໍານົດຈໍານວນ threads ຖືກນໍາໃຊ້.
ກະທູ້ຖືກວາງຢູ່ສະ ເໝີ ໂດຍໃຊ້ນະໂຍບາຍທີ່ກະທັດຮັດໃນ likwid-bench. ນີ້ຫມາຍຄວາມວ່າຕໍ່
ເລີ່ມຕົ້ນກະທູ້ SMT ທັງໝົດຖືກໃຊ້. ທາງເລືອກທີ່ຄ້າຍຄືກັນກັບ syntax ທີ່ອີງໃສ່ການສະແດງອອກໃນ
likwid-pin ຂະຫນາດ chunk ແລະ stride ສາມາດສະຫນອງໃຫ້. ທາງເລືອກສໍາລັບທຸກໆການຖ່າຍທອດຫມາຍຄວາມວ່າ
array ການຈັດວາງສາມາດຄວບຄຸມໄດ້. ຕາມຄ່າເລີ່ມຕົ້ນ array ທັງໝົດແມ່ນຖືກຈັດໃສ່ໃນອັນດຽວກັນ
thread domain the threads are running in. ການຈັດວາງຂໍ້ມູນໃນໂດເມນທີ່ແຕກຕ່າງກັນສໍາລັບ
ທຸກໆກະແສຂອງກໍລະນີ benchmark (ຈໍານວນການຖ່າຍທອດສາມາດໄດ້ຮັບໂດຍ -l
ທາງເລືອກ) ໂດເມນທີ່ຈະຈັດວາງຂໍ້ມູນໃນສາມາດໄດ້ຮັບການລະບຸໄວ້. ການຖ່າຍທອດຫຼາຍອັນແມ່ນໝາຍຈຸດ
ແຍກ. ທັງການຈັດວາງແມ່ນໃຫ້ຫຼືສາຍນ້ໍາທັງຫມົດຕ້ອງໄດ້ຮັບການວາງໄວ້ຢ່າງຊັດເຈນ.
ກະລຸນາເບິ່ງຫນ້າ Wiki ໃນ http://code.google.com/p/likwid/wiki/LikwidBench ສໍາລັບການ
ລາຍລະອຽດເພີ່ມເຕີມ ແລະຕົວຢ່າງການນຳໃຊ້.
EXAMPLE
1. ດໍາເນີນການມາດຕະຖານການຄັດລອກດ້ວຍ 1000 iterations ໃນ socket 0 ທີ່ມີຂະຫນາດຊຸດຂໍ້ມູນທັງຫມົດ.
100kB.
likwid-bench -t ຄັດລອກ -i 1000 -g 1 -w S0:100kB
ນັບຕັ້ງແຕ່ບໍ່ມີ num_thread ແມ່ນໃຫ້ຢູ່ໃນການສະແດງອອກຂອງວຽກ, ແຕ່ລະຫຼັກຂອງ socket 0 ໄດ້ຮັບຫນຶ່ງ
ກະທູ້. ວຽກງານຖືກແບ່ງອອກລະຫວ່າງກະທູ້ທັງໝົດ.
2. ແລ່ນລະຫັດມາດຕະຖານ triad ກັບ 100 iterations ດ້ວຍ 2 threads ຢູ່ໃນເຕົ້າຮັບ 0 ແລະ a.
ຂະໜາດຂໍ້ມູນ 1 GB.
likwid-bench -t triad -i 100 -g 1 -w S0:1GB:2:1:2
ສົມມຸດວ່າ socket 0 ມີ 4 SMT threads, ຫນຶ່ງ thread ໄດ້ຖືກມອບຫມາຍໃຫ້ແຕ່ລະຫຼັກທາງດ້ານຮ່າງກາຍຂອງ
ເຕົ້າຮັບ 0.
3. ດໍາເນີນການມາດຕະຖານການປັບປຸງດ້ວຍ 1000 ຊໍ້າຄືນໃນຊັອກເກັດ 0 ທີ່ມີຈໍານວນວຽກ 100kB ແລະ.
ໃນເຕົ້າຮັບ 1 ທີ່ມີວຽກດຽວກັນ.
likwid-bench -t ການປັບປຸງ -i 1000 -g 2 -w S0:100kB -w S1:100kB
ຜົນໄດ້ຮັບຂອງທັງສອງກຸ່ມເຮັດວຽກຖືກລວມເຂົ້າກັນສໍາລັບຜົນໄດ້ຮັບ. ເພາະສະນັ້ນ, ວຽກງານໃນແຕ່ລະ
ການສະແດງອອກຂອງກຸ່ມວຽກຄວນມີຂະຫນາດດຽວກັນ.
4. ດໍາເນີນການມາດຕະຖານສໍາເນົາແຕ່ການວັດແທກການຈະລາຈອນຫນ່ວຍຄວາມຈໍາກັບ likwid-perfctr. ທາງເລືອກ
INSTRUMENT_BENCH ໃນ config.mk ຕ້ອງເປັນຄວາມຈິງໃນເວລາລວບລວມເພື່ອໃຊ້ຄຸນສົມບັດນັ້ນ.
likwid-perfctr -C E:S0:4 -g MEM -m likwid-bench -t ການປັບປຸງ -i 1000 -g 1 -w S0:100kB
likwid-perfctr ຈະ configure ແລະເລີ່ມ counters ປະສິດທິພາບໃນ socket 0 ກັບ 4
ກະທູ້ກ່ອນການປະຕິບັດຂອງ likwid-bench. ຕົວນັບການປະຕິບັດແມ່ນອ່ານຖືກຕ້ອງ
ກ່ອນ ແລະຫຼັງຈາກແລ່ນລະຫັດ benchmarking ເພື່ອຫຼຸດຜ່ອນການແຊກແຊງຂອງ
ການວັດແທກ.
5. ດໍາເນີນການສໍາເນົາ benchmark ແລະວາງຂໍ້ມູນໃສ່ເຕົ້າຮັບອື່ນ
likwid-bench -t ຄັດລອກ -i 50 -g 1 -w S0:1GB:10:1:2-0:S1,1:S1
Stream id 0 ແລະ 1 ຖືກຈັດໃສ່ໃນ thread domains S1, ເຊິ່ງແມ່ນ socket 1. ນີ້ສາມາດກວດສອບໄດ້.
ດັ່ງທີ່ກະທູ້ເລີ່ມຕົ້ນເລີ່ມຕົ້ນອອກບ່ອນທີ່ພວກເຂົາກໍາລັງແລ່ນ.
ໃຊ້ likwid-bench ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net