Beranda » bagaimana » Bagaimana Cara Menghitung Kecepatan Prosesor pada Prosesor Multi-core?

    Bagaimana Cara Menghitung Kecepatan Prosesor pada Prosesor Multi-core?

    Munculnya prosesor multi-core kelas konsumen yang ekonomis menimbulkan pertanyaan bagi banyak pengguna: bagaimana Anda secara efektif menghitung kecepatan sebenarnya dari sistem multi-core? Apakah sistem 4-core 3Ghz benar-benar 12Ghz? Baca terus saat kami menyelidiki.

    Sesi Tanya Jawab hari ini datang kepada kami dengan izin dari SuperUser-subdivisi Stack Exchange, pengelompokan komunitas yang didorong oleh situs web T&J.

    Pertanyaan

    Pembaca SuperUser NReilingh penasaran bagaimana kecepatan prosesor untuk sistem multi-core sebenarnya dihitung:

    Apakah benar mengatakan, misalnya, bahwa sebuah prosesor dengan empat core masing-masing berjalan pada 3GHz sebenarnya adalah sebuah prosesor yang berjalan pada 12GHz?

    Saya pernah masuk ke argumen "Mac vs. PC" (yang omong-omong BUKAN fokus dari topik ini ... yang kembali di sekolah menengah) dengan seorang kenalan yang bersikeras bahwa Mac hanya diiklankan sebagai mesin 1Ghz karena mereka dual G4-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 mengenai 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 lebih kurang filosofis / mendalam tentang semantik perhitungan kecepatan clock. Saya melihat dua kemungkinan:

    1. Setiap inti sebenarnya melakukan perhitungan x per detik, sehingga jumlah total perhitungan adalah x (core).
    2. Kecepatan clock lebih merupakan hitungan dari jumlah siklus yang dilalui prosesor dalam waktu satu detik, sehingga 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.

    Jadi apa cara yang tepat untuk menunjukkan kecepatan clock total dan, yang lebih penting, apakah mungkin menggunakan nomenklatur kecepatan single-core pada sistem multi-core?

    Jawabannya

    Kontributor SuperUser, Mokubai membantu menjernihkan semuanya. Dia menulis:

    Alasan utama mengapa prosesor 3GHz quad-core tidak pernah secepat 12GHz single core 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)

    10: a = a +1
    20: kebagian 10 

    Maka tugas sangat tergantung pada hasil dari pass sebelumnya dan tidak dapat menjalankan banyak salinan dari dirinya sendiri tanpa merusak nilai 'Sebuah' karena setiap salinan akan mendapatkan nilai 'Sebuah' 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 untuk 1/2 dari daya cpu dari sistem dual core, atau 1/4 dalam sistem quad core.

    Sekarang ambil tugas seperti:

    10: a = a +1
    20: b = b + 1
    30: c = c +1
    40: d = d +1
    50: kebagian 10 

    Semua baris ini independen dan dapat dipecah menjadi 4 program terpisah seperti yang pertama dan berjalan pada saat yang sama, masing-masing dapat menggunakan 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 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 adalah responsif. 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 tampak 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 membutuhkan proses inti untuk menjaga agar utas lainnya diisi dengan data dan mengumpulkan data yang telah mereka selesaikan..

    1. Setiap inti sebenarnya melakukan perhitungan x per detik, sehingga jumlah total perhitungan adalah x (core).

    Setiap core mampu melakukan x kalkulasi per detik, dengan asumsi beban kerja paralel yang sesuai, pada program linier yang Anda miliki adalah 1 core.

    1. Kecepatan clock lebih merupakan hitungan dari jumlah siklus yang dilalui prosesor dalam waktu satu detik, sehingga 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.

    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.

    Punya sesuatu untuk ditambahkan ke penjelasan? Berbunyi dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang mengerti teknologi lainnya? Lihat utas diskusi lengkap di sini.