한국   대만   중국   일본 
Futhark?言 - ?基百科,自由的百科全? 跳?到?容

Futhark?言

本页使用了标题或全文手工转换
?基百科,自由的百科全?
Futhark
?程范型 ?列式 , 函?式
?言家族 ML
設計者 Troels Henriksen, Cosmin Oancea, Martin Elsman
?行?? 2014年 ,​10年前 ​( 2014
?前版本
  • 0.25.16 (2024年5月1日;穩定版本) [1]
編輯維基數據鏈接
型態系統 ?? , 强?型
操作系? 跨平台
許可證 ISC?可?
網站 https://futhark-lang.org
?發語言
APL , Haskell , NESL 英? NESL , Standard ML

Futhark 是一? 函?式 ?据?行 ?列 ?程?言 ,最初于 哥本哈根大? 理?院?算机科?系 英? UCPH Department of Computer Science (DIKU)作?HIPERFIT(??信息技?的函?式高性能?算)??的一部?而?? [2] 。?聚焦于?使以函?式?格??的?据?行程序,可以高性能的?行于大?模?行硬件上,特?是在 GPU 上。Futhark强烈的受到 NESL 英? NESL ??,但是?了?使更具?取性的??器?化,?如何表??行施加了?束。特?是,不支持非正?的嵌套 ?据?行 [3]

?述 [ ?? ]

Futhark是?于 ML 家族的?言,?具有? OCaml Standard ML Haskell 派生的??不敏感的?法。?型系?基于了 Hindley?Milner?型系? 英? Hindley?Milner type system ,??具有各??展,比如 唯一?型 英? Uniqueness type 大小依??型 。Futhark不意?成???完全?用的 通用?程?言 ,?而聚焦于???算“?核”(不必定相同于 GPU?核 ),??由用常??言??的?用程序??用 [4]

例子 [ ?? ]

点? [ ?? ]

下列程序?算包含?精度??的??向量的 点?

def
 dotprod
 xs
 ys
 =
 f64
.
sum
 (
map2
 (
*
)
 xs
 ys
))

??可以等价的???具有?式?型?注的形式:

def
 dotprod
 [
n
]
 (
xs
:
 [
n
]
f64
)
 (
ys
:
 [
n
]
f64
)
 :
 f64
 =
 f64
.
sum
 (
map2
 (
*
)
 xs
 ys
))

?制作出了大小依??型,???函?只能以相同大小的??????用,?型??器?拒?不能??的?定符合??要求的任何程序。

矩?乘法 [ ?? ]

下列程序使用上述点?定??行 矩?乘法

def
 matmul
 [
n
][
m
][
p
]
 (
A
:
 [
n
][
m
]
f64
)
 (
B
:
 [
m
][
p
]
f64
)
 :
 [
n
][
p
]
f64
 =

  map
 (
\
A_row
 ->

         map
 (
\
B_col
 ->
 dotprod
 A_row
 B_col
)

             (
transpose
 B
))

      A

注意?的?型强制??函?只能以具有相容大小的矩???用。?一步的?,?是嵌套 ?据?行 的例子。

引用 [ ?? ]

  1. ^ Release 0.25.16 . 2024年5月1日 [2024年5月23日] .  
  2. ^ 存?副本 . [ 2022-05-12 ] . ( 原始?容 存?于2014-10-22).  
  3. ^ Henriksen, Troels; Serup, Niels G. W.; Elsman, Martin; Henglein, Fritz; Oancea, Cosmin. Futhark: Purely Functional GPU-Programming with Nested Parallelism and In-Place Array Updates (PDF) . Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI 2017. ACM. 2017 [ 2021-02-28 ] . ( 原始?容 (PDF) 存?于2020-09-20).  
  4. ^ Parallel Programming in Futhark ? Interoperability . [ 2023-10-01 ] . (原始?容 存? 于2023-03-30).