From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 922FEBB9C for ; Thu, 17 Nov 2005 23:16:51 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id jAHMGpCQ015436 for ; Thu, 17 Nov 2005 23:16:51 +0100 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id XAA29637 for ; Thu, 17 Nov 2005 23:16:50 +0100 (MET) Received: from mx1.polytechnique.org (mx1.polytechnique.org [129.104.30.34]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id jAHMGocw015428 for ; Thu, 17 Nov 2005 23:16:50 +0100 Received: from [192.168.0.11] (falcal.net [81.56.73.55]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTP id 9A680331E7; Thu, 17 Nov 2005 23:16:49 +0100 (CET) In-Reply-To: <20051117214745.GA580@first.in-berlin.de> References: <20051117214745.GA580@first.in-berlin.de> Mime-Version: 1.0 (Apple Message framework v746.2) Content-Type: multipart/signed; micalg=sha1; boundary=Apple-Mail-1--660207188; protocol="application/pkcs7-signature" Message-Id: Cc: caml-list@inria.fr From: Damien Bobillot Subject: Re: [Caml-list] doing MMX through ocaml Date: Thu, 17 Nov 2005 23:16:54 +0100 To: Oliver Bandel X-Mailer: Apple Mail (2.746.2) X-AV-Checked: ClamAV using ClamSMTP at djali.polytechnique.org (Thu Nov 17 23:16:50 2005 +0100 (CET)) X-DCC--Metrics: djali 32702; Body=1 Fuz1=1 Fuz2=1 X-Org-Mail: damien.bobillot.2002@polytechnique.org X-Miltered: at concorde with ID 437D0153.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 437D0152.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; damien:01 damien:01 caml-list:01 ocaml:01 flowed:01 oliver:01 bandel:01 ffi:01 o'caml:01 integers:01 val:01 val:01 fft:01 simd:01 abstracted:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 --Apple-Mail-1--660207188 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Oliver Bandel wrote : > On Fri, Nov 18, 2005 at 10:13:00AM +1300, Jonathan Roewen wrote: > [...] >> The FFI just requires that the external symbol exists, right? >> Soooo, I >> could theoretically define pure ASM routines that O'Caml could call. > [...] >> And since MMX deals solely with integers, the Val_long/Long_val >> macros >> could be implemented by a simple extra MMX instruction or two, right? > > ASM...MMX.... will the OS be available for more than one platform? Yes, MMX is not portable. But I think it's more a question of creating an abstract interface for vectorized algorithms like fft, convolution, vector operations (addition, multiplication element by element)... SIMD instructions on x86 and ppc are very similar, not compatible but may be abstracted to the same fonctions without too much overhead. As an exemple, I will quote Apple's Accelaration framework. It's a library for signal processing (1D and 2D), linear algebra (blas & lapack) optimised to use MMX & SSE instructions when running the x86 version of MacOS X, and use Altivec instructions when running the ppc version. It may be a good think to have such a vectorize library in ocaml, to open the way to fast signal processing inside ocaml. PS : I think it will perhaps have the same problems as floating computation, which is not really efficient. As far as I know, floats are not stored as float in memory, but as a generic ocaml value : a pointer to a structure contains a tag indicating that it's a float, and after the IEEE float value. -- Damien Bobillot --Apple-Mail-1--660207188 Content-Transfer-Encoding: base64 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Disposition: attachment; filename=smime.p7s MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGIjCCAtsw ggJEoAMCAQICAw54xzANBgkqhkiG9w0BAQQFADBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhh d3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVt YWlsIElzc3VpbmcgQ0EwHhcNMDUwNDEzMTc1MTAxWhcNMDYwNDEzMTc1MTAxWjBJMR8wHQYDVQQD ExZUaGF3dGUgRnJlZW1haWwgTWVtYmVyMSYwJAYJKoZIhvcNAQkBFhdkYW1pZW4uYm9iaWxsb3RA bTR4Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ1TOYBqwJ42s0Fzz56jY1p0 fplGyikFgoNEUKGnOpqt4vpeoqUppAnORt2yvdQJxfIkhsWkrD/diiPS7MTF73wcxlSJtqYzVzPK G/2WDm6dBinuWCIyWYFhtGedyxbap3kJW44H7cL7HUVVxZ0JhOIOTsjCoEzaeKnML7bctbIJeXEE lErfbDv2jA1PDG1ru5dx+Q+AmbexX92ygnntE6aX3QZLSbhrytg4yCRdV8cOyQ9eFruZBI42RJv3 nJXevjUOr4n+y/7bzijAJj4BFyUU+dllvj6bmk5brnUXheCSOD0Ci20dqGNC1MyJ43b6MoIrbW7j JwYIv12D6KuWoaUCAwEAAaM0MDIwIgYDVR0RBBswGYEXZGFtaWVuLmJvYmlsbG90QG00eC5vcmcw DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQQFAAOBgQB0u5b6wgwsbcyzDHJTzshlCn4gshxWtU/1 mH77gBCpsY8L554YV4/Tvm1PzmDzErm++drQf5HMy8sEFjmwLvNfBP0BqtkSqsdRFGR4wHzTjMhS EW5LgmlaccqBQzqQrANtzglgBVbtmBDAV92qHjQslwHK4FohCRRzGl4DLQmqBDCCAz8wggKooAMC AQICAQ0wDQYJKoZIhvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENh cGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNV BAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJz b25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3Rl LmNvbTAeFw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYD VQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29u YWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV +065yplaHmjAdQRwnd/p/6Me7L3N9VvyGna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqq P3FWy688Cwfn8R+RNiQqE88r1fOCdz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEE QB5kGXJgt/sCAwEAAaOBlDCBkTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSG Mmh0dHA6Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1Ud DwQEAwIBBjApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZI hvcNAQEFBQADgYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNw PP2t4WFiw9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTl EBpbNU1341YheILcIRk13iSx0x1G/11fZU8xggLnMIIC4wIBATBpMGIxCzAJBgNVBAYTAlpBMSUw IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVy c29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIDDnjHMAkGBSsOAwIaBQCgggFTMBgGCSqGSIb3DQEJ AzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA1MTExNzIyMTY1NVowIwYJKoZIhvcNAQkE MRYEFH73G09CJ0zfyOMM8M2JhtFWbVFkMHgGCSsGAQQBgjcQBDFrMGkwYjELMAkGA1UEBhMCWkEx JTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQ ZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAgMOeMcwegYLKoZIhvcNAQkQAgsxa6BpMGIxCzAJ BgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQD EyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIDDnjHMA0GCSqGSIb3DQEBAQUA BIIBAJGEkf9Zw1UOX6ic78qrhQQmLEJkafMsX84HQDtBdOnnVfdOIZlDmQS0xfvGBtMaS00LEgmQ zFzxx0U+8DVzrry6lS8U6VimbqQQMM309IqYrypdB2/QdnL/qdHpAgPN7l3WDPkRO2Yo+IGTtT4C ag4S/Wc4c/02naIU+nEa3ttqTE0ObE1BVjcucigGCZzea2ubwjgpCAGV3QsEi0lKypof+dxdwG/6 kDCIyH+nqCYokUnP+IFmeWYiS03k9w5SuSKPUO8EPYgjCWIT1+8laI7p/0/dB2CSPPHm8PdvSdpB Va1PI1wyt9FhFrL6jHoyoVLnjQs7pM1gZDKpao8c7WgAAAAAAAA= --Apple-Mail-1--660207188--