Android

Chip đa lõi đặt ra thách thức lớn cho ngành công nghiệp

Writing and city life chapter -2 part 1

Writing and city life chapter -2 part 1
Anonim

Thêm nhiều lõi xử lý đã nổi lên như là cách chính để tăng hiệu năng của chip máy chủ và PC, nhưng lợi ích sẽ giảm đi đáng kể nếu ngành không thể vượt qua những thách thức về phần cứng và lập trình nhất định, những người tham gia tại Triển lãm Multicore ở Santa Clara Hôm nay, hầu hết các phần mềm vẫn được viết cho các chip đơn lõi và sẽ cần phải được viết lại hoặc cập nhật để tận dụng lợi thế của số lõi ngày càng tăng mà Intel, Sun Microsystems và các nhà sản xuất chip khác đang bổ sung sản phẩm của họ, Linley Gwennap, chủ tịch và nhà phân tích chính của The Linley Group cho biết.

Các ứng dụng có sẵn sẽ chạy nhanh hơn trên CPU với tối đa bốn nhân xử lý, nhưng ngoài hiệu suất đó mức độ giảm và thậm chí có thể xấu đi khi thêm nhiều lõi, ông nói. Một báo cáo gần đây từ Gartner cũng nhấn mạnh vấn đề.

Các nhà sản xuất chip và các nhà xây dựng hệ thống đã bắt đầu nỗ lực để giáo dục các nhà phát triển và cung cấp cho họ các công cụ tốt hơn cho lập trình đa lõi. Một năm trước, Intel và Microsoft cho biết họ sẽ đầu tư 20 triệu đô la Mỹ để mở hai trung tâm nghiên cứu tại các trường đại học ở Hoa Kỳ nhằm giải quyết vấn đề này. Gwennap cho biết, việc viết các ứng dụng đa lõi cho các nhà phát triển chính thống có lẽ là thách thức lớn nhất mà ngành công nghiệp đang phải đối mặt hiện nay. được chia và thực hiện đồng thời trên nhiều lõi không phải là mới. Tuy nhiên, trong những năm gần đây, Intel và Advanced Micro Devices đã thêm lõi như một cách hiệu quả hơn để tăng cường năng lượng. hiệu suất chip, một sự thay đổi đáng kể từ thực hành truyền thống của họ về tốc độ đồng hồ ngày càng tăng. Intel đang xây dựng 8 lõi vào các chip Nehalem-EX sắp tới của mình, và AMD đang thiết kế các chip 12 lõi cho các máy chủ. Chúng cũng bổ sung khả năng đa luồng, cho phép mỗi lõi hoạt động trên nhiều dòng mã cùng một lúc.

Điều đó có nghĩa là các ứng dụng chính thống phải được viết theo một cách khác để tận dụng các lõi bổ sung có sẵn.. Công việc khó làm và tạo ra tiềm năng cho các loại lỗi mới cho phần mềm. Một trong những điều kiện phổ biến nhất là "điều kiện chủng tộc", nơi đầu ra của phép tính phụ thuộc vào các yếu tố khác nhau của một tác vụ đang được hoàn thành theo một thứ tự nhất định. Nếu không, lỗi có thể xảy ra.

Một vài công cụ lập trình song song có sẵn, chẳng hạn như Parallel Studio của Intel cho C và C ++. Các nhà cung cấp khác trong không gian là Codeplay, Polycore Software và Clik Arts. Ngoài ra còn có một mô hình lập trình song song dựa trên C mới gọi là OpenCL, được phát triển bởi Nhóm Khronos và được hỗ trợ bởi Apple, Intel, AMD, Nvidia và những người khác.

Nhưng nhiều công cụ có sẵn vẫn đang hoạt động. Triển lãm Multicore cho biết. Các trình biên dịch phần mềm cần có khả năng nhận biết mã có thể song song, và sau đó thực hiện song song nó mà không cần sự can thiệp thủ công từ các lập trình viên, Shay Gal-on, giám đốc kỹ sư phần mềm tại EEMBC, một tổ chức phi lợi nhuận phát triển điểm chuẩn cho các chip nhúng Mặc dù thiếu các công cụ, một số nhà cung cấp phần mềm đã tìm thấy nó tương đối dễ dàng để tạo mã song song cho các công việc tính toán đơn giản, như xử lý hình ảnh và video, Gwennapp nói. Adobe đã viết lại Photoshop theo cách có thể phân công các nhiệm vụ như phóng to và lọc hình ảnh cho các lõi x86 cụ thể, cải thiện hiệu suất từ ​​ba đến bốn lần,

"Nếu bạn đang làm video hoặc đồ họa, bạn có thể thực hiện các bộ khác nhau pixel và gán chúng cho các CPU khác nhau. Bạn có thể nhận được rất nhiều sự tương đương theo cách đó, "ông nói. Nhưng đối với các nhiệm vụ phức tạp hơn, rất khó để tìm ra một phương pháp duy nhất để xác định một chuỗi các phép tính có thể được song song và sau đó chia chúng ra.

Trong khi phía lập trình có thể trình bày thách thức lớn nhất, cũng có những thay đổi phần cứng cần phải được thực hiện, để khắc phục các vấn đề như độ trễ bộ nhớ và tốc độ bus chậm. "Khi bạn thêm nhiều CPU hơn vào chip, bạn cần băng thông bộ nhớ để sao lưu nó", Gwennap nói.

Chia sẻ một bộ nhớ cache hoặc bus dữ liệu giữa nhiều lõi có thể tạo ra một nút cổ chai. phần lớn bị lãng phí. "Đến lúc bạn nhận được sáu hoặc tám CPU, họ dành tất cả thời gian của mình để nói chuyện với nhau và không tiến lên để nhận được bất kỳ công việc nào được thực hiện", ông nói. phần cứng và phần mềm để viết các chương trình song song tốt hơn. Nhiều lập trình viên không tăng tốc về những phát triển mới nhất trong thiết kế phần cứng, Gal-on nói. Họ nên mở các bảng dữ liệu và nghiên cứu kiến ​​trúc chip để hiểu mã của chúng có thể hoạt động tốt hơn như thế nào,