OpenCL Framework: ใช่สำหรับคุณ

การเปิดเผยข้อมูล: การสนับสนุนของคุณช่วยให้เว็บไซต์ทำงานต่อไป! เราได้รับค่าธรรมเนียมการอ้างอิงสำหรับบริการบางอย่างที่เราแนะนำในหน้านี้.


OpenCL หรือ Open Computing Language เป็นกรอบซอฟต์แวร์ที่ออกแบบมาเฉพาะสำหรับการสร้างแอพพลิเคชั่นที่สามารถทำงานในระบบคอมพิวเตอร์ที่หลากหลาย เป็นมาตรฐานแบบเปิดสำหรับการพัฒนาแอพพลิเคชั่นการเขียนโปรแกรมข้ามแพลตฟอร์มซึ่งมีการใช้งานโอเพนซอร์สจำนวนมาก.

โดยพื้นฐานแล้ว OpenCL ได้รับการพัฒนาขึ้นเพื่อให้ผู้ใช้งานสามารถสร้างแอพพลิเคชั่นที่สามารถทำงานได้บนอุปกรณ์ใด ๆ โดยไม่คำนึงถึงผู้ผลิต, รายละเอียดโปรเซสเซอร์, หน่วยกราฟิกหรือส่วนประกอบฮาร์ดแวร์อื่น ๆ นั่นหมายความว่าผู้พัฒนาสามารถสร้างแอปพลิเคชันบน Windows PC ของพวกเขาและมันจะทำงานได้ดีบนโทรศัพท์ Android, คอมพิวเตอร์ Mac OS X หรืออุปกรณ์ประมวลผลแบบขนานอื่น ๆ แน่นอนว่าอุปกรณ์เหล่านี้ทั้งหมดสนับสนุน OpenCL และมีคอมไพเลอร์และไลบรารีรันไทม์ที่เหมาะสม.

ภาษาการเขียนโปรแกรมที่ใช้ในการพัฒนาแอปพลิเคชัน OpenCL คือ OpenCL C ซึ่งใช้ C99 (คำจำกัดความเป็นทางการก่อนหน้าของภาษาการเขียนโปรแกรม C) OpenCL C สามารถตั้งโปรแกรมช่วงของฮาร์ดแวร์และอุปกรณ์รวมถึง CPU, GPUs และตัวเร่งความเร็วฮาร์ดแวร์.

ประวัติศาสตร์

OpenCL ได้รับการพัฒนาครั้งแรกโดย Apple Inc จากนั้นกลั่นกรองข้อมูลจากนักพัฒนาฮาร์ดแวร์รายใหญ่หลายรายและเสนอให้กับกลุ่ม Khronos ซึ่งเป็นองค์กรที่ไม่แสวงหาผลกำไร กลุ่ม Khronos ได้สร้างคณะกรรมการมาตรฐานเปิดโดยมีส่วนร่วมอย่างแข็งขันจากผู้ค้าเทคโนโลยีรายใหญ่หลายรายเพื่อให้ได้มาตรฐาน OpenCL.

มาตรฐานทางเทคนิคได้รับการสรุปในปลายปี 2551 และในปี 2009 Apple ได้เปิดตัว OpenCL 1.0 ด้วย Mac OS X Snow Leopard ระหว่างปี 2551 และ 2552 OpenCL ได้รับการสนับสนุนอย่างเป็นทางการจาก AMD, NVIDIA และ IBM.

มีการเปิดตัวฟีเจอร์และการปรับแต่งใหม่ในปี 2010 และ 2011 และในปี 2013 OpenCL 2.0 ได้เปิดตัวซึ่งรวมถึงการสนับสนุนหน่วยความจำเสมือนที่ใช้ร่วมกันการซ้อนกันแบบขนานและส่วนขยายไดรเวอร์ไคลเอ็นต์สำหรับ Android รุ่นถัดมาในปี 2015 Open CL 2.1 แทนที่ภาษาเคอร์เนล OpenCL C ด้วย OpenCL C++.

แหล่งข้อมูลออนไลน์

เป็นเฟรมเวิร์กใหม่ที่ออกแบบมาสำหรับหนึ่งในแนวโน้มที่ใหญ่ที่สุดในการเขียนโปรแกรมคอมพิวเตอร์ในปัจจุบันและเป็นโอเพ่นซอร์สจึงไม่น่าแปลกใจที่ OpenCL มีชุมชนกิจกรรมขนาดใหญ่ของผู้ใช้และที่ปรึกษา.

  • หน้าทรัพยากร Khronos: กลุ่ม Khronos รับผิดชอบในการดูแล OpenCL ได้รวบรวมรายการทรัพยากรจำนวนมากสำหรับนักพัฒนารวมถึงข้อมูลเกี่ยวกับการใช้งานที่แตกต่างกันการผูกภาษาและไลบรารีและกรอบต่าง ๆ ที่โปรแกรมเมอร์ OpenCL มีให้ เว็บไซต์เดียวกันนี้ยังมีรายการฝึกอบรมและคำแนะนำออนไลน์มากมาย.
  • บัตรอ้างอิง: แผ่นอ้างอิงที่มีประโยชน์เหล่านี้มีทุกสิ่งที่คุณต้องการโปรแกรมใน OpenCL รวมถึงคู่มือ API, คลาสไดอะแกรม, คำสั่งหน่วยความจำเสมือนที่ใช้ร่วมกันและรายการวัตถุโปรแกรมที่มีอยู่, ชนิดข้อมูล, ฟังก์ชันในตัวและอื่น ๆ.
  • ฟอรัม Intel OpenCL: ไซต์ฟอรัมนี้ส่วนใหญ่มีผู้เข้าชมเป็นส่วนใหญ่โดยนักพัฒนา OpenCL ที่จัดตั้งขึ้นเพื่อค้นหาคำแนะนำการเขียนโปรแกรมการสนทนาแนวปฏิบัติที่ดีที่สุด.

สอน

มีบทเรียนออนไลน์มากมายสำหรับ OpenCL ซึ่งบางบทเรียนสร้างโดยชุมชนโอเพ่นซอร์สและอื่น ๆ ที่พัฒนาโดยผู้ผลิตฮาร์ดแวร์หลายรายที่สนับสนุนมาตรฐาน OpenCL เนื่องจาก OpenCL เป็นเครื่องมือการเขียนโปรแกรมขั้นสูงส่วนใหญ่สันนิษฐานว่าเคยมีประสบการณ์เกี่ยวกับการพัฒนาแอปพลิเคชันมาก่อนและโดยทั่วไปแล้วความรู้เกี่ยวกับ C / C++.

  • บทแนะนำ OpenCL ของ CodeProject: ชุดบทช่วยสอนออนไลน์นี้ให้ข้อมูลพื้นฐานในโครงการ OpenCL คำแนะนำเกี่ยวกับการติดตั้งซอฟต์แวร์ที่เหมาะสมเพื่อเปิดใช้งานการพัฒนา OpenCL และบทเรียนส่วนตัวสำหรับหัวข้อสำคัญทั้งหมดของการเขียนโปรแกรม OpenCL มันมีหลายตัวอย่างและลิงค์เพิ่มเติมสำหรับข้อมูลพื้นหลัง.
  • CMSoft OpenCL Tutorial: CMSoft นำเสนอทั้งแบบฝึกหัด OpenCL ทั่วไปและชุดกรณีศึกษาที่ออกแบบมาเพื่อครอบคลุมโครงการพิเศษจำนวนมากรวมถึงการใช้อัลกอริธึมการกรองภาพถ่ายทั่วไปซึ่งจะทำงานบน GPU ที่รองรับ OpenCL ทุกตัว และวิธีการใช้ GPU ในการคูณเมทริกซ์.
  • Intro บทแนะนำ OpenCL: สร้างโดยสถาปนิกฮาร์ดแวร์ของ AMD บทช่วยสอนนี้เขียนขึ้นสำหรับโปรแกรมเมอร์ OpenCL ใหม่ล่าสุดและนำพวกเขาผ่านพื้นฐานของ OpenCL ในขณะที่มีตัวอย่างการเข้ารหัสมากมาย.

หนังสือ

เป็นกรอบการทำงานที่ค่อนข้างใหม่มีหนังสือเพียงไม่กี่เล่มใน OpenCL และหนังสือจำนวนมากถูกเขียนก่อนเวอร์ชันปัจจุบันซึ่งหมายความว่าพวกเขาจะไม่ครอบคลุมคุณสมบัติล่าสุดบางอย่างที่นักพัฒนาซอฟต์แวร์นำเสนอ อย่างไรก็ตามแม้ข้อความเก่าจะให้ภาพรวมที่ดีของกรอบงานและการใช้งาน การแนะนำการพัฒนาล่าสุดสามารถหาได้ง่ายผ่านแหล่งข้อมูลออนไลน์มากมายที่ระบุไว้ข้างต้น.

  • Computing Heterogeneous ด้วย OpenCL 2.0 โดย David Kaeli และคณะ: ข้อความนี้มีวัตถุประสงค์เพื่อครอบคลุมทั้งมาตรฐาน OpenCL และแนวคิดทั่วไปของการเขียนโปรแกรมแบบขนาน มันสำรวจหัวข้อต่าง ๆ เช่นหน่วยความจำเสมือนที่ใช้ร่วมกันเทคนิคการปรับให้เหมาะสมการดีบักและวิธีการแจกจ่ายงานข้ามระบบคอมพิวเตอร์ที่หลากหลาย มันมีหลายกรณีศึกษาเช่นเดียวกับรหัสตัวอย่าง.
  • คู่มือการเขียนโปรแกรม OpenCL โดย Munshi และคณะ: หนังสือเล่มนี้เขียนขึ้นเป็นพิเศษสำหรับนักพัฒนาที่ทำงาน เป็นหนึ่งในตำราเรียน OpenCL ที่เก่าแก่ที่สุดเขียนขึ้นสำหรับรุ่น 1.1 มันไม่ครอบคลุมการปรับปรุงล่าสุดบางอย่าง อย่างไรก็ตามมันยังคงให้ภาพรวมที่มีประสิทธิภาพของสถาปัตยกรรมและคำศัพท์ของ OpenCL, คุณสมบัติการเขียนโปรแกรมพื้นฐานและแบบฝึกหัดภาษาสำหรับ OpenCL C. ข้อความนี้ยังรวมถึงกรณีศึกษาหลายตัวอย่างและรหัสต้นฉบับออนไลน์.
  • ตำราการพัฒนา OpenCL Parallel Programming โดย Raymond Tay: ข้อความนี้ใช้แนวทางที่มีประสิทธิภาพในการเรียนรู้ภาษาคุณต้องเข้าใจทั้งทฤษฎีที่อยู่เบื้องหลังมันและการใช้งานจริง มันแบ่งการเรียนรู้ออกเป็นสองส่วน ครึ่งแรกของหนังสือครอบคลุมพื้นฐานของ OpenCL และการเขียนโปรแกรมแบบขนาน ครึ่งหลังเป็นการสำรวจอัลกอริธึมสำคัญที่แสดงให้เห็นถึงเทคนิคการเขียนโปรแกรมแบบขนานที่แตกต่างกัน.
  • การเขียนโปรแกรม OpenCL โดยตัวอย่างโดย Banger และ Bhattacharyya: หนังสือเล่มนี้มีวัตถุประสงค์เพื่อเป็นแนวทาง “ง่าย” สำหรับการเขียนโปรแกรม OpenCL โดยใช้ตัวอย่างง่าย ๆ เพื่อแสดงแนวคิดหลักของการเขียนโปรแกรมแบบขนานและ OpenCL.

ข้อสรุป

ยี่สิบปีที่ผ่านมาเมื่อผู้ใช้คอมพิวเตอร์ส่วนใหญ่ทุกคนใช้ระบบปฏิบัติการเดียวกันและฉาก CPU / GPU ถูกครอบงำโดย บริษัท เพียงไม่กี่แห่งเท่านั้นที่มีความสามารถในการเขียนโปรแกรมในหลายแพลตฟอร์มเป็นความหรูหราที่สุดที่พวกเราไม่ต้องการ ‘ ไม่ต้องการ แต่ด้วยการเปิดตัวของเทคโนโลยีโทรศัพท์มือถือและการเพิ่มขึ้นของ Apple และ Android มันไม่น่าเป็นไปได้ที่เราจะเห็นผู้ผลิตรายใดรายหนึ่งที่ถือครองส่วนแบ่งการตลาดอีกครั้งในไม่ช้า แต่ผู้พัฒนาซอฟต์แวร์จำเป็นต้องปรับตัวให้เข้ากับสภาพแวดล้อมที่ต่างกันในทุกวันนี้.

OpenCL เป็นขั้นตอนสำคัญในการเปลี่ยนแปลง แทนที่จะเขียนโปรแกรมสำหรับตัวแปรเทคโนโลยีแต่ละตัวผู้พัฒนาสามารถสร้างโค้ดที่เข้าถึงข้ามแพลตฟอร์มได้ หนึ่งภาษาหนึ่งเฟรมเวิร์กหนึ่งสภาพแวดล้อมในการโปรแกรมสำหรับข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์ต่างๆ.

การอ่านและทรัพยากรเพิ่มเติม

เรามีคู่มือการเขียนโปรแกรมบทแนะนำและอินโฟกราฟิกที่เกี่ยวข้องกับการเข้ารหัสและแหล่งข้อมูลนักพัฒนาเพิ่มเติม:

  • C Developer Resources: เริ่มต้นใช้งานและย้ายไปสู่ส่วนขั้นสูงของการเขียนโปรแกรม C.
  • Cocoa and Cocoa Touch Introduction: เรียนรู้ API สำหรับการสร้างแอปพลิเคชันสำหรับ Mac OS X และ iOS.
  • บทนำ Java, วิธีการเรียนรู้และทรัพยากร: มีให้ในอุปกรณ์ส่วนใหญ่, Java เป็นภาษาที่ยอดเยี่ยมหากคุณต้องการโค้ดสำหรับแพลตฟอร์มจำนวนมาก.

คุณควรเรียนรู้รหัสใด
คุณควรเรียนรู้รหัสใด?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me