Apakah benar untuk mengatakan, misalnya, bahwa prosesor dengan empat core masing-masing berjalan pada 3GHz sebenarnya adalah prosesor yang berjalan pada 12GHz?
Saya pernah masuk ke argumen "Mac vs. PC" (yang BUKAN fokus dari topik ini ... yang kembali di sekolah menengah) dengan seorang kenalan yang bersikeras bahwa Mac hanya diiklankan sebagai mesin 1Ghz karena mereka G4 dual-prosesor masing-masing berjalan pada 500MHz.
Pada saat itu saya tahu ini adalah omong kosong karena alasan yang saya pikir jelas bagi kebanyakan orang, tetapi saya hanya melihat komentar di situs web ini tentang efek "6 core x 0.2GHz = 1.2Ghz" dan itu membuat saya berpikir lagi apakah ada jawaban nyata untuk ini.
Jadi, ini adalah pertanyaan teknis yang kurang lebih filosofis / mendalam tentang semantik perhitungan kecepatan clock. Saya melihat dua kemungkinan:
- Setiap inti sebenarnya melakukan perhitungan x per detik, sehingga jumlah total perhitungan adalah x (core).
- Kecepatan clock lebih merupakan hitungan dari jumlah siklus yang dilalui prosesor dalam waktu satu detik, jadi selama semua core berjalan pada kecepatan yang sama, kecepatan setiap siklus clock tetap sama tidak peduli berapa banyak core yang ada . Dengan kata lain, Hz = (core1Hz + core2Hz + ...) / core.
sumber
Jawaban:
Alasan utama mengapa prosesor 3GHz quad-core tidak pernah secepat 12GHz adalah karena bagaimana tugas yang berjalan pada prosesor itu bekerja, yaitu single-threaded atau multi-threaded. Hukum Amdahl penting ketika mempertimbangkan jenis tugas yang Anda jalankan.
Jika Anda memiliki tugas yang inheren linier dan harus dilakukan langkah demi langkah secara tepat seperti (program yang sangat sederhana)
Maka tugas sangat tergantung pada hasil dari pass sebelumnya dan tidak dapat menjalankan banyak salinan dari dirinya sendiri tanpa merusak nilai
'a'
karena setiap salinan akan mendapatkan nilai'a'
pada waktu yang berbeda dan menuliskannya kembali secara berbeda. Ini membatasi tugas menjadi satu utas dan dengan demikian tugas tersebut hanya dapat berjalan pada satu inti pada waktu tertentu, jika dijalankan pada banyak inti maka korupsi sinkronisasi akan terjadi. Ini membatasi hingga 1/2 dari daya cpu dari sistem dual core, atau 1/4 dalam sistem quad core.Sekarang ambil tugas seperti:
Semua baris ini bersifat independen dan dapat dipecah menjadi 4 program terpisah seperti yang pertama dan dijalankan pada saat yang sama, masing-masing dapat memanfaatkan secara efektif kekuatan penuh dari salah satu inti tanpa masalah sinkronisasi, di sinilah Hukum Amdahl datang ke dalamnya.
Jadi jika Anda memiliki aplikasi berulir tunggal yang melakukan perhitungan brute force, prosesor 12GHz tunggal akan menang dengan mudah, jika Anda dapat membuat tugas terpecah menjadi beberapa bagian yang terpisah dan multi-berulir maka 4 core dapat mendekati, tetapi tidak cukup menjangkau, kinerja yang sama, sesuai Hukum Amdahl.
Hal utama yang diberikan sistem multi CPU kepada Anda adalah daya tanggapnya. Pada mesin inti tunggal yang bekerja keras, sistem dapat tampak lamban karena sebagian besar waktu dapat digunakan oleh satu tugas dan tugas lainnya hanya berjalan dalam semburan pendek di antara tugas yang lebih besar, menghasilkan sistem yang tampaknya lamban atau juddery. . Pada sistem multi-core, tugas berat mendapatkan satu inti dan semua tugas lainnya bermain di core lain, melakukan pekerjaan mereka dengan cepat dan efisien.
Argumen "6 core x 0.2GHz = 1.2Ghz" adalah sampah di setiap situasi kecuali di mana tugas sangat paralel dan independen. Ada sejumlah tugas yang sangat paralel, tetapi masih membutuhkan beberapa bentuk sinkronisasi. Handbrake adalah video trancoder yang sangat bagus dalam menggunakan semua CPU yang tersedia tetapi memang membutuhkan proses inti untuk menjaga agar utas lainnya diisi dengan data dan mengumpulkan data yang sudah dikerjakan.
Setiap core mampu melakukan x kalkulasi per detik, dengan asumsi beban kerja paralel yang sesuai, pada program linier yang Anda miliki adalah 1 core.
Saya pikir itu adalah kekeliruan untuk berpikir bahwa 4 x 3GHz = 12GHz, memberikan hasil matematika, tetapi Anda membandingkan apel dengan jeruk dan jumlahnya tidak tepat, GHz tidak bisa begitu saja ditambahkan bersama untuk setiap situasi. Saya akan mengubahnya menjadi 4 x 3GHz = 4 x 3GHz.
sumber
Yang lain membuat argumen yang bagus dari sudut pandang teknis. Saya malah akan membuat beberapa analogi sederhana yang saya harap akan menjelaskan mengapa 4 * 3GHz tidak setara dengan 1 * 12GHz.
Misalnya seorang wanita dapat menghasilkan satu bayi dalam sembilan bulan. Apakah sembilan wanita dapat menghasilkan satu bayi dalam satu bulan? Tidak, karena kehamilan tidak dapat diparalelkan (well, setidaknya pada tingkat teknologi ini).
Ini yang lain: Di pembangkit listrik tenaga air yang baru-baru ini saya kunjungi, salah satu generator sedang ditingkatkan. Mereka harus mengangkut stator generator dengan kapal. Seperenam dari stator dapat diangkut dengan truk, tetapi mereka perlu mengangkut seluruh stator; jadi mereka harus menggunakan satu kapal, bukan enam truk.
Kasus lain mungkin waktu yang tepat untuk suatu peristiwa. Kadang-kadang prosesor komputer digunakan sebagai penghitung waktu yang tepat (meskipun praktik ini tidak lagi direkomendasikan, karena jam variabel pada sebagian besar prosesor. Pengatur acara presisi tinggi harus digunakan sebagai gantinya). Jika kita berasumsi bahwa kita memiliki prosesor dengan clock 12GHz yang relatif stabil, kita dapat menggunakannya untuk mengukur waktu dalam resolusi yang jauh lebih tinggi daripada pada prosesor dengan clock 3GHz. Tidak peduli berapa banyak inti 3GHz yang kita miliki, kita tidak akan dapat mencapai resolusi inti 12GHz. Itu seperti memiliki 4 jam dengan tampilan 7-segmen di mana setiap jam hanya menampilkan waktu yang tepat dalam jam. Tidak peduli seberapa benar mereka menunjukkan jam, Anda tidak dapat menggunakannya untuk mengukur interval waktu dalam rentang satu detik.
sumber
Saya bukan ahli dalam hal ini, tetapi saya memiliki gelar di bidang Teknik Komputer. Secara teori (ini adalah jawaban yang sangat konseptual), quad-core 3GHz setiap prosesor dapat setara dengan satu prosesor 12GHz jika, misalnya, ada empat set perhitungan yang diperlukan untuk hasil akhir tunggal. Itulah yang disebut pemrosesan paralel.
Untuk menyederhanakan logika, katakanlah kita sedang berbicara tentang prosesor dual core. Jika satu set perhitungan, katakan:
kemudian, kedua perhitungan dapat dieksekusi pada core yang terpisah, dan prosesor xGHz akan setara dengan prosesor single-core 2 * xGHz. Ini karena dua perhitungan, walaupun dilakukan dengan kecepatan x, akan diproses pada saat yang sama. Sedangkan prosesor single-core bisa melakukannya dengan kecepatan 2 * x tetapi satu demi satu. Jika dua CPU mengeksekusi kode ini pada saat yang sama, mereka akan selesai pada saat yang sama. Namun, jika kodenya adalah:
kemudian, prosesor dual-core akan memakan waktu dua kali lebih lama dari prosesor single-core karena dalam instruksi kedua, nilai a tergantung pada instruksi pertama dan dengan demikian tidak dapat dieksekusi secara paralel. Inilah cara beberapa perangkat lunak dapat memanfaatkan prosesor multi-utas.
Jadi, secara teori, prosesor single-core 12GHz selalu dapat berjalan secepat (atau lebih cepat) daripada prosesor quad-core 3GHz, tetapi tidak sebaliknya.
sumber
Ini adalah pertanyaan yang rumit untuk dijawab, tetapi jawaban singkatnya adalah: Tidak
Dalam aplikasi dunia nyata empat prosesor 3Ghz tidak akan secepat prosesor 12Ghz tunggal karena ketidakefisienan. Mereka mungkin sangat dekat, tetapi mereka TIDAK akan sama dengan prosesor tunggal dalam hal kekuatan pemrosesan.
Alasan untuk ini terletak pada inefisiensi kecil ketika berhadapan dengan program yang dapat berjalan pada lebih dari satu prosesor. Dengan asumsi bahwa program tersebut dapat berjalan secara paralel, kita masih akan mengalami masalah dengan core yang berbeda bersaing satu sama lain untuk sumber daya lain seperti RAM atau bahkan cache dan masalah sinkronisasi thread. Juga, selalu ada bagian dari program yang tidak dapat diparalelkan dan perlu dijalankan pada satu inti dengan sendirinya.
Lihatlah artikel ini: http://en.wikipedia.org/wiki/Amdahl%27s_law
sumber
Tampaknya kita tidak bisa mengatakan bahwa 4 core @ 3 GHz dapat dikatakan 12 GHz.
Berbagai kendala seperti memori bersama, pertikaian cache, dan sumber daya lainnya juga umum untuk semua core sehingga menjalankan sepotong kode paralel pada core ini tidak akan seefisien menjalankannya pada prosesor 12 Ghz (walaupun sulit untuk membangun prosesor seperti itu ).
Saya juga membaca di suatu tempat bahwa jika kita menggandakan transistor yang tertanam pada chip (CMP), kecepatan yang akan kita dapatkan hanya 40%. Ini memberikan petunjuk penting untuk topik ini juga.
sumber
Sejauh menyangkut siklus clock yang dilakukan, ya prosesor multi-core melakukan
x * cores
siklus kerja per detik yang lengkap. Secara konvensional, kecepatan clock terdaftar pada basis per-inti untuk perbandingan yang lebih mudah (jika tidak, bagaimana Anda akan dengan mudah membandingkan chip dual-core 4GHz yang berjalan pada 2GHz / inti vs chip quad-core 4GHz yang berjalan pada 1GHz / inti?).Sayangnya, masalahnya menjadi kompleks ketika Anda mencoba membandingkan prosesor yang berbeda di aplikasi dunia nyata.
Pertama, sebagian besar prosesor multi-inti memiliki beberapa sumber daya yang dibagi di antara inti (mis. CPU cache). Mereka harus berbagi akses ke cache itu, sehingga Anda tidak bisa memiliki kedua core yang menyimpan atau membaca data dengan kecepatan penuh. Hal ini sering dikurangi dalam CPU banyak-inti dengan memiliki beberapa cache bersama (misalnya, sebagian besar chip quad-core memiliki 2 cache, masing-masing dibagi oleh sepasang core), untuk lebih baik membagi peluang kemacetan pada sumber daya bersama.
Kedua, dan mungkin kurang dikenal di dunia non-teknologi, adalah bahwa membandingkan kecepatan jam kadang-kadang bisa seperti membandingkan apel dan jeruk. CPU yang berbeda menghasilkan jumlah pekerjaan yang berbeda dalam satu siklus clock tunggal, sehingga mengatakan Anda memiliki 1GHz vs 1.2GHz terdengar hebat, tetapi chip 1GHz sebenarnya dapat menyelesaikan lebih banyak pekerjaan dalam interval waktu tertentu. Pentium 4 mengantarkan titik ini pulang, mengarah ke Mitos Megahertz (yang saya tidak tahu memiliki nama yang diciptakan sampai menulis posting ini).
sumber
Dua mobil masing-masing berjalan 50 mil per jam jangan "bertambah" menjadi 100 mil per jam. Sesederhana itu. Kecepatan clock prosesor bukan merupakan ukuran tingkat di mana pekerjaan dilakukan, itu adalah ukuran seberapa cepat jam berdetak.
sumber