Othello Processor Bret Taylor, Olatunji Ruwase, and Jim Norris CS343, Spring 2003.

Slides:



Advertisements
Similar presentations
Adversarial Search Chapter 6 Section 1 – 4. Types of Games.
Advertisements

Xi Breakthrough Player An extremely intelligent Breakthrough AI. You can tell by the use of X. CSE 486 B Fall 2012 Miami University.
Systolic Arrays & Their Applications
Adversarial Search We have experience in search where we assume that we are the only intelligent being and we have explicit control over the “world”. Lets.
TIE Extensions for Cryptographic Acceleration Charles-Henri Gros Alan Keefer Ankur Singla.
Games & Adversarial Search Chapter 5. Games vs. search problems "Unpredictable" opponent  specifying a move for every possible opponent’s reply. Time.
Vector Processing. Vector Processors Combine vector operands (inputs) element by element to produce an output vector. Typical array-oriented operations.
Games & Adversarial Search
ICS-271:Notes 6: 1 Notes 6: Game-Playing ICS 271 Fall 2008.
Tic Tac Toe Game playing strategies
University College Cork (Ireland) Department of Civil and Environmental Engineering Course: Engineering Artificial Intelligence Dr. Radu Marinescu Lecture.
Adversarial Search Chapter 5.
Artificial Intelligence for Games Game playing Patrick Olivier
Artificial Intelligence in Game Design Heuristics and Other Ideas in Board Games.
Computers Playing Games Arif Zaman CS 101. Acknowledgements Portions of this are taken from MIT’s open-courseware
Minimax and Alpha-Beta Reduction Borrows from Spring 2006 CS 440 Lecture Slides.
CSCI 8150 Advanced Computer Architecture Hwang, Chapter 1 Parallel Computer Models 1.2 Multiprocessors and Multicomputers.
How computers play games with you CS161, Spring ‘03 Nathan Sturtevant.
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
ICS-271:Notes 6: 1 Notes 6: Game-Playing ICS 271 Fall 2006.
Cliff Rhyne and Jerry Fu June 5, 2007 Parallel Image Segmenter CSE 262 Spring 2007 Project Final Presentation.
Adversarial Search: Game Playing Reading: Chess paper.
Othello Sean Farrell June 29, Othello Two-player game played on 8x8 board All pieces have one white side and one black side Initial board setup.
GoogolHex CS4701 Final Presentation Anand Bheemarajaiah Chet Mancini Felipe Osterling.
1 Adversary Search Ref: Chapter 5. 2 Games & A.I. Easy to measure success Easy to represent states Small number of operators Comparison against humans.
CISC 235: Topic 6 Game Trees.
Game Playing Chapter 5. Game playing §Search applied to a problem against an adversary l some actions are not under the control of the problem-solver.
Adversarial Search CS30 David Kauchak Spring 2015 Some material borrowed from : Sara Owsley Sood and others.
Artificial Intelligence in Game Design Lecture 22: Heuristics and Other Ideas in Board Games.
1 Learning Agents Laboratory Computer Science Department George Mason University Prof. Gheorghe Tecuci 3. Rote Learning.
Introduction Many decision making problems in real life
Othello Artificial Intelligence With Machine Learning
7-1 Chapter 7 - Memory Principles of Computer Architecture by M. Murdocca and V. Heuring © 1999 M. Murdocca and V. Heuring Principles of Computer Architecture.
7-1 Chapter 7 - Memory Department of Information Technology, Radford University ITEC 352 Computer Organization Principles of Computer Architecture Miles.
Computer Go : A Go player Rohit Gurjar CS365 Project Proposal, IIT Kanpur Guided By – Prof. Amitabha Mukerjee.
Game Playing Chapter 5. Game playing §Search applied to a problem against an adversary l some actions are not under the control of the problem-solver.
Chapter 8 Problems Prof. Sin-Min Lee Department of Mathematics and Computer Science.
Connect Four AI Robert Burns and Brett Crawford. Connect Four  A board with at least six rows and seven columns  Two players: one with red discs and.
Minimax with Alpha Beta Pruning The minimax algorithm is a way of finding an optimal move in a two player game. Alpha-beta pruning is a way of finding.
 2003, G.Tecuci, Learning Agents Laboratory 1 Learning Agents Laboratory Computer Science Department George Mason University Prof. Gheorghe Tecuci 2.
Term 2, 2011 Week 1. CONTENTS Problem-solving methodology Programming and scripting languages – Programming languages Programming languages – Scripting.
Senior Project Poster Day 2007, CIS Dept. University of Pennsylvania Reversi Meng Tran Faculty Advisor: Dr. Barry Silverman Strategies: l Corners t Corners.
Chess and AI Group Members Abhishek Sugandhi Sanjeet Khaitan Gautam Solanki
Cilk Pousse James Process CS534. Overview Introduction to Pousse Searching Evaluation Function Move Ordering Conclusion.
GAME PLAYING 1. There were two reasons that games appeared to be a good domain in which to explore machine intelligence: 1.They provide a structured task.
Adversarial Search Chapter Games vs. search problems "Unpredictable" opponent  specifying a move for every possible opponent reply Time limits.
Tetris Agent Optimization Using Harmony Search Algorithm
ECE 4330 Project Proposal 2 “Blackout” LED Game by Nick Hermanson.
Copyright © Curt Hill SIMD Single Instruction Multiple Data.
Othello Artificial Intelligence With Machine Learning Computer Systems TJHSST Nick Sidawy.
Explorations in Artificial Intelligence Prof. Carla P. Gomes Module 5 Adversarial Search (Thanks Meinolf Sellman!)
Understanding AI of 2 Player Games. Motivation Not much experience in AI (first AI project) and no specific interests/passion that I wanted to explore.
Artificial Intelligence AIMA §5: Adversarial Search
CS161 – Design and Architecture of Computer
EA C461 – Artificial Intelligence Adversarial Search
Announcements Homework 1 Full assignment posted..
Othello Artificial Intelligence With Machine Learning
Last time: search strategies
CS 460 Spring 2011 Lecture 4.
Genomic Data Clustering on FPGAs for Compression
Othello Artificial Intelligence With Machine Learning
Adversarial Search Chapter 5.
NIM - a two person game n objects are in one pile
Duo By: Fernando & Vivian.
Practical Session 8, Memory Management 2
Games & Adversarial Search
Practical Session 9, Memory Management continues
CS51A David Kauchak Spring 2019
Chapter Contents 7.1 The Memory Hierarchy 7.2 Random Access Memory
Othello Artificial Intelligence With Machine Learning
Presentation transcript:

Othello Processor Bret Taylor, Olatunji Ruwase, and Jim Norris CS343, Spring 2003

Project Overview AI algorithms for games like Othello are highly parallelizable  Generally, algorithm performance is increased by adding more, generic processors What price-performance can we achieve with a custom processor?  What granularity of custom instructions achieves greatest price-performance?  How generic can we make the instructions?

Overview of Othello Goal: Have more pieces when the game ends You flip your opponent’s pieces when you surround them with your pieces on each end

Overview of Othello Goal: Have more pieces when the game ends You flip your opponent’s pieces when you surround them with your pieces on each end

Overview of Othello Goal: Have more pieces when the game ends You flip your opponent’s pieces when you surround them with your pieces on each end

Othello in Academia Software  Rosenbloom, Paul S.: A World-Championship-Level Othello Program  Lee, K.; Mahajan, S.: The Development of a World Class Othello Program No specific hardware implementations, but related work for MiniMax-style algorithms  Powley, Curtis Nelson: Parallel Tree Search on a Single-Instruction, Multiple-Data (SIMD) Machine

Common Algorithm Structure MiniMax search to a depth determined by global or per-move time limit Heuristics evaluate “value” of move at leaves

Common Algorithm Properties The deeper the search, the better the processor  Assumes heuristic is “reasonable,” i.e., it does not get worse with more information Effectively infinitely parallelizable Many operations are expensive in software:  Determining successors (“is valid move”)  Calculating successors (“make move”)  Heuristic calculation

Our Othello Implementation Based on Iago, concentrating on high-quality heuristic variables:  Stability – Number of pieces that can never be flipped  Mobility – Number of available moves  Piece differential  Vulnerability – Entrance points to stable squares on the corners and sides Heuristic value is weighted sum of variables  Weights learned through reinforcement learning  Weights vary over the course of the game

Software Overview Boards are 128-bit entries (2 bits per piece) Lookup tables for things like stability Lookup tables are indexed by the ternary number represented by the row or column: * *

Software Trace Profile Vast majority of CPU time consumed in IsLegalMove and MakeMove  53.21% DoOneDirection  30.64% DoAllDirections Loops in all rows/diagonals to find/flip valid directions Called to find successors, to calculate mobility, and to make moves Operations are common to all Othello players (extensions are at least slightly generic)!

Flip Instruction Granularity Split a single MakeMove or IsLegalMove operation into a sequence of four operations corresponding the four flip directions (row, column, rdiag, ldiag) Made a lookup table of the 3 8 row/column/diagonal configurations to lookup which pieces get flipped on an axis given a piece placement

Reducing Die Area We only implemented FLIPROW and FLIPDIAGONAL instructions  We do a 90 o rotation of the board and back again to flip the other two directions Saved on die area and cycle time; transposing and rotating are very cheap instructions

New DoAllDirections Output dependencies galore! B = FLIPROW(B, row, col); B = FLIPDIAG(B, row, col); B = ROTATEBOARD(B, CLW); B = FLIPROW(B, col, 7 – row); B = FLIPDIAG(B, col, 7 – row); B = ROTATEBOARD(B, ACLW);

State Registers Store 64-bit FLIPTABLE state register to keep track of which pieces should be flipped: no output dependencies between instructions Added benefit: seeing if a move is valid simply amounts to ( FLIPTABLE != 0) after flip operations

Results New instructions are extremely effective with relatively little complexity compared to optimizing for a multi-processor environment ~4.1 times better performance than base processor CPUCyclesCycleTimeAreaPricePerf Base ~10 ns~4.2 mm 2 ? Extended ns20389??

Conclusions Positives  Optimizations can be used for all Othello players  With very little work, we could reduce the cycle time to that of the base processor Negatives  Cost of custom processors is prohibitive  It may be more effective to exploit parallelism of search algorithm Combining custom processors with MP parallelism for best results?