hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
호남고속철도 호남고속철도 건설에 대한 연선 지역의 반응
호남고속철도 익산역은 전라북도 익산시 익산대로 153에 건설되었다. 하지만 익산역은 역사가 확정되기 이전인 2007년에 전주 등 5개 시·군의 중심에 있는 김제지역 쪽으로 옮기자는 일부 사회단체의 주장이 제기되면서 익산시와 격한 대립을 빚기도 했었다. 하지만 2014년 10월에 KTX혁신역사 추진위원회가 KTX역사 위치는 향후 전북의 미래발전을 좌우할 만큼 중요하다며 단순히 개별 시의 발전이 아닌 전북도 모두가 상생하는 방안이 마련돼야 한다고 밝히며, 익산역에서 5km 떨어진 호남고속철도 노선에 있는 김제시 지역으로 140만 이상의 경제권 형성이 가능하다고 말하고 있다.
현재 호남고속철도는 광주역과 목포역으로 이원화되어 있는데 국토교통부가 1도시 1정차역 기준을 세우면서 광주광역시 지역 KTX 정차역이 광주송정역만 정해졌다. 광주송정역으로 일원화되면 시종착역이 목포역으로 일원화 되기 때문에 배차와 운용이 편해진다. 이에 대해 광주광역시도 찬성했으나, 광주광역시 북구 의회가 반발하여 광주역에도 KTX가 정차해야 된다고 주장하여 광주지역 KTX정차역 논란이 일어났다.
호남고속철도 호남고속철도 건설에 대한 연선 지역의 반응
광주역에 KTX가 들어오지 않을 경우 광주도심 이용 편리성과 구도심 정체가 일어난다며 광주역에도 멈출 것을 주장하였다. 이에 대해 광산구 지역 주민들도 반발하여 이미 일원화가 정해져서 광주송정역 복합환승센터도 짓고 있는 마당에 광주역에 KTX가 멈출 경우엔 그 기능이 축소화 될 것이라고 주장하고 있다. 하지만 국토교통부가 한국교통연구원에 의뢰한 광주역 KTX정차 용역에는 타당성이 없다는 결론을 내렸지만 북구 지역의 편의를 위해 광주광역시가 광주송정역으로 일원화를 하되 일부 열차를 광주역으로 연장하는 최종안을 국토교통부에 제출했다. 현재는 광주송정역에 KTX 정차역이 확정된 상태로 향후 국토교통부측에서 2014년 하반기까지 광주역 진입을 결정할 방안이 검토되었다.
2015년 1월에 한국철도공사와 국토교통부측에서 스위치백 운행 시 안전 문제로 광주역 진입이 제외된 대신 시종착역을 광주송정역으로 최종 결정하였다. 한편 광주역 쇠락과 기존 이용객 환승 불편이 예상되면서 용산역에서 출발해 서대전역 경유 익산역까지 운행하는 KTX를 김제역, 장성역을 거쳐 광주역까지 연장하기 위해 국토교통부에 서한을 보냈다. 그러나 개통 시기까지 2개월이 남지 않는 시점에서 서대전역, 익산역 경유 KTX의 광주역 연장이 수용하기 어렵다는 전망이 있다. 이에 대해 광주광역시의 한 의원은 KTX의 광주역 진입 방안이 없다면 광주역을 아예 폐쇄해야 한다고 주장했다.
광주송정역부터 고막원역까지는 기존 호남선을 230km/h 준고속선으로 개량하며, 그 이후 목포역까지는 노선이 확정되지 않았다. 2006년에 입안된 기본계획에 따르면 광주송정-목포 직결 신선이 건설될 예정이었지만, 이 노선안은 폐기되었다. 기본계획을 변경하기 위해 3가지 안이 검토되었으며, 1안은 나주(고막원)부터 목포까지 신선을 건설하는 것이고, 2안은 무안국제공항을 경유하는 신선을 건설하는 것이고, 3안은 신선 건설 없이 기존선 개량만 하고 함평역과 무안공항을 지선으로 연결하는 방안이다. 2017년 11월, 무안국제공항을 경유하는 노선으로 결정되었으며, 2018년까지 기본계획을 완료할 예정이다.
2안은 광주공항을 대체하기 위해 만들어진 무안공항의 활성화에 크게 기여할 수 있는 대신에, 선형이 크게 휘어지기 때문에 KTX가 제 속도를 내지 못할 가능성이 높다. 3안은 기존선을 개량하는 만큼 가장 사업비가 적고 나주와 무안공항을 모두 연결할 수 있는 대신에, 걸리는 시간이 크게 늘어나 시간이 생명이라는 고속철도의 취지엔 미치지 못한다.
호남고속철도 논란
2015년 8월 4일 공정거래위원회는 호남고속철도 건설공사 입찰에서 담합한 5개 건설사에 과징금 총 129억 9,200만원을 부과했다고 밝혔다. 대림산업은 입찰 공고가 뜨자 입찰사를 찾아가 영천상주고속도로 공사에 하도급계약을 체결하는 방식으로 들러리를 선 대가를 지불했다. 이런 방법으로 대림산업은 일반 낙찰률 70%에 비해 높은 수치인 공사예정금액의 82.76%인 2,223억 원에 공사를 따냈다.
YMCA
YMCA는 다음과 같은 뜻이 있다.
YMCA는 영국의 복음주의자들이 1844년 결성한 기독교 민간단체 기독교청년회(Young Men's Christian Association)의 이니셜이다.
Y.M.C.A.는 1978년 빌리지 피플의 앨범《Cruisin'》에 수록곡된 대표곡으로 많은 가수들이 커버했다.
콩칭기신칼리지(YMCA of Hong Kong Christian College)
YMCA 야구단
토착화
토착화란 어떤 문화를 좀더 토착적인 것으로 바꾸는 작업이다.
토착화 기업 소유에서의 토착화
짐바브웨에서는 백인의 토지를 뺏어 흑인에게 분배하였다.
토착화 종교 선교에서의 토착화
토착화(Indigenization)라는 말 자체가 기독교 선교사들이 기독교와 지역의 전통문화의 융화를 시도, 기독교에 쉽게 다가설 수 있게 하는 선교방법을 추구하면서 처음 만든 말이다.
성공회성당인 성공회 강화성당과 청주성공회성당은 기와집교회이다.  보관됨 2007-09-29 - 웨이백 머신
가톨릭에서는 조각가 오채연 씨가 성모 마리아를 물을 긷는 조선 여인의 모습으로 묘사한 성모상을 제작하였다. 보관됨 2016-03-06 - 웨이백 머신
동양화가인 운보 김기창 선생은 예수를 갓을 쓰고 한복을 입은 조선인으로 묘사한 성화를 그렸다.
스탠리 밀그램
스탠리 밀그램(Stanley Milgram, 1933년 8월 15일 ~ 1984년 12월 20일)은 미국의 사회심리학자이다. 하버드 대학교 재직 중 '작은 세상 현상'을, 예일 대학교 재직 중에는 '복종 실험'으로도 불리는 밀그램 실험(Milgram experiment)을 수행해 대단한 사회적 파문을 일으켰다. 1984년 심장마비로 뉴욕에서 사망했다.
스탠리 밀그램 생애
스탠리 밀그램은 1933년 뉴욕에서 유대인 가정에서 헝가리인 아버지와 루마니아인 어머니의 아이로 태어났다. 밀그램의 아버지, 사무엘은 빵집 주인으로 일하며 얼마 되지 않는 수입으로 1953년 사망할 때까지 가족을 부양하였다.(그 이후로 스탠리의 어머니, 아델이 빵집을 이어 받아 운영했다.) 밀그램은 성적도 우수하고 또래 사이에서도 뛰어난 리더였다. 1954년, 밀그램은 뉴욕 시립 대학 퀸즈 칼리지에서 수업료를 면제받으며 졸업하여 정치과학 학사학위를 받았다. 그는 하버드 대학교 사회 심리학의 심리학 박사과정에 지원하였고, 처음에는 심리학 분야의 불충분한 사전학습 때문에 거절되었다.(그는 퀸즈 칼리지 재학 중에 하나의 심리학 학부 수업도 듣지 않았다.) 그러나 결국 그는 1954년 하버드대에 하버드 특별학생처의 학생으로 입학하였다.
스탠리 밀그램 생애
1960년, 밀그램은 하버드대에서 사회심리학 분야 심리학 박사학위를 받았다. 아마도 그의 논쟁을 불러일으키는 밀그램 실험 때문에, 하버드대에서 조교수가 된 이후 교수직이 거절된 것으로 보인다. 그러나 뉴욕시립대학교 대학원에서 종신 교수직을 제의했고, 밀그램은 이를 받아들였다.(Blass, 2004) 밀그램은 솔로몬 애쉬, 고든 올포트를 비롯하여 심리학계에 많은 중요한 영향을 끼쳤다.
그 외에도 밀그램은 복종 연구를 도운 그의 첫 대학원 조수, 앨런 C. 엘름스를 비롯한 수 많은 심리학자들에게 영향을 끼쳤다. 밀그램은 1984년 12월 20에 심장기능부전으로, 그가 태어난 뉴욕 시에서 사망하였다.
그의 아내는 알렉산드라 “사샤” 밀그램이고 두 아이가 있었다.
스탠리 밀그램 밀그램의 복종 실험
1963년 밀그램은 '복종에 관한 행동의 연구'라는 논문으로 자신의 '복종 실험' 결과를 발표한다. 이후 그는 실험의 비윤리성으로 미국 정신분석학회로부터 한 해 동안 자격 정지를 당했다. 10년 뒤인 1974년에 '권위에의 복종'(Obedience to Authority)이라는 책을 출간하였고 그의 실험은 이후 여러 심리 실험의 원형이 되었다.
스탠리 밀그램 작은 세상 현상
6단계 분리 이론 개념은 미국에서 지인의 연결고리를 추적하는 1967년의 밀그램의 “작은 세상 실험”에서 시작되었다. 실험에서는, 밀그램이 몇 개의 소포를 네브래스카 오마하에 사는 사람 가운데 무작위적으로 선택한 160명에게 보내고, 최종 목적인인 매사추세츠 보스턴의 증권중개인과 더 가까울 것 같은 지인에게 소포를 전달해 달라고 요청하였다.
밀그램의 6단계 분리 이론은 심각하게 비판받았다. 그는 많은 소포를 추적하지 않았고, 그 결과, 과학자들은 “6단계” 분리 이론의 존재 자체를 의심하였다. Elizabeth DeVita–Raebu는 밀그램 박사의 실험에는 잠재적인 문제가 있다고 말했다.
2008년에 마이크로소프트의 연구에 의해 .NET 메신저 서비스의 사용자간의 평균 접촉 고리가 6.6명임이 밝혀졌다.
스탠리 밀그램 도시 과부하 가설
1970년 발표한 스탠리 밀그램의 '도시에서의 삶에 대한 연구'(The Experience of Living in Cities)인 도시 과부하 가설(Urban Overload Hypothesis)은 도시의 밀집된 과잉 인구속에서는 그렇지않은 환경에서 보다 더 자극에 노출된 효과로 인하여 그러한 자극을 수용하고 방어하는 맥락에서 도시인들이 더 방어적이고 단절되 보이는 경향을 선택할 확률이 높다는 견해를 언급한바있다.
십자가의 길
십자가의 길(라틴어: Via Crucis)은 예수 그리스도의 마지막 시간(수난과 죽음)을 기억하며 구원의 신비를 묵상하는 서방 기독교의 기도이며, 고통의 길이라고도 한다. 로마 가톨릭에서는 보통 사순 시기 동안 매주 금요일과 성금요일에 행하며 성공회에서는 보통 사순절의 마지막 주인 성주간에 매일 행한다.
십자가의 길 기도는 초기에는 구체적인 형태를 갖추고 있지 않았으나 14세기에 프란치스코회에 의해 기도문이 체계화되었다. 이 기도의 목적은 당시 이슬람교 세력의 예루살렘 정복 때문에 성지 순례 여행에 차질을 빚게 되자 유럽에서 그리스도의 수난과 죽음 과정에서 주요한 장면을 떠올리며 기도로서 영적인 순례 여행을 도우려는 것이었다. 이 신심은 프란치스코회의 전교활동에 의해 점차 전국적으로 확산하였다. 16세기까지는 각 처의 숫자가 고정되지 않았으나, 클레멘스 12세(1730-1740년)에 의해 현재의 순번으로 명시화되었다.
십자가의 길은 총 14처로, 그 내용은 다음과 같다. 각 처에서 바치는 기도문이 정해져 있다:
십자가의 길
십자가의 길을 바치는 가톨릭 신자는 전대사를 받을 수 있다. 십자가의 길은 십자가의 길 14처가 설치되어 있는 성당이나 경당 또는 성지에 조성된 옥외 장소에서 바쳐야만 한다. 이 기도를 할 때는 한 처에서 다음 처로 이동하며 바쳐야 한다. 단, 공동으로 바치는 경우나 사정이 여의치 않아 이동할 수 없는 경우에는 기도를 주관하는 사람만 이동하고 나머지 사람들은 자기 자리에 서 있어도 된다. 아울러 14처 전체를 순서에 따라 중단하지 않고 계속 바쳐야 한다. 만약 전체를 바치지 못하는 경우에는 한대사(부분대사)를 받을 수 있다.
14처가 설치된 장소에서 기도를 바칠 수 없는 사람들, 즉 병자, 여행자, 죄수 등은 특별히 축복된 십자가를 사용하여 기도함으로써 대사를 받을 수 있다. 듣지 못하거나 말을 하지 못하는 사람은 마음속으로 십자가의 길을 바치면 대사를 받을 수 있다.
무엇보다 기도를 바칠 당시 은총 상태에 있어야 하며, 죄가 전혀 없는 상태여야 한다. 만약 소죄라도 있으면 전대사 대신 한대사를 받는다. 이와 같은 조건에 따라 십자가의 길 기도를 바치는 사람은 대사를 자신을 위해서 받을 수도 있고, 특정한 영혼에게 돌려줄 수도 있다.
에어 뉴질랜드
에어 뉴질랜드(영어: Air New Zealand)는 뉴질랜드의 항공사로 오클랜드에 본사가 있으며, 허브 공항인 오클랜드 국제공항 등을 통해 전 세계 4개 대륙에 취항하고 있다. 지역적 특성상 남태평양의 중심 도시를 연결하고 있다. 세계 최대의 항공 동맹인 스타얼라이언스의 가맹사이다.
에어 뉴질랜드 역사
1940년 타스만 엠파이어 항공 유한회사(영어: Tasman Empire Airways Limited)로 설립했으며, 1947년 4월에 최초로 취항했다. 1965년 뉴질랜드 정부에 의해 국영화되어 현재의 사명으로 변경했다. 1978년 뉴질랜드의 항공사인 NAC 항공과 합병되었고 1980년에 일본에 최초로 취항했다. 1989년에 민영화한 후, 오스트레일리아 증권 거래소와 뉴질랜드 증권 거래소에 상장했다. 1999년에 항공 동맹인 스타얼라이언스에 가입했다. 2002년에 파산한 오스트레일리아 항공사인 안셋 오스트레일리아와 분리 되면서 다시 국영화가 되었다. 같은 해에는 콴타스 항공과 업무제휴를 맺었다. 2003년에 오스트레일리아의 항공사인 콴타스 항공의 산하에 넣는 일을 발표했다. 하지만 공정 거래 위원회에 의해 반경쟁적으로 국민의 이익에 반한다는 이유로 인가되지 않았다. 또한 2006년 4월에 콴타스 항공과 트랜스 타스만 루트를 뉴질랜드 국제선에 관한 제휴를 발표했지만, 실현하지 못했다. 2009년 영국의 항공서비스 전문 리서치 기관인 스카이트랙스(영어: Skytrax)는 세계 8위의 항공사로 선정했다. 2010년 미국의 항공 전문지 <에어 트랜스포트 월드(ATW)>는 2010년과 2012년에 올해의 항공사로 선정했다.
에어 뉴질랜드 역사
대한민국에는 1993년에 김포 - 오클랜드 직항으로 첫 취항했으나, 1997년에 벌어진 외환위기 이후 단항하고 대한민국에서 철수했다. 이후 아시아나항공의 인천 - 도쿄(나리타) 노선의 코드셰어만 남겨 놓고 있다가 2019년 11월 29일 서울(인천)-오클랜드 다시 취항함으로써 직항 노선이 22년만에 다시 부활하였다. 하지만 수요 부족으로 2025년 3월을 마지막으로 다시 단항 한 상태다.
광동체기는 주로 보잉의 기체를 이용하며, 협동체기는 주로 에어버스의 기체를 운용한다. 다만 B787용 엔진은 롤스로이스 트렌트 1000을 이용해 왔으나, 트렌트 1000의 잦은 결함 및 ETOPS 하향 조정으로 인해 주문한 787-10은 GE의 GEnx를 첫 채택했다.
에어 뉴질랜드 이전 자회사
에어뉴질랜드 링크(영어: Air New Zealand Link)는 에어뉴질랜드의 자회사이자 지역 항공사 브랜드로 1991년 당시 에어뉴질랜드 세 지역 항공사 (이글 항공, 에어 넬슨, 마운트쿡 항공 포함)를 인수 하면서 설립했었다. 당시 이 세 항공사의 경우 같은 시기에 인수했었다. 당시 뉴질랜드는 안셋 뉴질랜드의 설립과 새로운 경쟁의 도입으로 인해 자체적인 지역 서비스를 운영하는 것이 불가능 했었다. 현재 모든 항공기가 에어뉴질랜드 소속으로 운항중이다.
비고
ふ
ふ, フ는 일본어 음절의 하나이며, 가나의 하나이다. 1모라를 형성한다. 오십음도에서 제6행 제3단(は행 う단)에 위치한다. 청음 이외에 탁음(ぶ, ブ)과 반탁음(ぷ, プ)를 지닌다. 일본어로 듣기 (도움말·정보) 이 문자는 히라가나, 가타카나 모두 不자에서 따온 것이다.
촉음
촉음(일본어: 促音, そくおん 소쿠온[*])은 일본어에서 っ 또는 ッ로 표기되는 음절의 하나이다. 음운론의 관점에서 한 모라로 간주되나, 원칙적으로는 단독으로는 존재하지 않고, 뒷 글자가 か·さ·た·ぱ행인 두 개의 가나 사이에 나타나는 형태로 나온다. 촉음이 있을 때에는 뒷 글자의 자음을 길게 발음한다. 가끔씩 감탄사를 표현할 때 촉음이 음절 끝에 올 때는 성문 파열음이 된다.
촉음 표기
로마자로는 뒤에 계속되는 자음 문자를 겹쳐서 쓴다. 단, 헵번식 로마자 표기법에서 っち 부분의 ch 표기가 뒤따르는 경우에는 tch로 표기하기도 한다. (예: あった = atta, あっち = atchi/atti)
컴퓨터의 로마자 입력에서는 tch가 인식되지 않고 대신 cch가 일반적으로 인식된다. 촉음 기호를 단독으로 치고자 할 때는 xtu, ltu, ltsu 등의 입력 방법이 있다.
에어 뉴질랜드의 운항 노선
현재 에어 뉴질랜드는 다음과 같은 노선을 운항하고 있다.
에어 뉴질랜드의 운항 노선 단항 노선
일본
도쿄 - 하네다 국제공항
가고시마 - 가고시마 공항 전세편
구마모토 - 구마모토 공항 전세편
나고야
주부 센토레아 국제공항 전세편
나고야 코마키 공항 - (주부 센토레아 국제공항으로 이양)
마쓰야마 - 마쓰야마 공항 전세편
미야자키 - 미야자키 공항 전세편
삿포로 - 신치토세 공항 전세편
센다이 - 센다이 공항 전세편
시즈오카 - 시즈오카 공항 전세편
오사카 - 간사이 국제공항 계졀편
오키나와 - 나하 공항 전세편
후쿠오카 - 후쿠오카 공항 전세편
히로시마 - 히로시마 공항 전세편
뉴질랜드
그레이마우스 - 그레이마우스 공항
마운트쿡 - 마운트쿡 공항
매스터턴 - 매스터턴 공항
모투에카 - 모투에카 공항
밀포드사운드 - 밀포드사운드 공항
오아마루 - 오아마루 공항
와나카 - 와나카 공항
왕가누이 - 왕가누이 공항
웨스트포트 - 웨스트포트 공항
채텀 - 채텀 공항
카이코헤 - 카이코헤 공항
카이타이아 - 카이타이아 공항
테아나우 - 테아나우 공항
와카타네 - 와카타네 공항
한국철도공사 2030호대 전동차
한국철도공사 2030호대 전동차의 다른 뜻은 다음과 같다.
베르트 모리조
베르트 모리조(Berthe Morisot, 1841년 1월 14일~1895년 3월 2일)는 프랑스의 화가로, 파리에서 활동한 인상주의 그룹의 일원이었다. 그의 작품은 파리 살롱전에서 6번 연속으로 당선되었으며, 1874년부터는 인상주의 전시에 참여하여 계속 활동하였다. 모리조의 어머니는 로코코 시대 화가인 장오노레 프라고나르의 종손녀이며, 에두아르 마네의 동생 외젠 마네와 결혼했다.
베르트 모리조 생애
아버지는 지방의 지사였으며, 그녀는 처음에는 코로에게 배웠으나 1868년에는 마네를 만나 그 제자가 되었다. 마네의 작품에는 자주 등장하는 여성이며, 마네와 영감을 주고 받던 동료 화가인 모리조는 1874년에 마네의 동생과 결혼했다. 제작을 계속한 모리조는 인상파의 전람회에는 제1회부터 참가했다. 가정은 부유하고 부족함이 없는 환경이어서, 작품은 신변의 평화로운 생활을 그려 밝은 신선미를 보이고 있다. 여성적인 작품의 전형이라고 일컬어질 만큼 교양을 갖춘 모리소의 작품은 자유로운 터치에다 단아한 감각을 빛냈다.
독일의 군주 목록
독일의 군주는 843년 베르됭 조약으로 카롤링거 제국의 동쪽이 동 프랑크 왕국으로 분리된 이후 1918년 독일에서 제정이 폐지될 때까지 존재했다. 동프랑크 왕국은 신성 로마 제국으로 발전했고, 신성 로마 제국은 독일 연방으로 계승되었다. 여러 소공국, 분국, 제후국 등으로 쪼개진 독일의 여러 나라들은 1871년 오스트리아를 제외하고 독일 제국으로 통합되었고 독일 제국은 1918년까지 존속하다가 바이마르 공화국으로 바뀌면서 사라졌다.
독일의 군주 목록 독일의 왕 & 신성로마제국의 황제
신성 로마 제국의 황제로 공인받기 이전의 군주들은 로마 왕이라는 칭호를 사용하였다. 하인리히 1세의 즉위 이후의 군주들은 게르만인의 왕 또는 프랑크인의 왕이라는 칭호를 사용하였다. 1028년 하인리히 3세의 즉위 이후부터는 독일의 군주를 로마 왕(King of Roma) 또는 로마인의 왕(King of Roman)이라는 칭호를 사용하기 시작하였다.
독일의 군주 목록 북독일 연방 1866-1871
오스트리아의 황제를 정통으로 간주한 지역에서는 북독일 연방에 포함되지 않고 오스트리아-헝가리 제국에 편입하였다.
SIMD
단일 명령어 다중 데이터(Single instruction, multiple data, SIMD)는 플린 분류에서 병렬 컴퓨팅 (처리)의 한 유형이다. SIMD는 동일한 연산을 여러 데이터 지점에 동시에 수행하는 다중 처리 요소를 가진 컴퓨터를 설명한다. SIMD는 내부적(하드웨어 설계의 일부)일 수 있으며, 명령어 집합 (ISA)을 통해 직접 접근할 수 있지만, ISA와 혼동해서는 안 된다.
SIMD
이러한 기계는 데이터 병렬성을 활용하지만, 동시성은 활용하지 않는다. 즉, 동시(병렬) 계산이 있지만, 각 단위는 주어진 순간에 정확히 동일한 명령어를 수행한다(단지 다른 데이터로). 간단한 예는 많은 숫자 쌍을 함께 더하는 것이다. 모든 SIMD 단위는 덧셈을 수행하지만, 각 단위는 더해야 할 다른 값 쌍을 가지고 있다. SIMD는 디지털 이미지의 대비 조정이나 디지털 오디오의 볼륨 조정과 같은 일반적인 작업에 특히 적용 가능하다. 대부분의 최신 중앙 처리 장치 (CPU) 설계에는 멀티미디어 사용 성능을 향상시키기 위한 SIMD 명령어가 포함되어 있다. 최신 CPU에서 SIMD 장치는 캐시 계층 및 프리페치 메커니즘과 밀접하게 연결되어 대규모 블록 작업 시 대기 시간을 최소화한다. 예를 들어, AVX-512를 지원하는 프로세서는 전체 캐시 라인을 미리 가져와 단일 SIMD 사이클에서 퓨즈 곱셈-덧셈 연산(FMA)을 적용할 수 있다.
SIMD
SIMD는 플린의 1972년 분류법에서 세 가지 하위 범주를 가지며, 그 중 하나는 단일 명령어 다중 스레드 (SIMT)이다. SIMT는 소프트웨어 스레드 또는 하드웨어 스레드와 혼동해서는 안 된다. 둘 다 작업 시간 공유(타임 슬라이싱) 방식이다. SIMT는 진정한 동시 병렬 하드웨어 수준 실행이다. SIMT의 주요 특징은 워프(엔비디아 용어) 또는 웨이브프론트(AMD 용어)와 같은 제어 흐름 메커니즘의 존재이다. 이를 통해 공유 명령어 스트림 하에서도 스레드의 분기와 합류가 가능하여, 고전적인 SIMD보다 약간 더 많은 유연성을 제공한다.
개별 데이터 항목에서 작동하는 각 하드웨어 요소(PU)는 때때로 SIMD 레인 또는 채널이라고도 불린다. 최신 그래픽 처리 장치 (GPU)는 종종 광범위한 SIMD(일반적으로 16개 이상의 데이터 레인 또는 채널) 구현이다. 일부 최신 GPU는 단순 SIMD를 넘어 혼합 정밀도 SIMD 파이프라인을 통합하여, 8비트, 16비트, 32비트 연산을 다른 레인에서 동시에 실행할 수 있도록 한다. 이는 혼합 정밀도가 처리량을 높이는 AI 추론과 같은 애플리케이션에 매우 중요하다.
또한 SIMD는 고정 및 확장 가능한 벡터 형식으로 모두 존재할 수 있다. 고정 폭 SIMD 장치는 명령어당 일정한 수의 데이터 지점에서 작동하는 반면, RISC-V 벡터 또는 ARM의 SVE와 같은 확장 가능한 설계는 하드웨어 구현에 따라 데이터 요소의 수를 다양하게 허용한다. 이는 프로세서 세대 간의 하위 호환성을 향상시킨다.
SIMD 역사
SIMD 명령어를 처음 사용한 것은 1972년에 완성된 ILLIAC IV였다. 여기에는 동일한 명령어를 수행하면서 다른 값을 저장할 수 있는 로컬 메모리를 가진 64개의 프로세서(원래 설계는 256개)가 포함되었다. 별도의 하드웨어는 처리할 값을 빠르게 보내고 결과를 수집했다.
SIMD는 1970년대 초 CDC 스타-100 및 텍사스 인스트루먼츠 ASC와 같은 벡터 슈퍼컴퓨터의 기반이 되었으며, 이들은 단일 명령어로 데이터 "벡터"를 처리할 수 있었다. 벡터 처리는 1970년대와 1980년대에 크레이에 의해 특히 대중화되었다. 벡터 처리 아키텍처는 이제 SIMD 컴퓨터와는 별개로 간주된다. 던컨의 분류법에는 포함되지만, 플린의 작업(1966, 1972)이 Cray-1 (1977)보다 앞섰기 때문에 플린 분류에는 포함되지 않는다.
SIMD 역사
현대 SIMD 컴퓨터의 첫 시대는 매시블리 병렬 처리 방식의 슈퍼컴퓨터인 씽킹 머신즈의 커넥션 머신 CM-1 및 CM-2로 특징지어졌다. 이 컴퓨터들은 병렬로 작동하는 많은 제한된 기능의 프로세서를 가지고 있었다. 예를 들어, 씽킹 머신즈 CM-2에 있는 65,536개의 단일 비트 프로세서 각각은 동시에 동일한 명령어를 실행하여, 예를 들어 하이퍼큐브 연결 네트워크 또는 프로세서 전용 RAM을 사용하여 피연산자를 찾아 한 번에 65,536쌍의 비트를 논리적으로 결합할 수 있었다. 슈퍼컴퓨팅은 인텔 i860 XP와 같은 상용 프로세서를 기반으로 한 저렴한 스칼라 다중 명령어 다중 데이터 (MIMD) 접근 방식이 더 강력해지면서 SIMD 접근 방식에서 멀어졌고, SIMD에 대한 관심은 시들해졌다.
SIMD 역사
현재 SIMD 프로세서 시대는 슈퍼컴퓨터 시장이 아닌 데스크톱 컴퓨터 시장에서 발전했다. 1990년대에 데스크톱 프로세서가 실시간 게임 및 오디오/비디오 처리를 지원할 만큼 강력해지면서 이러한 유형의 컴퓨팅 능력에 대한 수요가 증가했고, 마이크로프로세서 공급업체는 이러한 수요를 충족시키기 위해 SIMD에 의존했다. 이러한 부활은 DirectX 및 OpenGL 셰이더 모델의 부상과도 일치했으며, 이는 내부적으로 SIMD를 많이 활용했다. 그래픽 API는 프로그래머들이 데이터 병렬 프로그래밍 스타일을 채택하도록 장려하여, 데스크톱 소프트웨어에서 SIMD 채택을 간접적으로 가속화했다. 휴렛 팩커드는 1994년에 MPEG 디코딩을 가속화하기 위해 PA-RISC 1.1 데스크톱에 멀티미디어 가속 확장 (MAX) 명령어를 도입했다. 썬 마이크로시스템즈는 1995년에 울트라SPARC I 마이크로프로세서에 "VIS" 명령어 집합 확장에서 SIMD 정수 명령어를 도입했다. MIPS도 유사한 MDMX 시스템으로 뒤를 이었다.
SIMD 역사
가장 널리 배포된 데스크톱 SIMD는 1996년 인텔의 X86 아키텍처에 대한 MMX 확장과 함께였다. 이는 모토로라 파워PC 및 IBM의 POWER 시스템에 훨씬 더 강력한 AltiVec 시스템을 도입하는 계기가 되었다. 인텔은 1999년에 완전히 새로운 SSE 시스템을 도입하여 이에 대응했다. 그 이후로 두 아키텍처 모두 SIMD 명령어 집합에 여러 확장이 있었다. 고급 벡터 확장인 AVX, AVX2 및 AVX-512는 인텔에서 개발했다. AMD는 현재 제품에서 AVX, AVX2 및 AVX-512를 지원한다.
이 모든 개발은 실시간 그래픽 지원을 지향하며, 따라서 데이터 유형 및 아키텍처에 따라 보통 2~16 워드 길이의 벡터를 사용하여 2, 3 또는 4차원 처리를 지향한다. 새로운 SIMD 아키텍처를 이전 아키텍처와 구별해야 할 때, 새로운 아키텍처는 "단축 벡터" 아키텍처로 간주되는데, 이는 이전 SIMD 및 벡터 슈퍼컴퓨터의 벡터 길이가 64에서 64,000에 달했기 때문이다. 현대의 슈퍼컴퓨터는 거의 항상 MIMD 컴퓨터의 클러스터이며, 각 MIMD 컴퓨터는 (단축 벡터) SIMD 명령어를 구현한다.
SIMD 장점
SIMD를 활용할 수 있는 애플리케이션은 동일한 값이 많은 데이터 포인트에 추가되거나(또는 빼지는) 경우인데, 이는 많은 멀티미디어 애플리케이션에서 흔히 볼 수 있는 작업이다. 한 가지 예는 이미지의 밝기를 변경하는 것이다. 이미지의 각 화소는 색상의 빨간색(R), 녹색(G), 파란색(B) 부분의 밝기에 대한 세 가지 값으로 구성된다. 밝기를 변경하려면 R, G, B 값을 메모리에서 읽어와서 값을 더하거나(또는 빼고) 결과 값을 다시 메모리에 쓴다. 오디오 DSP도 마찬가지로 볼륨 제어를 위해 왼쪽 및 오른쪽 채널을 동시에 곱할 것이다.
SIMD 장점
SIMD 프로세서를 사용하면 이 과정에 두 가지 개선 사항이 있다. 첫째, 데이터는 블록 단위로 이해되며, 여러 값을 한 번에 로드할 수 있다. "이 픽셀을 검색하고, 다음 픽셀을 검색하라"는 일련의 명령어 대신, SIMD 프로세서는 효과적으로 "n 픽셀을 검색하라"(여기서 n은 설계마다 다른 숫자)고 말하는 단일 명령어를 가질 것이다. 여러 가지 이유로, 이는 기존 CPU 설계에서 각 픽셀을 개별적으로 검색하는 것보다 훨씬 적은 시간이 걸릴 수 있다. 또한 SIMD 명령어는 브로드캐스팅 기능을 통해 동일한 피연산자가 여러 계산에 사용되는 데이터 재사용을 활용할 수 있다. 예를 들어, 여러 픽셀에 상수 스칼라 값을 곱하는 것은 스칼라를 한 번 로드하고 SIMD 레지스터에 브로드캐스팅함으로써 더 효율적으로 수행할 수 있다.
또 다른 장점은 명령어가 단일 작업으로 로드된 모든 데이터를 처리한다는 것이다. 즉, SIMD 시스템이 한 번에 8개의 데이터 포인트를 로드하여 작동한다면, 데이터에 적용되는 `add` 작업은 8개의 모든 값에 동시에 발생할 것이다. 이러한 병렬성은 슈퍼스칼라 프로세서가 제공하는 병렬성과는 별개이다. 8개의 값은 비슈퍼스칼라 프로세서에서도 병렬로 처리되며, 슈퍼스칼라 프로세서는 여러 SIMD 작업을 병렬로 수행할 수 있다.
SIMD 단점
모든 알고리즘을 쉽게 벡터화할 수 있는 것은 아니다. 예를 들어, 코드 구문 분석과 같이 흐름 제어가 많은 작업은 SIMD의 이점을 쉽게 얻지 못할 수 있다. 그러나 이론적으로는 비교를 벡터화하고 "배치 흐름"을 사용하여 최대 캐시 최적화를 목표로 할 수 있지만, 이 기술은 더 많은 중간 상태를 필요로 한다. 참고: 배치 파이프라인 시스템(예: GPU 또는 소프트웨어 래스터화 파이프라인)은 SIMD 내장 함수로 구현될 때 캐시 제어에 가장 유리하지만, SIMD 기능에만 국한되지는 않는다. 코드 문자열과 같은 일련의 종속성을 피하기 위해 추가적인 복잡성이 나타날 수 있다. 반면 벡터화에는 독립성이 필요하다. 또한, 다른 데이터 레인이 다른 실행 경로를 따르는 발산 제어 흐름은 SIMD 하드웨어의 활용률을 저하시킬 수 있다. 이러한 발산을 처리하기 위해 마스킹 및 예측과 같은 기술이 종종 사용되지만, 성능 오버헤드와 복잡성을 초래한다.
SIMD 단점
주어진 SIMD 명령어 집합으로 프로그래밍하는 것은 많은 낮은 수준의 문제를 수반할 수 있다.
SIMD는 데이터 정렬에 제한이 있을 수 있다. 특정 아키텍처에 익숙한 프로그래머는 이를 예상하지 못할 수 있다. 더 나쁜 것은, 정렬이 한 버전에서 다른 버전 또는 "호환" 프로세서로 변경될 수 있다는 것이다.
데이터를 SIMD 레지스터로 수집하고 올바른 대상 위치로 분산하는 것은 까다롭다(때로는 순열 명령어 (연산)를 필요로 하며 비효율적일 수 있다.
일부 SIMD 명령어 집합에서는 회전 또는 3-피연산자 덧셈과 같은 특정 명령어를 사용할 수 없다.
명령어 집합은 아키텍처에 따라 다르다. 일부 프로세서에는 SIMD 명령어가 전혀 없으므로 프로그래머는 비벡터화된 구현(또는 다른 벡터화된 구현)을 제공해야 한다.
다른 아키텍처는 다른 레지스터 크기(예: 64, 128, 256 및 512비트)와 명령어 집합을 제공하므로, 프로그래머는 모든 CPU에서 최적으로 작동하도록 벡터화된 코드의 여러 구현을 제공해야 한다. 또한, SIMD 명령어의 가능한 집합은 새로운 레지스터 크기마다 증가한다. 불행히도, 레거시 지원상의 이유로 이전 버전을 폐기할 수 없다.
SIMD 단점
초기 MMX 명령어 집합은 부동소수점 스택과 레지스터 파일을 공유하여 부동소수점 및 MMX 코드를 혼합할 때 비효율성을 야기했다. 그러나 SSE2는 이를 해결한다.
문제 1과 5를 해결하기 위해 RISC-V의 벡터 확장은 대안적인 접근 방식을 사용한다. 즉, 프로그래머에게 하위 레지스터 수준의 세부 정보를 노출하는 대신, 이 명령어 집합을 가진 모든 CPU에서 동일한 인터페이스를 사용하는 몇 가지 "벡터 레지스터"로 추상화한다. 하드웨어는 모든 정렬 문제와 루프의 "스트립 마이닝"을 처리한다. 다른 벡터 크기를 가진 기계는 동일한 코드를 실행할 수 있다. LLVM은 이 벡터 유형을 "vscale"이라고 부른다.
동등한 스칼라 또는 동등한 벡터 코드와 비교할 때 코드 크기가 한 자릿수 증가하는 것은 드문 일이 아니며, 벡터 ISA를 사용하면 한 자릿수 또는 그 이상의 효율성(명령어당 수행되는 작업)을 달성할 수 있다.
SIMD 단점
ARM의 Scalable Vector Extension은 플린 분류에서 "연관 처리(Associative Processing)"로 알려진 다른 접근 방식을 취하며, 오늘날에는 일반적으로 "조건부" (마스크된) SIMD로 알려져 있다. 이 접근 방식은 벡터 프로세싱만큼 압축적이지는 않지만, 비조건부 SIMD보다 훨씬 낫다. 자세한 비교 예시는 벡터 프로세서 § 벡터 명령어 예시에서 제공된다. 또한 ARM 아키텍처의 모든 버전은 메모리의 연속적인 블록에서 데이터를 레지스터 범위 또는 비연속적인 레지스터 집합으로 로드하거나 저장하는 다중 명령어 로드 및 저장을 제공한다.
SIMD 하드웨어
작은 규모(64비트 또는 128비트) SIMD는 1990년대 초 범용 CPU에서 인기를 얻었으며, 1997년과 그 이후까지 알파용 모션 비디오 명령어(MVI)와 함께 계속되었다. SIMD 명령어는 IBM의 AltiVec 및 파워PC용 신호 처리 엔진(SPE), 휴렛 팩커드 (HP)의 PA-RISC 멀티미디어 가속 확장 (MAX), 인텔의 MMX 및 iwMMXt, 스트리밍 SIMD 확장 (SSE), SSE2, SSE3 SSSE3 및 SSE4, AMD의 3DNow!, ARC의 ARC 비디오 서브시스템, SPARC의 VIS 및 VIS2, 썬의 MAJC, ARM의 네온 기술, MIPS의 MDMX (MaDMaX) 및 MIPS-3D를 포함하여 대부분의 CPU에서 어느 정도 찾아볼 수 있다. IBM, 소니, 도시바가 공동 개발한 셀 프로세서의 시너지 프로세싱 엘리먼트 (SPE) 명령어 집합은 SIMD 기반이 대부분이다. 필립스, 현재 NXP는 Xetal이라는 여러 SIMD 프로세서를 개발했다. Xetal은 비전 작업을 위해 특별히 설계된 320개의 16비트 프로세서 요소를 가지고 있다. 애플의 M1 및 M2 칩에는 GPU 및 Neural Engine과 깊이 통합된 SIMD 장치도 포함되어 있으며, 이미지 필터링, 컨볼루션 및 행렬 곱셈에 최적화된 애플이 설계한 SIMD 파이프라인을 사용한다. 이 통합 메모리 아키텍처는 SIMD 명령어가 공유 메모리 풀에서 더 효율적으로 작동하도록 돕는다.
SIMD 하드웨어
인텔의 AVX-512 SIMD 명령어는 한 번에 512비트의 데이터를 처리한다.
SIMD 소프트웨어
SIMD 명령어는 3D 그래픽 처리에 널리 사용되지만, 현대의 그래픽 카드는 내장 SIMD를 통해 CPU에서 이 작업을 대부분 인계받았다. 일부 시스템은 벡터 내부의 요소를 재포장하는 순열 함수도 포함하고 있어 데이터 처리 및 압축에 특히 유용하다. 또한 암호화에도 사용된다. GPU를 이용한 범용 컴퓨팅의 추세는 미래에 SIMD의 더 넓은 사용을 가져올 수 있다. LLVM, GCC, 인텔의 ICC와 같은 최신 컴파일러는 적극적인 자동 벡터화 옵션을 제공한다. 개발자는 종종 `-O3` 또는 `-ftree-vectorize`와 같은 플래그를 사용하여 이를 활성화할 수 있으며, 이는 컴파일러가 SIMD 호환성을 위해 루프를 재구성하도록 안내한다.
SIMD 소프트웨어
개인용 컴퓨터 소프트웨어에서 SIMD 시스템의 채택은 여러 가지 문제로 인해 처음에는 느렸다. 한 가지 문제는 초기 SIMD 명령어 집합의 상당수가 기존 부동소수점 레지스터의 재사용으로 인해 시스템의 전반적인 성능을 저하시키는 경향이 있었다는 점이다. MMX 및 3DNow!와 같은 다른 시스템은 광범위한 사용자에게는 흥미롭지 않은 데이터 유형을 지원했으며, FPU와 MMX 레지스터를 사용하는 전환을 위한 값비싼 컨텍스트 스위칭 명령어를 가지고 있었다. 컴파일러도 종종 지원이 부족하여 프로그래머들이 어셈블리어 코딩에 의존해야 했다.
X86에서의 SIMD는 시작이 느렸다. AMD의 3DNow!와 인텔의 SSE의 도입은 다소 혼란을 주었지만, 오늘날에는 시스템이 정착되었고(AMD가 SSE를 채택한 후) 새로운 컴파일러는 더 많은 SIMD 지원 소프트웨어를 만들어낼 것이다. 인텔과 AMD는 이제 SIMD 명령어를 사용하는 최적화된 수학 라이브러리를 제공하며, libSIMD, SIMDx86, SLEEF와 같은 오픈 소스 대안도 나타나기 시작했다(또한 libm 참조).
SIMD 소프트웨어
애플은 SIMD 시장에 다른 회사들보다 늦게 진입했지만, 어느 정도 성공을 거두었다. AltiVec은 풍부한 시스템을 제공했으며, 모토로라, IBM, GNU의 점점 더 정교한 컴파일러를 사용하여 프로그래밍할 수 있었으므로 어셈블리어 프로그래밍은 거의 필요하지 않았다. 또한 SIMD의 이점을 누릴 수 있는 많은 시스템은 애플 자체에서 제공되었는데, 예를 들어 아이튠즈와 퀵타임이 있다. 그러나 2006년 애플 컴퓨터는 인텔 x86 프로세서로 전환했다. 애플의 API와 개발 도구 (XCode)는 SSE2 및 SSE3뿐만 아니라 AltiVec을 지원하도록 수정되었다. 애플은 IBM과 프리스케일 세미컨덕터로부터 파워PC 칩의 주요 구매자였다. 애플이 제품에서 파워PC 프로세서 사용을 중단했지만, AltiVec의 추가 개발은 프리스케일과 IBM의 여러 파워PC 및 Power ISA 설계에서 계속되고 있다.
SIMD 소프트웨어
레지스터 내 SIMD(SIMD within a register) 또는 SWAR은 SIMD 명령어를 직접 지원하지 않는 하드웨어에서 일반 목적 레지스터에서 SIMD를 수행하는 데 사용되는 다양한 기술과 요령이다. 이는 SIMD를 직접 지원하지 않는 하드웨어에서도 특정 알고리즘에서 병렬성을 활용하는 데 사용할 수 있다.
SIMD 명령어 집합의 개발사는 자체적인 C 및 C++ 언어 확장과 내장 함수 또는 특별한 데이터 형식(과 연산자 오버로딩)을 제공하여 벡터 코드 생성을 보장하는 것이 일반적이다. 인텔, AltiVec, ARM NEON은 CPU를 대상으로 하는 컴파일러에 널리 채택된 확장을 제공한다. (더 복잡한 연산은 벡터 수학 라이브러리의 역할이다.)
GNU C 컴파일러는 SIMD 데이터 형식을 정의하는 방법을 제공함으로써 확장 기능을 한 단계 더 발전시켜 어떤 플랫폼에서도 사용할 수 있는 범용 인터페이스로 추상화한다. LLVM Clang 컴파일러도 이 기능을 구현하며, IR에 정의된 유사한 인터페이스를 가지고 있다. Rust의 packed_simd 크레이트(및 실험적인 std::simd)는 이 인터페이스를 사용하며, 스위프트 2.0+도 마찬가지이다.
SIMD 소프트웨어
C++에는 GCC 확장과 유사하게 작동하는 실험적인 인터페이스 std::experimental::simd가 있다. LLVM의 libcxx는 이를 구현하는 것으로 보인다. GCC 및 libstdc++의 경우 GCC 확장을 기반으로 하는 래퍼 라이브러리를 사용할 수 있다.
마이크로소프트는 RyuJIT에서 .NET에 SIMD를 추가했다. NuGet에서 사용할 수 있는 System.Numerics.Vector 패키지는 SIMD 데이터 형식을 구현한다. 자바도 OpenJDK 17의 인큐베이터 모듈에서 SIMD 명령어를 위한 새로운 API를 제안했다. 또한 지원되지 않는 CPU에서는 간단한 루프로 안전하게 대체되는 메커니즘도 제공한다.
SIMD 소프트웨어
SIMD 데이터 타입을 제공하는 대신, 컴파일러는 일부 루프를 자동으로 벡터화하도록 힌트를 받을 수도 있으며, 이는 데이터 종속성 부족에 대한 일부 가정을 취할 수 있다. 이는 SIMD 변수를 직접 조작하는 것만큼 유연하지는 않지만 사용하기 더 쉽다. OpenMP 4.0+에는 #pragma omp simd 힌트가 있다. 이 OpenMP 인터페이스는 Cilk의 #pragma simd, GCC의 #pragma GCC ivdep 등을 포함한 광범위한 비표준 확장 기능을 대체했다.
일반적으로 소비자 소프트웨어는 여러 세대의 CPU에서 작동하도록 예상되므로, 프로그래머가 프로그램의 계산 성능을 향상시키기 위해 새로운 SIMD 명령어를 사용하는 능력이 제한될 수 있다. 해결책은 오래된 SIMD 기술 또는 최신 SIMD 기술을 사용하는 동일한 코드의 여러 버전을 포함하고, 런타임에 사용자 CPU에 가장 적합한 버전을 선택하는 것이다(동적 디스패치). 주요 두 가지 해결책은 다음과 같다.
어셈블리어로 수동으로 코딩된 FMV는 glibc 및 libjpeg-turbo와 같은 여러 성능에 민감한 라이브러리에서 매우 일반적으로 사용된다. 인텔 C++ 컴파일러, GCC 6부터의 GNU 컴파일러 모음 및 clang 7부터의 Clang은 간소화된 접근 방식을 허용하며, 컴파일러가 함수 복제 및 선택을 처리한다. GCC 및 clang은 함수를 "클론"하기 위해 코드에 명시적인 target_clones 레이블을 필요로 하는 반면, ICC는 자동으로 수행한다(명령줄 옵션 /Qax 사용). 러스트 프로그래밍 언어도 FMV를 지원한다. 설정은 GCC 및 Clang과 유사하게 코드가 컴파일할 명령어 집합을 정의하지만, 복제는 인라인을 통해 수동으로 수행된다.
GCC와 Clang에서 FMV를 사용하려면 코드 수정이 필요하므로, 공급업체는 라이브러리 다중 버전화를 더 일반적으로 사용한다. 이는 컴파일러 스위치만 변경하면 되므로 달성하기 쉽다. Glibc는 LMV를 지원하며, 이 기능은 인텔이 지원하는 클리어 리눅스 프로젝트에서 채택되었다.
SIMD 웹의 SIMD
2013년 존 맥커천은 다트 프로그래밍 언어를 위한 고성능 SIMD 명령어 집합 인터페이스를 만들었다고 발표하며, SIMD의 이점을 웹 프로그램에 처음으로 가져왔다. 이 인터페이스는 두 가지 유형으로 구성된다.
이러한 유형의 인스턴스는 불변하며 최적화된 코드에서는 SIMD 레지스터에 직접 매핑된다. 다트로 표현된 연산은 일반적으로 오버헤드 없이 단일 명령어로 컴파일된다. 이는 C 및 C++ 내장 함수와 유사하다. 4×4 행렬 곱셈, 3D 정점 변환, 망델브로 집합 시각화 벤치마크는 다트로 작성된 스칼라 코드에 비해 거의 400%의 속도 향상을 보여준다.
SIMD 웹의 SIMD
인텔은 IDF 2013에서 V8과 스파이더몽키 모두에 맥커천의 사양을 구현하고 있다고 발표했다. 그러나 2017년까지 SIMD.js는 웹어셈블리에서 유사한 인터페이스를 추구하기 위해 ECMA스크립트 표준 대기열에서 제외되었다. SIMD 지원은 2022년에 완성되어 2024년 12월에 공식화된 WebAssembly 2.0 사양에 추가되었다. C 또는 C++를 WebAssembly로 컴파일할 때 LLVM의 자동 벡터화는 WebAssembly SIMD를 대상으로 SIMD를 자동으로 활용할 수 있으며, SIMD 내장 함수도 사용할 수 있다.
SIMD 상업적 응용
SIMD 전용 프로세서에 대한 지속적인 상업적 응용 분야를 찾는 것은 일반적으로 어려운 일로 입증되었다.
어느 정도 성공을 거둔 한 가지는 GAPP이다. 이는 록히드 마틴에 의해 개발되었고, 그들의 스핀오프인 Teranex에 의해 상업 부문으로 진출했다. GAPP의 최근 구현은 다양한 비디오 표준 및 프레임 속도(NTSC와/에서 PAL, NTSC와/에서 HDTV 형식 등) 간의 변환, 디인터레이스, 이미지 노이즈 감소, 적응형 영상 압축, 이미지 향상과 같은 실시간 비디오 처리 응용 분야에서 강력한 도구가 되었다.
SIMD 상업적 응용
SIMD의 더 보편적인 응용 분야는 비디오 게임에서 찾을 수 있다. 1998년 이후 거의 모든 현대 비디오 게임 콘솔은 아키텍처 어딘가에 SIMD 프로세서를 통합했다. 플레이스테이션 2는 자율적인 DSP로 자체 명령어 스트림을 실행하거나 일반 CPU 명령어에 의해 구동되는 코프로세서로 기능할 수 있는 벡터-부동 소수점 장치 중 하나를 가지고 있다는 점에서 특이했다. 3D 그래픽 응용 프로그램은 4차원 벡터를 사용하는 연산에 크게 의존하므로 SIMD 처리에 잘 적합한 경향이 있다. 마이크로소프트의 Direct3D 9.0은 이제 SIMD 지원 명령어를 포함하여 자체 수학 연산의 프로세서별 구현을 런타임에 선택한다.
벡터 처리를 사용한 후기 프로세서는 플레이스테이션 3에 사용된 셀 프로세서로, IBM이 도시바 및 소니그룹과 협력하여 개발했다. 이 프로세서는 여러 SIMD 프로세서(NUMA 아키텍처, 각각 독립적인 로컬 스토어를 가지며 범용 CPU에 의해 제어됨)를 사용하며, 3D 및 비디오 처리 응용 프로그램에 필요한 방대한 데이터 세트에 적합하다. 스칼라 레지스터가 별도로 없는 처음부터 SIMD 기반이라는 점에서 전통적인 ISA와 다르다.
SIMD 상업적 응용
Ziilabs는 미디어 플레이어 및 휴대폰과 같은 모바일 장치에 사용되는 SIMD 유형 프로세서를 생산했다.
더 큰 규모의 상업용 SIMD 프로세서는 ClearSpeed Technology, Ltd. 및 Stream Processors, Inc.에서 구할 수 있다. ClearSpeed의 CSX600(2004)은 각각 두 개의 배정밀도 부동 소수점 단위를 가진 96개의 코어를 가지고 있으며, CSX700(2008)은 192개를 가지고 있다. Stream Processors는 컴퓨터 아키텍트 빌 댈리가 이끌고 있다. 그들의 Storm-1 프로세서(2007)는 MIPS CPU에 의해 제어되는 80개의 SIMD 코어를 포함한다.
루시퍼
루시퍼(영어: Lucifer, 라틴어: Lucifer 루치페르[*], 히브리어: הֵילֵל 헬렐)는 성경에 나오는 단어로 보통은 타락천사를 가리킨다. 히브리어 성경(타나크) 이사야 14장 12절에 '헬렐'이 나오는데 이를 영어성경은 '루시퍼'로 번역했고 한글성경은 '계명성'으로 번역했다. 계명성, 아침별, 새벽별, 샛별, 금성 모두 동의어다. 원래 샛별은 예수 그리스도를 상징하는 단어였는데 하느님 보좌의 근위병이어서 예수 그리스도의 상징을 사용할 수 있었던 루시퍼 천사가 교만해지자 창조주가 계급장을 박탈하고 천국에서 추방한 뒤 더는 루시퍼 이름을 사용할 수 없게 되었다. 루시퍼는 라틴어 루치페르의 영어식 이름이다.
루시퍼 어원
루키페르는 ‘빛을 가져온 자’(lux, lucis “빛” + -ferre “띠는”, “가져 오는”)라는 말의 라틴어로서, 기독교 이전부터 샛별(빛나는 별)을 지칭하는 데 사용했었다. 라틴어 불가타 성경에는 샛별과 관련하여 두 번 언급하고 있다: 첫째는 베드로의 둘째 편지 1장 19절의 그리스어 “Φωσφόρος”를 글자 그대로 뜻인 “빛을 가져오는 자”와 정확히 같은 뜻인 라틴어 “루키페르”로 번역한 것이며, 둘째는 이사야서 14장 12절의 “הילל(헤렐)”을 또한 “샛별(루키페르)”로 번역한 것이다. 이 “샛별”은 본래 바빌로니아의 왕을 가리키던 것으로서 예언적 시각에서 그의 몰락을 설명한 것이었다. 따라서 원래는 사탄이나 타락천사 전설과는 전혀 관계가 없었다. 그러나 이 단어는 나중에 악마에게 적용되어 점차 사탄의 이름으로 사용되기 시작했으며, 단테의 신곡과 존 밀턴의 실낙원 같은 책을 통해 대중화되었고, 이러한 영향으로 16세기말~17세기 초에 가톨릭과 개신교에서 각각 영어로 번역한 두에-랭스 성경과 킹제임스 성경이 히브리어 "헤렐"을 샛별에 해당하는 'morning star'로 번역하지 않고 라틴어 'lucifer'를 고유명사처럼 기록하는 바람에 결정적으로 루시퍼가 악마의 이름인 것처럼 오해받게 되었다.
루시퍼 베드로의 샛별
베드로의 둘째 편지 1장 19절 "여러분의 마음속에서 날이 밝아 오고 샛별(라틴어 루키페르)이 떠오를 때까지" 의 영향으로 인해 초대교회의 그리스도인들은 루키페르라는 단어를 빛나는 새벽별과 같은 그리스도의 영광을 묘사하는데에 적용하여 예수 그리스도의 라틴어 별칭으로 사용하였다. 그러한 예로 초대교회의 찬송가 "새벽의 노래", 와 사르데냐의 주교 성 루키페르의 이름을 들 수 있다.
루시퍼 이사야서의 샛별
이사야서에는 다음과 같은 구절이 있다.
주님께서 너의 괴로움과 불안에서, 너에게 지워진 심한 노역에서 너를 풀어 주시는 날에, 너는 바빌론 임금에 대하여 이러한 조롱의 노래를 지어 부를 것이다. 어찌하다 압제자가 종말을 고하고 억압이 끝나게 되었는가? … 어찌하다 하늘에서 떨어졌느냐? 빛나는 별, 여명의 아들인 네가! 민족들을 쳐부수던 네가 땅으로 내동댕이쳐지다니. 너는 네 마음속으로 생각했었지. ‘나는 하늘로 오르리라. 하느님의 별들 위로 나의 왕좌를 세우고 북녘 끝 신들의 모임이 있는 산 위에 좌정하리라. 나는 구름 꼭대기로 올라가서 지극히 높으신 분과 같아져야지.’ 그런데 너는 저승으로, 구렁의 맨 밑바닥으로 떨어졌구나. 너를 보는 자마다 너를 자세히 들여다보고 눈여겨 살펴보면서 말하리라. “이자는 세상을 뒤흔들고 나라들을 떨게 하던 자가 아닌가? 땅을 사막처럼 만들고 성읍들을 파괴하며 포로들을 고향으로 보내 주지 않던 자가 아닌가?”
루시퍼 이사야서의 샛별
이 구절은 본래 “바빌론의 왕”을 묘사한 것으로서, 그는 전능해 보이는 “남자”이지만 결국 비천해질 것이라는 점에 주목한 것이었다. 이사야는 이스라엘 사람들이 자유를 되찾을 것이라면서 그들 압제자에 반대하여 조롱하는 노래에서 샛별(금성)의 이미지를 사용하였다. 즉, 태양이 밝게 빛나기 직전에 잠깐 비치다가 사라지는 샛별처럼 바빌론 왕도 그렇게 사라질 것이라는 의미의 예언이었던 것이다. 위 구절에서 “샛별, 여명의 아들”을 뜻하는 옛 히브리어 “הילל בן־שׁחר”(hélél ben-šachar)을 한국어 번역 성경에서는 “빛나는 별, 여명의 아들”혹은 "샛별, 계명성" 등으로 번역하였다.
루시퍼 사탄으로서의 루키페르
실제 성경 원문에는 "루키페르" 또는 "루시퍼"라는 이름이 등장하지 않는다. 타락한 천사에 관한 이야기는 유대교의 전설에서 처음으로 확인할 수 있는데, 유대교 백과사전에는 아담과 하와의 생애와 에녹서에 나오는 사타나일을 예로 들면서 사탄은 타락한 천사라고 설명하였다. 본래 그는 대천사 가운데 하나였지만 자신의 강력한 힘에 취해 자신의 왕좌를 땅 위의 구름보다 더 높이 올리고자 했기 때문에 부하들과 같이 하늘에서 내던져졌다고 한다. 이후 그는 무저갱 위에 끊임없이 바람을 가르며 날고 있다고 한다.