Quvvat sarfini kamaytirish uchun kodni optimallashtira olamizmi?

Kamroq quvvat sarfini ta'minlash uchun kodni optimallashtirish usullari bormi. Arxitektura - ARM. Til - C


person Manik Mahajan    schedule 25.05.2010    source manba
comment
// optimallashtirish operatoridan foydalaning. :)   -  person SLaks    schedule 25.05.2010
comment
Dasturingiz tomonidan foydalanilmagan tsikllar hali ham bo'sh jarayonlar sifatida ishlatiladi. O'ylaymanki, agar sizning protsessoringiz kamroq aylanishlarga muhtoj bo'lsa, unga kamroq quvvat berish uchun sozlangan bo'lsa, unda siz kodingizni tezroq qilishingiz kerak. Aks holda, sizning yagona variantingiz - #include "gogreen.h".   -  person corsiKa    schedule 25.05.2010
comment
@Slaks optimallashtirish faqat C++ uchun mavjud (va ANSI C variantlaridan yangiroq), shuning uchun /**/ operatoridan foydalanish yaxshidir:-p   -  person fortran    schedule 25.05.2010
comment
Ko'pincha kamroq quvvat ishlatish uchun dasturiy ta'minotni optimallashtirishdan ko'ra kamroq quvvat sarflash uchun uskunani optimallashtirish osonroq.   -  person Brian    schedule 25.05.2010
comment
@Brian, biz dasturchilarmiz, batareyalarni optimallashtirish uchun kimyogarlar yoki protsessor sxemasini optimallashtirish uchun muhandislar emasmiz. Biz bu muammoni boshqa yo'l bilan hal qilamiz - dasturiy ta'minotimizni tuzatish orqali.   -  person P Shved    schedule 25.05.2010
comment
@Pavel, kichikroq apparat sotib oling. Va aslida, ba'zilarimiz muhandismiz.   -  person Nathan Ernst    schedule 25.05.2010
comment
Eng yaxshi texnika har doim yaxshi dastur dizaynidir. Agar sizda bu mavjud bo'lsa, tashvishlanmang, siz 90% u erdasiz. Qolgan 10% protsessorning qo'shimcha funktsiyalari haqida ma'lumotga ega bo'ladi, masalan, bo'sh turganda avtomatik o'chirish (yoki buni o'zingiz ishga tushirishingiz mumkin, lekin ishonchim komil emas).   -  person Dark Star1    schedule 25.05.2010
comment
@Pavel: Aslida, men yangi chipni emas, balki boshqa chip sotib olishni nazarda tutgan edim. Garchi men bu javob emasligini tan olaman.   -  person Brian    schedule 25.05.2010


Javoblar (9)


ARM texnik ma'lumotnoma saytidan:

ARM11 MPCore protsessorining energiya samaradorligini oshiradigan xususiyatlari quyidagilardan iborat:

  • to'g'ri filial va sub-odatiy qaytishni bashorat qilish, noto'g'ri ko'rsatmalarni olish va dekodlash operatsiyalari sonini kamaytirish
  • jismoniy manzilli keshlardan foydalanish, bu keshni tozalash va to'ldirish sonini kamaytiradi, tizimda energiyani tejaydi.
  • MicroTLB-lardan foydalanish har bir tsiklda tarjima va himoya qidiruvlarida iste'mol qilinadigan quvvatni kamaytiradi
  • keshlar yorliqli RAM va kiruvchi ma'lumotlar operativ xotiralariga kirishlar sonini kamaytirish uchun ketma-ket kirish ma'lumotlaridan foydalanadi.

ARM11 MPCore protsessorida foydalanilmagan funktsional bloklarga kirishni o'chirish uchun eshikli soatlar va eshiklardan keng foydalaniladi. Faqat hisob-kitobni amalga oshirish uchun faol foydalaniladigan mantiq har qanday dinamik quvvatni sarflaydi.

Ushbu ma'lumotlarga asoslanib, protsessor siz uchun quvvatni tejash uchun juda ko'p ish qiladi, deb aytaman. Har qanday quvvatni isrof qilish kerak bo'lgandan ko'ra ko'proq ishlov beradigan noto'g'ri yozilgan koddan kelib chiqadi, siz baribir buni xohlamaysiz. Agar siz quvvatni tejashni xohlasangiz, ilovangizning umumiy dizayni ko'proq ta'sir qiladi. Tarmoqqa kirish, ekranni ko'rsatish va boshqa quvvat talab qiladigan operatsiyalar energiya iste'moli uchun ko'proq tashvish uyg'otadi.

person Dave Swersky    schedule 25.05.2010

Kamroq quvvat ishlatish uchun kodni optimallashtirish, samarali ravishda kodni optimallashtirishdir. Sizning motivlaringiz pul, ijtimoiy, siyosiy yoki shunga o'xshash bo'lishidan qat'i nazar, kamroq CPU tsikllari = kamroq energiya sarflanadi. Men aytmoqchi bo'lgan narsa shundaki, siz "quvvat iste'moli" ni "bajarilish vaqti" bilan almashtirishingiz mumkin, chunki ular asosan to'g'ridan-to'g'ri proportsional bo'lishi mumkin - va shuning uchun odamlarni "qo'rqitmagan" holda ko'proq muvaffaqiyatga erishishingiz mumkin. kuch bilan bog'liq savol. Biroq, men tuzatilishim mumkin :)

person Jeriko    schedule 25.05.2010
comment
Men sizga -1 qilmadim, lekin agar protsessor sekinroq ishlayotgan bo'lsa, noutbukim kamroq quvvat sarflaydi, shuning uchun bajarish vaqti quvvat sarfiga teskari proportsionaldir. - person Pete Kirkham; 25.05.2010
comment
Bajarish vaqti quvvat sarfiga teskari proportsional ekanligini da'vo qila olmaysiz. Bu shuni anglatadiki, men 10 yillik skript yozishim mumkin va u bir joul energiya sarflaydi. Oldingi noaniqlikni tan olaman - Quvvat iste'moli protsessor operatsiyalari soniga qanday proportsional bo'ladi, shuni yodda tutingki, har bir operatsiya uchun talab qilinadigan quvvat ushbu operatsiyalarning ketma-ket bajarilishi tezligiga teskari bo'ladi (bir million boshqa omillar bilan bir qatorda). Men sudda turish uchun zarur bo'lgan tavtologiyani emas, balki umumiy qoidani yozishga harakat qilganim uchun eslatib o'tilmaydi)? :P - person Jeriko; 25.05.2010
comment
++ Menimcha, siz va boshqa javob beruvchilar to'g'ri. Ko'pgina kodlar davriy ravishda ishlaydi deb faraz qilsak, maqsad bo'sh holatda iloji boricha ko'proq vaqt sarflashdir. - person Mike Dunlavey; 26.05.2010

Ha. profilerdan foydalaning va protsessorning ko‘p qismi qaysi dasturlarda ishlatilishini ko‘ring. ARM da ba'zi JTAG ulagichlaridan foydalanishingiz mumkin, agar mavjud bo'lsa (men Lauterbach ham disk raskadrovka, ham profil yaratish uchun). Asosiy muammo, odatda, protsessorni ishlamay qolganda, kam iste'mol holatiga (chuqur uyqu) qo'yishdir. Agar siz CPU ulushini ko'p (masalan, 80% dan 50% gacha) kamaytira olmasangiz, bu katta farq qilmaydi. Qaysi operatsion tizimlar ishlayotganingizga qarab, variantlar farq qilishi mumkin.

person INS    schedule 25.05.2010
comment
va shuni qo'shimcha qilishim mumkin: agar siz ulardan haqiqatan ham foydalanmasangiz, tashqi qurilmalarni ochiq holatda saqlamang (masalan, bluetooth/wi-fi-ni ochiq saqlash mobil qurilmalarda batareya quvvatini ko'p qisqartiradi. - person INS; 25.05.2010

ACM aloqalarining 2010-yil iyul sonida sizni qiziqtirishi mumkin bo‘lgan energiya tejaydigan algoritmlar haqidagi maqola bor. Men uni hali o'qimaganman, shuning uchun uning hech qanday hikmatini berolmayman.

person High Performance Mark    schedule 25.05.2010
comment
Umuman olganda, men ushbu maqoladan juda xafa bo'ldim, afsuski. - person Stephen Canon; 27.05.2010

Bo'sh aylanishlar uchun chip xotirasida (keshda) qolishga harakat qiling, kirish/chiqarishni minimal darajaga tushiring, avtobuslarda minimal aylanishni saqlang. NV xotirasi balo va flesh kabi nollarni saqlash uchun birlardan ko'ra ko'proq quvvat sarflaydi (shuning uchun ular birlarga o'chiriladi, u aslida nolga teng, lekin tranzitor(lar) uni ko'rishdan oldin bitni o'zgartiradi, nollar bir sifatida saqlanadi, birlar esa shunday saqlanadi. nollar, shuning uchun ham ular muvaffaqiyatsizlikka uchraganlarida bir darajaga tushadi), men o'zgaruvchan xotiralar haqida bilmayman, dram sram kabi yarim ko'proq tranzistorlardan foydalanadi, lekin yangilanishi kerak.

Bularning barchasi muhim bo'lishi uchun siz pastroq quvvat tizimidan boshlashingiz kerak, chunki yuqorida aytilganlar sezilmasligi mumkin. Masalan, inteldan hech narsa foydalanmang.

person old_timer    schedule 26.05.2010

Agar siz Windows XP+ yoki Linuxning yangiroq versiyasini ishga tushirmasangiz, HLTdan boshqa hech narsa qilmaydigan fon oqimini ishga tushirishingiz mumkin.

CPUIdle kabi dasturlar shunday qilib quvvat sarfini/issiqlikni kamaytiradi.

person BlueRaja - Danny Pflughoeft    schedule 25.05.2010
comment
Bu yangi operatsion tizimlar uchun kerak emas. - person Axel Gneiting; 25.05.2010

Agar protsessor kamroq aylanishlar kerak bo'lganda kamroq quvvat sarflaydigan qilib sozlangan bo'lsa, kodingizni yanada samarali ishga tushirish - bu yechim. Aks holda, operatsion tizim quvvatni boshqarishning qandaydir funksiyalarini ochib bermasa, siz ko'p narsa qila olmaysiz.

person Puppy    schedule 25.05.2010

IO ni minimal darajada saqlang.

person fortran    schedule 25.05.2010

Ba'zi ARM protsessorlarida kuchlanish regulyatorini kutish rejimiga qo'yish orqali quvvat sarfini kamaytirish mumkin.

person Junior Mayhé    schedule 25.05.2010