21 research outputs found

    Graph Processing in Main-Memory Column Stores

    Get PDF
    Evermore, novel and traditional business applications leverage the advantages of a graph data model, such as the offered schema flexibility and an explicit representation of relationships between entities. As a consequence, companies are confronted with the challenge of storing, manipulating, and querying terabytes of graph data for enterprise-critical applications. Although these business applications operate on graph-structured data, they still require direct access to the relational data and typically rely on an RDBMS to keep a single source of truth and access. Existing solutions performing graph operations on business-critical data either use a combination of SQL and application logic or employ a graph data management system. For the first approach, relying solely on SQL results in poor execution performance caused by the functional mismatch between typical graph operations and the relational algebra. To the worse, graph algorithms expose a tremendous variety in structure and functionality caused by their often domain-specific implementations and therefore can be hardly integrated into a database management system other than with custom coding. Since the majority of these enterprise-critical applications exclusively run on relational DBMSs, employing a specialized system for storing and processing graph data is typically not sensible. Besides the maintenance overhead for keeping the systems in sync, combining graph and relational operations is hard to realize as it requires data transfer across system boundaries. A basic ingredient of graph queries and algorithms are traversal operations and are a fundamental component of any database management system that aims at storing, manipulating, and querying graph data. Well-established graph traversal algorithms are standalone implementations relying on optimized data structures. The integration of graph traversals as an operator into a database management system requires a tight integration into the existing database environment and a development of new components, such as a graph topology-aware optimizer and accompanying graph statistics, graph-specific secondary index structures to speedup traversals, and an accompanying graph query language. In this thesis, we introduce and describe GRAPHITE, a hybrid graph-relational data management system. GRAPHITE is a performance-oriented graph data management system as part of an RDBMS allowing to seamlessly combine processing of graph data with relational data in the same system. We propose a columnar storage representation for graph data to leverage the already existing and mature data management and query processing infrastructure of relational database management systems. At the core of GRAPHITE we propose an execution engine solely based on set operations and graph traversals. Our design is driven by the observation that different graph topologies expose different algorithmic requirements to the design of a graph traversal operator. We derive two graph traversal implementations targeting the most common graph topologies and demonstrate how graph-specific statistics can be leveraged to select the optimal physical traversal operator. To accelerate graph traversals, we devise a set of graph-specific, updateable secondary index structures to improve the performance of vertex neighborhood expansion. Finally, we introduce a domain-specific language with an intuitive programming model to extend graph traversals with custom application logic at runtime. We use the LLVM compiler framework to generate efficient code that tightly integrates the user-specified application logic with our highly optimized built-in graph traversal operators. Our experimental evaluation shows that GRAPHITE can outperform native graph management systems by several orders of magnitude while providing all the features of an RDBMS, such as transaction support, backup and recovery, security and user management, effectively providing a promising alternative to specialized graph management systems that lack many of these features and require expensive data replication and maintenance processes

    κ³ μ„±λŠ₯ 인곡 신경망을 μœ„ν•œ λ©”λͺ¨λ¦¬ λ ˆμ΄μ•„μ›ƒ 및 μ»΄ν“¨νŒ… 기법

    Get PDF
    ν•™μœ„λ…Όλ¬Έ (박사) -- μ„œμšΈλŒ€ν•™κ΅ λŒ€ν•™μ› : κ³΅κ³ΌλŒ€ν•™ 전기·정보곡학뢀, 2021. 2. κΉ€νƒœν™˜.인곡 신경망 연산을 μˆ˜ν–‰ν•˜κ³ μž ν•˜λŠ” μˆ˜μš”κ°€ κΎΈμ€€νžˆ μ¦κ°€ν•˜κ³  μžˆμ§€λ§Œ, κΉŠμ€ 인곡 μ‹ κ²½λ§μ—λŠ” κ³Όλ„ν•œ λ©”λͺ¨λ¦¬μ™€ 계산 λΉ„μš©μ΄ 수반되기 λ•Œλ¬Έμ— λ§Žμ€ 섀계 λ¬Έμ œκ°€ μžˆλ‹€. λ³Έ λ…Όλ¬Έμ—μ„œλŠ” 인곡 신경망 μΆ”λ‘  연산을 효과적으둜 μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ μ—¬λŸ¬ 가지 μƒˆλ‘œμš΄ κΈ°μˆ μ„ μ—°κ΅¬ν•œλ‹€. 첫 번째둜, μ΅œλŒ€ 계산 속도 ν–₯상이 κ°€μ€‘μΉ˜μ˜ 0 μ•„λ‹Œ λΉ„νŠΈμ˜ 총 μˆ˜μ— μ˜ν•΄ μ œν•œλ˜λŠ” ν•œκ³„μ˜ 극볡을 μ‹œλ„ν•œλ‹€. ꡬ체적으둜, λΆ€ν˜ΈμžˆλŠ” 숫자 인코딩에 κΈ°λ°˜ν•œ λ³Έ μ—°κ΅¬μ—μ„œ, (1) λͺ¨λ“  κ°€μ€‘μΉ˜μ˜ 2의 보수 ν‘œν˜„μ„ ν•„μˆ˜ λΉ„νŠΈλ₯Ό μ΅œμ†Œλ‘œ ν•˜λŠ” λΆ€ν˜ΈμžˆλŠ” 숫자 ν‘œν˜„μ˜ μ§‘ν•©μœΌλ‘œ λ³€ν™˜ν•˜λŠ” λ³€ν™˜ 기법을 μ œμ•ˆν•˜λ©°, (2) κ°€μ€‘μΉ˜μ˜ λΉ„νŠΈ λ‹¨μœ„ κ³±μ…ˆμ˜ 병렬성을 μ΅œλŒ€ν•˜ν™”λŠ” κ°€μ€‘μΉ˜μ˜ λΆ€ν˜ΈμžˆλŠ” 숫자 ν‘œν˜„μ„ μ„ νƒν•˜λŠ” 문제λ₯Ό 숫자 인덱슀 (μ—΄ λ‹¨μœ„) μ••μΆ• μ΅œλŒ€ν™”λ₯Ό λ‹¬μ„±ν•˜λ„λ‘ λ‹€λͺ©μ  μ΅œλ‹¨ 경둜 문제둜 κ³΅μ‹ν™”ν•˜μ—¬ 근사 μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•˜μ—¬ 효율적으둜 ν•΄κ²°ν•˜λ©°, (3) μ£Όμš” ν•˜λ“œμ›¨μ–΄λ₯Ό μΆ”κ°€λ‘œ ν¬ν•¨ν•˜μ§€ μ•Šκ³  μ•žμ„œ μ œμ•ˆν•œ 기법을 μ§€μ›ν•˜λŠ” μƒˆλ‘œμš΄ 가속기 μ•„ν‚€ν…μ²˜(DWP)λ₯Ό μ œμ•ˆν•œλ‹€. λ˜ν•œ, μš°λ¦¬λŠ” (4) 병렬 μ²˜λ¦¬μ—μ„œ μ΅œμ•…μ˜ 지연 μ‹œκ°„μ„ μ—„κ²©ν•˜κ²Œ μ˜ˆμΈ‘ν•  수 μžˆλŠ” κΈ°λŠ₯이 ν¬ν•¨λœ λΉ„νŠΈ λ‹¨μœ„ 병렬 κ³±μ…ˆμ„ μ§€μ›ν•˜λ„λ‘ λ‹€λ₯Έ ν˜•νƒœμ˜ DWPλ₯Ό μ œμ•ˆν•œλ‹€. μ‹€ν—˜μ„ 톡해 λ³Έ μ—°κ΅¬μ—μ„œ μ œμ•ˆν•˜λŠ” μ ‘κ·Ό 방법은 ν•„μˆ˜ λΉ„νŠΈ 수λ₯Ό AlexNetμ—μ„œ 69%, VGG-16μ—μ„œ 74%, ResNet-152μ—μ„œ 68%κΉŒμ§€ 쀄일 수 μžˆμŒμ„ λ³΄μ—¬μ£Όμ—ˆλ‹€. λ˜ν•œ 이λ₯Ό μ§€μ›ν•˜λŠ” κ°€μ†κΈ°λŠ” μΆ”λ‘  μ—°μ‚° μ‹œκ°„μ„ 기쑴의 λΉ„νŠΈ λ‹¨μœ„ κ°€μ€‘μΉ˜ κ°€μ§€μΉ˜κΈ° 방법에 λΉ„ν•΄ μ΅œλŒ€ 3.57λ°°κΉŒμ§€ κ°μ†Œμ‹œμΌ°λ‹€. 두 번째둜, 이진 및 삼진 κ°€μ€‘μΉ˜μ˜ μ»¨λ³Όλ£¨μ…˜ 인곡 μ‹ κ²½λ§μ—μ„œ μ»¨λ³Όλ£¨μ…˜ κ°„μ˜ 쀑볡 연산을 μ΅œλŒ€ν•œ μ œκ±°ν•˜κΈ° μœ„ν•˜μ—¬ 곡톡 컀널 및 μ»¨λ³Όλ£¨μ…˜μ„ μΆ”μΆœν•˜λŠ” μƒˆλ‘œμš΄ μ•Œκ³ λ¦¬μ¦˜μ„ μ œμ‹œν•œλ‹€. ꡬ체적으둜, (1) κΈ°μ‘΄ λ°©λ²•μ—μ„œ 곡톡 컀널 ν›„λ³΄μ˜ ꡭ뢀적이고 μ œν•œμ μΈ 탐색을 κ·Ήλ³΅ν•˜κΈ° μœ„ν•œ μƒˆλ‘œμš΄ 곡톡 컀널 μΆ”μΆœ μ•Œκ³ λ¦¬μ¦˜μ„ μ œμ•ˆν•˜κ³ , 이후에 (2) μ»¨λ³Όλ£¨μ…˜ μ—°μ‚°μ—μ„œμ˜ 쀑볡성을 μ΅œλŒ€ν•œμœΌλ‘œ μ œκ±°ν•˜κΈ° μœ„ν•œ μƒˆλ‘œμš΄ κ°œλ…μ˜ 곡톡 μ»¨λ³Όλ£¨μ…˜ μΆ”μΆœμ„ μ μš©ν•œλ‹€. λ˜ν•œ, 우리의 μ•Œκ³ λ¦¬μ¦˜μ€ (3) μ»¨λ³Όλ£¨μ…˜μ— λŒ€ν•΄ μ΅œμ’…μ μœΌλ‘œ λ„μΆœλœ 컀널 수λ₯Ό μ΅œμ†Œν™”ν•˜μ—¬ 컀널에 λŒ€ν•œ 총 λ©”λͺ¨λ¦¬ μ ‘κ·Ό 지연 μ‹œκ°„μ„ μ ˆμ•½ν•  수 μžˆλ‹€. 삼진 κ°€μ€‘μΉ˜μ˜ VGG-16에 λŒ€ν•œ μ‹€ν—˜ 결과둜 λͺ¨λ“  μ»¨λ³Όλ£¨μ…˜μ— λŒ€ν•œ 총 μ—°μ‚° 수λ₯Ό 25.8-26.3% κ°μ†Œμ‹œμΌœ, μ΅œμ‹  μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œ μΆ”μΆœν•œ 곡톡 컀널을 μ‚¬μš©ν•˜λŠ” μ»¨λ³Όλ£¨μ…˜μ— λΉ„ν•΄ 2.7-3.8% 더 적은 컀널을 μ‚¬μš©ν•˜λŠ” λ™μ•ˆ ν•˜λ“œμ›¨μ–΄ ν”Œλž«νΌμ—μ„œμ˜ 총 μˆ˜ν–‰ 사이클을 22.4% κ°μ†Œμ‹œν‚΄μœΌλ‘œμ¨ μš°λ¦¬κ°€ μ œμ•ˆν•œ μ»¨λ³Όλ£¨μ…˜ μ΅œμ ν™” μ•Œκ³ λ¦¬μ¦˜μ΄ 맀우 νš¨κ³Όμ μž„μ„ λ³΄μ˜€λ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ, μš°λ¦¬λŠ” μ••μΆ•λœ DNN의 λͺ¨λ“  고유 κ°€μ€‘μΉ˜λ“€μ„ 온-μΉ© λ©”λͺ¨λ¦¬μ— μ™„μ „νžˆ 포함할 수 μ—†λŠ” 경우 정확도 μœ μ§€λ₯Ό μœ„ν•΄ 뢀적합 압좕을 μ‚¬μš©ν•˜λŠ” DNN μ†”λ£¨μ…˜μ„ μ œμ•ˆν•œλ‹€. ꡬ체적으둜, κ°€μ€‘μΉ˜μ˜ μ ‘κ·Ό μ‹œν€€μŠ€κ°€ 주어지면, (1) 첫 번째 λ¬Έμ œλŠ” μ˜€ν”„-μΉ© λ©”λͺ¨λ¦¬μ˜ λ©”λͺ¨λ¦¬ μ ‘κ·Ό 수(접근에 μ˜ν•΄ μ†ŒλΉ„λ˜λŠ” μ—λ„ˆμ§€)λ₯Ό μ΅œμ†Œν™”ν•˜λ„λ‘ μ˜€ν”„-μΉ© λ©”λͺ¨λ¦¬μ— κ°€μ€‘μΉ˜λ₯Ό λ°°μ—΄ν•˜λŠ” 것이고, (2) 두 번째 λ¬Έμ œλŠ” 블둝 ꡐ체λ₯Ό μœ„ν•œ 인덱슀 탐색에 μ†ŒλΉ„λ˜λŠ” μ˜€λ²„ν—€λ“œμ™€ μ˜€ν”„-μΉ© λ©”λͺ¨λ¦¬ 접근에 μ†Œλͺ¨λ˜λŠ” 총 μ—λ„ˆμ§€μ˜ μ΅œμ†Œν™”λ₯Ό λͺ©μ μœΌλ‘œ ν•˜μ—¬ 블둝 미슀 λ°œμƒ μ‹œ 온-μΉ© λ©”λͺ¨λ¦¬μ—μ„œ ꡐ체될 κ°€μ€‘μΉ˜ 블둝을 μ„ νƒν•˜λŠ” μ „λž΅μ„ κ³ μ•ˆν•˜λŠ” 것이닀. μ••μΆ•λœ AlexNet λͺ¨λΈμ„ μ‚¬μš©ν•œ μ‹€ν—˜μ„ 톡해 우리의 μ†”λ£¨μ…˜μ€ μ΅œμ ν™”λ˜μ§€ μ•Šμ€ λ©”λͺ¨λ¦¬ λ ˆμ΄μ•„μ›ƒ 및 LRU ꡐ체 방법을 μ‚¬μš©ν•˜λŠ” κ²½μš°μ— λΉ„ν•΄ 탐색 μ˜€λ²„ν—€λ“œλ₯Ό ν¬ν•¨ν•˜μ—¬ μ˜€ν”„-μΉ© λ©”λͺ¨λ¦¬ 접근에 ν•„μš”ν•œ 총 μ—λ„ˆμ§€ μ†ŒλΉ„λ₯Ό 평균 34.2%κΉŒμ§€ 쀄일 수 μžˆμŒμ„ λ³΄μ˜€λ‹€.Although the demand for exploiting neural networks is steadily increasing, there are many design challenges since deep neural networks (DNNs) entail excessive memory and computation cost. This dissertation studies a number of new techniques for effectively processing DNN inference operations. Firstly, we attempt to overcome that the maximal computation speedup is bounded by the total number of non-zero bits of the weights. Precisely, this work, based on the signed-digit encoding, (1) proposes a transformation technique which converts the twos complement representation of every weight into a set of signed-digit representations of the minimal number of essential bits, (2) formulates the problem of selecting signed-digit representations of weights that maximize the parallelism of bit-level multiplication on the weights into a multi-objective shortest path problem to achieve a maximal digit-index by digit-index (i.e. column-wise) compression for the weights and solves it efficiently using an approximation algorithm, and (3) proposes a supporting novel acceleration architecture (DWP) with no additional inclusion of non-trivial hardware. In addition, we (4) propose a variant of DWP to support bit-level parallel multiplication with the capability of predicting a tight worst-case latency of the parallel processing. Through experiments on several representative models using the ImageNet dataset, it is shown that our proposed approach is able to reduce the number of essential bits by 69% on AlexNet, 74% on VGG-16, and 68% on ResNet-152, by which our accelerator is able to reduce the inference computation time by up to 3.57x over the conventional bit-level weight pruning. Secondly, a new algorithm for extracting common kernels and convolutions to maximally eliminate the redundant operations among the convolutions in binary- and ternary-weight convolutional neural networks is presented. Specifically, we propose (1) a new algorithm of common kernel extraction to overcome the local and limited exploration of common kernel candidates by the existing method, and subsequently apply (2) a new concept of common convolution extraction to maximally eliminate the redundancy in the convolution operations. In addition, our algorithm is able to (3) tune in minimizing the number of resulting kernels for convolutions, thereby saving the total memory access latency for kernels. Experimental results on ternary-weight VGG-16 demonstrate that our convolution optimization algorithm is very effective, reducing the total number of operations for all convolutions by 25.8-26.3%, thereby reducing the total number of execution cycles on hardware platform by 22.4% while using 2.7-3.8% fewer kernels over that of the convolution utilizing the common kernels extracted by the state-of-the-art algorithm. Finally, we propose solutions for DNNs with unfitted compression to maintain the accuracy, in which all distinct weights of the compressed DNNs could not be entirely contained in on-chip memory. Precisely, given an access sequence of weights, (1) the first problem is to arrange the weights in off-chip memory, so that the number of memory accesses to the off-chip memory (equivalently the energy consumed by the accesses) be minimized, and (2) the second problem is to devise a strategy of selecting a weight block in on-chip memory for replacement when a block miss occurs, with the objective of minimizing the total energy consumed by the off-chip memory accesses and the overhead of scanning indexes for block replacement. Through experiments with the model of compressed AlexNet, it is shown that our solutions are able to reduce the total energy consumption of the off-chip memory accesses including the scanning overhead by 34.2% on average over the use of unoptimized memory layout and LRU replacement scheme.1 Introduction 1 1.1 Deep Neural Networks and Its Challenges 1 1.2 Redundant Weight Elimination Methods in DNN 4 1.3 Redundant Representation Elimination Methods in DNN 8 1.4 Contributions of This Dissertation 12 2 Bit-level Weight Pruning Techniques for High-Performance Neural Networks 17 2.1 Preliminary 17 2.1.1 Bit-level Weight Pruning in Binary Representation 17 2.1.2 Bit-level Weight Pruning in Signed-digit Representation 19 2.1.3 CSD Representation Conversion 21 2.2 Motivations 23 2.2.1 Inefficiency in Two's Complement Representation 23 2.2.2 Inability to Exploit Signed-digit Representation 25 2.3 Signed-digit Representation-based Deeper Weight Pruning 28 2.3.1 Generating Signed-digit Representations 28 2.3.2 Selecting Signed-digit Representations for Maximal Parallelism 30 2.3.3 Extension to the Low-precision Weights 32 2.4 Supporting Hardware Architecture 33 2.4.1 Technique for Using a Single Bit to Encode Ternary Value 33 2.4.2 Structure of Supporting Architecture 35 2.4.3 Memory Analysis 37 2.4.4 Full Utilization of Accumulation Adders 38 2.4.5 Modification for Hybrid Approach 38 2.5 Bit-level Intra-weight Pruning 41 2.5.1 Signed-digit Representation Conversion 41 2.5.2 Encoding Technique 41 2.5.3 Supporting Hardware Architecture 42 2.6 Experimental Results 44 2.6.1 Essential Bits 44 2.6.2 Memory Usage 46 2.6.3 Performance 46 2.6.4 Area 50 2.6.5 Energy Efficiency 56 3 Convolution Computation Techniques for High-Performance Neural Networks 59 3.1 Motivations 59 3.1.1 Limited Space Exploration for Common Kernels 59 3.1.2 Inability to Exploit Common Expressions of Convolution Values 61 3.2 The Proposed Algorithm 63 3.2.1 Common Kernel Extraction 63 3.2.2 Common Convolution Extraction 67 3.2.3 Memory Access Minimization 69 3.3 Hardware Implementation 70 3.4 Experimental Results 72 3.4.1 Experimental Setup 72 3.4.2 Assessing Effectiveness of ConvOpt-op and ConvOpt-mem 72 3.4.3 Measuring Performance through Hardware Implementation 78 3.4.4 Running Time of ConvOpt 78 4 Memory Layout and Block Replacement Techniques for High-Performance Neural Networks 81 4.1 Motivation 81 4.2 Algorithms for Off-chip Memory Access Optimization for DNNs with Unfitted Compression 84 4.2.1 Algorithm for Off-chip Memory Layout 84 4.2.2 Algorithm for On-chip Memory Block Replacement 86 4.2.3 Exploitation of Parallel Computing 91 4.3 Experimental Results 94 4.3.1 Experimental Setup 94 4.3.2 Assessing the Effectiveness of Mem-layout 94 4.3.3 Assessing the Effectiveness of MIN-k Combined with Mem-layout 97 5 Conclusions 101 5.1 Bit-level Weight Pruning Techniques for High-Performance Neural Networks 101 5.2 Convolution Computation Techniques for High-Performance Neural Networks 102 5.3 Memory Layout and Block Replacement Techniques for High-Performance Neural Networks 102 Abstract (In Korean) 117Docto

    Optimal Joins Using Compact Data Structures

    Get PDF
    Worst-case optimal join algorithms have gained a lot of attention in the database literature. We now count with several algorithms that are optimal in the worst case, and many of them have been implemented and validated in practice. However, the implementation of these algorithms often requires an enhanced indexing structure: to achieve optimality we either need to build completely new indexes, or we must populate the database with several instantiations of indexes such as B+-trees. Either way, this means spending an extra amount of storage space that may be non-negligible. We show that optimal algorithms can be obtained directly from a representation that regards the relations as point sets in variable-dimensional grids, without the need of extra storage. Our representation is a compact quadtree for the static indexes, and a dynamic quadtree sharing subtrees (which we dub a qdag) for intermediate results. We develop a compositional algorithm to process full join queries under this representation, and show that the running time of this algorithm is worst-case optimal in data complexity. Remarkably, we can extend our framework to evaluate more expressive queries from relational algebra by introducing a lazy version of qdags (lqdags). Once again, we can show that the running time of our algorithms is worst-case optimal

    Doctor of Philosophy

    Get PDF
    dissertationDeep Neural Networks (DNNs) are the state-of-art solution in a growing number of tasks including computer vision, speech recognition, and genomics. However, DNNs are computationally expensive as they are carefully trained to extract and abstract features from raw data using multiple layers of neurons with millions of parameters. In this dissertation, we primarily focus on inference, e.g., using a DNN to classify an input image. This is an operation that will be repeatedly performed on billions of devices in the datacenter, in self-driving cars, in drones, etc. We observe that DNNs spend a vast majority of their runtime to runtime performing matrix-by-vector multiplications (MVM). MVMs have two major bottlenecks: fetching the matrix and performing sum-of-product operations. To address these bottlenecks, we use in-situ computing, where the matrix is stored in programmable resistor arrays, called crossbars, and sum-of-product operations are performed using analog computing. In this dissertation, we propose two hardware units, ISAAC and Newton.In ISAAC, we show that in-situ computing designs can outperform DNN digital accelerators, if they leverage pipelining, smart encodings, and can distribute a computation in time and space, within crossbars, and across crossbars. In the ISAAC design, roughly half the chip area/power can be attributed to the analog-to-digital conversion (ADC), i.e., it remains the key design challenge in mixed-signal accelerators for deep networks. In spite of the ADC bottleneck, ISAAC is able to out-perform the computational efficiency of the state-of-the-art design (DaDianNao) by 8x. In Newton, we take advantage of a number of techniques to address ADC inefficiency. These techniques exploit matrix transformations, heterogeneity, and smart mapping of computation to the analog substrate. We show that Newton can increase the efficiency of in-situ computing by an additional 2x. Finally, we show that in-situ computing, unfortunately, cannot be easily adapted to handle training of deep networks, i.e., it is only suitable for inference of already-trained networks. By improving the efficiency of DNN inference with ISAAC and Newton, we move closer to low-cost deep learning that in turn will have societal impact through self-driving cars, assistive systems for the disabled, and precision medicine

    Virtual Reality Games for Motor Rehabilitation

    Get PDF
    This paper presents a fuzzy logic based method to track user satisfaction without the need for devices to monitor users physiological conditions. User satisfaction is the key to any product’s acceptance; computer applications and video games provide a unique opportunity to provide a tailored environment for each user to better suit their needs. We have implemented a non-adaptive fuzzy logic model of emotion, based on the emotional component of the Fuzzy Logic Adaptive Model of Emotion (FLAME) proposed by El-Nasr, to estimate player emotion in UnrealTournament 2004. In this paper we describe the implementation of this system and present the results of one of several play tests. Our research contradicts the current literature that suggests physiological measurements are needed. We show that it is possible to use a software only method to estimate user emotion
    corecore