Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Monday, 24 February 2020

Graphcore, the AI chipmaker, raises another $150M at a $1.95B valuation

The UK has a strong history when it comes to processors, but the global chip market has seen some ups and downs of late. Today comes some big news that underscores how investors are doubling down on one of the big hopefuls for the next generation of chipmaking to see it through any possible winter winds. Graphcore, the Bristol-based startup that designs processors specifically for artificial intelligence applications, announced that it has raised another $150 million in funding for R&D and to continue bringing on new customers. It’s valuation is now $1.95 billion.

Graphcore has now raised over $450 million and says that it has some $300 million in cash reserves — an important detail considering the doldrums that have plagued the chipmaking market in the last few months, and could become exacerbated now with the slowdown in production due to the coronavirus outbreak.

The funding is an extension of its Series D, it said, and brings the total valuation of the company to $1.95 billion. (For reference, the original Series D in December 2018 valued Graphcore at $1.7 billion.) This latest round includes investments from Baillie Gifford, Mayfair Equity Partners and M&G Investments — all new backers — as well as participation from previous investors Merian Chrysalis, Ahren Innovation Capital, Amadeus Capital Partners and Sofina. Other past backers of the startup include BMW, Microsoft, Atomico and Demis Hassabis of DeepMind.

Graphcore’s big claim to fame has been the development of what it calls its Intelligence Processing Unit (IPU) hardware and corresponding Poplar software — which are designed specifically for the kind of simultaneous, intensive calculations demanded of AI applications innovators create next generation machine intelligence solutions (which are designed based on how humans think, in “parallel” processing mode).

Graphcore describes its IPU as the first processor to be designed specifically for AI, although a number of other companies including Nvidia, Intel and AMD have made huge investments into this area and have ramped up their pace of development to meet market demands and hopefully overtake what have been limitations in the wider area of AI processing, a problem that still continues to persist and all these chipmakers continue to work on.

“Deep learning has only really existed in since 2012,” Nigel Toon, founder and CEO, said recently to TechCrunch. “When we started Graphcore, what we heard from innovators was that hardware was holding them back.”

This D2 round comes ahead of what it describes as strong demand for 2020, and is happening on the heels of a strong year for Graphcore, the company said, including a commercial deal with one of its previous strategic backers.

“2019 was a transformative year for Graphcore as we moved from development to a full commercial business with volume production products shipping,” said Nigel Toon, founder and CEO. “We were pleased to publicly announce our close partnership with Microsoft in November 2019, jointly announcing IPU availability for external customers on the Azure Cloud, as well as for use by Microsoft internal AI initiatives. In addition, we announced availability of the DSS8440 IPU Server in partnership with Dell Technologies and the launch of the Cirrascale IPU-Bare Metal Cloud. We also announced some of our other early access customers which include Citadel Securities, Carmot Capital, and Qwant, the European search engine company.”

See Toon speaking at our recent Disrupt conference in Berlin about the prospect for chips here:



from TechCrunch https://ift.tt/2Vjybaf
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support