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();

Wednesday, 24 June 2020

Cambricon, once Huawei’s core AI chip supplier, eyes $400M IPO

One of China’s most valuable artificial intelligence chipmakers Cambricon is one step closer to its initial public offering, and its prospectus reveals a rare snapshot of where Chinese companies stand in relation to their international counterparts in this critical field.

Cambricon got the nod in early June to list on the Star Market, China’s new Nasdaq-like stock exchange conceived to attract high-potential tech startups. This week, the chipmaker received the final green light from the China Securities Regulatory Commission, the stock market watchdog, for its first-time sale.

The company is aiming to raise 2.8 billion yuan ($400 million) from its IPO and spend the proceeds on cloud-based algorithm training and inference, edge computing, and cash flow boost. It was last valued at 2.5 billion yuan in 2018 and expects its market cap to exceed 1.5 billion yuan when it floats.

Cambricon began life in a lab within the Chinese Academy of Sciences (CAS), the national institute for science and technology backed by government money. In 2016, the project spun out as a separate entity, making money by licensing intellectual property and selling chips for deep-learning acceleration. Before long, it had made its name as a major supplier of Huawei’s first AI chip-powered smartphones and other flagship models later on.

But the partners’ ties have weakened ever since Huawei began doubling down on its own semiconductor arm — HiSilicon — to hedge against U.S. sanctions. The direct consequence is a substantial revenue drop for Cambricon’s licensable IP, which slumped to an estimated 16-18 million yuan in 2018, down from 117 million yuan in 2018.

“Huawei Silicon has chosen to develop its own AI chips for end devices and has not extended the partnership with our company, and our AI chip business with other clients remains relatively small,” the company replied to regulators during the vetting process for its listing. Finding new clients at Huawei’s enormous scale is also challenging, as “most of the other well-known Chinese smartphone makers are using established handset chips and solutions from Qualcomm and MediaTek,” Cambricon noted.

The chipmaker also flagged that it remains “well behind” international competitors such as Nvidia, Intel, AMD in areas including “overall scale, capital reserve, resources for research and development and sales channels.” It’s also well aware of rising domestic competition from its old ally, Huawei, which has opted for chips from its home-grown HiSilicon unit.

Cambricon’s co-founders Chen Tianshi and Chen Yunji both hail from academia. The company still maintains close relationships with CAS and also works closely with Olivier Temam, a researcher at Inria, the French national institute for computer science and applied mathematics.

Cambricon is still operating in the red, adding up to a total loss of 1.6 billion yuan ($230 million) in the last three years in part due to large sums spent on research and development, according to its prospectus. It generated revenues of 444 million yuan ($63 million) in 2019, up from 7.84 million yuan in 2017.

The chipmaker is backed by a lineup of storied investors across the board. Besides the 41.7% stake Chen Tianshi commands, other shareholders include Zhongke Suanyuan, an asset management firm set up by CAS; Aixi Partners, an entity owned by Cambricon employees and controlled by Chen Tianshi; SDIC Venture Capital, a state-owned investment firm approved by China’s state council; e-commerce titan Alibaba; and voice recognition provider iFlytek.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support