{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,21]],"date-time":"2026-02-21T18:47:12Z","timestamp":1771699632824,"version":"3.50.1"},"reference-count":21,"publisher":"MDPI AG","issue":"6","license":[{"start":{"date-parts":[[2019,6,5]],"date-time":"2019-06-05T00:00:00Z","timestamp":1559692800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100002322","name":"Coordena\u00e7\u00e3o de Aperfei\u00e7oamento de Pessoal de N\u00edvel Superior","doi-asserted-by":"publisher","award":["Finance Code 001"],"award-info":[{"award-number":["Finance Code 001"]}],"id":[{"id":"10.13039\/501100002322","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Electronics"],"abstract":"<jats:p>Sequential Minimal Optimization (SMO) is the traditional training algorithm for Support Vector Machines (SVMs). However, SMO does not scale well with the size of the training set. For that reason, Stochastic Gradient Descent (SGD) algorithms, which have better scalability, are a better option for massive data mining applications. Furthermore, even with the use of SGD, training times can become extremely large depending on the data set. For this reason, accelerators such as Field-programmable Gate Arrays (FPGAs) are used. This work describes an implementation in hardware, using FPGA, of a fully parallel SVM using Stochastic Gradient Descent. The proposed FPGA implementation of an SVM with SGD presents speedups of more than 10,000\u00d7 relative to software implementations running on a quad-core processor and up to 319\u00d7 compared to state-of-the-art FPGA implementations while requiring fewer hardware resources. The results show that the proposed architecture is a viable solution for highly demanding problems such as those present in big data analysis.<\/jats:p>","DOI":"10.3390\/electronics8060631","type":"journal-article","created":{"date-parts":[[2019,6,6]],"date-time":"2019-06-06T03:38:01Z","timestamp":1559792281000},"page":"631","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":26,"title":["Parallel Implementation on FPGA of Support Vector Machines Using Stochastic Gradient Descent"],"prefix":"10.3390","volume":"8","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-6335-6173","authenticated-orcid":false,"given":"Felipe F.","family":"Lopes","sequence":"first","affiliation":[{"name":"Laboratory of Machine Learning and Intelligent Instrumentation, Federal University of Rio Grande do Norte, Natal 59078-970, Brazil"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7471-3888","authenticated-orcid":false,"given":"Jo\u00e3o Canas","family":"Ferreira","sequence":"additional","affiliation":[{"name":"INESC TEC and Faculty of Engineering, University of Porto, 4200-465 Porto, Portugal"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7536-2506","authenticated-orcid":false,"given":"Marcelo A. C.","family":"Fernandes","sequence":"additional","affiliation":[{"name":"Laboratory of Machine Learning and Intelligent Instrumentation, Federal University of Rio Grande do Norte, Natal 59078-970, Brazil"},{"name":"Department of Computer and Automation Engineering, Federal University of Rio Grande do Norte, Natal 59078-970, Brazil"}]}],"member":"1968","published-online":{"date-parts":[[2019,6,5]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","first-page":"163","DOI":"10.1016\/j.vlsi.2018.10.002","article-title":"SVM algorithm oriented for implementation in a low-cost Xilinx FPGA","volume":"64","year":"2019","journal-title":"Integration"},{"key":"ref_2","doi-asserted-by":"crossref","first-page":"57","DOI":"10.1016\/j.micpro.2018.12.005","article-title":"A System on Chip for Melanoma Detection Using FPGA-based SVM Classifier","volume":"65","author":"Afifi","year":"2018","journal-title":"Microprocess. Microsyst."},{"key":"ref_3","doi-asserted-by":"crossref","first-page":"2782","DOI":"10.1109\/ACCESS.2018.2885950","article-title":"Parallel Implementation of Reinforcement Learning Q-Learning Technique for FPGA","volume":"7","author":"Silva","year":"2019","journal-title":"IEEE Access"},{"key":"ref_4","unstructured":"Platt, J. (1998). Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines, Microsoft Research. Technical Report MSR-TR-98-14."},{"key":"ref_5","doi-asserted-by":"crossref","unstructured":"Panagiotakopoulos, C., and Tsampouka, P. (2013, January 23\u201327). The stochastic gradient descent for the primal l1-svm optimization revisited. Proceedings of the Joint European Conference on Machine Learning and Knowledge Discovery in Databases, Prague, Czech Republic.","DOI":"10.1007\/978-3-642-40994-3_5"},{"key":"ref_6","doi-asserted-by":"crossref","first-page":"99","DOI":"10.1109\/TNNLS.2015.2428738","article-title":"Embedded hardware-efficient real-time classification with cascade support vector machines","volume":"27","author":"Kyrkou","year":"2016","journal-title":"IEEE Trans. Neural Netw. Learn. Syst."},{"key":"ref_7","first-page":"3103","article-title":"Breaking the curse of kernelization: Budgeted stochastic gradient descent for large-scale svm training","volume":"13","author":"Wang","year":"2012","journal-title":"J. Mach. Learn. Res."},{"key":"ref_8","doi-asserted-by":"crossref","unstructured":"Ho, S.M., Wang, M., Ng, H.C., and So, H.K.H. (December, January 30). Towards FPGA-assisted spark: An SVM training acceleration case study. Proceedings of the 2016 International Conference on ReConFigurable Computing and FPGAs (ReConFig), Cancun, Mexico.","DOI":"10.1109\/ReConFig.2016.7857194"},{"key":"ref_9","unstructured":"Kara, K., Alistarh, D., Alonso, G., Mutlu, O., and Zhang, C. (May, January 30). Fpga-accelerated dense linear machine learning: A precision-convergence trade-off. Proceedings of the IEEE 25th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), Napa, CA, USA."},{"key":"ref_10","doi-asserted-by":"crossref","unstructured":"Rasoori, S., and Akella, V. (2018, January 23\u201325). Scalable Hardware Accelerator for Mini-Batch Gradient Descent. Proceedings of the 2018 on Great Lakes Symposium on VLSI, Chicago, IL, USA.","DOI":"10.1145\/3194554.3194559"},{"key":"ref_11","doi-asserted-by":"crossref","unstructured":"De Sa, C., Feldman, M., R\u00e9, C., and Olukotun, K. (2017, January 24\u201328). Understanding and optimizing asynchronous low-precision stochastic gradient descent. Proceedings of the 44th Annual International Symposium on Computer Architecture, Toronto, ON, Canada.","DOI":"10.1145\/3079856.3080248"},{"key":"ref_12","doi-asserted-by":"crossref","unstructured":"Scholkopf, B., and Smola, A.J. (2001). Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond, MIT Press.","DOI":"10.7551\/mitpress\/4175.001.0001"},{"key":"ref_13","unstructured":"Haykin, S.S. (2009). Neural Networks and Learning Machines, Pearson Education, Inc."},{"key":"ref_14","doi-asserted-by":"crossref","unstructured":"Demir-Kavuk, O., Kamada, M., Akutsu, T., and Knapp, E.W. (2011). Prediction using step-wise L1, L2 regularization and feature selection for small data sets with large number of features. BMC Bioinf., 12.","DOI":"10.1186\/1471-2105-12-412"},{"key":"ref_15","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1007\/s10107-010-0420-4","article-title":"Pegasos: Primal estimated sub-gradient solver for svm","volume":"127","author":"Singer","year":"2011","journal-title":"Math. Program."},{"key":"ref_16","unstructured":"Dheeru, D., and Karra Taniskidou, E. (2019, May 22). UCI Machine Learning Repository. Available online: http:\/\/archive.ics.uci.edu\/ml."},{"key":"ref_17","first-page":"2825","article-title":"Scikit-learn: Machine learning in Python","volume":"12","author":"Pedregosa","year":"2011","journal-title":"J. Mach. Learn. Res."},{"key":"ref_18","unstructured":"(2019, April 20). Intel\u00ae 64 and IA-32 Architectures Optimization Reference Manual. Available online: https:\/\/www.intel.com\/content\/dam\/doc\/manual\/64-ia-32-architectures-optimization-manual.pdf."},{"key":"ref_19","unstructured":"(2019, April 08). System Generator for DSP. Available online: https:\/\/www.xilinx.com\/products\/design-tools\/vivado\/integration\/sysgen.html."},{"key":"ref_20","unstructured":"(2019, May 22). Virtex-6 CXT Family Data Sheet. Available online: https:\/\/www.xilinx.com\/support\/documentation\/data_sheets\/ds153.pdf."},{"key":"ref_21","unstructured":"(2019, May 22). Virtex-6 FPGA ML605 Evaluation Kit. Available online: https:\/\/www.xilinx.com\/products\/boards-and-kits\/ek-v6-ml605-g.html."}],"container-title":["Electronics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/2079-9292\/8\/6\/631\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T12:56:16Z","timestamp":1760187376000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/2079-9292\/8\/6\/631"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,6,5]]},"references-count":21,"journal-issue":{"issue":"6","published-online":{"date-parts":[[2019,6]]}},"alternative-id":["electronics8060631"],"URL":"https:\/\/doi.org\/10.3390\/electronics8060631","relation":{},"ISSN":["2079-9292"],"issn-type":[{"value":"2079-9292","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,6,5]]}}}